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
|
|
|
|
|