Цель урока: изучить поиск одного элемента, удовлетворяющего условию поиска, нахождение всех элементов, удовлетворяющих условию поиска.
Задания по теме урока
Задание 1. Составьте программу, которая с помощью генератора случайных чисел формирует массив из 20 случайных целых чисел на промежутке от -20 до 20. Вывести на экран числа кратные четырем, а также их количество.
Задание 2. Составьте программу, которая заполняет массив из 20 элементов случайными целыми числами от -50 до 50 и выводит на экран сначала все отрицательные элементы, а затем все положительные элементы.
Указание. в программе у вас будет два цикла обработки: первый цикл будет выводить только отрицательные элементы, второй – только положительные.
Задание 3. В массиве хранится информация о возрасте n учащихся класса (числа от 14 до 16). Составьте программу, находящую номера учащихся и их количество, которым исполнилось 16 лет. Число n и значения элементов массива a[1..n] вводится с клавиатуры.
Задание 4. В массиве хранится информация о росте n учащихся класса (числа от 160 до 180). Определите количество учащихся, рост которых больше среднего роста по классу. Число n вводится с клавиатуры, а значения элементов массива a[1..n] получить с помощью генератора случайных чисел.
Задание 5. В массиве хранится информация об отметках n учащихся за контрольную работу (числа от 1 до 10). Составьте программу, которая вычисляет количество учащихся, получивших неудовлетворительные отметки (0, 1, 2) и количество учащихся, получивших наивысшие отметки (9, 10). Число n и значения элементов массива a[1..n] вводится с клавиатуры.
Дополнительное задание
В массиве a[1..n] хранятся целые числа. Вычислить сумму модулей элементов массива, расположенных после первого отрицательного элемента.
Например, в массиве [5, 3, -1, 8, 0, -6, 1] первый отрицательный элемент является третьим по счету, а сумма модулей стоящих после него элементов массива будет составлять 8 + 0 + 6 + 1 = 15.
Домашнее задание
§ 5.1-5.3 учебного пособия, ответить на вопросы после параграфа.
Форма отправки файлов
Форма видна только зарегистрированным пользователям.
Примеры решения задач
Пример 1. Составьте программу, которая формирует и выводит на экран массив из 10 случайных целых чисел в интервале от 1 до 20, а затем выводит на экран нечетные элементы массива и их количество.
var
a: array [1..10] of integer;
k, i: integer;
begin
writeln('Исходный массив: ');
for i := 1 to 10 do
begin
a[i] := random(20)+ 1;
write(a[i], ' ') ;
end;
writeln('Нечетные элементы массива: ');
k:=0; {счетчик количества нечетных элементов}
for i := 1 to 10 do
if a[i] mod 2 <> 0 then
begin
k := k + 1 ;
write(a[i], ' ');
end;
writeln ('Количество нечетных элементов: ', k);
end.
Пример 2. Составить программу, которая определяет, есть ли в классе хотя бы один ученик с ростом 172 см и выводит его номер по списку.
const
h: array[1..12] of integer = (160, 154, 170, 160, 172, 181, 170, 175, 152, 157, 155, 168);
var
i, k: integer ;
begin
k := 0; { начальное значение k }
for i := 1 to 12 do { просмотр массива }
if h[i] = 172
then k := i;
if k > 0 then
writeln('номер ученика по списку = ', k) { вывод }
else writeln('ученика с таким ростом нет');
end.
Пример 3. Составить программу, которая вводит с клавиатуры значения элементов массива a[1..n] состоящего из целых чисел, затем выводит на экран все отрицательные элементы. Число n вводится с клавиатуры.
var
a: array [1..100] of integer;
n, i, k: integer;
begin
read(n);
for i := 1 to n do
read(a[i]);
k := 0;
writeln('Элементы, кратные 5: ', k);
for i := 1 to n do
if a[i] mod 5 = 0 then
begin
k := k + 1;
write(a[i], ' ');
end;
writeln; //переводим курсор на новую строку
writeln('Число элементов, кратных 5: ', k);
end.
Пример 4. В массиве хранится информация о годовых отметках 25 учащихся по математике (случайные числа от 2 до 10). Определить, есть ли в классе учащиеся, имеющие отметку 10, и если да, вывести порядковые номера этих учащихся.
var
a: array [1..25] of integer;
i,k: integer;
begin
writeln('Годовые отметки учащихся: ');
for i := 1 to 25 do
begin
a[i] := random(9) + 2;
write(a[i],' ');
end;
writeln;
k := 0;
for i := 1 to 25 do
if a[i] = 10 then
begin
k := k + 1;
writeln('Имеет отметку 10 учащийся с номером: ', i);
end;
if k=0 then
writeln('Нет таких учащихся');
end.