Дан целочисленный массив из 20 элементов. Элементы массива могут принимать целые значения от 0 до 10000 включительно. Опишите на естественном языке или на одном из языков программирования алгоритм, позволяющий найти и вывести максимальное значение среди трёхзначных элементов массива, делящихся на 5. Если в исходном массиве нет элемента, значение которого является трёхзначным числом и при этом кратно 5, то вывести сообщение «Не найдено».
Исходные данные объявлены так, как показано ниже на примерах для некоторых языков программирования и естественного языка. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать некоторые из описанных переменных.
Бэйсик | Паскаль |
---|---|
N=20 DIM A(N) AS INTEGER DIM I, J, MAX AS INTEGER FOR I=1 TO N INPUT A(I) NEXT I ... END
| const N=20; var a: array [1..N] of integer; i, j, max: integer; begin for i:=1 to N do readln (a[i]); ... end.
|
Си++ | Алгоритмический язык |
#include <iostream> using namespace std; #define N 20 int main () { int a[N]; int i, j, max; for (i=0; i<N; i++) cin >> a[i]; ... } | алг нач цел N=20 целтаб a[1:N] цел i, j, max нц для i от 1 до N ввод a[i] кц ... кон |
Естественный язык | |
Объявляем массив A из 20 элементов. Объявляем целочисленные переменные I, J, MAX. В цикле от 1 до 20 вводим элементы массива A с 1-го по 20-й. ... | |
Python | |
# допускается также # использовать две # целочисленные переменные j, max a = [] n = 20 for i in range(0, n): a.append(int(input())) ... |
В качестве ответа Вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например, Free Pascal 2.4) или в виде блок-схемы. В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на естественном языке).
Пример правильного решения на языке Паскаль
max : = 99;
for i =1 to N do
if (a[i] >= 100) and (a[i] <= 999) and (a[i] mod 5 = 0) and
(a[i] > max) then
max := a[i];
if max > 99
then writeln(max)
else
writeln('He найдено');
На алгоритмическом языке
если а[i] >= 100 и a[i] <= 999 и mod(a[i], 5)=0 и a[i] > max
то
max := a[i]
все
кц
если max > 99
вывод max
иначе
вывод "Не найдено'
все
На языке Бейсик
МАХ = 99
FOR I = 1 ТО N
IF А(I) >= 100 AND А(I) <= 999 AND A(I) MOD 5=0 AND A(I) > MAX
THEN
МАХ = А(I)
END IF
NEXT I
IF MAX > 99 THEN
PRINT MAX
ELSE
PRINT "He найдено"
END IF
На языке Си
max = 99;
for (i = 0; i < N; i++)
if (a[i] > 99 && a[i] < 1000 && a[i]%5==0 && a[i]>max)
max = a[i];
if (max>99)
cout « max « endl;
else
cout << "He найдено";
На естественном языке
Записываем в переменную МАХ начальное значение, равное 99. В цикле от первого элемента до двадцатого находим остаток от деления элемента исходного массива на 5. Если значение данного остатка равно 0 и значение текущего элемента массива больше 99 и меньше 1000, то сравниваем значение текущего элемента массива со значением переменной МАХ. Если текущий элемент массива больше МАХ, то записываем в МАХ значение этого элемента массива. Переходим к следующему элементу.
После завершения цикла проверяем значение переменной МАХ. Если оно больше 99, то выводим его, иначе выводим сообщение «Не найдено».