Zdravim
Ucim sa c++ podla jednej knihy a pre zabavu som skusal nejaky program, aby som si co to zopakoval. Tento konkretne rata objemy a obsahy telies, no mam tu maly problem
<code>
#include <iostream>
using namespace std;
class telesa
{
private:
int stranaA;
int stranaB;
int stranaC;
public:
void NastavA();
void NastavB();
void NastavC();
int Menu();
int ZobrazA()const {return stranaA;}
int ZobrazB()const {return stranaB;}
int ZobrazC()const {return stranaC;}
int ObsahObdlznika(int stranaA, int stranaB);
int ObsahStvorca(int stranaA);
int ObjemKvadra(int stranaA, int stranaB, int stranaC);
int ObjemKocky(int stranaC);
};
int telesa::Menu()
{
cout << " ....Menu....\n\n";
cout << "(1).Obsah obdlznika\n";
cout << "(2).Obsah stvorca\n";
cout << "(3).Objem kvadra\n";
cout << "(4).Objem kocky\n";
cout << "(5).Koniec \n\n";
int volba;
cin >> volba;
return volba;
}
void telesa::NastavA()
{
cout <<"Zadaj velkost strany a: ";
cin >> stranaA;
}
void telesa::NastavB()
{
cout <<"Zadaj velkost strany b: ";
cin >> stranaB;
}
void telesa::NastavC()
{
cout <<"Zadaj velkost strany c: ";
cin >> stranaC;
}
int telesa::ObsahObdlznika(int stranaA, int stranaB)
{
return stranaA*stranaB;
}
int telesa::ObsahStvorca(int stranaA)
{
return stranaA*stranaA;
}
int telesa::ObjemKvadra(int stranaA, int stranaB, int stranaC)
{
return stranaA*stranaB*stranaC;
}
int telesa::ObjemKocky(int stranaA)
{
return stranaA*stranaA*stranaA;
}
int main()
{
telesa teleso1;
bool koniec = false;
int A = teleso1.ZobrazA();
int B = teleso1.ZobrazB();
int C = teleso1.ZobrazC();
for(;;)
{
teleso1.Menu();
int volba = teleso1.Menu();
switch(volba)
{
case 1:
cout << "Obsah obdlznika \n\n";
teleso1.NastavA();
teleso1.NastavB();
cout << "Obsah obdlznika je"<< teleso1.ObsahObdlznika(A, B);
break;
case 2:
cout << "Obsah stvorca \n\n";
teleso1.NastavA();
cout << "Obsah stvorca je "<< teleso1.ObsahStvorca(A);
break;
case 3:
cout << "Objem kvadra \n\n";
teleso1.NastavA();
teleso1.NastavB();
teleso1.NastavC();
cout << "Objem kvadra je "<< teleso1.ObjemKvadra(A, B, C);
break;
case 4:
cout << "Objem kocky \n\n";
teleso1.NastavA();
cout << "Objem kocky je \n\n"<< teleso1.ObjemKocky(A);
break;
case 5:
koniec = true;
break;
}
if(koniec)
break;
}
cin.get();
cin.get();
}
</code>
ide mi o to ze nefunguje
int A = teleso1.ZobrazA();
int B = teleso1.ZobrazB();
int C = teleso1.ZobrazC();
aj ked nacitanie z napr (teleso1.ZobrazA()) funguje spravne. Pokial ale necham nacitat "int A" hodi mi uplny blud. Viem ze v tom programe je kopec chyb, chystam sa to opravit len co to bude nahrubo fungovat ;)
Dakujem
Fórum › C / C++
Problem s ulohou
Kód:
int A = teleso1.ZobrazA();
int B = teleso1.ZobrazB();
int C = teleso1.ZobrazC();
je samozřejmě funkční, ale problém je v kauzalitě :smile1: . Nejprve hodnotu žádáš a pak ji teprve nastavuješ. Aby ti to fungovalo, tak musíš provést ZobrazX() před voláním výpočetní funkce.
Vzhledem k tomu, že máš stranu A,B,C jako členské proměnné, tak je zbytečné je předávat ako parametr členské funkci. Jsou přímo přístupné, vyhneš se těmto problémům a bude to kratší a hezčí :smile1:
Zjistit počet nových příspěvků
Přidej příspěvek
Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
Uživatelé prohlížející si toto vlákno
Uživatelé on-line: 0 registrovaných, 108 hostů
Podobná vlákna
Problem s úlohou — založil Trebor
Pomoc s úlohou — založil Kárl
Poradit s úlohou — založil elijax
Pomoc s ulohou... — založil pra3tor
Pomoc s ulohou v C — založil newo
Moderátoři diskuze