Много ще се радвам ако някой удари 1 рамо да направим блок схема на този код >>Благодаря ви предварително .
Код:
#include <cstdlib>
#include <stdio.h>
#include <iostream>
using namespace std;
int readTanksCountFromInput() {
int result;
cout << "Моля въведете броя на варелите (5-10): ";
cin >> result;
if(result < 5 || result > 10) {
cout << "ГРЕШКА: Броят на врелите трябва да е между 5 и 10";
exit(1);
}
return result;
}
void readTanksDataFromInput(int count, int *heightArray, int *diameterArray) {
int idx = 0, h, d;
while(idx < count) {
cout << "Височина на варел [" << idx+1 << "]:";
cin >> h;
if(h == 0) {
cout << "ГРЕШКА: Височината не може да бъде 0. Моля опитайте Отново\n";
exit(1);
}
cout << "Диаметър на варел [" << idx+1 << "]:";
cin >> d;
if(d == 0) {
cout << "ГРЕШКА: Диаметърът не може да бъде 0. Моля опитайте отново\n";
d = -1;
exit(1);
}
heightArray[idx] = h;
diameterArray[idx] = d;
idx++;
}
}
void printTankData(int count, int H[], int D[], double V[], double S[], double totalVolume, double maxSurface) {
for(int i=0; i < count; i++) {
cout << "Варел[" << i+1 << "] Височина: " << H[i] << " Диаметър: " << D[i] << " Обем: " << V[i] << " Лице: " << S[i] << "\n";
}
cout << "Общ Обем: " << totalVolume << "\n";
cout << "Максимална повърхност: " << maxSurface << "\n";
}
void calculateData(int count, int H[], int D[], double *volumes, double *surfaces, double *totalVolume, double *maxSurface) {
for(int i =0; i < count; i++) {
double height = H[i];
double diameter = D[i];
double radius = diameter / 2;
double volume = 3.14 * radius * radius * height;
double surface = 2 * 3.14 * height * radius;
*totalVolume += volume;
if(surface > *maxSurface) {
*maxSurface = surface;
}
volumes[i] = volume;
surfaces[i] = surface;
}
}
int main(int argc, char** argv) {
double totalVolume = 0, maxSurface = 0;
int H[10], D[10];
double volumes[10], surfaces[10];
// Четем от клавиатурата колко влемента (варела) имаме
int n = readTanksCountFromInput();
// Четем от клавиатурата информацията за всеки варел (височина диаметър)
readTanksDataFromInput(n, H, D);
// Изчисляваме обемите и лицата за варелите
calculateData(n, H,D, volumes, surfaces, &totalVolume, &maxSurface);
//показваме информацията на екрана
printTankData(n, H, D, volumes, surfaces, totalVolume, maxSurface);
return 0;
}