Урок 6. Поиск элементов с заданными свойствами

Цель урока: изучить поиск одного элемента, удовлетворяющего условию поиска, нахождение всех элементов, удовлетворяющих условию поиска.


Ментальная карта “Действия над элементами массива”


Задания по теме урока

Задание 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. В массиве хранится информация об отметках учащихся за контрольную работу (числа от 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.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *