Darmowe Forum
Maj 04, 2024, 18:50:56 *
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..... - czyli jak powtarzać fragment programu  (Przeczytany 12723 razy)
admin
Administrator
Ekspert
*****
Wiadomości: 821


Email
« : Październik 22, 2010, 08:54:51 »

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 22, 2010, 09:01:10 wysłane przez admin » Zapisane
admin
Administrator
Ekspert
*****
Wiadomości: 821


Email
« Odpowiedz #1 : Październik 25, 2010, 04:27:00 »

Przykład 1. Napisać program wyświetlający na ekranie 10 razy napis : "Uwielbiam programować w Pascalu"
program zad1_2;
uses crt,dos;
var x:integer;
begin
clrscr;
for x:=1 to 10 do writeln('Lubie programowac w Pascalu!!!');
readkey;
end.
Zapisane
admin
Administrator
Ekspert
*****
Wiadomości: 821


Email
« Odpowiedz #2 : Październik 25, 2010, 04:32:55 »

Przykład 2.
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_2;
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. Polecenie delay(x) opisane jest w materiałach dostarczonych Państwu. Spróbujcie zastąpić wartość 100 innymi wartościami np.1000 uzyskując spowolnienie ruchu napisu. 
« Ostatnia zmiana: Październik 25, 2010, 04:38:26 wysłane przez admin » Zapisane
admin
Administrator
Ekspert
*****
Wiadomości: 821


Email
« Odpowiedz #3 : Październik 25, 2010, 04:44:57 »

Zadanie 3. Proszę napisać program w którym napis "Adam" będzie przemieszczał się od lewej do prawej, a pod nim napis "Ewa" przemieszcza się od prawej do lewej. Mają mijać się mniej więcej na środku ekranu.
program zad1_3;
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('Ewa');
delay(100);
end;
readkey;
end.

Zapisane
admin
Administrator
Ekspert
*****
Wiadomości: 821


Email
« Odpowiedz #4 : Październik 25, 2010, 04:47:42 »

Zadanie 4. Napisać program który będzie pionowo (góra-dół) przemieszczał napis: ADAM.
Zapisane
admin
Administrator
Ekspert
*****
Wiadomości: 821


Email
« Odpowiedz #5 : Listopad 08, 2010, 11:40:44 »

Program nr 7
Program prosi o podanie liczby od której ma wyświetlać i liczby do której ma wyświetlać. Następnie wyświetla je na ekranie.


program a;
uses crt, dos;
var x,y,z:integer;
begin
clrscr;
write('Podaj od jakiej liczby wyswietlic: ');readln(y);
write('Podaj do ktorej liczby wyswietlic: ');readln(z);
for x:=y to z do
begin
writeln(x);sound(1000); delay(100);nosound;
 end;

readkey;
end.
Zapisane
admin
Administrator
Ekspert
*****
Wiadomości: 821


Email
« Odpowiedz #6 : Listopad 08, 2010, 12:21:23 »

Zadanie 8. Napisać program który wyświetli imię tyle razy ile wynosi wiek wprowadzającego.



program milus;
uses crt,dos;
var x:string;
y,z:byte;
begin
clrscr;
write('Podaj swoje imie : ');readln(x);
write('Podaj swoj wiek: ');readln(y);
clrscr;
for z:=1 to y do
begin
writeln(z:5,' : ',x);
end;
readkey;
end.
Zapisane
admin
Administrator
Ekspert
*****
Wiadomości: 821


Email
« Odpowiedz #7 : Listopad 08, 2010, 13:16:00 »

program milus;
uses crt,dos;
var x:string;
y:byte;
begin
clrscr;
for y:=1 to 60 do
begin
clrscr; gotoxy(y,10);write('ADAM');delay(50);
textcolor(y);

end;

readkey;
end.
Zapisane
admin
Administrator
Ekspert
*****
Wiadomości: 821


Email
« Odpowiedz #8 : Listopad 15, 2010, 08:08:59 »

Zadanie 5. Napisać program który prosi o podanie nazwy, a następnie wyświetla ją na środku ekranu. Po 1 sekundzie napis zaczyna przemieszczać się w prawo.

program rurka;
uses crt,dos;
var x,y:integer;
z: string;
begin
 clrscr;
 gotoxy(30,10);write('Podaj nazwe: ');readln(z);
clrscr; gotoxy(35,10);write(z);
delay(1000);
for x:=1 to 30 do
begin
clrscr;gotoxy(30+x,10);write(z);delay(200);
end;


end.
Zapisane
admin
Administrator
Ekspert
*****
Wiadomości: 821


Email
« Odpowiedz #9 : Listopad 15, 2010, 08:26:53 »

Zadanie 6. Napisać program napis "Adam" przemieszcza od lewej do prawej. Po dojściu do prawego brzegu ekranu napis znika i pojawia się ponownie z lewej strony przemieszczając się do prawej. Działanie ta powtarzane jest 10 krotnie.

program rurka;
uses crt,dos;
var x,y:integer;
z: string;
begin
 clrscr;
z:='Adam';

for y:=1 to 10 do begin

for x:=1 to 60 do
begin
clrscr;gotoxy(x,10);write(z);gotoxy(60,1); write(y); delay(100);
end;
end;

end.
« Ostatnia zmiana: Listopad 15, 2010, 08:29:06 wysłane przez admin » Zapisane
admin
Administrator
Ekspert
*****
Wiadomości: 821


Email
« Odpowiedz #10 : Listopad 15, 2010, 09:21:40 »

Wykorzystanie funkcji randomize;
Funkcja randomize losuje liczby z podanego zakresu. Przykład wykorzystania tej funkcji podano poniżej


program rurka;
uses crt,dos;
var x,y,a:integer;
z: string;
begin
 randomize;
 clrscr;
 for a:=1 to 1000 do
 begin
 x:=random(75);
 y:=random(30);
 gotoxy(x+1,y+1);write('*');delay(10);

 end;
Zapisane
admin
Administrator
Ekspert
*****
Wiadomości: 821


Email
« Odpowiedz #11 : Listopad 15, 2010, 09:58:04 »

Zadanie 9. Napisać program który wyświetli kwadrat o rozmiarach 10x10 składający się z gwiadek w kolorze zielonym.
Zapisane
admin
Administrator
Ekspert
*****
Wiadomości: 821


Email
« Odpowiedz #12 : Listopad 15, 2010, 10:01:45 »

Zadanie 9. Napisać program który wyświetli kwadrat o rozmiarach 10x10 składający się z gwiadek w kolorze zielonym.

program rurka;
uses crt,dos;
var x,y,a,c:integer;
z: string;
begin
 randomize;
 clrscr;
 for x:=1 to 10 do
 begin
 for y:=1 to 10 do
 begin
 textcolor(green);
 gotoxy(x+30,y+5);write('*');
 end; end;
  readkey;
end.
Zapisane
admin
Administrator
Ekspert
*****
Wiadomości: 821


Email
« Odpowiedz #13 : Listopad 15, 2010, 10:34:42 »

Zadanie 10. Klasyczna choinka, korzystająca z pętli for.....

program rurka;
uses crt,dos;
var x,y,a,c:integer;
z: string;
begin
 randomize;
 clrscr;
 for x:=1 to 10 do
 begin
 for y:=1 to x do
 begin
 textcolor(green);
 gotoxy(x+30,y+5);write('*');
 end; end;
 for y:=1 to 10 do
 begin
 for x:=1 to 10- y do
 begin
 textcolor(green);
 gotoxy(x+40,y+5);write('*');
 end; end;
  readkey;
end.
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

forumszkoly justplay elitserienspeedway basicrpg noname