ГИА

Решаем 20.2

Один из вариантов решения практического задания
Постановка задачи:

Напишите программу для решения следующей задачи. Камера наблюдения регистрирует в автоматическом режиме скорость проезжающих мимо неё автомобилей, округляя значения скорости до целых чисел. Необходимо определить максимальную зарегистрированную скорость автомобиля. Если скорость хотя бы одного автомобиля была меньше 30 км/ч, выведите YES, иначе NO.
Программа получает на вход число проехавших автомобилей N (1 <= N <= 30), затем указываются их скорости. Значение скорости не может быть меньше 1 и больше 300. Программа должна сначала вывести максимальную скорость, затем YES или NO. (Источник: ФИПИ: ГИА 2013. Типовые экзаменационные варианты. Вариант 1. Стр. 15).
FreePascal

 
program avto; 
uses   crt; 
var     
    v,max,i,N:integer;     
    f:boolean; 
begin 
clrscr; 
readln(N); 
f := false; {Допустим что скорость авто >=30}
max := 0; i := 0;
randomize; {Можно непосредственно вводить в цикле}
repeat
inc(i);
v := random(300) + 1; {Получаем скорость, случайно:)}
writeln(v); {Если не random'им, то заменить на readln}
if v > max then
    max := v;
if v < 30 then
    f := true;
until i = N;
writeln('---------------------------------');
{Выводим результат}
writeln(max);
if f then
    writeln('YES')
else
    writeln('NO')
end.

C++

#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;

int main() {
    srand(time(0));
    int max = 0, i = 0, N;
    cout << "N = "; cin >> N;
    bool f = false;
    do {
        ++i;
        int v = 1 + rand() % 300;
        cout << v << endl;
        if (v > max) max = v;
        if (v < 30) f = true;
    } while (i != N);
    cout << "---------------------------------\n"
         << max
         << "\n"
         << (f ? "YES" : "NO")
         << endl;
    return 0;
}

Тестирование для 10 авто

10
106
247
14
172
29
190
134
175
277
165
---------------------------------
277
YES

Добавить комментарий