[Turbo Pascal] Problem z if..then..else (Obliczanie pierwiastków równania kwadratowego)

0

Witam Was serdecznie :)

Z góry zaznaczę, że dopiero zaczynam z tym językiem programowania jak i z programowaniem w ogóle. Mam po prostu do oddania małą pracę na zaliczenie, która oblicza pierwiastki równania kwadratowego. Problem pojawił się przy ostatnim else, bowiem program prosi mnie o znacznik ';' przed nim. No i za bardzo nie wiem w czym jest problem, moim zdaniem powinien kompilować się prawidłowo.

Tak to wygląda:

Program prog;
uses crt;
var a,b,c: Integer;
    delta: Real;
    x1,x2: Real;

Begin
     clrscr;

     write('Podaj liczbe a:');
     readln(a);
     write('Podaj liczbe b:');
     readln(b);
     write('Podaj liczbe c:');
     readln(c);

     delta := (sqr(b)) - (4*a*c);
     writeln('Delta= ',b,'sqrt - (',4,'*',a,'*',c,') = ',delta:1:2);

     if delta < 0 then
     writeln('Brak pierwiastkow')

     else if delta > 0 then
     x1 := (-b - sqrt(delta)) / (2*a);
     writeln('Pierwiastek x1 wynosi: ',x1:1:1);
     x2 := (-b + sqrt(delta)) / (2*a);
     writeln('Pierwiastek x2 wynosi: ',x2:1:1)

     else
     x1 := (-b - sqrt(delta)) / (2*a);
     writeln('Pierwiastek x1= ',x1:1:2)

     readkey;
End. 

A tutaj obrazek z TP:
http://i54.tinypic.com/2mq697r.jpg</img>

Z góry dzięki za jakiekolwiek pomysły i sugestie jak to rozwiązać :)

Pozdrawiam!

EDIT: Szkurde, nie zauważyłem działu Newbie, przepraszam! Jeśli któryś mod byłby tak miły i przeniósł temat to byłbym dozgonnie wdzięczny!

0

masz blad w kodzie bo pomiedzy "then" a "else" dajesz kilka instrukcji. tak nie wolno.
jesli chcesz miec wiecej niz jedna instrukcje musisz je zamknac w blok "begin..end".

if warunek then
  begin
    instrukcja1; //jest srednik na koncu.
    instrukcja2;
    ...
    instrukcja milion;
  end //tu brak srednika na koncu bo dalej bedzie else.
else
  begin
    //begin..end jesli wiecej niz jedna instrukcja
  end;

wiecej przykladow:

if warunek then
  instrukcja //brak srednika na koncu
else
  begin
    //begin..end jesli wiecej niz jedna instrukcja
  end;

if warunek then
  begin
    instrukcja1;
    instrukcja2;
    ...
    instrukcja milion;
  end //tu brak srednika na koncu bo dalej bedzie else.
else
 instrukcja;

pamietaj zeby robic wciecia w kodzie (jak wyzej) uzywaj (tab)ulatora.
zwiekszy to znacznie czytelnosc kodu, czasem unikniesz bledow a i oceny Ci za to nikt nie obnizy. wielu nauczycieli za nieczytelny kod obniza ocene wiec uwazaj.

0

Poszło :) Już to kapuję w końcu!

Dzięki serdeczne za pomoc :)

Pozdrawiam!

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