admin
|
|
« : Styczeñ 17, 2011, 07:44:55 » |
|
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 i przed 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: Styczeñ 17, 2011, 07:52:30 wys³ane przez admin »
|
Zapisane
|
|
|
|
admin
|
|
« Odpowiedz #1 : Styczeñ 17, 2011, 07:57:26 » |
|
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 : Styczeñ 24, 2011, 12:04:19 » |
|
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: Luty 07, 2011, 11:09:46 wys³ane przez admin »
|
Zapisane
|
|
|
|
admin
|
|
« Odpowiedz #3 : Styczeñ 24, 2011, 12:17:52 » |
|
Zadanie 3. Poprzednie zadanie z dodatkow± procedur± wy¶wietlaj±c± kody kolorów czcionki.
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; procedure sprawdz; begin for x:=0 to 16 do begin gotoxy(20,x+1); textcolor(x);write('Kolor= ',x); end;
end;
begin textbackground(white); clrscr;
misio; rysio;zdzisio;pysio;sprawdz;
readkey; end.
|
|
« Ostatnia zmiana: Styczeñ 24, 2011, 12:19:32 wys³ane przez admin »
|
Zapisane
|
|
|
|
admin
|
|
« Odpowiedz #4 : Styczeñ 24, 2011, 12:39:23 » |
|
Zadanie 4. Wy¶wietlenie szachownicy w kolorze bia³o-czerwonym. Wykorzystano jedn± procedurê.
program ryr; uses crt,dos; var x,y,z:integer;
procedure szansa_sandry; begin z:=1; for y:=1 to 22 do begin for x:=1 to 65 do begin if z=1 then textcolor(red) else textcolor(white); gotoxy(x,y);write(chr(178));z:=(z+1)mod 2;end;end; end;
begin clrscr; textbackground(white); clrscr; szansa_sandry; readkey; end.
|
|
|
Zapisane
|
|
|
|
admin
|
|
« Odpowiedz #5 : Styczeñ 24, 2011, 13:09:51 » |
|
Zadanie 5. Tzw. Konik Patryka v. light
program ryr; uses crt,dos; var x,y,z,a,b:integer;
procedure szansa_sandry; begin z:=1; for y:=1 to 22 do begin for x:=1 to 65 do begin if z=1 then textcolor(red) else textcolor(white); gotoxy(x,y);write(chr(178));z:=(z+1)mod 2;end;end; end; procedure konik_patryka; var a,b:integer; begin randomize; a:=1+random(65);b:=1+random(21);gotoxy(a,b);textcolor(green); write(chr(178));delay(800);end;
begin clrscr; textbackground(white); clrscr; repeat szansa_sandry; konik_patryka; until keypressed; readkey; end.
|
|
|
Zapisane
|
|
|
|
admin
|
|
« Odpowiedz #6 : Styczeñ 31, 2011, 11:43:48 » |
|
Program wy¶wietlaj±cy tabliczkê mno¿enia jako dwie procedury wpisz , wysw. program a; uses crt,dos; var x,y:byte; a1:array[1..10,1..10] of byte; procedure wpisz; begin clrscr; for x:=1 to 10 do begin for y:=1 to 10 do begin a1[x,y]:=x*y; end;end; end; procedure wysw; begin for x:=1 to 10 do begin writeln; writeln; for y:=1 to 10 do begin write(a1[y,x]:4); end;end; readkey;end;
begin wpisz; wysw;
end.
|
|
|
Zapisane
|
|
|
|
admin
|
|
« Odpowiedz #7 : Styczeñ 31, 2011, 12:01:19 » |
|
Zadanie 6. Proszê napisaæ program w którym do tablicy 5x5 wpisane s± kolejne liczby od 1 do 25. Wpisywanie liczb wykonaæ w procedurze wppisz, wy¶wietlanie liczb w procedurze wypisz.
program a; uses crt,dos; var x,y,z:byte; a1:array[1..5,1..5] of byte; procedure wpisz; begin z:=0; clrscr; for x:=1 to 5 do begin for y:=1 to 5 do begin z:=z+1;a1[x,y]:=z; end;end; end; procedure wysw; begin for y:=1 to 5 do begin writeln; writeln; for x:=1 to 5 do begin write(a1[y,x]:4); end;end; readkey;end;
begin wpisz; wysw;
end.
|
|
« Ostatnia zmiana: Styczeñ 31, 2011, 12:27:36 wys³ane przez admin »
|
Zapisane
|
|
|
|
admin
|
|
« Odpowiedz #8 : Luty 07, 2011, 11:38:44 » |
|
Zadanie 7. W procedurze pilka umie¶æ kod przemieszczaj±cy literê O od prawej do lewej krawêdzi ekranu.
program proc_pilka; uses crt,dos; var x,y: byte;
procedure pilka; var x,a:byte; begin a:=1;x:=20; repeat x:=x+a; if (x>65) or (x<2) then a:=-a; gotoxy(x,10);write('O');delay(100);clrscr; until keypressed; end; begin pilka; end.
|
|
« Ostatnia zmiana: Luty 07, 2011, 11:44:27 wys³ane przez admin »
|
Zapisane
|
|
|
|
admin
|
|
« Odpowiedz #9 : Luty 07, 2011, 12:13:27 » |
|
Zmienna lokalna przes³ania w procedurze zmienne globalne!!!! Przyk³ad poni¿ej przedstawia zas³anianie zmiennej globalnej x zmienn± lokaln± x po wywo³aniu procedury pi³ka. Zmienna y jest zmienn± globaln± i nie ma odpowiednika w procedurze, dlatego nie jest niczym zas³aniana.
program proc_pilka; uses crt,dos; var x,y: byte;
procedure pilka; var x,a:byte; begin a:=1;x:=20; repeat x:=x+a; clrscr; if (x>65) or (x<2) then a:=-a; gotoxy(x,y);write('O'); gotoxy(60,1); write('x=',x);delay(100); until keypressed;
end; begin x:=255; y:=15; pilka; write(x); readkey;readkey; end.
|
|
|
Zapisane
|
|
|
|
admin
|
|
« Odpowiedz #10 : Luty 07, 2011, 12:23:22 » |
|
Wprowadzanie warto¶ci do procedury. Pozwala na wprowadzenie do procedury warto¶ci z innej czê¶ci programu. Przyk³adem niech bêdzie procedura o nazwie kwadrat, rysuj±ca kwadrat z liter X. Je¿eli procedura rysuje kwadrat , to zmienne wprowadzone z programu g³ównego bêd± wskazywa³y po³o¿enie tego kwadratu na ekranie. Procedury które posiadaj± zmienne wprowadzane z programu nosz± nazwê procedur parametrycznych.
program magiel; uses crt,dos; var x,y:byte; procedure kwadrat (a,b:byte); var x,y:byte; begin for x:=1 to 5 do begin for y:=1 to 5 do begin gotoxy(a+x,b+y);write('*');end;end; end; procedure ruch; var x,y:byte; begin randomize; repeat x:=1+random(60); y:=1+random(15);kwadrat(x,y);delay(200);clrscr; until keypressed;
end;
begin clrscr; ruch;
end.
|
|
« Ostatnia zmiana: Luty 07, 2011, 12:40:32 wys³ane przez admin »
|
Zapisane
|
|
|
|
admin
|
|
« Odpowiedz #11 : Luty 07, 2011, 13:11:37 » |
|
Rêczne sterowanie obiektem z klawiatury
program magiel; uses crt,dos; var x,y:byte; procedure kwadrat (a,b:byte); var x,y:byte; begin for x:=1 to 5 do begin for y:=1 to 5 do begin gotoxy(a+x,b+y);write('*');end;end; gotoxy(65,1);write('x= ',a,' y= ',b); end; procedure ruch; var x,y:byte; c:char; begin x:=10;y:=10; kwadrat(x,y); repeat c:=readkey; if c='a'then begin x:=x-1;clrscr; kwadrat(x,y); end else if c='s' then begin x:=x+1;clrscr; kwadrat(x,y); end else if c='z' then begin y:=y+1;clrscr; kwadrat(x,y); end else if c='w' then begin y:=y-1;clrscr; kwadrat(x,y);end;
until c='p';
end; begin clrscr; ruch; end.
|
|
« Ostatnia zmiana: Luty 07, 2011, 13:15:27 wys³ane przez admin »
|
Zapisane
|
|
|
|
admin
|
|
« Odpowiedz #12 : Luty 07, 2011, 13:25:43 » |
|
program magiel; uses crt,dos; var x,y:byte; procedure kwadracik; var x,y:byte; begin for x:=1 to 5 do begin textcolor(yellow); gotoxy(30,10+x);write('*****');end; end;
procedure kwadrat (a,b:byte); var x,y:byte; begin kwadracik;textcolor(red); for x:=1 to 5 do begin for y:=1 to 5 do begin gotoxy(a+x,b+y);write('*');end;end; gotoxy(65,1);write('x= ',a,' y= ',b); end; procedure ruch; var x,y:byte; c:char; begin x:=10;y:=10; textbackground(white);clrscr;kwadrat(x,y); repeat c:=readkey; if c='a'then begin x:=x-1;clrscr; kwadrat(x,y); end else if c='s' then begin x:=x+1;clrscr; kwadrat(x,y); end else if c='z' then begin y:=y+1;clrscr; kwadrat(x,y); end else if c='w' then begin y:=y-1;clrscr; kwadrat(x,y);end;
until c='p';
end;
begin clrscr; ruch;
end.
|
|
|
Zapisane
|
|
|
|
|