Darmowe Forum
Grudzieñ 22, 2024, 11:43:32 *
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: Procedura- czyli program w programie  (Przeczytany 9795 razy)
admin
Administrator
Ekspert
*****
Wiadomo¶ci: 821


Email
« : 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
Administrator
Ekspert
*****
Wiadomo¶ci: 821


Email
« 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
Administrator
Ekspert
*****
Wiadomo¶ci: 821


Email
« 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
Administrator
Ekspert
*****
Wiadomo¶ci: 821


Email
« 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
Administrator
Ekspert
*****
Wiadomo¶ci: 821


Email
« 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
Administrator
Ekspert
*****
Wiadomo¶ci: 821


Email
« 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
Administrator
Ekspert
*****
Wiadomo¶ci: 821


Email
« 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
Administrator
Ekspert
*****
Wiadomo¶ci: 821


Email
« 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
Administrator
Ekspert
*****
Wiadomo¶ci: 821


Email
« 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
Administrator
Ekspert
*****
Wiadomo¶ci: 821


Email
« 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
Administrator
Ekspert
*****
Wiadomo¶ci: 821


Email
« 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
Administrator
Ekspert
*****
Wiadomo¶ci: 821


Email
« 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
Administrator
Ekspert
*****
Wiadomo¶ci: 821


Email
« 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
Strony: [1]
  Drukuj  
 
Skocz do:  

Powered by SMF 1.1.11 | SMF © 2006-2008, Simple Machines LLC | Sitemap

Polityka cookies
Darmowe Fora | Darmowe Forum

proskills shaggydogss moikrewni blackmoon articz