// Turbine simulation with dynamic data generation
#include <iostream>
int main() {
int sum = 0;
int validCount = 0;
int overheatCount = 0;
int temp = 0;
std::cout << "--- Turbine Simulation Started ---" << std::endl;
for (int i = 1; i <= 10; ++i) {
// 1. Generate Data
temp = 10 + (i * 20);
// 2. Simulate Glitch (Every 3rd reading)
if (i % 3 == 0) {
temp = 0;
}
std::cout << "Time " << i << " | Reading: " << temp << std::endl;
// 3. Logic Pipeline
if (temp == 0) {
std::cout << "Sensor Error..." << std::endl;
continue; // Skip logic below, jump to next i
}
if (temp > 100) {
std::cout << "WARNING: Overheat!" << std::endl;
overheatCount++;
if (overheatCount >= 2) {
std::cout << "CRITICAL FAILURE: Aborting" << std::endl;
break; // Stop loop immediately
}
// Overheat is not "valid" for the average calculation
continue;
}
// 4. Process Valid Data
sum += temp;
validCount++;
}
std::cout << "--- Simulation Ended ---" << std::endl;
if (validCount > 0) {
// Cast sum to double to get decimal precision
double average = (double)sum / validCount;
std::cout << "Average Normal Temp: " << average << std::endl;
} else {
std::cout << "No valid data collected." << std::endl;
}
return 0;
}