Определить среднюю зарегистрированную скорость всех автомобилей - Pascal ABC

Узнай цену своей работы

Формулировка задачи:

Напишите программу для решения следующей задачи. Камера наблюдения регистрирует в автоматическом режиме скорость проезжающих мимо нее автомобилей, округляя значения скорости до целых чисел. Необходимо определить среднюю зарегистрированную скорость всех автомобилей. Если скорость хотя бы одного автомобиля была не меньше 60 км/ч, выведи YES, иначе выведите NO. Программа получает на вход число проехавших автомобилей N ( 1 ≤ N ≤ 30), затем указываются их скорости. Значение скорости не может быть меньше 1 и больше 300. Программа должна сначала вывести среднюю скорость с точностью до одного знака после запятой, затем YES или NO.

Решение задачи: «Определить среднюю зарегистрированную скорость всех автомобилей»

textual
Листинг программы
  Uses Crt;
  Var a:Array[1..30] of 0..301;
      i,j,n,max,min,sr:1..30; b:boolean;
Begin
  ClrScr;
  b:=false;
  Writeln('Сколько автомобилей проехали возле камеры');
  Readln(n);
  Writeln('Введите скорость этих автомобилей');
  For i:=1 to n do 
    Begin
      Readln(a[i]);
      If (a[i]=0) or (a[i]=301) Then Halt;
    End;
  max:=a[1];  
  For i:=1 to n do
    If a[i]>max Then Begin max:=a[i]; j:=i; End; 
  a[j]:=0;  
  min:=a[1];
  For i:=1 to n do
    If a[i]<min Then Begin min:=a[i]; j:=i; End;
  a[j]:=301;
  sr:=a[1];
  For i:=1 to n do
    If (a[i]<>301) and (a[i]<>0) and (a[i]>sr) Then sr:=a[i];
  Writeln('Средняя скорость всех автомобилей: ',sr);
  For i:=1 to n do
    If a[i]>=60 Then b:=true Else b:=false;
  If b=true Then Writeln('YES') Else If b=false Then Writeln('NO'); 
End.

Объяснение кода листинга программы

  1. Создается переменная a типа Array[1..30] of 0..301 для хранения скоростей автомобилей.
  2. Инициализируется булева переменная b значением false.
  3. Выводится сообщение Сколько автомобилей проехали возле камеры и Введите скорость этих автомобилей.
  4. В цикле For i:=1 to n do считывается скорость каждого автомобиля.
  5. Проверяется, не равна ли скорость нулю или 301. Если это так, то цикл прерывается командой Halt.
  6. Максимальная скорость сохраняется в переменной max.
  7. Минимальная скорость сохраняется в переменной min.
  8. Скорость a[1] (первого автомобиля) присваивается переменной sr.
  9. Выводится сообщение Средняя скорость всех автомобилей: и значение sr.
  10. В цикле For i:=1 to n do проверяется, если скорость автомобиля a[i] больше текущей максимальной скорости max, то обновляется значение max.
  11. Если найдена минимальная скорость, то обновляется значение min.
  12. Если найдена средняя скорость, то выводится сообщение YES или NO.
  13. Конец программы.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4.067 из 5
Похожие ответы