Дан целочисленный массив из 20 элементов. Элементы массива могут принимать целые значения от -1000 до 1000 включительно. Опишите на естественном языке или на одном из языков программирования алгоритм, позволяющий найти и вывести минимальное значение среди положительных элементов массива, не кратных 6. Если в исходном массиве нет элемента, значение которого положительно и не делится на 6, то вывести сообщение «Не найдено».
Исходные данные объявлены так, как показано ниже на примерах для некоторых языков программирования и естественного языка. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать некоторые из описанных переменных.
| Бэйсик | Паскаль |
|---|---|
N = 20 DIM A(N) AS INTEGER DIM I, J, MIN 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, min: 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, min; for (i = 0; i < N; i++) cin >> a[i]; ... } | алг нач цел N = 20 целтаб a[1:N] цел i, j, min нц для i от 1 до N ввод a[i] кц ... кон |
| Естественный язык | |
Объявляем массив А из 20 элементов. Объявляем целочисленные переменные I, J, MIN. В цикле от 1 до 20 вводим элементы массива А с 1-го по 20-й. | |
| Python | |
// допускается также использовать // целочисленные переменные j, min a = [] n = 20 for i in range(0, n): a.append(int(input())) | |
В качестве ответа Вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например, Free Pascal 2.4) или в виде блок-схемы. В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на естественном языке).
Решение на языке Си:
min = 1001;
for (i = 0; i < N; i++)
{ if ((a[i] < min) && (a[i] % 6 != 0) && ((a[i] > 0)) min = a[i];
if (min == 1001)
printf ("%s", "Не найдено.");
else
printf ("%d", min);
Решение на языке Паскаль:
min := 1001;
for i := 1 to N do
if (a[i] < min) and (a[i] mod 6 <> 0) and (a[i] > 0) then
min := a[i];
if (min = 1001) then
writeln('Не найдено')
else
writeln(min);

