Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Структурированные типы данных: массивыСодержание книги
Поиск на нашем сайте
Массив - совокупность конечного числа данных одного типа, объединенных общим именем. · Одномерный массив - вектор A A1, A2, A3,... AN B B1, B2, B3,..., BM 0.1, 0.5, 0.7,..., 1.9 12, 34, 56,..., 13 A[I],B[J] - элементы массива, где I -индексы, указывающие номер или место данного элемента в массиве.
Описание одномерного массива Var <имя массива>: array [ <диапазон изменения индекса> ] of <тип элементов>;
Размерность массива может быть любой, элементы массива могут быть любого, в том числе и структурированнного типа, индекс может быть любого ординального типа, кроме типа Longint. Пример Var A: array [1..4] of real; Type MAS1=array[1..4] of real; B: array [1..3] of integer; MAS2=array[1..3] of integer; Var A: MAS1; B: MAS2; или Type I1=1..4; I2=1..3; MAS1=array[I1] of real; MAS2=array[I2] of integer; Var A: MAS1; B: MAS2; Пример for I:=1 to 4 do for I:=1 to 4 do Read(A[I]); или begin Writeln(‘A[‘,I,’]=’); Read(A[I]) end; {Ввод элементов одномерного массива} Пример {Вывод элементов одномерного массива} for J:=1 to 3 do for J:=1 to 3 do Write(B[J]:3); Writeln(‘B[‘,J,’]=’,B[J]:3); {в строку 12 34 56} {в столбец B[ 1]= 12 B[ 2]= 34 B[ 3]= 56} · Двумерный массив - матрица
D11 D12 D13 1 3 2 D = D21 D22 D23 4 6 7 D[I,J] - элемент матрицы, I - номер строки, J - номер столбца.
Описание двумерного массивa Var <имя массива>: array[ <диапазон строк>, <диапазон столбцов> ] of < тип элементов>;
Пример Var D:array[1..2,1..3] of integer; или Type MATR=array[1..2,1..3] of integer; Var D: MATR; Type ST=array[1..2] of integer; MATR=array[1..3] of ST; Var D: MATR; Пример for I:=1 to 2 do for J:=1 to 3 do Read(D[I,J]); {Последовательность ввода: 1 3 2 4 6 7} {Ввод элементов двумерного массива} Пример {Вывод элементов двумерного массива} for I:=1 to 2 do for J:=1 to 3 do Write(D[I,J]); {вывод в строку 1 3 2 4 6 7} или for I:=1 to 2 do begin Writeln; {переход на новую строку} for J:=1 to 3 do Write(D[I,J]) {вывод элементов строки} end; {результат вывода: 1 3 2 4 6 7 }
ПРОЦЕДУРЫ И ФУНКЦИИ В среде Turbo-Pascal имеются две разновидности подпрограмм - процедуры и функции. Структура подпрограммы аналогична структуре программы в целом. Подпрограмма должна быть описана до того, как она будет использована в основной программе или другой подпрограмме. Все параметры, которые использует подпрограмма, можно разбить на две категории: локальные параметры, объявленные внутри подпрограммы и доступные только ей самой, и глобальные- объявленные в основной программме и доступные как основной программе, так и всем ее подпрограммам.
· Формальное описание функции
function <имя функции> ( <список формальных параметров> ): <тип функции>; <секция описаний локальных переменных>; begin <секция операторов> end;
где <имя функции> - идентификатор, к которому предъявляются те же требования,как к любому идентификатору в среде Turbo-Pascal; < список формальных параметров> - все параметры в списке указываются вместе со своим типом (одного типа через запятую; различные типы через точку с запятой). Тип параметров в списке может быть любой. Как частный случай, функция может быть без параметров. <тип функции> - задается обычным способом и может быть любым простым или String.
· Вызов функции Вызов функции может осуществляться из основной программы или другой подпрограммы.
< имя переменной>:= <имя функции> ( <список фактических параметров> ); или в операторе вывода Write( <имя функции> ( <список фактических параметров> )); < cписок фактических параметров> - представляет собой, перечисленные через запятую значения, которые при обращении заменяют соответствующие формальные параметры в описании функции. Следует обратить внимание на то, что количество, тип и порядок расположения фактических параметров в обращении к функции обязательно должен совпадать с количеством, типом и порядком расположения формальных параметров в описании функции. Пример Var XN: real; NN: word; {Подпрограмма-функция вычисления XN } function Ipow(X: real; N: word): real; Var I: word; M: real; Begin M:=1; for I:=1 to N do M:=M * X; Ipow:=M end; {Основная программа} Begin Readln(XN,NN); Writeln(‘ Значение функции = ‘, IPow(XN,NN)) End. Как ранее указывалось, тип формальных параметров может быть любым, однако в заголовке подпрограммы нельзя вводить новый тип, так нельзя писать:
function Max(A: array [1..50] of real): real; Правильно в основной программе ввести новый тип, а затем использовать его в заголовке подпрограммы:
Type MASS = array [1..50] of real; function Max(A: MASS): real; · Формальное описание процедуры procedure <имя процедуры> ( <список формальных параметров> ); <секция описания локальных переменных>; begin <секция операторов> end; В отличие от формального описания функции, в заголовке процедуры отсутствует понятие <тип>, так как имя процедуры не является носителем формального результата. Результаты выполнения процедуры могут быть множественны и указываются в списке формальных параметров в качестве параметров-переменных. В качестве формальных параметров наиболее часто встречаются параметры-значения и параметры-переменные. Параметры-значения передаются основной программой в подпрограмму через стек в виде их копий и, следовательно, собственный параметр программы подпрограммой изменится не может. При передаче параметров-переменных в подпрограмму фактически через стек передаются их адреса в порядке, объявленном в заголовке подпрограммы. Следовательно, подпрограмма имеет доступ к этим параметрам и может их изменять, поэтому результаты выполнения процедуры должны указываться в списке формальных параметров именно в качестве параметров-переменных. Параметр-переменная указывается в заголовке процедуры аналогично параметру-значению, но только перед именем параметра записывается ключевое слово Var. procedure MaxMin(A:MASS; Var Max,Min:real); Здесь A - параметр-значение; Max, Min - параметры-переменные. · Вызов процедуры Для вызова процедуры из основной программы или другой подпрограммы используется отдельный оператор следующего вида: <имя процедуры> ( <список фактических параметров> ); Требования к списку фактических параметров в процедуре предъявляются те же, что и в подпрограмме-функции. Пример Var N: integer; S: real; {Подпрограмма-процедура вычисления суммы ряда 1/3 + 1/5 + 1/7 +... + 1/(2*I+1) }
procedure Summa(Kol:integer; Var Sum:real); Var I:integer; Begin Sum:=0; for I:=1 to Kol do Sum:=Sum+1/(2*I+1) end; {Основная программа} Begin Readln(N); Summa(N,S); {вызов процедуры} Writeln(‘ Сумма ряда =’, S) End.
|
||||
Последнее изменение этой страницы: 2016-12-13; просмотров: 331; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.133.153.232 (0.006 с.) |