Дан целочисленный массив из 20 элементов. Элементы массива могут принимать целые значения от 0 до 10000 включительно. Опишите на естественном языке или на одном из языков программирования алгоритм, позволяющий найти и вывести максимальное значение среди трёхзначных элементов массива, оканчивающихся на 0. Если в исходном массиве нет элемента, значение которого является трёхзначным числом и при этом не оканичается на 0, то вывести сообщение «Не найдено».
Исходные данные объявлены так, как показано ниже на примерах для некоторых языков программирования и естественного языка. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать некоторые из описанных переменных.
| Бэйсик | Паскаль |
|---|---|
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] кц ... кон |
| Естественный язык | |
Объявляем массив А из 20 элементов. Объявляем целочисленные переменные I, J, MAX. В цикле от 1 до 20 вводим элементы массива А с 1-го по 20-й. | |
| Python | |
// допускается также использовать // целочисленные переменные j, max a = [] n = 20 for i in range(0, n): a.append(int(input())) | |
В качестве ответа Вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например, Free Pascal 2.4) или в виде блок-схемы. В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на естественном языке).
Допускаются иные формулировки ответа, не искажающие его смысла.
| На языке Бейсик | На языке Паскаль |
|---|---|
МАХ =99 FOR I = 1 ТО N IF А(I)>=10 0 AND А(I)<= 9 9 9 AND A(I) MOD 10 = 0 AND А(I)>МАХ THEN MAX = A(I) END IF NEXT I IF MAX >99 THEN PRINT MAX ELSE PRINT "He найдено" END IF | max := 99; for i := 1 to N do if (a[i]>=10 0) and (a[±]<= 990) and (a[i] mod 10=0) and (a[i]>max) then max := a[i]; if max > 99 then writeln (max) else writeln('He найдено'); |
| На языке Си | На алгоритмическом языке |
max = 99; for (i = 0; i < N; i++) if (a[i]>99 && a[i]<991 && a[i]% 10==0 && a[i]>max) max = a[i] ; if (max>99) cout « max « endl; else cout << "He найдено"; | max := 99 нц для i от 1 до N если а[±]>=100 и а[i]<= 990 и mod(а[i],10)=0 и a[i]>max то max := а[i] все кц если max > 99 то вывод max иначе вывод "Не найдено" все |
| На естественном языке | |
Записываем в переменную МАХ начальное значение, равное 99. В цикле от первого элемента до двадцатого находим остаток от деления элемента исходного массива на 10. Если значение данного остатка равно 0 и значение текущего элемента массива больше 99 и меньше 1000, то сравниваем значение текущего элемента массива со значением переменной МАХ. Если текущий элемент массива больше МАХ, то записываем в МАХ значение этого элемента массива. Переходим к следующему элементу. После завершения цикла проверяем значение переменной МАХ. Если оно больше 99, то выводим его, иначе выводим сообщение «Не найдено». |

