Добро пожаловать! Если вы хотите успешно сдать ЕГЭ – то вы попали куда надо. Для полноценной подготовки к экзамену egedb.ru предлагает вам: прохождение тестов ЕГЭ по многим предметам с последующим анализом результатов, прорешивание задач определенного типа или на определенные темы, познакомится с процедурой проведения ЕГЭ и многое другое!
Хотите узнать больше о бланках, предоставляемых на экзамене и потренироваться в их заполнении? Всё просто! Наш сайт предлагает потренироваться на электронных копиях блаков – такие тренировки безусловно принесут свои плоды и помогут не допустить ошибок при заполнении.
Вам нужна статистика вашей подготовки на сайте? Войдите в личный кабинет при помощи своей учетной записи в социальной сети «В Контакте» и получите такую возможность. Или может быть вы хотите помочь развитию сайта? При повышенной активности на сайте вы можете быть повышены до уровня модератора и добавлять свои задания на сайт!


Главная

Тесты

Русский язык
Математика
Информатика
Физика
Биология
География
Обществознание
История

Задачи

Русский язык
Математика
Информатика
Физика
Биология
География
Обществознание
История

Как решить

Полезности

Статьи

Новости

Гостевая

Ссылки

Поиск

Вход

Задание C2 по предмету Информатика (№41)

Информатика 2012 год

Алгоритмы обработки массивов

C2

Дан целочисленный массив из 20 элементов. Элементы массива могут принимать целые значения от 0 до 1000. Опишите на русском языке или на одном из языков программирования алгоритм, позволяющий найти и вывести минимальное значение среди элементов массива, которые имеют чётное значение и не делятся на три. Гарантируется, что в исходном массиве есть хотя бы один элемент, значение которого чётно и не кратно трем.
Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но использовать все описанные переменные не обязательно.
Бейсик Паскаль

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 <stdio.h>
#define N 20
void main(void){
int a[N];
int i, j, min;
for (i=0; i<N; i++)
scanf("% d", &a[i]);

}

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


В качестве ответа вам необходимо привести фрагмент программы (или описание алгоритма на естественном языке), который должен находиться на месте многоточия. Вы можете записать решение также на другом языке программирования (укажите название и используемую версию языка программирования, например Borland Pascal 7.0) или в виде блок-схемы. В этом случае вы должны использовать те же самые исходные данные и переменные, какие были предложены в условии например, в образце, записанном на естественном языке).
За правильный ответ 2 балл(ов)
Правильный ответ:
Паскаль:
min := 1000; for i:=1 to N do if (a[i] mod 2=0) and (a[i] mod 3<>0) and (a[i]<min) then min := a[i]; writeln(min);
Си:
min = 1000; for (i=0; i<N; i++) if (a[i]%2==0 && a[i]%3!=0 && a[i]<min) min = a[i]; printf("%d", min);

Бейсик:
MIN = 1000 FOR I = 1 TO N IF (A(I) MOD 2 = 0) AND (A(I) MOD 3 <> 0) AND (A(I) < MIN) THEN MIN = A(I) END IF NEXT I PRINT MIN

Алгоритмический язык:
MIN := 1000 нц для i от 1 до N если mod(a[i],2)=0 и mod(a[i],3)<>0 и a[i]<MIN то MIN := a[i] все кц вывод MIN

На естественном языке:
Записываем в переменную MIN начальное значение, равное 1000. В цикле от первого элемента до двадцатого находим остаток от деления элемента исходного массива на два и на три. Если остаток от деления на два равен нулю и остаток от деления на три не равен нулю, то сравниваем значение текущего элемента массива со значением переменной MIN. Если текущий элемент массива меньше MIN, то записываем в MIN значение этого элемента массива. Переходим к следующему элементу. После завершения цикла выводим значение переменной MIN.
Показать ответ

Ещё задания

Комментарии

Назад