if <условие верно> and (a[i] < min) then
Объявляем массив A из 20 элементов. Объявляем целочисленные переменные I, J, MIN. В цикле от 1 до 20 вводим элементы массива A с 1-го по 20-й. Паскаль: 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. Решение: 1) даже если вы хорошо владеете программированием, сначала лучше (прежде всего, для себя) написать алгоритм на русском языке 2) здесь требуется найти минимальный элемент из всех, которые имеют чётное значение и не делятся на 3 3) делимость одного целого числа на другое проверяется с помощью операции взятия остатка (в Паскале – операция mod): первое число делится на второе, если остаток от деления равен 0 4) тогда условие, определяющее отбор нужных элементов, запишется в виде (a[i] mod 2 = 0) and (a[i] mod 3 <> 0) 5) стандартный цикл поиска минимального элемента, удовлетворяющего условию, выглядит так: for i:=1 to N do if <условие верно> and (a[i] < min) then min:= a[i]; 6) остается один вопрос: каким должно быть начальное значение переменной min? его нужно выбрать таким, чтобы для первого же «подходящего» элемента выполнилось условие a[i] < min, и это «временное» начальное значение было бы заменено на реальное 7) к счастью, диапазон входных чисел ограничен (от 0 до 1000), поэтому можно выбрать любое значение, больше 1000, например, 1001 или 9999[2] 8) таким образом, решение задачи на естественном языке выглядит так: Записываем в переменную min значение 1001. 9) аналогичное решение на Паскале: min:=1001; 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);
Программа целиком: Program MyProg; const N=20; var a: array [1..N] of integer; i, j, min: integer; Begin for i:=1 to N do readln(a[i]); min:=1001; 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); End. Очень важно разобраться в программе: что и зачем выполняется!!!!
[1] По традиции нумерация элементов массива в Паскале обычно начинается с единицы, далее N обозначает размер массива (количество элементов). [2] Вообще говоря, в данной задаче не требуется находить номер минимального элемента, поэтому сначала можно записать в переменную min число 1000 – проверьте, что программа все равно выдаст верное значение.
|