Действия над элементами массивов

 

После объявления массива каждый его элемент можно обработать, указав идентификатор массива и индекс элемента в квадратных скобках. Рассмотрим типичные ситуации, возникающие при работе с массивами. Для этого опишем четыре одномерных массива: два (A и B) из элементов целочисленного типа, два (C и D) из элементов вещественного типа и два двумерных массива (V и W), содержащих элементы вещественного типа.

Var A, B: array[1..5] of integer;

C, D: array [1..10] of real;

V, W: array [1..4,1..4] of real;

Инициализация массива

Инициализация – это присваивание каждому элементу массива какого-либо (или одного и того же) значения типа. Например, A[1]:=0; A[2]:=0;... A[5]:=0 или V[1,1]:=0; V[1,2]:=0; и т.д. Но при большом количестве элементов такой способ инициализации нерационален. Гораздо удобнее получить такой же результат, используя оператор FOR:

For I:=1 To 5 Do A[I]:= 0; For I:=1 To 4 Do For J:=1 To 4 Do V[I,J]:=0;

Ввод элементов массива

Паскаль не имеет средств ввода-вывода элементов массива сразу, поэтому ввод и вывод значений производится поэлементно. Чаще всего они вводятся с помощью оператора Read (Readln) с использованием оператора цикла For:

For I:=1 To M Do Begin W Writeln(‘Введите ’,I,’ элемент массива’); Read(A[I]); End; For I:=1 To M Do Begin Writeln(‘Введите ’,I,’строку’); For J:=1 To N Do Read(V[I,J]); End;

Вывод элементов массива

производится аналогично, но с использованием оператора Write (Writeln).

Writeln(‘Вывод массива A’); For I:=1 To M Do Write(A[I]:4:2,' ':2); Writeln; Writeln(‘Вывод массива V’); For I:=1 To M Do Begin For J:=1 To N Do Write(V[I,J]:4:2,' ':2); Writeln; End;

Копирование элементов из одного массива в другой

Для выполнения этого действия необходимо, чтобы массивы, участвующие в этой операции, были описаны одинаково. Например, В:=А; - верно, так как В и А имеют одинаковый тип компонент; А:=С; – неверно, т.к. С имеет компоненты типа real, а А – типа integer и массивы А и С разной длины). Или, используя цикл:

For I:=1 To M Do Begin B[I]:=A[I]; C[I]:=B[I] End; For I:=1 To M Do For J:=1 To N Do W[I,J]:=V[I,J];

Поиск в массиве элементов, удовлетворяющих некоторым условиям

Пусть надо выяснить, сколько элементов в массивах С и W имеют нулевое значение.

  K:=0; For I:=1 To M Do If C[I]=0 Then K:=K+1; K:=0; For I:=1 To M Do For J:=1 To N Do If W[I,J]=0 Then K:=K+1;

После выполнения цикла переменная К будет содержать количество элементов с нулевым значением.

Поиск минимального (максимального) элемента массива рассмотрим на примере поиска минимального элемента в одномерном массиве С и максимального – в двумерном массиве W.

Min:=C[1]; For I:=1 To M Do If C[I]<Min Then Min:=C[I];   Max:=W[1,1]; For I:=1 To M Do For J:=1 To N Do If W[I,J]>Max Then Max:=W[I,J];

Вычисление суммы (произведения) элементов массива

Найти сумму (S) и произведение (P) элементов массивов С и W.

S:=0; P:=1; For I:=1 To M Do Begin S:=S+С[I]; P:=P*С[I]; End; S:=0; P:=1; For I:=1 To M Do For J:=1 To N Do Begin S:=S+W[I,J]; P:=P*W[I,J]; End;

Перестановка элементов массива

осуществляется с использованием вспомогательной переменной того же типа, что и базовый тип массивов.

Поменять местами первый и четвертый элемент массива А   Поменять местами первый, первый и четвертый, четвертый элемент массива W
Per:=А[1]; A[1]:=A[4]; A[4]:=Per; Per:=W[1,1]; W[1,1]:=W[4,4]; W[4,4]:=Per;

Суммирование элементов матриц по строкам или столбцам

По строкам По столбцам
For I:=1 To M Do Begin Str[I]:=0; For J:=1 To N Do tr[I]:=Str[I]+V[I,J]; End; For J:=1 To N Do Begin Stl[J]:=0; For I:=1 To M Do Stl[J]:=Stl[J]+V[I,J]; End;

Поиск минимального (максимального) элемента строки(столбца)

Результатом этого поиска является одномерный массив длиной М (для строк) или N (для столбцов).

 

For I:=1 To M Do Begin MIN[I]:=V[I,1]; For J:=2 To N Do If V[I,J] < MIN[I] Then MIN[I]:=V[I,J]; End; For J:=1 To N Do Begin MIN[J]:=V[1,J]; For I:=2 To M Do If V[I,J] < MIN[J] Then MIN[J]:=V[I,J]; End;

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: