Advertisement
NuquernaNarsil

AiSD12

Oct 23rd, 2015
123
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.55 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdlib>
  3.  
  4. using namespace std;
  5.  
  6. const int a=1;
  7.  
  8. int dane()
  9. {
  10.     bool check=false;
  11.     int x;
  12.     system("pause");
  13.     system("cls");
  14.     cout <<"Podaj b, aby obliczyc sume ciagu liczb naturalnych: ";
  15.     do
  16.     {
  17.         cin >> x;
  18.         if(!cin || x<=1)
  19.         {
  20.             cin.clear();
  21.             cin.sync();
  22.             cout <<"Podaj poprawna liczbe !: ";
  23.         }
  24.         else
  25.             check=true;
  26.     }
  27.     while(check==false);
  28.     return x;
  29. }
  30.  
  31. int forem(int b)
  32. {
  33.     int sum=0;
  34.     for(int i=a; i<=b; i++)
  35.     {
  36.         sum+=i;
  37.     }
  38.     return sum;
  39. }
  40.  
  41. int whilem(int b)
  42. {
  43. int i=a, sum=0;
  44.     while(i<=b)
  45.     {
  46.         sum+=i;
  47.         i++;       
  48.     }
  49.     return sum;
  50. }
  51.  
  52. int rekurencja(int b)
  53. {
  54.     if(b<1)
  55.         return 0;
  56.     return b+rekurencja(b-1);
  57. }
  58.  
  59. int dowhile(int b)
  60. {
  61. int i=a, sum=0;
  62.  
  63.     do
  64.     {
  65.         sum+=i;
  66.         i++;
  67.     }
  68.     while(i<=b);
  69.     return sum;
  70. }
  71.  
  72. main()
  73. {
  74.     char x, check;
  75.     int b, wynik;
  76.    
  77.  
  78.    
  79.     do
  80.     {
  81.     cout <<"Program oblicza sume ciagu liczb naturalnych.\nWybierz sposob obliczania \nA(do while) \nB(while) \nC(for) \nD(rekurencyjnie)\nOblicz przy pomocy : ";
  82.         do
  83.         {
  84.             cin >> x;
  85.             if(x!='a' && x!='A' && x!='b' && x!='B' && x!='C' && x!='c' && x!='d' && x!='D')
  86.             cout <<"\nPodaj A/B/C/D : ";
  87.         }
  88.         while(x!='a' && x!='A' && x!='b' && x!='B' && x!='C' && x!='c' && x!='d' && x!='D');
  89.    
  90.         b=dane();
  91.         switch(x)
  92.         {
  93.             case 'a':
  94.             {
  95.                 system("pause");
  96.                 system("cls");
  97.                 wynik=dowhile(b);
  98.                 break;
  99.             }
  100.             case 'A':
  101.             {  
  102.                 system("pause");
  103.                 system("cls");
  104.                 wynik=dowhile(b);
  105.                 break;
  106.             }
  107.             case 'b':
  108.             {
  109.                 system("pause");
  110.                 system("cls");
  111.                 wynik=whilem(b);
  112.                 break;
  113.             }
  114.             case 'B':
  115.             {
  116.                 system("pause");
  117.                 system("cls");
  118.                 wynik=whilem(b);
  119.                 break;
  120.             }          
  121.             case 'c':
  122.             {
  123.                 system("pause");
  124.                 system("cls");
  125.                 wynik=forem(b);
  126.                 break;
  127.             }
  128.             case 'C':
  129.             {
  130.                 system("pause");
  131.                 system("cls");
  132.                 wynik=forem(b);
  133.                 break;
  134.             }
  135.             case 'd':
  136.             {
  137.                 system("pause");
  138.                 system("cls");
  139.                 wynik=rekurencja(b);
  140.                 break;
  141.             }
  142.             case 'D':
  143.             {
  144.                 system("pause");
  145.                 system("cls");
  146.                 wynik=rekurencja(b);
  147.                 break;
  148.             }
  149.                    
  150.             default:
  151.             {
  152.                 cout <<"\nPodaj A/B/C : ";
  153.                 cin >>x;
  154.             }
  155.         }
  156.    
  157.         cout <<"Suma ciagu wynosi: "<<wynik<<endl;
  158.         cout <<"\nZakoncz program (T), Wykonaj ponownie (N): ";
  159.         do
  160.         {
  161.             cin >>check;
  162.             if(check!='t' && check!='T' && check!='n' && check!='N')
  163.                 cout <<"\nPodaj T/N : ";
  164.         }
  165.         while(check!='t' && check!='T' && check!='n' && check!='N');
  166.         system("cls");
  167.     }
  168.     while(check=='n' || check=='N');
  169.    
  170.  
  171.     system("pause");
  172.     return 0;
  173. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement