Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Предварительное описание (ссылки вперед)




 

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

Пример :

Program Demo;

Var a, b ,c : real ;

Procedure Ring (var s , l : real ; d : real);

Begin L:=3.14 *d; {длина окружности }

S:=cir (d) ; {компилятор еще не знает о функции cir}

End;

Function Cir (d: real): real; {площадь круга }

Begin cir:= 3.14* sqr(d) / 4;

End;

………………………………………………………………………

Очевидный выход – поменять порядок строк так, чтобы функция Cir была определена перед процедурой Ring(…) .Однако можно и иначе.

Действия:

1. Оставить подпрограмму (функцию cir) на своем месте, вычеркнув из ее заголовка все параметры: Function cir;

2. Вставить полный заголовок там, где ему надлежит бытью, т.е. перед подпрограммой, которая его вызывает.

Function cir (d: real): real;

1. После полного заголовка добавить слово Forward.

 

РЕГУЛЯРНЫЕ ТИПЫ

 

Одномерный массив

 

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

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

Описание в разделе переменных:

Var имя массива: Array [тип индекса] of тип элемента;

Тип индекса может быть любым простым типом, кроме Real и Integer (Boolean, Char, перечислимый, ограниченный).

Тип элементов массива – это базовый тип, из которого составлен массив. Это может быть любой простой или сложный тип – вообще любой допустимый в языке программирования Паскаль.

Var A: Array [1..5] of Real;

Это массив из пяти действительных чисел: А[1], А[2], А[3], А[4], А[5].

Обычно нумерация начинается с единицы и заканчивается каким-нибудь положительным числом. Однако это совсем не обязательно.

Пример: Var B: Array [1582..1994] of Integer;

Var C: Array [-754..-1] of Integer;

(это, например, население за какие-то годы нашей эры и до нашей эры).

Массив латинских букв: (можно посчитать частоту появления в тексте):

Var Lat: Array [‘A’..’Z’] of Integer;

Массив t0C воздуха на островах:

Type Остров = (Gaiti, Sumatra, Taimir);

Var T: Array [Остров] of Real;

Поскольку тип индекса не может быть стандартным целым или действительным типом, нельзя делать следующие описания массива:

Var А: Array [5] of Real;

Var А: Array[Integer] of Real;

Пример:

Var

Massiv: Array [1..N] of Real;

Year: Array [янв..дек] of Integer;

Если несколько массивов имеют одинаковый тип индексов и одинаковый базовый тип, то допускается в описание объединять массивы в список:

Var А, В, С: Array[1..50] of Real;

Здесь объявлено списком три массива действительных чисел, каждый из которых содержит по 50 элементов:

А[1], A[2],… A[50].

B[1], B[2],… B[50].

C[1], C[2],… C[50].

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

Элементы массива записываются в разделе операторов как идентификатор с индексом в квадратных скобках.

B[5]:=B[3]-1;

Sum:=Sum-C[K];

P1:=A[2*3+1];

Для ввода и вывода числовых значений элементов массива используются циклы.

Пример:

For I:=1 to 9 do

              Read(A[I]);

Это ввод 9-ти значений элементов массива А.

For I:=1 to 9 do

              Writeln(A[I]);

Это их вывод.

     Пример: Вычислить сумму 15-ти целых чисел.

Program Sum;

Var X: Array [1..15] of Integer;

I: 1..15;

Sum: Integer;

Begin

     Sum:=0;

     For I:=1 to 15 do

     Begin

              Read(X[I]);

              Sum:=Sum+X[I];

     End;

End.

В языке программирования Паскаль помимо явного описания массивов в разделе переменных есть другая форма описания, состоящая из двух этапов. Сначала в разделе описания типов Type указывается тип массива, затем в разделе описания переменных Var перечисляются массивы, относящиеся к донному типу.

Type имя типа = Array [тип индекса] of тип элементов массива;

Var имя массива: имя типа;

Пример: Программа с двумя процедурами: одна – для ввода элементов массива, другая для вычисления суммы и произведения элементов.

Program TI4;

Type Massiv = Array [1..20] of Real;

Var A, B: Massiv;

     Sum, Pr: Real;

Procedure Vvod (N:Integer; Var X:Massiv);

Var I: Integer;

Begin

     Writeln(‘Ввод’);

     For I:=1 to N do Read(X[I]);

End;

Procedure Summa (N:Integer; Var X:Massiv; Var Sum, Pr: Real);

Var I: Integer;

Begin

     Sum:= 0;

     Pr:=1;

     For I:=1 to N do

     Begin

              Sum:=Sum+X[I];

              Pr:=Pr*X[I];

     End;

End;

Begin

     Vvod(8,A); (*вызов процедуры*)

     Summa(8,A,Sum,Pr); (*вызов процедуры*)

     Writeln (‘Sum=’,Sum:7:2,’ ’:3,’Pr=’,Pr);

     Writeln;

     Vvod(15,B);

     Summa(15,B,Sum,Pr);

     Writeln (‘Sum=’,Sum:7:2,’ ’:3,’Pr=’,Pr);

End.

В основной программе описан тип массива длинной 20 элементов, а реально используются массивы А (8 элементов) и В(15 элементов).

Пример: Расположить элементы заданного действительного массива в порядке убывания: 1 2 3 4 ® 4 3 2 1

Program Rangir;

Const N=10;

Var A: Array [1..N] of Real;

I, K: Integer; R: Real;

Begin

Writeln(‘Ввод’);

     For I:=1 to N do Read (A[I]);

     For K:=1 to N do

              For I:=1 to N-K do

                        If A[I]<A[I+1] then

                        Begin

                                 R:= A[I];

                                 A[I]:= A[I+1];

                                 A[I+1]:=R;

                        End;

     For I:=1 to N do Write (A[I]);

End.

     K - номер просмотра строки (всего N-1 просмотров)

     I - номер сравнение элементов в просмотре (N-K сравнений).










Последнее изменение этой страницы: 2018-05-27; просмотров: 236.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...