Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Паскаль.doc
Скачиваний:
17
Добавлен:
06.05.2019
Размер:
121.86 Кб
Скачать

2.Операторы цикла

Используется для повторения группы операторов определенное число раз.

Оператор цикла FOR..DO.

FOR переменная цикла:= начальное значениеТОконечное значение DO оператор;

Переменная цикла – всегда целого типа, указывает сколько раз должны повторятся операторы. Этот цикл будет повторен фиксированное число раз, причем первый раз с начальным значение переменной цикла, а в последний -с конечным её значением.

Пример, FOR I:=1 TO 3 DO I:=I+0.5

Оператор цикла REPEAT..UNTIL (с проверкой условия в конце цикла).

Применяется тогда, когда группа операторов должна выполнятся до тех пор, пока не выполнится некоторое условие.

REPEAT группа операторов UNTIL условие ;

Оператор цикла WHILE..DO (с проверкой условия в начале цикла).

WHILE условие DO группа операторов;

Этот оператор выполняется так: проверяется условие, и если оно истинно, то выполняется оператор (или несколько операторов).

3.Оператор выбора case.

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

case переключатель of

список1:оператор1;

список2:оператор2;

else оператор;

end;

Подпрограммы.

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

Процедуры:

Состоят из группы операторов, реализующих некоторую часть задачи и вызываемых по имени при необходимости в любом месте программы.

Procedure <имя> {формальные параметры};

“раздел описаний”

Begin

<основная часть процедуры– раздел операторов >

End;

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

Например,

Procedure Korrect; (процедура без формальных параметров)

Procedure Sort (a:integer); (а – формальный параметр)

Имя процедуры – идентификатор, уникальный в пределах конкретной программы. Тело процедуры представляет собой блок, по структуре аналогичный блоку обычной программы. Раздел операторов всегда начинается зарезервированным словом Begin, далее следуют операторы,отделенные “;”. Завершает раздел зарезервированное слово End и точка “;”.

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

Имя процедуры (список фактических параметров);

Функции:

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

Function имя (формальные параметры): тип результата;

Например:

Function Prov(x,y,t:integer):integer;

Function Logic:boolean;

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

Function имя (формальные параметры):тип результата;

раздел описаний

begin

раздел операторов

end;

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

Обращение к функции осуществляется по имени с необязательным указанием списка аргументов. Каждый аргумент должен соответствовать формальным параметрам, указанным в заголовке, и иметь тот же тип.

Примеры программ.

Данная программа проверяет принадлежат ли два адреса одному городу и одной улице. Используется переменная типа запись с 4 полями: город, улица, дом, квартира.

Program test(input,output);

Type

adress=record

city:array [1..16] of char;

street:array [1..16] of char;

number:integer;

flat:integer;

end;

Var

adr1,adr2:adress;

Begin

{ввод данных}

read(adr1.city,adr1.street, adr2.city,adr2.street);

if (adr1.city=adr2.city) and (adr1.street=adr2.street) then

write(‘город и улица совпадают’);

else(‘город и улица несовпадают’);

End.

2. Пример программы ,

в которой вычисляется наименьшее общее кратное двух чисел А и В. Главная программа описывает массив чисел С, вводит исходные данные ,затем обращается к функции для вычисления НОК(наименьшего общего кратного). Которая вычисляет нужное значение используя формулу:

НОК(А,В)=A*B/ HOD(A,B)

где, обращается к другой функции вычисления НОД (наибольшего общего делителя).

Program test2(input,output);

Const N = 5;

Var

С: array[1..5] of integer;

A,B:integer;

function HOК (A, В:integer):integer;

begin

HOK:=A*B/ HOD(A,B);

end;

function НОD(А, В:integer):integer;

var