admin
|
|
« : Grudzień 19, 2011, 08:46:31 » |
|
Procedura Procedura jest pewnym zamkniętym fragmentem kodu, który ma swoją nazwę i może mieć swoje własne zmienne. Procedura może być porównana do krótkiego podprogramu którego kod został umieszczony w programie głównym.
Procedury deklaruje się jeszcze tuż przed głównym programem , czyli przed słowem begin za deklaracją zmiennych. Procedura jest deklarowana w następujący sposób:
Procedure Adam; Begin { Treść procedury } End;
Od tej chwili w programie istnieje procedura o nazwie Adam.
|
|
« Ostatnia zmiana: Grudzień 19, 2011, 08:48:16 wysłane przez admin »
|
Zapisane
|
|
|
|
admin
|
|
« Odpowiedz #1 : Grudzień 19, 2011, 08:49:43 » |
|
Zadanie 1 . Przykład deklarowania i wywołania procedury w programie.
program misio; uses crt,dos; procedure adam; begin end; var x,y: integer; begin write('Za chwile wywolam procedure Adam'); adam; readkey end.
|
|
|
Zapisane
|
|
|
|
admin
|
|
« Odpowiedz #2 : Grudzień 19, 2011, 08:51:21 » |
|
Zadanie 2. Wykorzystując 4 procedury rozmieścić w czterech rogach ekranu napis "Witaj szkoło". Dzięki czterem procedurom w programie głównym, wywoływane są tylko procedury .
program ryr; uses crt,dos; var x,y,z:integer; procedure misio; begin gotoxy(1,1); textcolor(green);write(' Witaj w szkole'); end; procedure rysio; begin textcolor(yellow);gotoxy(65,1); write('Witaj szkolo'); end; procedure zdzisio; begin textcolor(lightgreen);gotoxy(65,21); write('Witaj szkolo'); end; procedure pysio; begin textcolor(9);gotoxy(1,21); write('Witaj szkolo'); end;
begin textbackground(white); clrscr; misio; rysio;zdzisio;pysio;
readkey; end.
|
|
« Ostatnia zmiana: Grudzień 19, 2011, 08:55:56 wysłane przez admin »
|
Zapisane
|
|
|
|
admin
|
|
« Odpowiedz #3 : Grudzień 19, 2011, 08:59:01 » |
|
Generowanie dźwięku. W Pascalu istnieje polecenie umożliwiające przekazanie dźwięku do głośniczka systemowego. Polecenie sound(x); generuje dźwięk o częstotliwości x Hz. Np użycie w programie polecenia sound(1000); spowoduje wytworzenie dźwięku o częstotliwości 1000Hz. Przerwanie wytwarzania dźwięku umożliwia polecenie nosound; Jeżeli chcemy aby dźwięk trwał np. jedną sekundę wystarczy wstawić polecenie zatrzymania delay(1000); pomiędzy włączenie dźwieku (sound(x)) i jego wyłączenie (nosound;).
program alba; uses crt,dos; var a,b: char; begin repeat a:=readkey; sound(1000); delay(1000); nosound; until a='q'; end.
program alba; uses crt,dos; var a,b: char; begin clrscr; repeat a:=readkey; case a of 'a':begin sound(1000);delay(300);nosound;end; 's':begin sound(1100);delay(300);nosound;end; 'd':begin sound(1200);delay(300);nosound;end; 'f':begin sound(1300);delay(300);nosound;end; 'g':begin sound(1400);delay(300);nosound;end; 'h':begin sound(1500);delay(300);nosound;end; 'j':begin sound(1600);delay(300);nosound;end; 'k':begin sound(1700);delay(300);nosound;end else begin end; end;
until a='q'; end.
|
|
« Ostatnia zmiana: Grudzień 19, 2011, 09:33:50 wysłane przez admin »
|
Zapisane
|
|
|
|
admin
|
|
« Odpowiedz #4 : Grudzień 19, 2011, 10:29:04 » |
|
Choinka bez procedur (tzw. masakra)
program alba; uses crt,dos; var a,b: char; x,y:integer; begin textcolor(green);textbackground(white); clrscr;
for x:=0 to 5 do begin for y:=0 to x do begin gotoxy(20+y,x+5);write('*'); gotoxy(20-y,x+5);write('*'); end; end;
for x:=0 to 5 do begin for y:=0 to x+1 do begin gotoxy(20+y,x+10);write('*'); gotoxy(20-y,x+10);write('*'); end; end;
for x:=0 to 5 do begin for y:=0 to x+2 do begin gotoxy(20+y,x+15);write('*'); gotoxy(20-y,x+15);write('*'); end; end;
readkey;
end. ------------------------------------------------- A teraz z procedurą ------------------------- program alba; uses crt,dos; var a,b: char; x,y,z,c:integer; procedure choi; begin for x:=0 to z do begin for y:=0 to x do begin gotoxy(20+y,x+c);write('*'); gotoxy(20-y,x+c);write('*'); end; end; end;
begin textcolor(green);textbackground(white); clrscr; c:=5; z:=5;choi; z:=6;c:=10; choi; z:=7;c:=15; choi;
readkey;
end.
program alba; uses crt,dos; var a,b: char; x,y,z,c,d:integer; procedure choi; begin for x:=0 to z do begin for y:=0 to x do begin d:=random(10); gotoxy(20+y,x+c); if((y+x) mod 3=0) then begin textcolor(d);write('*');end else begin textcolor(green);write('*'); end; gotoxy(20-y,x+c); if((y+x) mod 3=0) then begin textcolor(d);write('*');end else begin textcolor(green);write('*'); end; end; end; end;
begin textcolor(green);textbackground(white); clrscr; randomize; repeat c:=5; z:=5;choi; z:=6;c:=10; choi; z:=7;c:=15; choi; until keypressed;
readkey;
end.
|
|
« Ostatnia zmiana: Grudzień 19, 2011, 11:17:10 wysłane przez admin »
|
Zapisane
|
|
|
|
admin
|
|
« Odpowiedz #5 : Styczeń 02, 2012, 10:26:17 » |
|
Zadanie napisać program który wyświetli życzenia noworoczne przemieszczające się po ekranie.
program Michal; uses crt,dos; var x,a,b,aa,bb:byte; procedure bobo; begin clrscr; x:=x+1;x:=(x mod 15); textcolor(yellow); gotoxy(a,b); write('Witaj w Nowym roku - 2012 '); delay(40); end;
procedure smigacz; begin repeat a:=a+aa;b:=b+bb; if((a<2) OR (a>60)) then aa:=-aa; if((b<2) OR (b>20)) then bb:=-bb; bobo; until keypressed; end;
begin aa:=1;bb:=1; a:=20;b:=10; x:=1; smigacz; end.
|
|
|
Zapisane
|
|
|
|
admin
|
|
« Odpowiedz #6 : Styczeń 09, 2012, 13:06:35 » |
|
Zadanie do wyjaśnienia, dlaczego usunięcie nawiasów klamrowych zmienia działanie programu
program misi_pysio; uses crt,dos; var i:byte; procedure wzorek; {var i:integer; } begin for i:=1 to 20 do write(i:3); writeln; end;
begin clrscr; for i:=1to 20 do wzorek; readkey; end.
|
|
« Ostatnia zmiana: Styczeń 09, 2012, 13:09:54 wysłane przez admin »
|
Zapisane
|
|
|
|
|