[ nenadmile @ 29.05.2007. 18:40 ] @
Treba mi program za resavanje kvadratne jednacine.hvala unapred!
[ hajduk7 @ 29.05.2007. 19:47 ] @
Kako za kvadratne jednacije jel si na ovo mislio
Code:
#include <stdio.h>
#include <stdlib.h>
main() 
{
    int a,b;
    printf("Unesi broj\n");
    scanf("%d",&a);
    b=a*a;
    printf("Kvadrat unetog broja je %d",b);
    system("pause");
}
[ Mister_rap @ 29.05.2007. 21:39 ] @
Ne 100% nije na to mislio :)
[ Dahaka @ 30.05.2007. 08:49 ] @
Te jednacine moj brat uci sad u drugi razred gimnazije samo nije u c jeziku.
Daj nam primjer neke jednacine pa ce ti ljudi odmah to rijesiti.
[ Danijel Bulic @ 30.05.2007. 13:26 ] @
mislim da je mislio na kvadratnu jednadzbu :

ax^2+bx+c=0
[ nenadmile @ 30.05.2007. 13:49 ] @
Da tako nesto.ax^2+bx+c=0.hvala svima!!!
[ Mister_rap @ 30.05.2007. 14:32 ] @
Pa ako ti treba source pomuci se malo pa cemo ti pomoci :)

Evo ti exe fajl koji bi trebao da radi kako treba. Naravno pokreces ga iz cmd-a.
[ dux_cro @ 30.05.2007. 16:28 ] @
Makar nije po pravilima foruma (trebao bi sam početi pa će ti ljudi pomoći - uvijek do sad su pomogli) evo kod-a.
Probaj ga shvatiti, ukoliko nešto nije jasno, pitaj, objasniti ćemo ti

Code:

#include <stdio.h>
#include <math.h>

int main() {
  float a,b,c;      
  float x1, x2;      
  float d;

  printf("Upisite koeficijente kvadratne jednadzbe (ax^2 + bx + c = 0):");
  printf("\na: ");
  scanf("%f",&a);
  printf("\nb: ")
  scanf("%f",&b);
  printf("\nc: ");
  scanf("%f",&c);

  d = b*b - 4*c;
  if (d<0) {
    printf("Kvadratna jednadzba nema realna rjesenja!\n");
  }
  else if (a == 0) {
    x1 = -b/c;
    printf("Kvadratna jednadzba ima samo jedno rjesenje: %6.2f\n", x1);

  else if (d == 0) {
    x1 = -b/(2*a);
    printf("Kvadratna jednadzba ima samo jedno rjesenje: %6.2f\n", x1);
  }
  else {
    x1 = sqrt(d) - b)/(2*a);
    x2 = -(sqrt(d) + b)/(2*a);
    printf("Rjesenja kvadratne jednadzbe su: %6.2f, %6.2f\n", x1, x2);
  }
   return 0;
}



Ovo je jednostavnije rješenje tj. ne radi ukoliko su rješenja kompleksna.

Pozdrav
I.
[ Danijel Bulic @ 30.05.2007. 16:49 ] @
Code:
printf("Kvadratna jednadzba ima samo jedno rjesenje: %6.2f\n", x1);


Mozes li meni pojasniti ovaj dio malo. Zasto si stavio %6.2f ?
[ Danijel Bulic @ 30.05.2007. 17:10 ] @
Jos jedno pitanje...

Programirao sam program koji je spomenut iznad, ali kad ga kompajliram i pokrenem te upisem vrijednost koeficijenta a javlja mi gresku :

Citat:
kvadratna jednadzba.exe has encountered a problem and needs to close. We are sorry for the inconvenience


Znate, ona sa opcijama send error report i dont send.

Zna li neko kako rijesiti ovaj problem ?
[ Black3maj @ 30.05.2007. 19:23 ] @
Ovo si mogao sam da ispravis u kompajleru da ti sve greske
1.printf("\nb: ") nemas ; na kraju
2. x1 = sqrt(d) - b)/(2*a); jos jedna zagrada na pocetku
3. else if (a == 0) {
x1 = -b/c;
printf("Kvadratna jednadzba ima samo jedno rjesenje: %6.2f\n", x1);

ovaj else nema } na kraju
+imas gresaka u algoritmu samom npr stavi za vrednosti a,b,c 0,1,2 respektivno i videces u cemu je greska
[ Danijel Bulic @ 30.05.2007. 19:31 ] @
Nije ono moje :)

Ja sam sve ispravio i pokrene mi program al kad mi ga pokrene i kad ukucam npr. a = 2 pojavi mi se greska koju sam spomenuo u proslom postu.
[ Black3maj @ 30.05.2007. 19:40 ] @
Sorry nisam video
a za tvoj problem postoji dosta mogucnosti al aj najverovatniju posto je ovo jednostavan zadatak
proveri da li u scanf-u imas adresni operator pored svakog elementa (&)
[ Danijel Bulic @ 30.05.2007. 19:45 ] @
Provjerio, imam.

Ali evo kod ako netko nesto uoci.

Code:

#include <stdio.h>
#include <math.h>

int main ()
{
float a, b, c;
float x1, x2;
float d;

printf ("Upisite koeficijente kvadratne jednadzbe : ax^2+bx+c=0 : ");
printf ("\na : ");
scanf ("%f, &a");
printf ("\nb : ");
scanf ("%f, &b");
printf ("\nc : ");
scanf ("%f, &c");

d = b*b - (4*a*c);
if (d<0)
{
printf ("Kvadratna jednadzba nema realna rjesenja!\n");
}
else if (a == 0)
{x1 = -b/c;
printf ("Kvadratna jednadzba ima samo jedno rjesenje: %6.2f\n", x1);
}
else if (d == 0)
{
x1 = -b/(2*a);
printf ("Kvadratna jednadzba ima samo jedno rjesenje: %6.2f\n", x1);
}
else
{
x1 = sqrt (d - b)/(2*a);
x2 = -(sqrt)(d + b)/(2*a);
printf ("Rjesenja kvadratne jednadzbe su: %6.2f, %6.2f\n", x1, x2);
}

return 0;

}
[ Black3maj @ 30.05.2007. 19:49 ] @
Znao sam da je scanf
scanf ("%f, &a"); kako si ti napisao ne valja moras scanf ("%f", &a);
[ Danijel Bulic @ 30.05.2007. 20:36 ] @
Auuu da, ovo ne smije pod (").

Hvala
[ dux_cro @ 31.05.2007. 16:23 ] @
Ispricavam se na greskama, nisam provjeravao, al logika je dobra, a to je ono bitno da shvatiš.
što se tiče %6.2f - to je format ispisa, broj vodećih znamenki i znamenki iza točke. Prva znamenka (6) određuje ukupnu duljinu rezultata, a znamenka iza točke (2) oderđuje koliko će biti znamenki iza točke.
Više o tome možeš naći na : http://www.phim.unibe.ch/comp_...manual/C/FUNCTIONS/format.html (Precision).