Darmowe Forum
Grudzieñ 22, 2024, 04:14:14 *
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: Procedury - wprowadzanie zmiennych  (Przeczytany 3351 razy)
admin
Administrator
Ekspert
*****
Wiadomo¶ci: 821


Email
« : Styczeñ 30, 2012, 09:22:33 »

Operacje na zmiennych lokalnych i globalnych
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; {zmienne lokalne}
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 #1 : Styczeñ 30, 2012, 09:29:14 »

Wprowadzanie warto¶ci do procedury.
Pozwala na wprowadzenie do procedury warto¶ci zmiennej z innej czê¶ci programu.

Przyk³adem niech bêdzie procedura o nazwie kwadrat, rysuj±ca kwadrat z '*'.
Przy nazwie procedury deklarowane s± zmienne które bêd± wprowadzane do procedury z programu g³ównego. 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);{deklaracja zmiennych wprowadzanych do procedury}
 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.
Zapisane
admin
Administrator
Ekspert
*****
Wiadomo¶ci: 821


Email
« Odpowiedz #2 : Styczeñ 30, 2012, 09:43:38 »

Przekazywanie parametrów przez nazwê lub warto¶æ.
Parametr nie poprzedzony s³owem var jest przekazywany przez warto¶æ. Oznacza to,¿e procedura otrzymuje kopie warto¶ci parametru aktualnego, sporz±dzon± w chwili wywo³ania.

W przypadku poprzedzenia parametru formalnego s³owem var w chwili wywo³ania procedur otrzymuje nie jego kopie, a jego wska¼nik do orygina³u odpowiedniej zmiennej.

Przekazywanie parametrów przez nazwê umo¿liwia komunikacje dwustronn±, jednak je¿eli dany argument pe³ni wy³±cznie role danej wej¶ciowej , wystarczy przekazaæ przez warto¶æ.


Program a;
uses crt;
Var znak:char;
i:integer;
procedure czytaj(var c:char);
begin
write(‘wpisz pojedyñczy znak z klawiatury:  ‘);
readln (c);
i:=ord(c);
end;
Begin
repeat
czytaj(znak);
writeln(‘wprowadzono znak  ‘,znak);writeln(‘o kodzie  ‘,i)
until znak=(‘0’);
end.
Zapisane
admin
Administrator
Ekspert
*****
Wiadomo¶ci: 821


Email
« Odpowiedz #3 : Luty 20, 2012, 09:24:19 »

Program wy¶wietlaj±cy kwadracik z liter "A"

program fistaszek;
uses crt,dos;

procedure kw;
var x,y:byte;
begin clrscr;
for x:=1 to 5 do
begin
for y:=1 to 5 do
begin gotoxy(1+x,10+y);write('A');end;
end;readkey;
end;


begin
kw;
end.
Zapisane
admin
Administrator
Ekspert
*****
Wiadomo¶ci: 821


Email
« Odpowiedz #4 : Luty 20, 2012, 10:36:40 »

Program obliczaj±cy zawarto¶æ alkoholu we krwi.

program ile_krwi; {specjalnie dla Patrycji}
uses crt,dos;
var masa, ilosc_nap, procentowy_udz: real;
procedure face;
begin clrscr;
gotoxy(10,10);write('Podaj ile wypiles[l]: ');readln(ilosc_nap);
gotoxy(10,12);write('Podaj ile procent alkoholu bylo w napoju:' );readln(procentowy_udz);
gotoxy(10,14); write('Podaj swoj mase ciala: ');readln (masa);
end;
procedure licz;
var a, b, c :real;
begin
a:=ilosc_nap*procentowy_udz/100;
b:=0.08*masa;
c:=a/(b+a)*100;
gotoxy(10,16);write('zawartosc alkoholu we krwi= ',c:0:2,' promili alkoholu ');
readkey;

end;

begin
face;
licz;
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

zlotasiodemka shaggydogss articz spw blackmoon