Darmowe Forum
Maj 04, 2024, 08:41:15 *
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 8853 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