Témakör: Általános feladatok


19.1 . megoldással  Síkbeli testek osztályhierarchiája

Webmester felhasználó

Készítsük el az alábbi diagram alapján a megadott osztályok kódját!

  • A konstruktorok dobjanak kivételt, ha valamelyik objektumot hibás adatokkal inicializáljuk (negatív sugár, negatív oldalak, nem teljesül a háromszög egyenlőtlenség)!
  • A háromszög területképlete , ahol

 



2008.02.08. |  Permalink  |  Hozzászólások: 0  |  Tárgyszavak: példa szintje


19.2 . megoldással  Térbeli alakzatok osztályhierarchiája

Webmester felhasználó

Készítsük el az alábbi diagram alapján a megadott osztályok kódját!

  • A konstruktorok dobjanak kivételt, ha valamelyik objektumot hibás adatokkal inicializáljuk (negatív sugár, negatív élhossz)!
  • A gömb felszíne és térfogata: A = 4r2 π,   V = 4r3 π / 3

 

 



2008.02.08. |  Permalink  |  Hozzászólások: 0  |  Tárgyszavak: példa szintje


19.3 . megoldással  Hibakeresés komplex számokat megvalósító osztályban

Webmester felhasználó

Jelöljük meg azokat a részeket a kódban amelyek fordítási / futási hibát okoznak (indoklással!) és javítsuk ki őket! (összesen 10 db van)

   

#include <cmath>

#include <iostream>

using namespace std;

 

 

class Complex

{

 private:

  double Re = 0, Im = 0;

 

 public:

  void Complex(double r = 0, double i)

  {

   Re = r;

   Im = i;

  }

 

  const Complex& operator+(const Complex& C) const

  {

   return Complex(Re + C.Re, Im + C.Im);

  }

 

  Complex& operator+=(const Complex& C) const

  {

   Re += C.Re;

   Im += C.Im;

   return *this;

  }

 

  double operator double() const

  {

   return sqrt(Re * Re + Im * Im);

  }

 

  Complex Conjugate() const

  {

   return new Complex(Re, -Im);

  }

};

 

 

ostream& operator<<(ostream& os, const Complex& C) const

{

 os << C.Re << '+' << C.Im << 'i';

}

 



2008.02.08. |  Permalink  |  Hozzászólások: 0  |  Tárgyszavak: példa szintje


19.4 . megoldással  Hibakeresés null-terminált sztringet megvalósító osztályban

Webmester felhasználó

Jelöljük meg azokat a részeket a kódban amelyek fordítási / futási hibát okoznak (indoklással!) és javítsuk ki őket! (összesen 10 db van)

 

#include <string.h>

 

 

class String

{

 private:

  unsigned elementNum = 0;

  char *pData;

 

 public:

  String(String S)

  {

   elementNum = S.elementNum;

   pData = S.pData; 

  }

 

  String(const char *Str = "")

  {

   elementNum = strlen(Str);

   strcpy(pData, Str);

  }

 

  ~String()

  {

   delete pData;

  }

 

  String& operator=(const String& S) const

  {

   if (&S == this)

      return *this;

 

   delete[] pData;

   pData = new char[(elementNum = S.elementNum) + 1];

   strcpy(pData, S.pData);

  }

 

  const char *operator const char *() const

  {

   return pData;

  }

 

  static String& Min(String Str1, String Str2) const

  {

   return strcmp(Str1.pData, Str2.pData) < 0 ? Str1 : Str2;

  } 

};

 



2008.02.08. |  Permalink  |  Hozzászólások: 0  |  Tárgyszavak: példa szintje