Mam za zadanie wykonać program z procedurami- jedna z parametrami a jedna bez + funkcja. Mam TPX w angielskiej wersji. Chciałbym wiedzieć, jakie błędy w kodzie są:
Uses CRT;
VAR
a,b,c,d:longint;
PROCEDURE pizas(x,y:longint; s:string;);
FUNCTION oblicz:longint;
BEGIN
oblicz:=a+b*2=c;
END;
BEGIN
GotoXY(x,y);
WriteLn(s);
END;
BEGIN
PROCEDURE napis;
WriteLn('Czy mam wyświetlić napis? Napisz 1 dla tak lub 2 dla nie');
ReadLn(d);
IF d=1 THEN pizas;
BEGIN
pizas(10,10,'Napis zniknie za pięć sekund');
Delay(5000);
END.
ELSE napis;
WriteLn('A teraz podaj pierwszą liczbe: ');
ReadLn(a);
WriteLn('Podaj drugą liczbe: ');
ReadLn(b);
WriteLn('Wynik: ', FUNCTION oblicz);
END.
Uses CRT;
VAR
a,b,d:longint;
PROCEDURE pizas(x,y:longint; s:string);
BEGIN
GotoXY(x,y);
WriteLn(s);
END;
FUNCTION oblicz:longint;
BEGIN
oblicz:=a+b*2;
END;
PROCEDURE napis;
BEGIN
pizas(10,10,'Napis zniknie za piec sekund');
Delay(5000);
END;
BEGIN
WriteLn('Czy mam wyswietlic napis? Napisz 1 dla tak lub 2 dla nie');
ReadLn(d);
IF d=1 THEN napis;
WriteLn('A teraz podaj pierwsza liczbe: ');
ReadLn(a);
WriteLn('Podaj druga liczbe: ');
ReadLn(b);
WriteLn('Wynik: ', oblicz);
ReadLn;
END.
Naucz się pisać czytelny kod, bo większość głupot w Twoim kodzie wynika z tego, że wszystko upchane jest strasznie. Nie da się w takiej sytuacji dojść, czy BEGIN/END są gdzie trzeba. Dochodzą do tego błędy składniowe. :?
Jeszcze jedno: na forum NIE rozwiązujemy prac domowych ze szkoły.
Usunąłem jedną zmienną, jedną linię i zmieniłem szyk kodu. Zwróć uwagę, że Pentium wyraźnie napisał wymagania co do programu: ma mieć funkcję i dwie procedury (w tym jedną bezparametrową). Program nie ma wykonywać konkretnej czynności. Sugeruję uważniej czytać i ograniczyć zbędne, nic nie wnoszące do tematu komentarze.