Safiron

Faktorizace - Úkol C++ 1. ročník

Oct 11th, 2012
176
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.96 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. double v;
  6. double w;
  7. double h;
  8. bool numbersOK = false;
  9.  
  10. void zadavaniCisel();
  11. bool jeKladne(double i);
  12. bool jeDesetinne(double i);
  13. void spocitatFaktorizaci();
  14. double vypocitejChybu();
  15.  
  16. /*
  17.     FAKTORIZACE
  18.     Program určitě není vhodný hned odevzdat, nevím přesně jak funguje ten váš "testovací systém" a jak zadává do programu hodnoty.
  19.     Je možné že je nezadává přes konzoli, ale přímo programu předá spouštěcí parametry. V tom případě je třeba do funkce main() přidat
  20.     jako parametr pole pointerů na datový typ char (tak jak je to v zadání). Signatura metody main by pak vypadala int main (char * argv [])
  21.     Také jsem moc nepochopil jak mají vypadat vstupní hodnoty, jestli má být první číslo jen kladné nebo kladné + 0 a nebo musí být desetinné ??
  22.     Faktorizace samotná funguje takže stačí to jen doupravit a mělo by to být OK.
  23. */
  24.  
  25. int main()
  26. {
  27.     zadavaniCisel();
  28.     if (numbersOK)
  29.     {
  30.         spocitatFaktorizaci();
  31.         cout << "Cislo " << v << " lze faktorizvat na " << w << " a " << h << ". Faktorizace ma chybu " << vypocitejChybu() << endl;
  32.     }
  33.     return 0;
  34. }
  35.  
  36. void spocitatFaktorizaci()
  37. {
  38.     h = h * ((w * v) / (w * w * h));
  39.     w = w * ((v *h) / (w * h * h));
  40. }
  41.  
  42. double vypocitejChybu()
  43. {
  44.     return v - (w * h);
  45. }
  46.  
  47. void zadavaniCisel()
  48. {
  49.     cout << "Zadejte nezaporne cislo" << endl;
  50.     cin >> v;
  51.     if (!jeKladne(v))
  52.     {
  53.         cout << "Chyba!";
  54.         return;
  55.     }
  56.     cout << "Zadejte kladne desetinne cislo" << endl;
  57.     cin >> w;
  58.     if (!jeKladne(w) || !jeDesetinne(w))
  59.     {
  60.         cout << "Chyba!";
  61.         return;
  62.     }
  63.     cout << "Zadejte kladne desetinne cislo" << endl;
  64.     cin >> h;
  65.     if (!jeKladne(h) || !jeDesetinne(h))
  66.     {
  67.         cout << "Chyba!";
  68.         return;
  69.     }
  70.     numbersOK = true;
  71. }
  72.  
  73. bool jeKladne(double i)
  74. {
  75.     if (i > 0)
  76.     {
  77.         return true;
  78.     }
  79.     else
  80.     {
  81.         return false;
  82.     }
  83. }
  84.  
  85. bool jeDesetinne(double i)
  86. {
  87.     if ((i - (int)i) > 0)
  88.     {
  89.         return true;
  90.     }
  91.     else
  92.     {
  93.         return false;
  94.     }
  95. }
Advertisement
Add Comment
Please, Sign In to add comment