Контрольные тренировочные задания
(решения)
Часть 2
Задание 25
Решение примера 1
Дан целочисленный массив из 20 элементов. Элементы массива могут принимать целые значения от 0 до 10 000 включительно. Опишите на естественном языке или на одном из языков программирования алгоритм, позволяющий найти и вывести количество элементов массива НЕ кратных 3.
Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но использовать все описанные переменные не обязательно.
|
const N = 20; var i,j,k:integer; a:array [1..N] of integer; begin for i:=1 to N do readln(a[i]); … end. |
Решение.
Рассмотрим заданный фрагмент решения:
- в цикле со счетчиком i запрашиваются значения элементов массива, т.е. формируется массив;
- из постановки задания видим, что нам придется искать количество чего-то, это значит, что нужно использовать переменную счетчик;
- объявлены три целочисленных переменных: i,j,k; переменная i использована в первом цикле, значит для счетчика можно взять переменную k;
- счетчик всегда нужно обнулять, поэтому следующим оператором будет
- определим, количество чего нам необходимо считать: количество элементов массива не кратных 3. Кратность можно определить через остаток от деления: если значение элемента массива при делении на 3 в остатке не дает 0, значит элемент не кратен трем;
- остаток при делении в паскале — оператор mod. Поскольку нам необходимо просмотреть каждый элемент массива, то это нужно делать в цикле for;
- если условие истинно (т.е. нашелся элемент массива, не кратный трем), то мы увеличиваем счетчик:
- после цикла остается вывести значение счетчика, т.е. вывести количество элементов массива не кратных 3:
так как переменная i уже использована в первом цикле for, то для очередного цикла возьмем неиспользованную переменную j:
for j:=1 to N do if a[j] mod 3 <> 0 then |
inc(k); |
writeln(k); |
Результат:
k:=0; for j:=1 to N do if a[j] mod 3 <> 0 then inc(k); writeln(k); |
Возврат на страницу Решение примеров части 2 задание 25