Nie mogę skompilować

0
uses crt;

var
a,b,c,d:longint;

procedure dzwiek(x:longint);
begin
writeln('Wpisz czestotliwosc dzwieku');
read(x);
sound(x);
delay(2000);
end;

function obliczanie:longint;
begin
a:=2;
b:=2;
obliczanie:=a+b;
end;

procedure dzialanie;
begin
Writeln('Ile to jest 2+2');
read(c);;
IF obliczanie=c then
begin
writeln('Brawo wynik jest prawidlowy');
readln;
delay(2000);
end;
end;

begin
clrscr;
writeln('Jakiej aplikacji chcesz uzyc?');
writeln('Wpisz 1 jezeli dzwiek');
writeln('Wpisz 2 jezeli dzialanie');
writeln('Wpisz inna liczbe jezeli chcesz wyjsc');
read(d);
IF d=1 then dzialanie;
IF d=2 then dzwiek(2200);
else halt;
end.

Mam problem z pascalem chcę zrobić program, który korzysta z 2 procedur, ale mam "Error in statement".

0

super, ale w której linijce wyskakuje Ci ten błąd?

Błąd 1. procedura "dzwiek". Najpierw przekazujesz w parametrze inta 2200, a potem w samej procedurze olewasz tą wartość i pytasz jeszcze raz o nią użytkownika.

Błąd 2. linia w której wczytujesz wynik od użytkownika, po read(c) masz dwa sredniki, nie wiem czy to nie generuje błędu.

Błąd 3. linia od końca, w linijce poprzedzajacej "else" nie moze być srednika!

Błąd 4. to "else" z błędu 3. zadziała tylko i wyłącznie do IF d=2. Czyli jeśli d=1, to i tak Ci wyleci. Najlepiej to "else halt;" w ogóle wywalic.

Błąd. WCIĘCIA! Rób wcięcia!

0

A jak jeszcze zrobić, by po zakończeniu procedury znowu zaczęło pytać jaką procedurę wybrać, bo kotwice coś nie działają.

0

bo kotwice coś nie działają.

Kotwice? Albo pierniczysz głupoty albo nie znam tego elementu (co raczej jest mało prawdopodobne).

Użyj pętli repeat .. until ; . Proste jak drut. Skoro napisałeś ten kod to na pewno będziesz umiał również napisać pętelkę.

0

chodzi o kotwice

labele, goto

ogarniasz?

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