Advertisement
Guest User

Untitled

a guest
Dec 1st, 2015
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.42 KB | None | 0 0
  1. //OPPGAVE 1
  2. #include <iostream>
  3. using namespace std;
  4. int main() {
  5.     char navn[2][3] = {{'o','l','e'}, {'p','e','r'}};
  6.     //Utskrift 1 blir epe
  7.     char *p = &navn[1][0];
  8.     for (int c = 0; c < 3; c++)
  9.         cout << *(p + c -1);
  10.     cout << endl;
  11.     //Utskrift 2
  12.     char (*p2)[3] = navn;
  13.     for (int c = 0; c < 2; c++) {
  14.         char *p3 = p2[c];
  15.        
  16.         for(int c2=2;c2>=0;c2--) //Bruk pekeren p3 slik at utskriften blir "elorep"
  17.             cout << *(p3+c2);
  18.     }
  19.     cout << endl;
  20.     return 0;
  21. }
  22. //OPPGAVE 2
  23. #include <iostream>
  24. #include <string>
  25. #include <vector>
  26. using namespace std;
  27. class Vare {
  28. public:
  29.     Vare(const string& navn, size_t antall) : navn(navn), antall(antall) {}
  30.    
  31.     string navn;
  32.     size_t antall;
  33.     virtual double moms() const {
  34.         return 0.25;
  35.     }    
  36. };
  37. class MatOgDrikkeVare : public Vare {
  38. public:
  39.     MatOgDrikkeVare(const string& navn, size_t antall) : Vare(navn, antall) {}
  40.    
  41.     double moms() const {
  42.         return 0.15;
  43.     }
  44. };
  45. class Butikk {
  46. public:
  47.     vector<Vare*> varer;
  48.    
  49.     ~Butikk() {
  50.         for(auto v: varer) {
  51.             delete v;
  52.         }
  53.     }
  54. };
  55. int main(int argc, char** argv) {
  56.     Butikk HiSTButikken;
  57.    
  58.     HiSTButikken.varer.push_back(new MatOgDrikkeVare("HiST-nistepakken", 5));
  59.     HiSTButikken.varer.push_back(new Vare("HiST-koppen", 10));
  60.    
  61.     cout << "Varenavn, antall, moms" << endl;
  62.     for(auto v: HiSTButikken.varer) {
  63.         cout << v->navn << ", " << v->antall << ", " << v->moms() << endl;
  64.     }
  65.    
  66.     return 0;
  67. }
  68. //OPPGAVE 3
  69. #include <iostream>
  70. #include <string>
  71. using namespace std;
  72. string storeBokstaver(const string& streng) {
  73.     string resultat=streng;
  74.     for(auto& c: resultat) {
  75.         if(c>=97 && c<=122)
  76.             c-=32;
  77.     }
  78.    
  79.     return resultat;
  80. }
  81. int main(int argc, char** argv) {
  82.     cout << storeBokstaver("Testing123") << endl;
  83.    
  84.     return 0;
  85. }
  86. //OPPGAVE 4
  87. #include <iostream>
  88. using namespace std;
  89. class Sekund {
  90. public:
  91.     const static unsigned int multiplikator=1;
  92. };
  93. class Minutt {
  94. public:
  95.     const static unsigned int multiplikator=60;
  96. };
  97. class Time {
  98. public:
  99.     const static unsigned int multiplikator=60*60;
  100.    
  101. };
  102. template<class T>
  103. class Tid {
  104. public:
  105.     unsigned int sekunder;
  106.    
  107.     Tid<T>(unsigned int enhet) : sekunder(enhet*T::multiplikator) {}
  108.    
  109.     Tid<T>& operator+=(unsigned int enhet) {
  110.         this->sekunder+=enhet*T::multiplikator;
  111.        
  112.         return *this;
  113.     }
  114.    
  115.     Tid<T> operator+(const Tid<Minutt>& tid_andre) {
  116.         Tid<T> retur=*this;
  117.         retur.sekunder+=tid_andre.sekunder;
  118.        
  119.         return retur;
  120.     }
  121.    
  122.     Tid<T> operator+(const Tid<Time>& tid_andre) {
  123.         Tid<T> retur=*this;
  124.         retur.sekunder+=tid_andre.sekunder;
  125.        
  126.         return retur;
  127.     }
  128.    
  129.     friend ostream& operator<<(ostream& stream, const Tid<T>& t) {
  130.         return stream << t.sekunder;
  131.     }
  132. };
  133. int main() {
  134.     Tid<Sekund> sekunder(2);
  135.     sekunder+=3;
  136.     Tid<Minutt> minutter(2);
  137.     minutter+=3;
  138.     Tid<Time> timer(2);
  139.     timer+=3;
  140.     cout << "5 sekunder: " << sekunder << "s" << endl;
  141.     cout << "5 minutter i sekunder: " << minutter << "s" << endl;
  142.     cout << "5 timer i sekunder: " << timer << "s" << endl;
  143.    
  144.     cout << "5 sekunder + 5 minutter + 5 timer i sekunder: " << sekunder+minutter+timer << "s" << endl;
  145.    
  146.     return 0;
  147. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement