Mam do napisania program ktory liczy pierwiastki funkcji kwadratowej ktory pyta o wspolczynniki funkcji kwadratowej a,b,c nastepnie po wpisaniu wspolczynnikow a,b,c rozpatruje kilka przypadkow
- czy wsp "a" jest rozny od zera ?
- jesli tak,jest rozny od zera to przechodzimy do delty ,
- jesli nie to wywala napis "podaj wsp a rozny od zera"
- delta wieksza od zera
-jesli tak to oblicza miejsca zerowe
- po obliczeniu ma zapytac czy kontynuowac czy konczy, jesli kontynuujemy to wracamy do kroku pierwszego
-jesli nie to przechodzi do kroku nr 3
- czy delta rowna zero
-jesli tak to oblicza miejsce zerowe
-po obliczeniu ma zapytac czy kontynuowac czy konczy, jesli kontynuujemy to wracamy do kroku pierwszego (jesli nie to koniec programu)
-jesli odp na pyt nr 3) brzmi nie tzn ze jest mniejsza od zera i ma wyswietlic napis "brak rozwiazan w zakresie liczb rzeczywistych"
napisalem program ktory poprawnie oblicza miejsca zerowe, ale tylko oblicza, bez pytan czy kontynuowac czy tez nie, wiec pomyslalem sobie ze skoro robi to wszystko poprawnie (wykorzystuje warunek if) to ten caly dzialajacy algorytm umieszcze w petli typu do-while oraz do kazdego tych przypadkow dopisze
printf("\n tak=t, nie=n, dalej liczyc ? ");
znak = getche();
a na prawie samym koncu dopisze while (znak == 'n');
printf("\nkoniec");
getche();
natomiast problem polega na tym ze wywala mi błąd o tresci "expected 'while' at end of input|"
#include <stdio.h>
#include <math.h>
main ()
{
float a,b,c,x1,x2,x,delta;
char znak = 'n';
clrscr();
printf("Podaj wspolczynnik a\n");
scanf("%3f",&a);
printf("Podaj wspolczynnik b\n");
scanf("%3f",&b);
printf("Podaj wspolczynnik c\n");
scanf("%3f",&c);
do
{
delta=b*b-4*a*c;
if(a==0)
{
printf("podaj wspolczynnik a wiekszy od zera\n");
printf("\n tak=t, nie=n, dalej liczyc ? ");
znak = getche();
}
else if( delta>0 )
{
printf("delta = %f\n",delta);
printf("rownanie posiada dwa rozwiazania\n");
x1=(((-1)*b-sqrt(delta))/(2*a));
printf("X1 = %2f\n",x1);
x2=(((-1)*b+sqrt(delta))/(2*a));
printf("X2 = %2f\n",x2);
printf("\n tak=t, nie=n, dalej liczyc ? ");
znak = getche();
}
else if(delta==0)
{
x1=((-1)*b)/(2*a);
printf("delta = %f\n",delta);
printf("rownanie posiada jedno rozwiazanie x1=%f",x1);
printf("\n tak=t, nie=n, dalej liczyc ? ");
znak = getche();
}
else
{
printf("delta = %f\n",delta);
printf("brak rozwiazania rownania kwadratowego w zakresie liczb rzeczwysitych");
printf("\n tak=t, nie=n, dalej liczyc ? ");
znak = getche();
}while (znak == 'n');
printf("\nkoniec");
getche();
return 0;
}