Общие сведения. Массив – это упорядоченная совокупность значений одинакового типа, объединенная одним именем

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

Если массив одномерный рис. 1 а, б, то для определения положения элемента достаточно задания номера ячейки. Выделенные ячейки имеют номера 3, 5, 7, а соответствующие элементы массива, если массив в целом обозначить буквой А, обозначаются соответственно как A[3], A[5], A[7]. Одномерные массивы часто называют векторами.

Если массив двумерный, то для определения положения какого-либо элемента достаточно задания номера строки и столбца, на пересечении которых находиться рассматриваемый элемент. Так выделенные на рис. 1 в элементы массива имеют следующие обозначения B[1,1], B[1,4], B[5,2].

1 2 3 4 5 6 7 8

 
 

 


а)

1 2 3 4

- вектор столбец 5

 

двумерный массив

 

в)

б)

 

Рис.1

 

Причём первым в обозначении элемента массива стоит номер строки, а вторым - столбца.

Точно также задается положение трёх, четырёх и n-мерных массивов.

Итак, массив характеризуется размерностью и длиной по направлению каждой из размерностей.

Если массив состоит из одного столбца или одной строки и состоит из пяти символов, то говорят, что массив одномерный длиной в 5 элементов.

Если массив представляет собой таблицу из 4 строк и 5 столбцов, то говорят, что массив двумерный длиной 4 ´ 5.

Точно также оговариваются характеристики любого n - мерного массива.

Если какая-либо переменная в программе является массивом, то её необходимо описать в разделе переменных. Простейшая форма описания одномерного массива имеет вид:

Var v: array [n...m] of t ;

где v – имя массива, формируется по правилам задания имён переменных;

n и m – наибольшее и наименьшее значение индекса массива, может быть целого и перечисляемого типа;

t – тип элемента массива, может быть любым типом,существующим в Паскале.

Например, запись: var m: array [1..8] of real

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

В описании массивов большей размерности предел изменения этой размерности отделяется друг от друга запятой.

Запись

Var C: array [1..5, 1..4] of integer

означает, что в программе имеется целочисленный массив С, состоящий из пяти строк и четырёх столбцов.

Для описания многомерных массивов в Паскале существует целый ряд способов. Следующие группы операторов задают описание одного и того же двумерного массива А, представляющего собой таблицу размером 2´3 (2 строки, 3 столбца)

Первый способ:

Type

Stroka = array [1..3] of real;

Matr = array [1..2] of stroka;

Var

V: stroka;

A: matr ;

Второй способ:

Type

Matr= array [1..2] of array [1..3] of real;

Var

A: matr;

Третий способ:

Type

Matr = array [1..2,1..3] of real;

Var

A: matr;

Четвёртый способ:

Var

A: array [1..2,1..3] of real;

В первом способе описания переменная V объявлена как одномерный массив из трёх элементов вещественного типа. Переменная А имеет смысл двумерного массива из двух строк, в каждую из которых включено по три элемента.

Второй, третий и четвертый способы описания массива получаются из первого путем его последовательного упрощения. Так второй способ описания получен из первого путём исключения определения типа stroka в определении типа matr.

В Паскале типом индекса (номером) элемента массива не обязательно является целое число. Им может быть также переменная перечисляемого типа, например:

Type

Fam =(ivanov, socolov, andreev);

Var

Ball: array [fam] of real ;

Последняя запись даёт описание вещественного массива, состоящего из трёх элементов, но порядковыми «номерами» элементов массива являются переменные перечисляемого типа Ivanov, Socolov, Andreev.

Задание значений элементам массива может выполняться при помощи операторов присваивания:

A [I] := A[2] + 2.6E2

A [1, 2] := 2.3 + P1

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

Ниже рассматривается ввод и вывод одномерного массива А, состоящего из пяти элементов.

 

 

Program VV;

Var

A: array [1..5] of real ;

I: integer;

Begin

For i:=1 to 5 do

Read(A[i]);

For i:=1 to 5 do

Write(A[i])

End.

В процессе ввода элементы массива должны отделяться друг от друга пробелами.

Следующая программа реализует ввод и вывод двумерного массива А (3´4). Причем ввод организован в виде матрицы по строкам:

Program WVA;

Var

A: array[1..3,1..4] of real;

I, j: integer;

Begin

For i:=1 to 3 do

For j:=1 to 4 do

Read(A[i,j]);

For i:=1 to 3 do

Begin

For j:=1 to 4 do

Write(A[i,j]);

Writeln;

End

End.

Рассмотрим пример программы с использованием массивов.

Пример 1: Составить программу для вычисления средних значений элементов списков А, В, С, содержащих по 50 чисел каждый. Результат получить в виде массива “Д”.

 

Program Mas;

Const

NM=50;

Var

I: integer;

A,B,C,D: array [1..NM] of real;

Begin

For i:=1 to NM do

Begin

Read(A[I],B[I],C[I]);

D[I]:= (A[I]+B[i]+C[I])/3;

Write (D[I])

End

End.

 

Пример 2: Записать +1 вместо максимального элемента массива А(5´4), а –1 вместо минимального.

 

Program Maxmin;

Var A: array[1..5,1..4] of real;

N,M,N1,M1,I,J : integer;

Min, Max: real;

Begin

For i:=1 to5 do

For j:=1 to 4 do

Read (A[i,j]);

Max:=A[1,1];

Min:=A[1,1];

N:=1; M:=1;

N1:=1; M1:=1;

For i:=1 to 5 do

For j:=1 to 4 do

Begin

If A[i,j]>max then

Begin

Max:=A[i,j];

N:=i; M:=j

End;

If A[i,j]<min then

Begin

Min:=A[i.j];

N1:=i; M1:=j

End

End;

A[N,M]:=1;

A[N1,M1]:=-1;

Writeln(A[N,M],A[N1,M1])

End.

 

Пример 3: Упорядочить по возрастанию все элементы главной диагонали матрицы А(5´5).

Program YP;

Var

A: array [1..5,1..5] of real ;

S : real ;

I, j : integer ;

Begin

For j:=1 to 5 do

Read(A[i,j]);

For i:=1 to 4 do

For j:=1 to 5 do

If A[j,j]> A[j+1,j+1] then

Begin

S:=A[j,j];

A{j,j]:=A[j+1,j+1];

A[j+1,j+1]:=S;

End;

For i:=1 to 5 do

Writeln(A[i,i])

End.








Дата добавления: 2015-04-05; просмотров: 887;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.024 сек.