Tytu³: Procedura- czyli program w programie Wiadomo¶æ wys³ana przez: 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. Tytu³: Odp: Procedura- czyli program w programie Wiadomo¶æ wys³ana przez: admin 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. Tytu³: Odp: Procedura- czyli program w programie Wiadomo¶æ wys³ana przez: admin 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. Tytu³: Odp: Procedura- czyli program w programie Wiadomo¶æ wys³ana przez: admin 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. Tytu³: Odp: Procedura- czyli program w programie Wiadomo¶æ wys³ana przez: admin 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. Tytu³: Odp: Procedura- czyli program w programie Wiadomo¶æ wys³ana przez: admin 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. Tytu³: Odp: Procedura- czyli program w programie Wiadomo¶æ wys³ana przez: admin 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. Tytu³: Odp: Procedura- czyli program w programie Wiadomo¶æ wys³ana przez: admin 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. Tytu³: Odp: Procedura- czyli program w programie Wiadomo¶æ wys³ana przez: admin 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. Tytu³: Odp: Procedura- czyli program w programie Wiadomo¶æ wys³ana przez: admin 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. Tytu³: Odp: Procedura- czyli program w programie Wiadomo¶æ wys³ana przez: admin 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. Tytu³: Odp: Procedura- czyli program w programie Wiadomo¶æ wys³ana przez: admin 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. Tytu³: Odp: Procedura- czyli program w programie Wiadomo¶æ wys³ana przez: admin 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. |