Skocz do zawartości


Pomoc w zrozumieniu programu napisanego w delphi


4 odpowiedzi w tym temacie

#1 mucha99

    Nowy na forum

  • Użytkownicy
  • 1 Postów:

Napisano śro, 17 lut 2016 - 00:10

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);[code='delphi'][/code]

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

#2 olesio

    Ekspert

  • Super użytkownicy
  • 363 Postów:
  • Gadu-Gadu:478088

Napisano śro, 17 lut 2016 - 16:28

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

#3 5corpio

    Guru

  • Super użytkownicy
  • 874 Postów:

Napisano śro, 17 lut 2016 - 18:13

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?

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

#4 babubabu

    Starszy bywalec

  • Użytkownicy
  • 82 Postów:

Napisano sob, 20 lut 2016 - 07:01

Wyświetl postUżytkownik 5corpio dnia śro, 17 lut 2016 - 18:13 napisał

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?

delphi
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

#5 5corpio

    Guru

  • Super użytkownicy
  • 874 Postów:

Napisano sob, 20 lut 2016 - 20:14

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