Хотите получать новые статьи блога
прямо себе на почту?
Укажите свой e-mail:


WorldSkills Russia
Яндекс.Метрика Интернет-издание Профобразование

Основные алгоритмы обработки
одномерных массивов

0

План:

  1. Общие замечания
  2. Основные алгоритмы обработки одномерных массивов
    • Вычисление суммы и среднего арифметического элементов массива
    • Поиск максимального/минимального элемента массива
    • Подсчет количества элементов, удовлетворяющих заданному условию
Основные алгоритмы обработки одномерных массивов Скачать материал лекции в формате PDF и презентацию

1. Общие замечания

Алгоритмы обработки массивов включают в себя, как правило, последовательную обработку каждого из элементов массива. Такая последовательная обработка называется сканированием массива, и для ее реализации удобнее всего использовать цикл for. По сложившейся традиции, переменная, используемая в качестве счетчика цикла сканирования элементов массива, называется i. Если в программе требуется не одна, а две переменные-счетчики, то им дают имена i и j.


2. Основные алгоритмы обработки одномерных массивов

а) Вычисление суммы и среднего арифметического элементов массива

Задача 1: Подсчитать сумму элементов массива.

Алгоритм содержит два пункта:

  1. Сумма S=0.
  2. Проход по всем элементам массива и прибавление их значений к сумме S.

Приведем полный текст программы – решение этой задачи:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
program p1;
var
  a: array[1..10] of integer; //массив из 10 целых чисел
  i: integer; // параметр цикла
  S: integer; // сумма элементов массива
begin
  // вводим массив с клавиатуры
  for i:=1 to 10 do
    begin
      write('a[',i,']=');
      readln(a[i]);
    end;
  // подсчёт суммы элементов массива
  {1} S:=0;
  {2} for i:=1 to 10 do S:=S+a[i];
  // вывод полученного значения суммы
  writeln('Сумма элементов массива S=', S);
  readln;
end.
б) Поиск максимального/минимального элемента массива

Задача 2: Найти значение максимального элемента массива.

Алгоритм содержит три пункта:

  1. Максимальным элементом считаем первый элемент: max=A[1].
  2. Начиная со второго элемента, сравниваем имеющийся максимальный элемент max с очередным элементом массива A[i].
  3. Если очередной элемент массива больше имеющегося максимального элемента, то это и есть новый максимальный элемент max=A[i].

Приведем полный текст программы – решение этой задачи:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
program p2;
var
  a: array[1..7] of integer; //массив из 10 целых чисел
  i: integer; // параметр цикла
  max: integer; // значение максимального элемента массива
begin
  // вводим массив с клавиатуры
  for i:=1 to 7 do
    begin
      write('a[',i,']=');
      readln(a[i]);
    end;
    // поиск значение максимального элемента массива
  {1} max:=a[1];
  {2} for i:=2 to 7 do 
  {3}   if a[i]>max then max:=a[i];  
    // вывод значение максимального элемента массива
  writeln('max=', max);
  readln;
end.
в) Подсчет количества элементов, удовлетворяющих заданному условию

Задача 3: Подсчитать, сколько раз в массиве встречается элемент, равный 10.

Задача решается по следующему алгоритму:

  1. Количество нужных элементов k=0.
  2. Проходим по всем элементам массива.
  3. 3И если очередной элемент массива равен 10.
  4. Тогда увеличиваем k (количество элементов равных 10) на 1.

Приведем полный текст программы – решение этой задачи:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
program p3;
var	
  a: array[1..10] of integer; //массив из 10 целых чисел
  i: integer; // параметр цикла
  k: integer; // количество элементов, равных 10
begin
  // ввод массив с клавиатуры
  for i:=1 to 10 do
    begin
      write('a[',i,']=');
      readln(a[i]);
    end;
  // поиск значение максимального элемента массива
  {1} k:=0;
  {2} for i:=1 to 10 do 
  {2}   if a[i]=10 then k:=k+1;  
  // вывод значение максимального элемента массива
  writeln('Количество элементов, равных 10, в массиве: ', k);
  readln;
end.

Возникли вопросы?
Тогда смело пишите комментарий — рада буду ответить!
Агрегирование и групповые функции