GRY-Online.pl --> Archiwum Forum

Pascal - zgryz

12.12.2007
19:27
smile
[1]

Forageriss [ Pretorianin ]

Pascal - zgryz

Mam pytanie, że się tak wyrażę - niecierpiące zwłoki ;p Otóż mam napisać program w pascalu, który będzie rozwiązywał równania kwadratowe - tzn. po wpisaniu wartości a, b, c podstawia do wzoru na deltę i oblicza x1 i x2. Do tej pory sobie poradziłem - cudo działa ;p Jest jednak mały problem. Nie wiem jak zrobić żeby po wpisaniu a=0 wyświetlił komunikat "to nie jest funkcja kwadratowa" i wyłączył się/rozpoczął od nowa. Proszę o podanie mi fragmentu kodu, który powinienem wpisać po readln(a) if a=0 then writeln('To nie jest funkcja kwadratowa'). Nie mogę nic znaleźć w internecie, a na eksperymenty po prostu nie mam czasu.

12.12.2007
19:30
[2]

Narmo [ nikt ]

readln(a) if a=0 then writeln('To nie jest funkcja kwadratowa') else
begin
kod który ma się wykonać jeżeli a nie jest zerem
end,

12.12.2007
19:42
[3]

Forageriss [ Pretorianin ]

nie o to chodzi. Chodzi mi o to żeby jeśli a=0 żeby program się zakończył lub zaczął od nowa (sam nie wiem co lepsze)

12.12.2007
20:02
[4]

Dexter666 [ salem alejkum ]

Chodzi mi o to żeby jeśli a=0 żeby program się zakończył lub zaczął od nowa (sam nie wiem co lepsze)

to jak nawet tego nie potrafisz zrobić to jak Ty chcesz zrobić cały algorytm rozwiązywania równania kwadratowego?

/mały edit na poprawe wyrazu:P

12.12.2007
20:05
[5]

Forageriss [ Pretorianin ]

dexter pozostalosc juz napisalem -.- nie wiem jak to rozwiazac poza tym pozostalosc jest banalnie prosta opiera się na if/else readln writeln i wykonywaniu działań. Natomiast tutaj nie znam funkcji restartującą program, kończącą go. U mnie po wyświetleniu komunikatu program pracuje dalej .

12.12.2007
20:05
[6]

Narmo [ nikt ]

Jeżeli tam gdzie podałem kod który ma się wykonać jeżeli a nie jest zerem wstawisz sprawdzanie innych wartości to w chwili podstawienia zera jako a nie wykona się to i program sie zakończy. Możesz też zamknąć cały program w pętlę repeat ... until

na przykład:
var w:byte;
w:=0;
repeat
program
until w=1;
W tej sposób program będzie się wykonywał od początku do końca dopóki gdzieś tam nie podstawisz pod w jedynki.

var s:byte;
w:=0;
repeat
readln(a) if a=0 then writeln('To nie jest funkcja kwadratowa') else
begin
kod który ma się wykonać jeżeli a nie jest zerem
tutaj sprawdzaj dalej resztę liczb, czy spełniają warunki.
w:=1; //jeżeli wszystkie warunki są spełnione. Ustaw to na samym końcu programu kiedy będziesz znał już wynik.
end,
until w=1;

12.12.2007
20:14
[7]

Dayhemous [ Caesar ]

Ostatni program w Pascalu napisalem z 10 lat temu i wiele juz nie pamietam, wiec nie napisze ci dokladnie, ale to moze cie nakieruje we własciwa strone:

begin

kod poczatkowy, jesli trzeba
wpisz wszystkie elementy twojego programu ktore maja sie wykonac PRZED glownym warunkiem

if a>0 or a<0 then warunek glowny

kod dalszy wpisz wszystko co sie ma wykonac jesli warunek jest prawdziwy

else

writeln('To nie jest funkcja kwadratowa, naciśnij dowolny klawisz by zakonczyc program');

readln; nie jestem pewien czy ta linia jest konieczna, jak by co to wywal

repeat untill keypressed; to spowoduje wyświetlanie ostatniego tekstu, i oczekiwanie na nacisniecie czegokolwiek

end.

12.12.2007
20:22
smile
[8]

eLJot [ a.k.a. księgowa ]

Są jeszcze etykiety - coś czego powinieneś unikać podczas programowania, ale w Twoim przykładzie ujdzie :)


12.12.2007
20:24
[9]

Forageriss [ Pretorianin ]

Narmo, Dayhemous dzięki wielkie o to mi chodziło. Sprawdzę obie wersje i wkleję do programu. Jesteście wielcy :D :D

© 2000-2024 GRY-OnLine S.A.