Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Способы объявления двумерного массива

Двумерные массивы.

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

Рассмотрим матрицу А размерность 2*3, то есть в ней будет две строки, а в каждой строке по три элемента:

а11а12а13

а21а22а23

каждый элемент имеет свой номер, как у одномерных массив, но сейчас номер уже состоит из двух чисел - номера строки, в которой находится элемент, и номера столбца. Таким образом, номер элемента определяется пересечением строки и столбца. Например, а12-это элемент, стоящий в первой строке и втором столбце.

 

Способ 1. Если в программе используется один массива в разделе описания переменных:

Var a: Array [1..n,..m] Of<тип элементов>;

Способ 2. В Паскале двумерный массив можно описать как одномерный, элементами которого являются одномерными массивы. Например, для матрицы А, приведенной выше:

Const п=2; т=3

Type отyrray= Array [1..m] Of Real;

dmyrray= Array [1..n] Of omyrray;

Var p: omyrray;

a: dmyrray.

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

Способ 3. описание массива А можно сократить, исключив определение типа omyrray в определении типа dmyrray:

Const п=2; т=3

Type dmyrray= Array [1..n] Of Array [1..m] Of Real;

Var a: dmyrray.

Способ 4. еще более краткое описание массива А можно получить, указывая имя массива и диапазоны изменения индексов для каждой размерности массива:

Const п=2; т=3

Type dmyrray= Array [1..n, 1..m] Of<тип элементов>;

Var a: dmyrray;

Рассмотренные выше методы решения задач обработки одномерных массивов могут применяться для обработки двумерных массивов. Поскольку положение элемента в двумерном массиве описывается двумя индексами (первый-номер строки, второй-номер столбца), программы большинства матричных задач строятся на основе вложенных циклов. Обычно внешний цикл работает по строкам матрицы, то есть с его помощью выбирается требуемая строка матрицы, а внутренний цикл - по столбцам матрицы, то есть здесь выбирается нужный элемент из выбранной уже строки. Для задания значений элементам массива могут быть использованы операторы присваивания и операторы ввода данных.

В приведенном ниже примере осуществляется ввод и вывод двумерного массива А размерность 10*15. формирование и вывод массива описаны в виде двух процедур, которые вызываются последовательно из основной программы. Надо заметить, что формирование двумерного массива можно осуществлять всеми тремя способами, описанными для одномерных массивов, то есть: ввод с клавиатуры, через генератор случайных чисел или с помощью файла. Пусть в нашем примере элементы задаются генератором случайных чисел.

Program Primer_45;

Const n=10; m=15;

Type dmyrray= Array [1..n, 1..m] of Integer;

Var А: dmyrray;

Procedure Initl(Var x: dmyrray);{процедура формирования массива}

Var i,j: Integer;

Begin

For i=1 to n do

For j=1 to m do

X[i,j]:=-25+Random(51);

End;

Procedure Print(x: dmyrray);{процедура вывода на экран}

Var i,j: integer;

Begin

For i=1 to n do

Begin

For j=1 to m do Write (x [i,j]:5];

Writeln;{ переход на начало следующей строки}

End;

End;

Begin {основная программа}

Randomiz;

Init(A);{вызов процедуры формирования массива}

Writeln(‘Массив А:’);

Print (A);{ вызов процедуры вызова массива}

Readln;

End.

Пример 1. нахождение среднего арифметического положительных элементов массива действительных чисел MAS2(3,5).

PROGRAM SRED_PLUS {Заголовок программы};

VAR MAS2: ARRAY [1..3,1..5] OF REAL;

SRED, SUN: REAL;

KOL, I.J: INTEGER;

BEGIN

FOR I:=1 TO 3 DO {Введение элементов массива}

FOR J:=1 TO 5

BEGIN

WRITE (‘Ведение’,I,’-ый элемент массива’);

READLN (MAS2 [I]);

END;

SUM: =0;

KOL: =0;

FOR I: =1 TO 3 DO

FOR J: =1 TO 5 DO

IF MAS2 [I]>0 THEN

BEGIN

SUM: = SUM+ MAS2 [I]; {Нахождение суммы и количества}

KOL: = KOL+1; {положительных элементов}

END;

SRED: =SUM/KOL;

WRITELN (‘Среднее арифм. положительных элементов массива=’,

SRED: 2:6);

END.

 

Контрольные вопросы.

1. Определите понятие «массив данных».

2. Какие операции используются над массивами?

3. Каковы способы задания одномерных массивов?

4. Как могут объявляться двумерные массивы?

 


<== предыдущая лекция | следующая лекция ==>
Описание типа одномерных массивов | Линейная сортировка (сортировка отбором)
Поделиться с друзьями:


Дата добавления: 2014-01-06; Просмотров: 2012; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.