Задание № 7199

Дан целочисленный массив из 30 элементов. Элементы массива могут принимать целые значения от 0 до 10 000 включительно. Опишите на естественном языке или на одном из языков программирования алгоритм, позволяющий найти и вывести минимальное значение среди трёхзначных элементов массива, не делящихся на 20. Если в исходном массиве нет трёхзначного элемента, не кратного 20, то вывести сообщение «Не найдено».

Исходные данные объявлены так, как показано ниже на примерах для некоторых языков программирования и естественного языка. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать некоторые из описанных переменных.

Бейсик

N = 30
DIM A(N) AS INTEGER
DIM I, J, MIN AS INTEGER
FOR I = 1 TO N
    INPUT A(I)
NEXT I
...
END

Алгоритмический язык

алг
нач
    цел N = 30
    целтаб а[1:N]
    цел i, j, min
    нц для i от 1 до N
        ввод а[i]
    кц
    ...
кон

Паскаль

const
    N = 30;
var
    a: array [1..N] of integer;
    i, j, min: 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, min;
    for (i =0; i < N; i++)
        scanf("%d", &a[i]);
    ...
}

Естественный язык

Объявляем массив А из 30 элементов.	
Объявляем целочисленные переменные I, J, MIN.
В цикле от 1 до 30 вводим элементы массива А с 1-го по 30-й.

В качестве ответа Вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например Free Pascal 2.4) или в виде блок-схемы. В этом случае Вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии (например, в образце, записанном на естественном языке).


Решать другие задания по теме: Ал­го­рит­мы обработки массивов

Показать ответ
Комментарий:

Содержание верного ответа

На языке Паскаль

 min := 1000;
for i := 1 to N do
    if (a [i] >= 100) and (a[i] <= 999) and (a [ i] mod 20 <> 0) and (a[i] < min) then
        min := a[i];
if min < 1000 then writeln(min) else writeln('He найдено');

На алгоритмическом языке

 min := 1000 
нц для i от 1 до N
    если a[i] >= 100 и a[i] <= 999 и mod(a[i], 20) <> 0 и a[i] < min
    то
        min := a[i] все
кц
если min < 1000
то
    вывод min
иначе
    вывод "He найдено"
все

На языке Бейсик

 MIN = 1000 
FOR I = 1 ТО N
    IF А(I) >= 100 AND А(I) <= 999 AND A(I) MOD 20 <> 0 AND A(I) < MIN THEN
        MIN = А(I)
    END IF
NEXT I
IF MIN < 1000 THEN
    PRINT MIN
ELSE
    PRINT "He найдено"
END IF

На языке Си

min= 1000;
for (i = 0; i < N; i++)
    if (a[i] >= 100 && a[i] <= 999 && a[i] % 20! = 0 && a[i] < min)
        min = a[i];
if (min < 1000)
    printf("%d", min);
else
    printf("Не найдено");
Ответ:

Нашли ошибку в задании? Выделите фрагмент и нажмите Ctrl + Enter.