Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2017
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.36 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <cstring>
  4.  
  5. using namespace std;
  6.  
  7. struct element
  8. {
  9. float liczba;
  10. element *wsk;
  11. };
  12.  
  13. int mnozymy(int d){
  14. int a;
  15. for(int i=0;i<d;i++){
  16. if(i==0){
  17. a=1;
  18. }
  19. else{
  20. a=a*10;
  21. }
  22. }
  23. return a;
  24. }
  25. void na_stos(float d, element *&w)
  26. { element *temp;
  27. temp=w;
  28. w = new element;
  29. w->liczba = d;
  30. w->wsk = temp;
  31. }
  32. void ze_stosu(float &d, element *&w)
  33. { element *temp=w;
  34. d=w->liczba;
  35. w=w->wsk;
  36. delete temp;
  37. }
  38. int odczyt_ile(){
  39. int a=0;
  40. string raz;
  41. ifstream pierwszy("dane.txt");
  42. if (getline(pierwszy, raz)) {
  43. int x=raz.length();
  44. for(int i=0;i<raz.length();i++){
  45. a=a + ((int)raz[i] - 48) * mnozymy(x);
  46. x--;
  47. }
  48. }
  49.  
  50. pierwszy.close();
  51. return a;
  52. }
  53. int odczyt(int d){
  54. ifstream pierwszy("dane.txt");
  55. for (int i=0;i<=d;i++){
  56. if(i==0){
  57. string dwa;
  58. getline(pierwszy,dwa);
  59. }
  60. else{
  61. string linia;
  62. getline(pierwszy,linia);
  63. char spacja=' ';
  64. element *q=NULL;
  65. float a;
  66. while(linia.length()!=0){
  67. string linia_n;
  68. long int pozycja=linia.find(spacja);
  69. linia_n=linia.substr(0,pozycja);
  70. if (linia.length()==1){
  71. linia_n=linia;
  72. linia="";
  73. }
  74. linia=linia.substr(pozycja+1,linia.length());
  75. int dzialanie=0;
  76. int x=linia_n.length();
  77. if(x>1){
  78. for(int j=0;j<linia_n.length();j++){
  79. dzialanie=dzialanie + ((int)linia_n[j]-48) * mnozymy(x);
  80. x--;
  81. }
  82. na_stos(dzialanie,q);
  83. }
  84. else{
  85. dzialanie=(int)linia_n[0];
  86. if(dzialanie>47){
  87. dzialanie=dzialanie - 48;
  88. na_stos(dzialanie,q);
  89. }
  90. else if(dzialanie==42){
  91. float b,c;
  92. ze_stosu(b,q);
  93. ze_stosu(c,q);
  94. b=b*c;
  95. na_stos(b,q);
  96. }
  97. else if(dzialanie==47){
  98. float b,c;
  99. ze_stosu(b,q);
  100. ze_stosu(c,q);
  101. b=c/b;
  102. na_stos(b,q);
  103. }
  104. else if(dzialanie==43){
  105. float b,c;
  106. ze_stosu(b,q);
  107. ze_stosu(c,q);
  108. b=b+c;
  109. na_stos(b,q);
  110. }
  111. else if(dzialanie==45){
  112. float b,c;
  113. ze_stosu(b,q);
  114. ze_stosu(c,q);
  115. b=c-b;
  116. na_stos(b,q);
  117. }
  118. }
  119. }
  120. ofstream zapis("wynik.txt",ios::app);
  121. ze_stosu(a,q);
  122. zapis<<a<<endl;
  123. zapis.close();
  124. }
  125. }
  126. pierwszy.close();
  127. }
  128. int main()
  129. {
  130. int a;
  131. a=odczyt_ile();
  132. odczyt(a);
  133. return 0;
  134. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement