Задание № 7195
Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от 0 до 10 000 включительно. Опишите на естественном языке или на одном из языков программирования алгоритм, позволяющий найти и вывести максимальное значение среди трёхзначных элементов массива, не делящихся на 20. Если в исходном массиве нет трёхзначного элемента, не кратного 20, то вывести сообщение «Не найдено».
Исходные данные объявлены так, как показано ниже на примерах для некоторых языков программирования и естественного языка. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать некоторые из описанных переменных.
Бейсик
N = 30
DIM A(N) AS INTEGER
DIM I, J, MAX AS INTEGER
FOR I = 1 TO N
INPUT A(I)
NEXT I
...
END
Алгоритмический язык
алг
нач
цел N = 30
целтаб a[1:N]
цел i, j, max
нц для i от 1 до N
ввод a[i]
кц
...
кон
Паскаль
const
N = 30;
var
a: array [1..N] of integer;
i, j, max: integer;
begin
for i := 1 to N do
readln(a[i]);
...
end.
Си
#include <stdio.h>
#define N 30
void main() {
int a[N];
int i, j, max;
for (i = 0; i < N; i + + )
scanf("%d", &a [i]);
...
}
Естественный язык
Объявляем массив А из 30 элементов.
Объявляем целочисленные переменные I, J, МАХ.
В цикле от 1 до 30 вводим элементы массива А с 1-го по 30-й.
В качестве ответа Вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например Free Pascal 2.4) или в виде блок-схемы. В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, за¬писанном на естественном языке).
Содержание верного ответа
На языке Паскаль
max : = 99;
for i := 1 to N do
if (a[i] >= 100) and (a[i] <= 999) and (a[i] mod 20 <> 0) and (a[i] > max)
then
max := a[i];
if max > 99 then writeln(max) else writeln('He найдено');
На алгоритмическом языке
max := 99
нц для i от 1 до N
если а[i] >= 100 и а[i] <= 999 и mod(a[i], 20) о 0 и а[i] > max
то
max := а[i]
все
кц
если max > 99
то
вывод max
иначе
вывод "Не найдено"
все
На языке Бейсик
МАХ =99
FOR I = 1 ТО N
IF А(I) >= 100 AND А(I) <= 999 AND А(I) MOD 20 <> 0 AND А(I) > MAX THEN
МАХ = А(I)
END IF
NEXT I
IF MAX > 99 THEN
PRINT MAX
ELSE
PRINT "He найдено"
END IF
На языке Си
m = 99;
for (i = 0; i < N; i++)
if (a[i] >= 100 && a[i] <= 999 && a[i] % 20! = 0 && a[i] > max)
max = a[i];
if (max > 99)
printf("%d", max);
else
printf("Не найдено");
Ответ: Нашли ошибку в задании? Выделите фрагмент и нажмите Ctrl + Enter.