Nie mogę skompilować

2011-09-08 10:33
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".

edytowany 1x, ostatnio: madmike, 2011-09-08 19:50

Pozostało 580 znaków

2011-09-08 10:44
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!

edytowany 4x, ostatnio: misiakufal, 2011-09-08 11:15
...i czytaj ZE ZROZUMIENIEM błędy zgłaszane przez kompilator. masz tam podany numer linijki, zwykle wystarczy się jej uważnie przyjrzeć. - ŁF 2011-09-08 12:24

Pozostało 580 znaków

2011-09-09 10:00
dagi12
0

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

Pozostało 580 znaków

2011-09-09 10:29
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ę.


Nie pisz do mnie PM o czymś co nie dotyczy bezpośrednio mnie. | Nie rozmawiaj ze mną jeśli brak Ci kultury (wystarczy że mi brakuje) | Nie jestem zły, jestem po prostu zły.
no - nie znasz tego elementu - ŁF 2011-09-15 22:03
No - brawo za twój zapłon i niestety, na twoje nieszczęście nie masz racji. Miłego dnia (już wiesz co to znaczy) - payl 2011-09-15 22:29
jak nie mam racji, jak sam to napisałeś - "Kotwice? Albo pierniczysz głupoty albo nie znam tego elementu (co raczej jest mało prawdopodobne)". gdzie tu moje nieszczęście? - ŁF 2011-09-15 22:46
zapomniałeś o czymś: Miłego dnia. - payl 2011-09-15 23:02
faktycznie jesteś bezczelny. rzucasz tekstem sprzecznym z tym, co napisałeś raptem kilka linijek wyżej, a kiedy ci to wytykam, to zamiast przyznać się do błędu zachowujesz się - powiedzmy to sobie wprost - chamsko. - ŁF 2011-09-16 00:50
U mad? Miłego dnia. - payl 2011-09-16 14:58

Pozostało 580 znaków

2011-09-09 10:45
dagi12
0

chodzi o kotwice

labele, goto

ogarniasz?

Lepiej zapomnij, że coś takiego w ogóle istnieje. Ogarniasz ? - [losowa nazwa] 2011-09-09 11:08
Ty to nazywasz KOTWICE? o_O . Pierwszy raz słyszę o takiej nazwie. I tak jak mówi [random name] lepiej o tym zapomnij, tego się już raczej nie używa. Masz zamiast tego repeat...until ; . - payl 2011-09-09 12:10
nie używaj goto, chyba, że musisz. dodam, że sam przez 15 lat programowania nie musiałem. Twój problem załatwisz tak, jak napisał payl - pętla while lub repeat - ŁF 2011-09-16 00:56

Pozostało 580 znaków

Liczba odpowiedzi na stronę

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