Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Многомерные массивы.

Читайте также:
  1. Двумерные динамические массивы.
  2. Массивы.
  3. Многомерные кубы

Элементы многомерных массивов нумеруются не одним, а несколькими (как минимум двумя) индексами. Например, массив

x2: array [1..10,1..20] of Real;

представляет собой двумерный массив, который можно интерпретировать как матрицу из 10 строк и 20 столбцов. Элементы этого массива могут принимать вещественные значения. Массив

x3: array [1..10,1..20,1..5] of Real;

представляет собой трёхмерный массив из 1000 элементов.

Чаще всего в программах не используют массивов размерностью больше 2. Поскольку двумерные массивы по смыслу являются матрицами им следует уделить больше внимания.

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

Var a: array [1..10] of array [1.. 20] of real;

Var a: array [1..10, 1..20] of real;

Чаще всего при описании двумерного массива используют второй способ. Доступ к каждому отдельному элементу осуществляется обращением к имени массива с указанием индексов (первый индекс – номер строки, второй индекс – номер столбца). Все действия над элементами двумерного массива идентичны действиям над элементами одномерного массива. Только для инициализации двумерного массива используется вложенный цикл for.

Например,

For i:= 1 to 10 do

For j:= 1 to 20 do

A[i, j]:= 0;

Для иллюстрации принципов работы с двумерными массивами разберем несколько примеров.

Пример. Сформировать таблицу Пифагора (таблица умножения) и вывести ее на экран.

Program Pifagor;

Uses crt;

Var p: array[1..9, 1..9] of integer;

i, j:integer;

Begin

Clrscr; {Очистка экрана}

for i:=1 to 9 do {Цикл по строкам}

for j:= 1 to 9 do {Цикл по столбцам}

p[i,j]:= i*j;

for i:=1 to 9 do

begin

for j:=1 to 9 do write(p[i,j],’ ’);

writeln; {Перевод курсора на сл. строку}

end;

end.

 

Пример. Задан двумерный массив В(10, 10), заполненный случайными числами из отрезка [-10,10]. Найти и вывести на экран те элементы массива, которые больше заданного числа k.

Program massiv;

Var

b: array[1..10, 1..10] of integer;

i, j, k:integer;

Begin

for i:=1 to 10 do

begin

for j:= 1 to 10 do

begin

b [i,j]:= random(20)-10;

write(b[i,j], ‘ ‘);

end;

writeln;

end;

write(‘Введите число k’);

readln (k);

For i:=1 to 10 do

For j:=1 to 10 do

If b[i,j]>k then write (b[i, j],’ ’);

End.

 

Пример. Задать и распечатать массив 10 на 10, состоящий из целых случайных чисел в интервале [1,100]. Найти сумму элементов, лежащих выше главной диагонали.

 

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

 

Program M5;

Var

A: Array[1..10,1..10] Of Integer;

I, K: Byte;

S: Integer;

Begin

S:=0;

For I:=1 To 10 Do

Begin

For K:=1 To 10 Do

Begin

A[I,K]:=Trunc(Random*100)+1;

Write(A[I,K]:6);

If K>I Then S:=S+A[I,K]

End;

Writeln;

End;

Writeln('Сумма элементов выше гл. диагонали равна',S)

 

End.

 


Дата добавления: 2015-08-13; просмотров: 126 | Нарушение авторских прав


Читайте в этой же книге: Лекции (черновики). | Интегрированная среда Turbo Pascal (Borland Pascal) | Главное меню Turbo Pascal | Пункт Edit. | Введение в язык Паскаль. Структура программы на Паскале. | Строки. | Описание одномерных массивов. | Поиск элементов, удовлетворяющих заданному условию. | Параметры-значения и параметры-переменные. | Устройства LРT1, LРT2, LРT3. |
<== предыдущая страница | следующая страница ==>
Алгоритм быстрой сортировки.| Длина строки.

mybiblioteka.su - 2015-2024 год. (0.006 сек.)