Программа анализа скоростного режима
Алгоритм требует обработки массива, поскольку для вычисления средней скорости нужен полный массив данных, и только после этого можно выполнить пункты 5 и 6 (сравнение с найденной средней скоростью).
program SpeedControl;
const N = 100;
var i, max_speed, count_max, count_over_60, count_below_avg: integer;
avg_speed, sum_speed: real;
A: array [1..N] of integer; // Скорости
begin
// 1. Ввод/генерация скоростей (от 0 до 250) и первичные расчеты
sum_speed := 0;
count_over_60 := 0;
max_speed := 0;
for i := 1 to N do
begin
A[i] := random(251); // Скорость от 0 до 250
sum_speed := sum_speed + A[i];
if A[i] > 60 then count_over_60 := count_over_60 + 1; // 1)
if A[i] > max_speed then max_speed := A[i]; // 2)
end;
// 4) Вычисление средней скорости
avg_speed := sum_speed / N;
// 3) Подсчет автомобилей с максимальной скоростью
count_max := 0;
for i := 1 to N do
if A[i] = max_speed then count_max := count_max + 1;
// 5) Подсчет автомобилей со скоростью ниже средней
count_below_avg := 0;
for i := 1 to N do
if A[i] < avg_speed then count_below_avg := count_below_avg + 1;
// 6) Комментарий для каждого автомобиля
writeln('---');
writeln('Сводная информация:');
writeln('1) Количество превысивших 60 км/ч: ', count_over_60);
writeln('2) Максимальная скорость: ', max_speed);
writeln('3) Количество с максимальной скоростью: ', count_max);
writeln('4) Средняя скорость: ', avg_speed : 0 : 2);
writeln('5) Количество со скоростью ниже средней: ', count_below_avg);
writeln('---');
writeln('6) Скорость и комментарии для каждого автомобиля:');
for i := 1 to N do
begin
write('Автомобиль №', i, ' - Скорость ', A[i], ' км/ч: ');
if (A[i] < 1) or (A[i] > 250) then
writeln('Ошибка');
else if A[i] > 60 then
writeln('Нарушитель, если скорость превышает 60 км/ч, но не превышает 250 км/ч');
else if (A[i] >= 30) and (A[i] <= 60) then
writeln('Дисциплинированный водитель, если скорость от 30 до 60 км/ч');
else if A[i] < 30 then
writeln('Тише едешь - дальше будешь, если скорость меньше 30 км/ч');
// В данном решении все условия взаимоисключающие и охватывают весь диапазон от 1 до 250
end;
end.