Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Процедуры и функции. Двумерные и многомерные массивы




Двумерные и многомерные массивы

Представьте себе таблицу, состоящую из нескольких строк. Каждая строка состоит из нескольких ячеек. Тогда для точного определения положения ячейки нам потребуется знать не одно число (как в случае таблицы линейной), а два: номер строки и номер столбца. Структура данных в языке Паскаль для хранения такой таблицы называется двумерным массивом.

Описание двумерного массива:

Var

A: Array [1..20,1..30] Of Integer;

Описан двумерный массив, соответствующий таблице, состоящей из 20 строк и 30 столбцов.

Отдельный элемент двумерного массива адресуется, естественно, двумя индексами. Например, ячейка, находящаяся в 5-й строке и 6-м столбце будет называться A[5,6].

Ввод двумерного массива:

а) С клавиатуры

For i:=1 to 20 do

For j:=1 to 30 do

Read (a[I,j]);

б) Автоматическое формирование массива

For i:=1 to 20 do

For j:=1 to 30 do

a[I,j]:= random (50)-25;

Вывод двумерного массива в виде матрицы:

For i:=1 to 20 do begin

For j:=1 to 30 do

Write(A[i,j]:5)

Writeln;

End;

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

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

Program M2;

Uses Crt;

Var

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

i, j: Byte;

S: Integer;

Begin

Clrscr;

Randomize;

{формирование матрицы}

For i:=1 to 10 do Begin

For j:=1 to 10 do Begin

A[i,j]:=Random(100)+1;

{вывод матрицы}

For i:=1 to 10 do Begin

For j:=1 to 10 do

Write(A[i,j]:5);

Writeln:

End;

{подсчет суммы элементов выше главной диагонали}

S:=0;

For i:=1 to 10 do

For j:=1 to 10 do

If j>i Then S:=S+A[i,j]

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

End.

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

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

В языке Паскаль существует два вида подпрограмм: процедуры и функции.

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

Подпрограммы в языке Паскаль могут иметь параметры (значения, передаваемые в процедуру или функцию в качестве аргументов). При описании указываются так называемые формальные параметры (имена, под которыми будут фигурировать передаваемые данные внутри подпрограммы) и их типы. При вызове подпрограммы вместе с ее именем должны быть заданы все необходимые параметры в том порядке, в котором они находятся в описании. Значения, указываемые при вызове подпрограммы, называются фактическими параметрами.

Формат описания процедуры:

Procedure <Имя процедуры> (<Имя форм. параметра 1>:<Тип>;

< Имя форм. параметра 2>:<Тип>);

<Раздел описаний>




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


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


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



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




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