Civril Posted October 8, 2011 Report Share Posted October 8, 2011 Napisałem takie coś: program funkcaj_kwadratowa; uses crt; var a,b,c,w1,w2,w0,delta:real; begin clrscr; writeln('podaj zmienne a,b,c do budowy funkcji kwadratowej'); read(a,b,c); delta:=b*b-4*a*c; writeln(delta); if delta<0 then writeln('delta jest ujemna') else if (delta>0) then w1:=-b-sqrt(delta)/2*a; w2:=-b+sqrt(delta)/2*a; writeln (w1,w2); if (delta=0) then w0:=-b/2*a; writeln(w0); readln; end. ale nie działa, co jest źle? Link to comment Share on other sites More sharing options...
[Ekspert] Hakken Posted October 8, 2011 Report Share Posted October 8, 2011 Nie znam pascala, ale: Napisz po wczytaniu a,b,c wypisanie tych danych - zobacz, czy dobrze wczytujesz dane Potem sprawdz, da jakiegos prostego przydkladu, czy dobrze jest liczona delta i pierwiastki - dojdziesz do tego w ktorym miejscu masz blad. Link to comment Share on other sites More sharing options...
haz111 Posted October 9, 2011 Report Share Posted October 9, 2011 Wydaje mi się, że brakuje połączenia ze sobą komend następujących po then i else. No i brak jednego else. if delta<0 then writeln('delta jest ujemna') else begin if (delta>0) then begin w1:=-b-sqrt(delta)/2*a; w2:=-b+sqrt(delta)/2*a; writeln (w1,w2); end; else if (delta=0) then begin w0:=-b/2*a; writeln(w0); end; [b]end;[/b] W tym co ty napisałeś program robił tylko jedną linijkę po then/else. W tym co ja napisałem "widzi", że ma kilka linijek do zrobienia. Pisałem to z pamięci, nie sprawdziłem, więc dalej może być w tym jakiś błąd. Link to comment Share on other sites More sharing options...