File: Stare vježbe/vjezbe08/49__glavni.c

  1. /*
  2.   49__glavni.c
  3.   Demonstira se rad sa vise datoteka sa izvornim kodom.
  4.   -----
  5.   Postfix kalkulator.
  6. */
  7.  
  8. #include <stdio.h>
  9. #include "49__kalkulator.h"
  10.  
  11. int main()
  12. {
  13. int tip;
  14. double op2, pom;
  15. char s[MAXOP];
  16.  
  17. printf ("************** postfix kalkulator **************\n");
  18.  
  19. /* getop: vrati tip operatora/operanda i spremi ga u s */
  20. while ((tip = getop(s)) != EOF)
  21. {
  22. switch (tip)
  23. {
  24. case BROJ:
  25. sscanf (s, "%lf", &pom);
  26. push (pom);
  27. break;
  28. case '+':
  29. push (pop() + pop());
  30. break;
  31. case '*':
  32. push (pop() * pop());
  33. break;
  34. case '-':
  35. op2 = pop();
  36. push (pop() - op2);
  37. break;
  38. case '/':
  39. op2 = pop();
  40. if (op2 != 0.0)
  41. push (pop() / op2);
  42. else
  43. printf ("greska: djeljenje s nulom\n");
  44. break;
  45. case '\n':
  46. /* pri prelasku u novi red samo ispisujemo broj na vrhu stoga */
  47. op2 = pop();
  48. printf ("Vrh stoga:\t%.8g\n", op2);
  49. push (op2);
  50. break;
  51. default:
  52. printf ("greska: nepoznata naredba %s\n", s);
  53. break;
  54. }
  55. }
  56.  
  57. return 0;
  58. }
  59.