fork download
  1. #include <iostream>
  2. #include <stdlib.h>
  3. #include <math.h>
  4. #include <istream>
  5.  
  6. #define MAX 10
  7.  
  8. using namespace std;
  9.  
  10. //deklaracja wszystkich zmiennych
  11. char napis[MAX];
  12. char tab1[MAX];
  13. char tab2[MAX];
  14. int a , b;
  15. int w;
  16. int t, i = 1;
  17.  
  18. //funkcja obliczająca notacje
  19. int notacja( char napis[MAX])
  20. {
  21.  
  22. //sprawdza czy pierwszy napis jest równy 0
  23. if(napis[0]=='\0')
  24. return 0;
  25.  
  26. else
  27. {
  28. //sprawdzamy przypadki odpowiednio:
  29. //'+' - dodawanie
  30. //'-' - odejmowanie
  31. //'*' - mnożenie
  32. //'/' - dzielenie
  33. //'^' - podnoszenie do potęgi
  34. switch( napis[0] )
  35. {
  36.  
  37. case '+':
  38.  
  39. cin>>tab1;
  40.  
  41. if((tab1[0]=='*')||(tab1[0]=='/')||(tab1[0]=='+')||(tab1[0]=='-')||(tab1[0]=='^'))
  42. {
  43.  
  44. a= notacja(tab1);
  45. cin>>tab2;
  46. w=a+notacja(tab2);
  47. return w;
  48.  
  49. }
  50.  
  51. else
  52. {
  53. cin>>tab2;
  54. w=notacja(tab1)+notacja(tab2);
  55. return w;
  56. }
  57.  
  58.  
  59. break;
  60.  
  61. case '-':
  62.  
  63. cin>>tab1;
  64.  
  65. if((tab1[0]=='*')||(tab1[0]=='/')||(tab1[0]=='+')||(tab1[0]=='-')||(tab1[0]=='^'))
  66. {
  67. a= notacja(tab1);
  68. cin>>tab2;
  69. w=a-notacja(tab2);
  70. return w;
  71.  
  72. }
  73. else
  74. {
  75. cin>>tab2;
  76. w=notacja(tab1)-notacja(tab2);
  77. return w;
  78. }
  79.  
  80.  
  81. break;
  82.  
  83. case '*':
  84.  
  85. cin>>tab1;
  86.  
  87. if((tab1[0]=='*')||(tab1[0]=='/')||(tab1[0]=='+')||(tab1[0]=='-')||(tab1[0]=='^'))
  88. {
  89. a= notacja(tab1);
  90. cin>>tab2;
  91. w=a*notacja(tab2);
  92. return w;
  93. }
  94.  
  95. else
  96. {
  97. cin>>tab2;
  98. w=notacja(tab1)*notacja(tab2);
  99. return w;
  100. }
  101. break;
  102.  
  103. case '/':
  104.  
  105. cin>>tab1;
  106. if((tab1[0]=='*')||(tab1[0]=='/')||(tab1[0]=='+')||(tab1[0]=='-')||(tab1[0]=='^'))
  107. {
  108. a= notacja(tab1);
  109. cin>>tab2;
  110. w=a/notacja(tab2);
  111. return w;
  112. }
  113.  
  114. else
  115. {
  116. cin>>tab2;
  117. w=notacja(tab1)/notacja(tab2);
  118. return w;
  119. }
  120. break;
  121.  
  122. //jeszcze nie działa!!!!!!!!!!
  123. /*
  124.   case '^':
  125.  
  126.   cin>>tab1;
  127.   if((tab1[0]=='*')||(tab1[0]=='/')||(tab1[0]=='+')||(tab1[0]=='-')||(tab1[0]=='^'))
  128.   {
  129.   a= notacja(tab1);
  130.   cin>>tab2;
  131.  
  132.   w=a*notacja(tab2);
  133.   return 0;
  134.   }
  135.  
  136.   else
  137.   {
  138.   cin>>tab2;
  139.   w=notacja(tab1)+notacja(tab2);
  140.   return w;
  141.   }
  142.   break;
  143.   */
  144.  
  145. default:
  146. return atoi(napis);
  147. break;
  148. }
  149.  
  150. }
  151. }
  152.  
  153. // Główna pętla programu
  154. int main(int argc, char *argv[])
  155. {
  156. cin >> t;
  157.  
  158. while(t--)
  159. {
  160. cin>>napis;
  161.  
  162. cout<<notacja(napis)<<"\n";
  163.  
  164. }
  165.  
  166. system("PAUSE");
  167. return EXIT_SUCCESS;
  168. }
  169.  
Success #stdin #stdout 0s 2928KB
stdin
Standard input is empty
stdout
Standard output is empty