#include <iostream>
#include <cmath>
using namespace std;int lze_dopocitat(double celek,double cast,double procenta) {
int pocet_nezadanych = 0;
if (celek<=0) pocet_nezadanych++;
if (cast<=0) pocet_nezadanych++;
if (procenta<=0) pocet_nezadanych++;
switch (pocet_nezadanych) {
case 0: return 0;
case 1: return 1;
default: return 3;
}
}bool vyhovuje_vzorci(double celek,double cast,double procenta) {
double prava_strana = celek*procenta/100;
if (fabs(cast-prava_strana)>=(celek/1000000)) {return false;}
return true;
}double dopocitej(double celek,double cast,double procenta) {
double dopocitana_hodnota;
if (celek<=0) {dopocitana_hodnota=cast*100/procenta;}
if (cast<=0) {dopocitana_hodnota=celek*procenta/100;}
if (procenta<=0) {dopocitana_hodnota=cast*100/celek;}
return dopocitana_hodnota;
}
int main(void) {
double celek,cast,procenta = 0;cout << "Zadej postupne velikost celku, jeho casti a pocet procent.\n"
"Jeden z udaju muze byt zadan jako 0, dopocita se z ostatnich.\n"
<< "Zadej celek: ";
cin >> celek;
if (celek<=0)
{cout << "Celek = Nezadan" << endl << "Zadej cast: ";}
else {cout << "Celek = " << celek << endl << "Zadej cast: ";}
cin >> cast;
if (cast<=0)
{cout << "Cast = Nezadana" << endl << "Zadej pocet procent: ";}
else {cout << "Cast = " << cast << endl << "Zadej pocet procent: ";}
cin >> procenta;
if (procenta<=0)
{cout << "Procenta = Nezadana" << endl;}
else {cout << "Procenta = " << procenta << endl;}switch (lze_dopocitat(celek,cast,procenta)) {
case 0: {if (vyhovuje_vzorci(celek,cast,procenta))
{cout << "Data si odpovidaji" << endl;}
else {cout << "Prectena data nevyhovuji vzorci"
<< endl;}
break;}
case 1: {if (celek<=0) cout << "Dopocitany celek = ";
if (cast<=0) cout << "Dopocitana cast = ";
if (procenta<=0) cout << "Dopocitana procenta = ";
cout << dopocitej(celek,cast,procenta) << endl;
break;}
case 3: {cout << "Nelze dopocitavat vice nez jedno cislo" <<
endl; return 2;}
}
return 0;
}