Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Программирование задач на обработку одномерных массивов




Цель работы

Закрепить практические навыки работы с системой Pascal ABC.net, рассмотреть типовые задачи обработки одномерных массивов.

Общие сведения

Массив – это упорядоченный набор однотипных элементов, обозначаемых одним именем; доступ к элементу массива осуществляется по его номеру. Для записи элементов массива в память компьютера нужно выделить для их хранения необходимое количество ячеек памяти, которое определяется размером массива.

В программе для каждого массива должны быть указаны его параметры: имя, размерность и размер. Бывают одномерные, двумерные и т.д. массивы. Это называется размерностью.

Образующие массив переменные называются элементами массива. Каждый элемент массива обозначается именем массива с индексом, заключенным в квадратные скобки: A[1], A[2], A[3],..., A[n]. Индекс определяет положение элемента массива данных относительно его начала.

Одномерные массивы (последовательности)

A: 23,-9,0, 48,14, -5,10,60

A[1]=23, A[3]=0, A[7]=10,

где i - номер элемента, A[ i ] - элемент массива, стоящий на i -ом месте.

Примеры решения задач по теме «Программирование задач на обработку одномерных массивов»

Задание 1

Вычислить сумму и произведение положительных элементов одномерного массива вещественных чисел.

Этапы решения задачи

1. Определим переменные, которые будем использовать в программе:


Имя массива A

Размер массива N

Индекс массива i

Сумма элементов S

Произведение элементов P.


2. При накапливании суммы переменную необходимо обнулить, а при накапливании произведения – присвоить 1. Для обращения к элементам массива удобно использовать оператор цикла for...Составим блок-схему алгоритма и программу расчета суммы и произведения положительных элементов массива.

 
 

 

 

program massiv1; var a: array [1…100] of real; n, I: integer; p, s: real; begin s: = 0; {подготовка переменной для суммы } p: =1; {подготовка переменной для произведения} writeln ('введите размер массива n='); readln (n); writeln ('введите элементы массива'); for i:=1 to n do begin Write(‘a[‘,i,’]=’); readln (a[i]); end; for i:=1 to n do if (a[ i ]>0) then begin s:= s + a[ i ]; p:= p * a[ i ]; end; writeln ('Сумма = ',s:5:2,); writeln ('Произведение =',p:5:2); end.

 

3. Выполним программу в среде Pascal ABC.NET (см. п.3.1.4).

Задание 2

Найти максимальный элемент массива и определить его номер.

Этапы решения задачи

1. Определим переменные, которые будем использовать в программе: имя массива A, размер массива N, индекс массива i, максимальный элемент max, номер минимального элемента nmax. Принимаем за максимальный (max) первый элемент массива и запоминаем его номер (nmax). Затем сравниваем каждый последующий элемент массива с текущим значением максимального элемента. Если значение элемента оказывается больше текущего максимального, то max присваивается значение этого элемента, а nmax – номер этого элемента.

2. Составим блок-схему алгоритма и программу поиска максимального элемента и его номера в массиве.

    program massiv2; var a: array [1…100] of integer; max, i, n, nmax: integer; begin writeln ('введите размер массива n='); readln (n); writeln ('введите элементы массива'); for i:=1 to n do begin Write(‘a[‘,i,’]=’); readln (a[i]); end; max:=a[1]; { максимальный элемент} nmax:=1; {номер максимального элемента} for i:=1 to n do If a[i]>max then begin max:=a[i]; nmax:=i; end; writeln ('максимальный эл-т =', max); writeln ('номер макс. эл-та =', nmax); end.

Задание 3

Задан массив целых чисел. Отсортировать элементы одномерного массива по возрастанию.

Этапы решения задачи

1. Определим переменные, которые будем использовать в программе: имя массива A, размер массива N, индекс массива i, флажок f, дополнительная переменная для обмена местами соседних элементов P.

2. Составим блок-схему алгоритма и программу сортировки элементов массива.

  program massiv3; var a: array [1…100] of integer; f, i, n, p: integer; begin writeln ('введите размер массива n='); readln (n); writeln ('введите элементы массива'); for i:=1 to n do begin Write(‘a[‘,i,’]=’); readln (a[i]); end; repeat f:=0; for i:=1 to n-1 do if a[ i ]>a[i+1] then begin p:=a[ i ]; a[ i ]:=a[i+1]; a[i+1]:=p; f:=1; end; until f=0; for i:=1 to n do writeln (‘a[‘, i,’ ]=’, a[ i ]); end.  

3. Существует много способов сортировки элементов массива. В данном алгоритме используются вложенные циклы. Внутренний цикл (for …) – позволяет один раз просмотреть массив, сравнивая соседние элементы. В случае, если предыдущий элемент (A[ i ]) окажется больше последующего (A[ i +1]), элементы меняются местами через дополнительную переменную p. Внешний цикл(repeat…until) – повторяется до тех пор, пока массив не будет упорядочен. В программе применяется переменная – флажок:

f =1 – признак того, что два соседних элемента менялись местами, массив еще не упорядочен; f =0 – признак того, что массив упорядочен.

4. Выполним программу в среде Pascal ABC.NET (см. п.3.1.4).

 

Варианты заданий по теме «Программирование задач на обработку одномерных массивов»

Задание
  Дано: массив А(N). Вычислить сумму элементов массива, кратных 3 и количество отрицательных элементов.
  Дано: массив А(N). Найти сумму его элементов с четными номерами, количество нечетных элементов. Размер произвольный.
  Дано: массив А(N). Найти среднее арифметическое его элементов с нечетными номерами. Размер массива произвольный.
  Дано: массив А(N). Найти произведение элементов, принадлежащих интервалу [-10, 30]. Размер массива произвольный.
  Дано: массив А(N). Найти наибольший элемент и его номер в массиве. Поменять местами первый и максимальный элемент.
  Дано: массив А(N). Найти среднее арифметическое элементов массива, больших некоторого числа С. Размер массива произвольный. Значение С вводится произвольно.
  Дано: массив А(N). Вычислить произведение и количество нечетных элементов массива. Размер массива произвольный.
  Дано: массив А(N). Упорядочить массив по убыванию. Вычислить произведение элементов массива с чётными индексами.
  Дано: массив А(N). Вычислить среднее арифметическое элементов с чётными индексами.
  Дано: массив А(N). Упорядочить массив по возрастанию. Вычислить сумму элементов с нечётными индексами в упорядоченном массиве.
  Дано: массив А(N). Сформировать новый массив В, состоящий из положительных элементов массива А. Размер массива произвольный. Вычислить сумму элементов в полученном массиве.
  Дано: массив А(N). Найти наименьший нечетный элемент массива и его номер. Размер массива произвольный.
  Дано: массив А(N). Сформировать новый массив В, состоящий из положительных элементов массива А и найти в нем наибольший элемент. Размер массива произвольный.
  Дано: массив А(N). Сформировать новый массив В, состоящий из нечетных элементов массива А и найти в нем сумму элементов.
  Дано: массив А(N). Сформировать новый массив В, состоящий из элементов массива А, принадлежащих интервалу [1;30], упорядочить его по возрастанию. Размер массива произвольный.
  Дано: массив А(N). Найти количество элементов массива, значение которых больше, чем среднее арифметическое его элементов.
  Дано: массив А(N). Подсчитать, сколько раз в массиве встречается максимальный элемент.
  Дано: массив А(N). Найдите наибольший индекс отрицательного элемента.
  Дано: массив А(N). Каждый чётный элемент массива заменить числом 10.
  Дано: массив А(N). Найти максимальный и минимальный элементы массива и поменять их местами.
Поделиться:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...