Poprawność programu (znalezienie błędów)

0

Witam, mam do sprawdzenia poprawność programu napisanego w języku pascal, lecz przyznam się, że w ogóle póki co nie potrafię w nim programować. Pozostałe zadania napisane w c++ zrobiłem samemu, lecz z tym mam problem. Czy byłby ktoś tak uprzejmy i zerknął okiem co jest nie tak w tym programie i jaki wynik uzyskujemy na końcu?

z:=4;
x:=z*(p(z)+q(z));
writeln(z:6,x:6);
writeln(p(x+1):6,q(1):6);
y:=(p(z+1)+q(z))*z;
writeln(z:6,x:6,y:6);

gdzie:
x,y,z są zmiennymi typu integer,

function p(a:integer):integer;
begin
    a:=a-2;
    p:=a+2;
end;

function q(var a:integer)integer;
begin
    a:=a-3;
    q:=a;
end; 
0

A czy to jakiś problem pobrać szybko FPC i w nim skompilować kod, a następnie wyświetlić wyniki dzięki czemu sprawdzisz co wyszło? No bez przesady - ja rozumiem, że są wakacje, ale żeby być aż tak leniwym ;/

0

W tym problem, że nie ogarniam tego programu. Wyskakuję mi taki komunikat:

http://imageshack.us/photo/my-images/23/asdvhu.jpg

0
  1. Poprawić: function q(var a:integer):integer;
  2. Nie można wywołać q(1)
  3. Wyniki bez wydruku q(1)
    1 5
    6
    -2 5 0
0

Spróbuj to skompilować, ja poprawiłem, ale nie sprawdzałem, czy jest dobrze:

uses Crt;

var
 x: Integer;
 y: Integer;
 z: Integer;
 
function p(a:integer):integer;
begin
    a:=a-2;
    p:=a+2;
end;
 
function q(var a:integer)integer;
begin
    a:=a-3;
    q:=a;
end; 

Begin
 z:=4;
 x:=z*(p(z)+q(z));
 writeln(z:6,x:6);
 writeln(p(x+1):6,q(1):6);
 y:=(p(z+1)+q(z))*z;
 writeln(z:6,x:6,y:6);
End.
0
function p(a:integer):integer;
begin
    a:=a-2;
    p:=a+2;
end;

A ta funkcja to dla jaj ? Bo dane wyjściowe są identyczne na wyjściu.

0

Już wszystko załatwione, dzięki za pomoc.

1 użytkowników online, w tym zalogowanych: 0, gości: 1