Facebook
From Baby Sloth, 6 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 247
  1. #include <iostream>
  2. #include <limits.h>
  3. #include <vector>
  4. #include<iostream>
  5. #include<cstdlib>
  6. #include <sstream>
  7. #include <iomanip>
  8. #include <string>
  9.  
  10. /* run this program using the console pauser or add your own getch, system("pause") or input loop */
  11.  
  12. struct listElement
  13. {
  14.         listElement* next;
  15.         int value;
  16.         listElement(int _value)
  17.         {
  18.                 this->value = _value;
  19.         }
  20. };
  21.  
  22. class List
  23. {
  24.         public:
  25.                 listElement* head;
  26.                
  27.         List();
  28.     ~List();
  29.        
  30.         unsigned size();
  31.         void print();
  32.         void push_back(int data);
  33.         listElement* pop();
  34. };
  35.        
  36. List::List()
  37. {
  38.   head = NULL;
  39. }
  40.        
  41. List::~List()
  42. {
  43.   while(head) pop();
  44. }
  45.        
  46. unsigned List::size()
  47. {
  48.   unsigned  c = 0;
  49.   listElement * p = head;
  50.  
  51.   if(p)
  52.   do
  53.   {
  54.     c++;
  55.     p = p->next;
  56.   } while(p != head);
  57.   return c;
  58. }
  59.  
  60. void List::print()
  61. {
  62.   listElement * p;
  63.  
  64.   std::cout << size() << " [";
  65.   p = head;
  66.   if(p)
  67.     do
  68.     {
  69.       std::cout << " " << p->value;
  70.       p = p->next;
  71.     } while(p != head);
  72.   std::cout << " ]\n\n";
  73. }
  74.        
  75. void List::push_back(int data) 
  76. {
  77.         listElement * p = new listElement(data);
  78.  
  79.         if(head)
  80.         {
  81.         p->next = head->next;
  82.         head->next = p;
  83.         }
  84.         else p->next = p;
  85.         head = p;
  86. }
  87.  
  88. listElement* List::pop()
  89. {
  90.   if(head)
  91.   {
  92.     listElement * p = head->next;
  93.     head->next = p->next;
  94.     if(p->next == p) head = NULL;
  95.     return p;
  96.   }
  97.  
  98. }
  99.  
  100. void Zad5()
  101. {
  102.         List *list = new List();
  103.        
  104.         list->push_back(1);
  105.         list->push_back(-10);
  106.         list->push_back(-20);
  107.         list->push_back(100);
  108.        
  109.         list->print();
  110.        
  111.         list->pop();   
  112.         list->print();
  113.        
  114.         list->pop();   
  115.         list->print();
  116. }
  117.  
  118. void Zad1()
  119. {
  120.         int inputA, inputB, temp;
  121.        
  122.         std::cout << "Podaj liczbe 1: ";
  123.         std::cin >> inputA;
  124.         std::cout << "Podaj liczbe 2: ";
  125.         std::cin >> inputB;
  126.         temp = inputA;
  127.         inputA = inputB;
  128.         inputB = temp;
  129.         std::cout << "Input1 :" << inputA << " Input2: " << inputB;
  130. }
  131.  
  132. void Zad2()
  133. {
  134.         std::vector<int> tab;
  135.         tab.push_back(5);
  136.         tab.push_back(6);
  137.         tab.push_back(7);
  138.         tab.push_back(-2);
  139.        
  140.         int max = INT_MIN;
  141.         int min = INT_MAX;
  142.         for (int i = 0; i < tab.size(); i++)
  143.         {
  144.                 if (tab[i] > max)
  145.                 {
  146.                         max = tab[i];
  147.                 }
  148.                 if(tab[i] < min)
  149.                 {
  150.                         min = tab[i];
  151.                 }
  152.         }
  153.        
  154.         std::cout << "Max is : " << max << "Min is : " << min;
  155. }
  156.  
  157. void sortowanie_babelkowe(int tab[],int n)
  158. {
  159.         for(int i=0;i<n;i++)
  160.                 for(int j=1;j<n-i;j++) //pętla wewnętrzna
  161.                 if(tab[j-1]>tab[j])
  162.                         //zamiana miejscami
  163.                         std::swap(tab[j-1], tab[j]);
  164. }
  165.  
  166. void Zad3()
  167. {
  168.         int *tab, n;
  169.        
  170.         n = 5;
  171.         tab = new int[n];
  172.         tab[0] = -2;
  173.         tab[1] = -20;
  174.         tab[2] = 10;
  175.         tab[3] = 0;
  176.         tab[4] = 2;
  177.         sortowanie_babelkowe(tab, n);
  178.        
  179.         std::cout << "Wypisuje posortowane wartosci: ";
  180.         for(int i = 0; i < n; i++)
  181.         {
  182.                 std::cout << "\n" << tab[i];
  183.         }
  184.         std::cout << "\nZakonczylem wypisywanie";
  185. }
  186.  
  187. const int MAX_S = 100;  
  188.  
  189. Zad6()
  190. {
  191.   double S[MAX_S];      
  192.   int p = 0;            
  193.   std::string e;            
  194.   double v1,v2;        
  195.   std::stringstream ss;      
  196.  
  197.   while(true)          
  198.   {
  199.     std::getline(std::cin,e);
  200.  
  201.     if(e == "=") break;
  202.  
  203.     ss.str("");        
  204.     ss.clear();        
  205.     ss << e;          
  206.  
  207.     if(ss >> v1)    
  208.                        
  209.       S[p++] = v1;      
  210.  
  211.     else
  212.     {                  
  213.       v2 = S[--p];  
  214.       v1 = S[--p];
  215.       switch(e[0])
  216.       {
  217.         case '+' : v1 += v2; break;
  218.         case '-' : v1 -= v2; break;
  219.         case '*' : v1 *= v2; break;
  220.         case '/' : v1 /= v2; break;
  221.       }
  222.       S[p++] = v1;
  223.     }
  224.   }
  225.  
  226.   std::cout << std::fixed << S[--p] << std::endl;
  227.  
  228.   return 0;    
  229. }
  230.  
  231. int main(int argc, char** argv) {
  232.        
  233.         //Zad1();
  234.         //Zad2();
  235.         //Zad3();
  236.         //Zad5();
  237.         Zad6();
  238.         system("pause");
  239.         return 0;
  240. }
  241.  
  242.  
  243.  
  244.