Advertisement
Guest User

HejErik

a guest
May 25th, 2016
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.78 KB | None | 0 0
  1. //#include "stdafx.h"
  2. #include <iostream>
  3.  
  4. using namespace std;
  5.  
  6. // Deklarationer av funktionerna
  7. //...
  8. void skrivInfo();
  9. int lasEttTal();
  10. char lasOp();
  11. void ordna(int &tal1, int &tal2);
  12. int berakna(int & tal1, int &tal2, char &op, int &answer); //int &tal1, int &tal2, char &op);
  13. void SkrivResultat(int &answer);
  14.  
  15. // Globala variabler, dvs att deklarera
  16. // variabler utanför funktionerna är ej tillåtet
  17.  //int answer = 1;
  18.  
  19. int main() {
  20.  
  21.     // Här deklareras mina variabler
  22.     int tal1, tal2;
  23.     char op;
  24.     int svar;
  25.     int answer;
  26.     // funktionerna anropas
  27.     skrivInfo();
  28.     tal1 = lasEttTal();
  29.     tal2 = lasEttTal();
  30.     op = lasOp();
  31.     ordna(tal1, tal2);
  32.     svar = berakna(tal1, tal2, op, answer);
  33.     SkrivResultat(svar);
  34.  
  35.     return 0;
  36. }
  37. // funktionen med informationstext för programmet definieras
  38. void skrivInfo()
  39. {
  40.     cout << "detta e en mattegrej for addition, multiplikation och kvadratsumma" << endl;
  41. }
  42. // funktionen för att läsa in tal1 och tal2 definieras, funktionen kommer besökas 2 gånger
  43. int lasEttTal()
  44. {
  45.     int b;
  46.     cout << "skriv in ett heltal" << endl;
  47.     cin >> b;
  48.     return b;
  49.  
  50. }
  51. // Funktion för att läsa in en karaktär. Om annan bokstav än A,M eller K skrivs ges felmeddelande senare
  52. char lasOp()
  53. {
  54.     //char a, m, k;
  55.     char temp;
  56.     cout << "skriv in a , m eller k för addition, multiplikation eller kvadratsumman : " << endl;
  57.     cin >> temp;
  58.     return temp;
  59.  
  60.     // läs med do-while
  61.  
  62. }
  63. // Funktion för att sortera talen så tal1 blir det lägsta och tal2 det högsta.
  64. void ordna(int &t1, int &t2)
  65. {
  66.     // byter plats på tal1 och tal2
  67.     if (t1 > t2)
  68.     {
  69.         int temporar = t1;
  70.         t1 = t2;
  71.         t2 = temporar;
  72.  
  73.     }
  74.  
  75. }
  76. // Funktion som utför addition, multiplikation eller kvadratsumma på det angivna talen efter vilken bokstav som anges.
  77. int berakna(int & tal1, int & tal2, char &op, int & answer)
  78. {
  79.     //variabler som används inom funktionen
  80.     answer= 0;
  81.     //answer;
  82.     int sum = tal1;
  83.     int temp = 0;
  84.  
  85.     // sitchsats som utför beräkningar efter vald bokstav
  86.     switch (op)
  87.     {
  88.     case 'A': case 'a':
  89.  
  90.         for (int i = tal1; i <= tal2; i++)
  91.         {
  92.             //answer = 0;
  93.             answer += i;
  94.         }
  95.         break;
  96.  
  97.         // Om "m" ges så utför multiplikation
  98.     case 'M': case 'm':
  99.         answer = 1;
  100.         if (tal1 <= 0 || tal2 <= 0)
  101.         {
  102.             answer = 0;
  103.         }
  104.  
  105.         for (int i = tal1; i <= tal2; i++)
  106.     {
  107.         answer *= i;
  108.     }
  109.         break;
  110.         // k = kvadratsumman
  111.     case 'k': case 'K':
  112.         if (tal1 == tal2)
  113.         {
  114.             answer = tal1*tal2;
  115.         }
  116.         for(int i = tal1;i<=tal2;i++)
  117.         {
  118.  
  119.             temp += sum*i;
  120.             sum++;
  121.             answer = temp;
  122.         }
  123.         break;
  124.         // Om fel inmatning ges, alltså inte A, m eller k så ges felmeddelande
  125.     default:
  126.         cout << "felaktig inmatning " << endl;
  127.     }
  128.     return answer;
  129. }
  130. // skriver ut resultatet.
  131. void SkrivResultat(int &svar)
  132. {
  133.     cout << "svaret blev : " << svar << endl;
  134. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement