Problem ze składnią

Problem ze składnią
CP
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5
0

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

  1. 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"
  1. 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
  1. 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

Kopiuj
printf("\n tak=t, nie=n, dalej liczyc ? ");
     znak = getche();

a na prawie samym koncu dopisze while (znak == 'n');

Kopiuj
printf("\nkoniec");
getche();

natomiast problem polega na tym ze wywala mi błąd o tresci "expected 'while' at end of input|"

Kopiuj
#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;
}
fasadin
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 4883
1

Formatuj kod a sam zobaczysz którego znaku Ci brakuje

CP
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5
0

co dokladnie oznacza "expected 'while' at end of input|" ?

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
2

Oznacza że konstrukcja do {} while wygląda właśnie tak a nie inaczej, a u ciebie brakuje klamry } przed while bo piszesz kod lodówką i nie umiesz go sformatować więc pomyliłeś klamrę zamykajacą else z klamrą zamykającą do while

CP
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 5
0

Niby jak brakuje klamry } przed while skoro w wklejonym przeze mnie kodzie , wiersz 53 klamra } występuje przed while , jeśli patrzymy od lewej strony
jak formatowac tekst w codeblocks ? na razie to mam kilkanascie godzin programowania za sobą

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
2

@Cinek_Polska: xD No dobra ale zobacz z czym ta klamra jest sparowana. Czy aby nie czasem z klamrą w else? ( ͡° ͜ʖ ͡°) Obrazek poglądowy:

Kopiuj
if (cośtam)
{ // 1

} // koniec 1

I podobnie:

Kopiuj
if (cośtam)
{ // 1
  if (cośtam)
  { // 2

  } // koniec 2
} // koniec 1

Weź sobie tak ponumeruj klamry skoro nie umiesz sformatować kodu. Code blocks ma guzik do sformatowania kodu w pliku.

W2
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 47
1

jak formatowac tekst w codeblocks ?

W oknie edytor Code::Blocks kliknij prawym klawiszem myszy i z menu kontekstowego
wybierz opcję "Format use AStyle"

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.