Odpowiedź :
Odpowiedź:
Wersja postawowa:
#include <iostream>
int main() {
int a, b, h;
a = b = h = -1;
while (a <= 0) {
std::cout << "Podaj dlugosc a:" << std::endl;
std::cin >> a;
if (a <= 0) {
std::cout << "Podaj a jeszcze raz (musi byc > 0)" << std::endl;
}
}
while (b <= 0) {
std::cout << "Podaj dlugosc b:" << std::endl;
std::cin >> b;
if (b <= 0) {
std::cout << "Podaj b jeszcze raz (musi byc > 0)" << std::endl;
}
}
while (h <= 0) {
std::cout << "Podaj dlugosc h:" << std::endl;
std::cin >> h;
if (h <= 0) {
std::cout << "Podaj h jeszcze raz (musi byc > 0)" << std::endl;
}
}
std::cout << "Objetosc prostopadloscianu wynosi " << a * b * h << std::endl;
std::cout << "Pole powierzchni prostopadloscianu wynosi " << 2 * a * b + 2 * a * h + 2 * b * h << std::endl;
return 0;
}
Wersja z wykorzystaniem funkcji bez powtarzanie kodu (krótsza, ale bardziej zaawansowana)
#include <iostream>
#include <string>
void print(int &variable, const std::string& variable_name){
while (variable <= 0) {
std::cout << "Podaj dlugosc " << variable_name << std::endl;
std::cin >> variable;
if (variable <= 0) {
std::cout << "Podaj " << variable_name << " jeszcze raz (musi byc > 0)" << std::endl;
}
}
}
int main() {
int a, b, h;
a = b = h = -1;
print(a, "a");
print(b, "b");
print(h, "c");
std::cout << "Objetosc prostopadloscianu wynosi " << a * b * h << std::endl;
std::cout << "Pole powierzchni prostopadloscianu wynosi " << 2 * a * b + 2 * a * h + 2 * b * h << std::endl;
return 0;
}
Wyjaśnienie:
Zwykłe podstawianie do wzoru, nie ma czego zbytnio tłumaczyć