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

Odpowiedz Nowy wątek
2011-07-17 21:14
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; 
To się nie skompiluje ;) - O_o 2011-07-17 21:32

Pozostało 580 znaków

2011-07-17 21:19
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 ;/


Są też stronki typu http://codepad.org/ Kompilacja online. - O_o 2011-07-17 21:32

Pozostało 580 znaków

2011-07-17 22:24
0

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

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

edytowany 1x, ostatnio: olesio, 2011-07-18 01:06
Trzeba najpierw ogarnąć podstawy języka, a nie "na pałę" wklejać kod. Poniżej andrzejlisek pokzał Tobie jak powinien wyglądać kod. - olesio 2011-07-18 01:08
Mógł się wysilić i nie wklejać na pałę błędów z oryginału: "function q(var a:integer)integer;" oraz "writeln(p(x+1):6,q(1):6);" - pelsta 2011-07-18 10:19

Pozostało 580 znaków

2011-07-17 23:58
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

Pozostało 580 znaków

2011-07-18 00:21
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.
Przeczytaj sobie co napisałem powyżej. - pelsta 2011-07-18 09:33

Pozostało 580 znaków

2011-07-18 09:53
Opi
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.

Zdaje się na tym polegało zadanie aby dojść do takiego wniosku. - pelsta 2011-07-18 10:24

Pozostało 580 znaków

2011-07-18 13:58
0

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

Ale zaznaczyć któryś post jako taki który rozwiązuje problem nie można. - payl 2011-07-18 21:27

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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