[ anon315 @ 16.10.2002. 12:40 ] @
Sadržaj kvjedn.c :

Code:

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

main()  {
  double a, b, c, d, x1, x2, y1, y2;
  typedef enum { REALNI, DVOSTRUKI, KOMPLEKSNI, LINEARNA, POGRESNA } Vrsta;
  Vrsta  vrsta;

  printf ("Koeficijenti kvadratne jednacine ? ");
  scanf ("%lf%lf%lf", &a, &b, &c);

  if (a)  {
    d = b * b - 4 * a * c;
    if (d > 0)  {
      vrsta = REALNI;
      x1 = (- b + sqrt  (d) ) / (2 * a);
      x2 = (- b - sqrt  (d) ) / (2 * a);
    } else if (d == 0)  {
      vrsta = DVOSTRUKI;
      x1 = - b / (2 * a);
    } else {
      vrsta = KOMPLEKSNI;
      x1 = - b / (2 * a);                x2 = x1;
      y1 = sqrt  (- d) / (2 * a);      y2 = - y1;
    }
  } else
    if (b)  {
      vrsta = LINEARNA;
      x1 = - c / b;
    } else
      vrsta = POGRESNA;

  switch (vrsta)  {
    case REALNI:
      printf ("Realni koreni su %.2f i %.2f\n", x1, x2);
      break;
    case DVOSTRUKI:
      printf ("Dvostruki realni koren je %.2f\n", x1);
      break;
    case KOMPLEKSNI:
      printf ("Kompleksni koreni su (%.2f,%.2f) i (%.2f,%.2f)\n",
              x1, y1, x2, y2);
      break;
    case LINEARNA:
      printf ("Resenje linearne jednacine je %.2f\n", x1);
      break;
    case POGRESNA:
      printf ("Podaci nemaju smisla !\n");
      break;
  }
}


Na unix-ima kompajlirajte ovako:

Code:

cc -lm kvjedn.c -o kvjedn


Iskopirajte kvjedn u neki bin folder u path-u i eto ga.
[ filmil @ 17.10.2002. 11:19 ] @

Odlično!

Mogu li da predložim par izmena? Bilo bi vrlo fino da se:

1. izbaci suvišna "glagoljivost" (broj rešenja je... itd) već da program uzima čiste brojeve i daje kao izlaz čiste brojeve, jer se tako mnogo lakše spreže sa drugim programima, recimo redirekcijom.

2. Vrati vrsta jednačine kao return code da bi pozivajući program mogao znati karakter rešenja. Vrlo korisna stvar.

Hev fan.

f