Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //#include "stdafx.h"
- #include <iostream>
- using namespace std;
- // Deklarationer av funktionerna
- //...
- void skrivInfo();
- int lasEttTal();
- char lasOp();
- void ordna(int &tal1, int &tal2);
- int berakna(int & tal1, int &tal2, char &op, int &answer); //int &tal1, int &tal2, char &op);
- void SkrivResultat(int &answer);
- // Globala variabler, dvs att deklarera
- // variabler utanför funktionerna är ej tillåtet
- //int answer = 1;
- int main() {
- // Här deklareras mina variabler
- int tal1, tal2;
- char op;
- int svar;
- int answer;
- // funktionerna anropas
- skrivInfo();
- tal1 = lasEttTal();
- tal2 = lasEttTal();
- op = lasOp();
- ordna(tal1, tal2);
- svar = berakna(tal1, tal2, op, answer);
- SkrivResultat(svar);
- return 0;
- }
- // funktionen med informationstext för programmet definieras
- void skrivInfo()
- {
- cout << "detta e en mattegrej for addition, multiplikation och kvadratsumma" << endl;
- }
- // funktionen för att läsa in tal1 och tal2 definieras, funktionen kommer besökas 2 gånger
- int lasEttTal()
- {
- int b;
- cout << "skriv in ett heltal" << endl;
- cin >> b;
- return b;
- }
- // Funktion för att läsa in en karaktär. Om annan bokstav än A,M eller K skrivs ges felmeddelande senare
- char lasOp()
- {
- //char a, m, k;
- char temp;
- cout << "skriv in a , m eller k för addition, multiplikation eller kvadratsumman : " << endl;
- cin >> temp;
- return temp;
- // läs med do-while
- }
- // Funktion för att sortera talen så tal1 blir det lägsta och tal2 det högsta.
- void ordna(int &t1, int &t2)
- {
- // byter plats på tal1 och tal2
- if (t1 > t2)
- {
- int temporar = t1;
- t1 = t2;
- t2 = temporar;
- }
- }
- // Funktion som utför addition, multiplikation eller kvadratsumma på det angivna talen efter vilken bokstav som anges.
- int berakna(int & tal1, int & tal2, char &op, int & answer)
- {
- //variabler som används inom funktionen
- answer= 0;
- //answer;
- int sum = tal1;
- int temp = 0;
- // sitchsats som utför beräkningar efter vald bokstav
- switch (op)
- {
- case 'A': case 'a':
- for (int i = tal1; i <= tal2; i++)
- {
- //answer = 0;
- answer += i;
- }
- break;
- // Om "m" ges så utför multiplikation
- case 'M': case 'm':
- answer = 1;
- if (tal1 <= 0 || tal2 <= 0)
- {
- answer = 0;
- }
- for (int i = tal1; i <= tal2; i++)
- {
- answer *= i;
- }
- break;
- // k = kvadratsumman
- case 'k': case 'K':
- if (tal1 == tal2)
- {
- answer = tal1*tal2;
- }
- for(int i = tal1;i<=tal2;i++)
- {
- temp += sum*i;
- sum++;
- answer = temp;
- }
- break;
- // Om fel inmatning ges, alltså inte A, m eller k så ges felmeddelande
- default:
- cout << "felaktig inmatning " << endl;
- }
- return answer;
- }
- // skriver ut resultatet.
- void SkrivResultat(int &svar)
- {
- cout << "svaret blev : " << svar << endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement