Задание № 7567
Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от -1000 до 1000 включительно. Опишите на естественном языке или на одном из языков программирования алгоритм, позволяющий найти и вывести максимальное значение среди отрицательных элементов массива, не оканчивающихся на 3. Если в исходном массиве нет элемента, значение которого отрицательно и не оканчивается цифрой 3, то вывести сообщение "Не найдено".
Исходные данные объявлены так, как показано ниже на примерах для некоторых языков программирования и естественного языка. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать некоторые из описанных переменных.
Бейсик
N = 30
DIM A(N) AS INTEGER
DIM, I, J, MAX AS INTEGER
FOR I = 1 TO N
INPUT A(I)
NEXT I
...
END
Паскаль
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]);
...
}
Алгоритмический язык
алг
нац
цел N = 30
целтаб а[1:N]
цел i, j, max
нц для i от 1 до N
ввода a[i]
кц
...
кон
Естественный язык
Объявляем массив А из 30 элементов.
Объявляем целочисленные переменные I, J, MAX.
В цикле от 1 до 30 вводим элементы массива А с 1-го по 30-й.
...
В качестве ответа Вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например Free Pascal 2.4) или в виде блок-схемы. В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на естественном языке).
Содержание верного ответа
На языке Паскаль
шах := -1001; for i := 1 to N do
if (a[i] < 0) and ((-1 * a[i]) mod 10 <> 3) and (a[i] > max) then
max := a[i];
if max > -1001 then writeln(max) else writeln('He найдено');
На алгоритмическом языке
max := -1001
нц для i от 1 до N
если a[i] < 0 и mod(-l * a[i], 10) о 3 и a[i] > max
то
max := a[i]
все
кц
если max > -1001
то
вывод max
иначе
вывод "He найдено"
все
На языке Бейсик
МАХ = -1001 FOR I = 1 ТО N
IF, А (I) < 0 AND (-1 * A(I) ) MOD 10 О 3 AND A(I) > MAX THEN
МАХ = А(I)
END IF NEXT I
IF MAX > -1001 THEN
PRINT MAX
ELSE
PRINT "He найдено"
END IF
На языке Си
max = -1001;
for (i = 0; i < N; i++)
if (a[i] < 0 && (-1 * a[i]) % 10 != 3 && a[i] > max)
max = a[i];
if (max > -1001)
printf("%d", max);
else
printf("Не найдено");
Ответ: Нашли ошибку в задании? Выделите фрагмент и нажмите Ctrl + Enter.