Skocz do zawartości
Zaloguj się, aby obserwować  
mucha99

Pomoc w zrozumieniu programu napisanego w delphi

Polecane posty

Proszę bardzo uważnie przeanalizować program i w wyznaczonym miejscu wpisać jakie wartości pojawią się na ekranie monitora. (chodzi o to żeby wpisać jakie wartości przyjmie x,y,z po każdej podanej funkcji lub procedurze)

 

Program egzamin;

var x,y,z :Word; koniec:Boolean;

procedure pisz(a,b,c:Word);

begin

writeln(a:4,b:4,c:4);

end;

 

function jeden(var a:Word; b:Word):Word;

var c:Word;

begin

a:=a+b; c:=a+1; b:=c+2;

jeden:=b-c;

end;

 

procedure dwa(var a,b:Word; c:Word);

begin

while c>a do

begin

a:=a-1; b:=a-b; c:=c-b;

end;

end;

 

procedure trzy(a: Word; var b,c:Word);

begin

repeat

koniec:=a>c;

a:=a+1; c:=c-1; b:=c+a;

until koniec;

end;

 

function cztery(var a,b:Word):Word;

begin

if a<b then b:=4 else b:=5;

case b of

1: a:=a+2;

4: a:=a+3;

5 a:=a+4;

end;

cztery:=a+b;

end;

 

Begin

x:=2; y:=3; z:=6 x:=jeden(y,z) pisz(z,x,y);

x:=10; y:=8; z:=15 dwa(x,y,z); pisz(z,y,x);

x:=2; y:=7; z:=3; trzy(x,y,z) pisz(z,y,x);

x=2; y:=3; z:=6; z:=jeden(x,y); pisz:(z,y,x);


 

Chciałabym nie tyle otrzymać wyniki, bo je mam , tylko dowiedzieć się skąd się wzięły, jak działają podane funkcje i procedury :)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Wstaw SFORMATOWANY kod na jakiegoś zewnętrznego pastebina, bo ten forumowy i tak rozwali formatowanie. Wtedy pewnie ktoś na to spojrzy.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Przecież tu masz zwykłe operacje dodawania / odejmowania. To krok po kroku sobie to jak przejrzysz to przeanalizujesz. Ew. najprościej byłoby debuggerem :) dostępnym w delphi. Sprawdź jak działa ;) zakładasz sobie "obserwowanie" powiedzmy tych 3 zmiennych. A potem linijka po linijce on ci pokaże, która linijka aktualnie się wykonuje i po kolei będzie aktualizował zmienne.

 

Swoją drogą jesteś pewny, że to działa?

 

function jeden(var a:Word; b:Word):Word;
var c:Word;
begin
a:=a+b; c:=a+1; b:=c+2;
jeden:=b-c;
end;

 

W ostatniej linijce przypisujesz do "jeden" jakieś odejmowanie. Przecież na mój gust on jako "jeden" wywali, że coś nie tak bo tak samo nazywa się funkcja.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Przecież tu masz zwykłe operacje dodawania / odejmowania. To krok po kroku sobie to jak przejrzysz to przeanalizujesz. Ew. najprościej byłoby debuggerem :) dostępnym w delphi. Sprawdź jak działa ;) zakładasz sobie "obserwowanie" powiedzmy tych 3 zmiennych. A potem linijka po linijce on ci pokaże, która linijka aktualnie się wykonuje i po kolei będzie aktualizował zmienne.

 

Swoją drogą jesteś pewny, że to działa?

 

function jeden(var a:Word; b:Word):Word;
var c:Word;
begin
a:=a+b; c:=a+1; b:=c+2;
jeden:=b-c;
end;

 

W ostatniej linijce przypisujesz do "jeden" jakieś odejmowanie. Przecież na mój gust on jako "jeden" wywali, że coś nie tak bo tak samo nazywa się funkcja.

mało znasz język.

jeden :=b-c jest równoznaczne zapisowi result:=b-c

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Właśnie tak się zastanawiałem czy zwracanie w delphi tak się dało. Mea culpa. Nie kodowałem z ~8lat. Zresztą delphi umarło ;)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się
Zaloguj się, aby obserwować  

×