Darmowe Forum
Maj 02, 2024, 10:03:34 *
Witamy, Gość. Zaloguj się lub zarejestruj.
Czy dotarł do Ciebie email aktywacyjny?

Zaloguj się podając nazwę użytkownika, hasło i długość sesji
Aktualności: Forum zostało uruchomione!
 
   Strona główna   Pomoc Zaloguj się Rejestracja  
Strony: [1]
  Drukuj  
Autor Wątek: Pętla for....  (Przeczytany 8666 razy)
admin
Administrator
Ekspert
*****
Wiadomości: 821


Email
« : Październik 10, 2011, 11:15:10 »

W programach bardzo często pojawia się konieczność powtarzania pewnej części kodu. W Pascalu dostępne są trzy rodzaje pętli. Jedną z nich jest pętla for.
Składnia pętli for... wygląda następująco:
For (wartość początkowa licznika) to (wartość końcowa licznika) do (polecenie);

Uwaga: W tym przypadku wartość początkowa musi być mniejsza lub równa wartości końcowej licznika. Licznik to liczba całkowita która zmienia swoją wartość po każdym obrocie pętli. Pętla działa tak długo jak długo wartość licznika nie przekroczy wartości umieszczonej po słowie to ( musi być większa!!!). Jak widać przedstawiona powyżej składnia dotyczy pętli w której wartość licznika rośnie.
W pętli for wartość licznika może być również zmniejszana, składnia takiej pętli wygląda tak:
For (wartość początkowa licznika) downto (wartość końcowa licznika) do (polecenie);

Uwaga: W tym przypadku wartość początkowa licznika musi być większa od jej wartości końcowej.

Przykład pętli z licznikiem o rosnącej wartości:
for x:=1 to 10 do writeln(x); pętla wyświetli liczby od 1 do 10 umieszczone jedna pod drugą.

Przykład pętli o wartości malejącej licznika:
for x:=10 downto 1 do writeln(x);  pętla wyświetli liczby od 10 do 1 umieszczone jedna pod drugą.

Uwaga: jeżeli pomylisz wartości licznika, pętla nie zadziała!!!!!



« Ostatnia zmiana: Październik 10, 2011, 11:16:53 wysłane przez admin » Zapisane
admin
Administrator
Ekspert
*****
Wiadomości: 821


Email
« Odpowiedz #1 : Październik 10, 2011, 11:19:06 »

Przykład 1. Napisać program wyświetlający na ekranie 10 razy napis : "Uwielbiam programować w Pascalu"


program zad1;
uses crt,dos;
var x:integer;
begin
clrscr;
for x:=1 to 10 do writeln('Lubie programowac w Pascalu!!! ',x);
readkey;
end.
« Ostatnia zmiana: Październik 10, 2011, 11:21:15 wysłane przez admin » Zapisane
admin
Administrator
Ekspert
*****
Wiadomości: 821


Email
« Odpowiedz #2 : Październik 10, 2011, 11:36:16 »

Przykład 2. Napisać program który prosi użytkownika o podanie ile razy ma wyświetlać napis :"Już za chwilę obiad". Po wprowadzeniu liczby wyświetla napis tyle razy jaką liczbę wprowadzono z klawiatury.

program luminofikcja;
uses crt, dos;
var x,y:integer;
begin
clrscr;
write('Podaj ile razy mam wyswietlic napis: ');readln(x);
for y:=1 to x do writeln('Juz za chwile obiad!!! ',y);
readkey;
end.
« Ostatnia zmiana: Październik 10, 2011, 11:41:38 wysłane przez admin » Zapisane
admin
Administrator
Ekspert
*****
Wiadomości: 821


Email
« Odpowiedz #3 : Październik 10, 2011, 12:05:52 »

Przykład 3. Proszę napisać program który prosi o podanie imienia. Następnie prosi o podanie liczby.
Po wprowadzeniu liczby na ekranie wyświetlane jest imie tyle razy jaką liczbę wprowadzono.


program rysio_misio;
uses crt,dos;
var x,z:integer;
y:string;
begin
clrscr;
write('Podaj imie: ');readln(y);
write('Podaj liczbe wyswietlen: ');readln(x);
writeln;
for z:=1 to x do writeln(y);
readkey;
end.
« Ostatnia zmiana: Październik 17, 2011, 08:26:13 wysłane przez admin » Zapisane
admin
Administrator
Ekspert
*****
Wiadomości: 821


Email
« Odpowiedz #4 : Październik 17, 2011, 07:51:00 »

Instrukcja grupująca.

Uwaga ważne!!!!: Wszystkie polecenia które znajdą się pomiędzy słowami begin ...end; będą odczytywane przez kompilator jako jedno polecenie!!!


Dlaczego zachodzi taka potrzeba?
Niestety kompilator Pascal pozwala na umieszczenie tylko jednego polecenia w instrukcji warunkowej. Wstawiając instrukcję grupującą kompilator przyjmie ją jako jedno polecenie.
« Ostatnia zmiana: Październik 17, 2011, 07:53:56 wysłane przez admin » Zapisane
admin
Administrator
Ekspert
*****
Wiadomości: 821


Email
« Odpowiedz #5 : Październik 17, 2011, 07:59:12 »

Przykład 4.
Napisać program który wyświetli przemieszczający się od lewej do prawej strony napis: Adam.
Wykorzystać funkcję gotoxy(x,y) i pętlę for....


program zad1;
uses crt,dos;
var x:integer;
begin
clrscr;
for x:=1 to 60 do
begin
clrscr;gotoxy(x,10);
writeln('Adam');delay(100);
end;

readkey;
end.

W programie wykorzystano instrukcję grupująca begin...end;

Polecenie gotoxy(x,y) służy do przemieszczania napisu, x zmienia się w pętli wobec czego napis jest wyświetlany przesunięty coraz bardziej w prawo. Czyszczenie ekranu clrscr,wymazuje poprzedni napis, a polecenie delay(100) zatrzymuje program na 0.1 sekundy, dzięki czemu ma się wrażenie ruchu napisu. Spróbujcie zastąpić wartość 100 innymi wartościami np.1000 uzyskując spowolnienie ruchu napisu. 
Zapisane
admin
Administrator
Ekspert
*****
Wiadomości: 821


Email
« Odpowiedz #6 : Październik 17, 2011, 09:08:46 »

Przykład 5. Proszę napisać program który prosi o podanie słowa . Podane słowo jest wyświetlane tyle razy ilu liter się składa.

program piramidopolopirynowicz;
uses crt,dos;
var x,z:integer;
y:string;
begin
clrscr;
write('Podaj imie: ');readln(y);
writeln; x:=length(y);
for z:=1 to x do writeln(y);
readkey;
end.
« Ostatnia zmiana: Październik 17, 2011, 09:17:16 wysłane przez admin » Zapisane
admin
Administrator
Ekspert
*****
Wiadomości: 821


Email
« Odpowiedz #7 : Październik 17, 2011, 09:24:56 »

Przykład 6. Napisać program , który prosi o podanie słowa. Następnie prosi o podanie litery. Po podaniu litery sprawdza ile razy podana litera występuje w podanym słowie. Wynik wyświetlany jest na ekranie.

program ramirez;
uses crt,dos;
var a,x,z:integer;
y:string;
b:char;
begin
clrscr;
write('Podaj imie: ');readln(y); a:=0;
write('Podaj znak: ');readln(b);
writeln; x:=length(y);
for z:=1 to x do
begin
if(y[z]=b) then a:=a+1;
end;

writeln('W slowie ',y,'znak ',b,' wystepuje ',a,' razy');
readkey;
end.
« Ostatnia zmiana: Październik 17, 2011, 09:40:54 wysłane przez admin » Zapisane
admin
Administrator
Ekspert
*****
Wiadomości: 821


Email
« Odpowiedz #8 : Październik 17, 2011, 10:13:58 »

Przykład 7.  Proszę napisać program w którym napis "Adam" będzie przemieszczał się od lewej do prawej, a pod nim napis "Bimbacz" przemieszcza się od prawej do lewej. Mają mijać się mniej więcej na środku ekranu.

program misio;
uses crt,dos;
var x:integer;
begin
clrscr;
for x:=1 to 60 do
begin
clrscr;gotoxy(x,10);
write('Adam');
gotoxy(61-x,11);
write('Bimbacz');
delay(100);
end;
readkey;
end.


« Ostatnia zmiana: Październik 17, 2011, 11:17:37 wysłane przez admin » Zapisane
admin
Administrator
Ekspert
*****
Wiadomości: 821


Email
« Odpowiedz #9 : Październik 22, 2011, 07:24:27 »

Przykład 8. Ile razy wyświetlona zostanie litera B. Dla niedowiarka Dominika.

program adam;
uses crt,dos;
var x: integer;
begin
clrscr;
for x:=2 to 5 do
begin
writeln('B');
end;
readkey;
end.
« Ostatnia zmiana: Październik 22, 2011, 07:26:11 wysłane przez admin » Zapisane
Strony: [1]
  Drukuj  
 
Skocz do:  

Powered by SMF 1.1.11 | SMF © 2006-2008, Simple Machines LLC | Sitemap

Polityka cookies
Darmowe Fora | Darmowe Forum

cybersteam croissanta justplay santera amazonsolidarnosc