- •Содержание
- •Перечень, наименование, обозначение блоков и отображаемые ими функции.
- •Интегрированная инструментальная оболочкаPascalAbc. Работа с главным меню системыPascalAbc
- •Среда программирования Pascal abc.
- •Общая структура программ в Pascal.
- •Основные части программы.
- •Оператор ввода-вывода в Pascal. Описание некоторых стандартных типов данных и встроенные операции и функции, применимые к ним
- •Операторы ввода/вывода данных
- •Стандартные типы данных
- •Программирование линейных алгоритмов
- •Понятие линейного алгоритма. Примеры написания программ.
- •Программирование с помощью операторов условного и безусловного перехода
- •Условный оператор If
- •Оператор безусловного перехода GoTo
- •Оператор выбора Case
- •Циклические программы
- •Оператор For
- •Оператор Repeat
- •Оператор While
- •Массивы
- •Линейные массивы. Описание типа
- •Многомерные массивы. Двухмерные массивы – матрицы.
- •Расчет отметок проектной линии на вертикальной выпуклой или вогнутой кривой
- •Индивидуальные задания
- •Процедуры и функции, определенные пользователем. Параметры процедур и функций
- •Глобальные и локальные переменные, параметры процедур и функций
- •Процедуры пользователя
- •Функции пользователя
- •Символьные массивы. Строки
- •Символьный тип
- •Символьные массивы
- •Строки. Объявление строчных типов и переменных
- •Определения значения строковой переменной
- •Длина строки. Операция конкатенации
- •Функции для работы со строками
- •Процедуры для работы со строками
Процедуры пользователя
Процедура пользователя представляет собой именованную группу операторов, реализующую определенную часть обшей задачи и вызываемую при необходимости для выполнения по имени из любой позиции раздела операторов. Описание процедуры включает заголовок и тело процедуры. Заголовок состоит из зарезервированного слова Procedure, идентификатора (имени) процедуры и необязательного заключенного в круглые скобки списка формальных параметров с указанием типа каждого параметра.
Формат:
Procedure <имя>[( формальные параметры )];
Пример.
Procedure Sort (A : integer; В : real);
Procedure Kvadr (Alpha, Beta : integer; var Gamma: boolean);
Procedure SumVed; {алгоритм, реализованный процедурой, не требует формальных параметров}
Имя процедуры – идентификатор, уникальный в пределах программы. Тело процедуры представляет собой локальный блок, по структуре аналогичный программе:
Procedure <имя> [( формальные параметры )];
<разделы описаний>
begin
<раздел операторов>
end;
Для обращения к процедуре используется оператор вызова процедуры. Он состоит из идентификатора (имени) процедуры и списка фактических параметров, отделенных друг от друга запятыми и заключенных в круглые скобки. Список параметров может отсутствовать, если процедуре не передается никаких значений.
Формат: <идентификатор процедуры> <(параметр, … т, параметр)>;
Пример.
Sort (А1,В1); {параметры – значения переменных}
Kvadr (14,25, True); {параметры – непосредственно значения}
Sunf/ed; {фактические параметры не указаны, так как в вызываемой процедуре нет формальных параметров}
Параметры обеспечивают механизм замены, который позволяет выполнять процедуру с различными начальными данными. Между фактическими параметрами в операторе вызова процедуры и формальными параметрами в заголовке описания процедуры устанавливается взаимно-однозначное соответствие в результате их перебора слева направо. Количество и тип формальных параметров равны количеству и типу фактических параметров. Ниже приведена программа, реализующая с помощью процедуры без параметров очищение экрана, установку курсора в его центр и вывод слова 'СПРАВОЧНИК'.
Program DemoProcedure;
Procedure Ekran;
begin
ClrScr;
GoToXY(30,12);
Write(‘ СПРАВОЧНИК’)
end;
Begin
Ekran; {вызов процедуры Ekran}
End.
Если процедура возвращает в программу какие-то значения, соответствующие переменные должны быть описаны как параметры-переменные с использованием слова Var.
Функции пользователя
Хотя набор встроенных функций языка ПАСКАЛЬ достаточно широк, он вряд ли может удовлетворить требованиям каждого программиста. Поэтому пользователю предоставлена возможность самому реализовать нужные ему алгоритмы в виде функций и обращаться к ним из программ по мере необходимости.
Функция, определенная пользователем, состоит из заголовка и тела функции. Заголовок содержит зарезервированное слово Function, идентификатор (имя) функции, заключенный в круглые скобки, необязательный список формальных параметров и тип возвращаемого функцией значения.
Формат.
Function < имя> < (Формальные параметры)> :< тип результата >
Пример.
Function Prov (X, Y, T : integer) : real;
Function Zx : boolean;
Имя функции – уникальный в пределах блока идентификатор. Возвращаемый результат может иметь любой скалярный тип, тип string и тип "указатель".
Тело функции представляет собой локальный блок, по структуре аналогичный программе:
Function <имя> {( Формальные параметры )> : <тип результата>
<разделы описаний>
begin
<раздел операторов>
end;
В разделе операторов должен находиться, по крайней мере, один оператор, присваивающий идентификатору функции значение. Если таких присваиваний несколько, то результатом выполнения функции будет значение последнего оператора присваивания.
Обращение к функции осуществляется по имени с необязательным указанием списка аргументов. Каждый аргумент должен соответствовать формальным параметрам, указанным в заголовке, и иметь тот же тип.
Для иллюстрации использования функций рассмотрим подпрограмму, которая возводит в степень положительное или отрицательное число.
Program DewoFunction;
Var
Z : integer; К : real;
Function Step (F : real; Exp : integer) : real;
Var
С : integer; T: real;
begin
if Exp = 0 then Step := 1 else
begin
T := F;
for С : = 2 to Abs(Exp) do T : - T * F;
if Exp < О then Step := 1 / T
else Step : = T;
end
end;
Begin
wri teln (' Введите число:');
read (Z);
writeln (Step(Z,3)); {вывод Z в 3-й степени}
wri teln (Step(Z,4)); {вывод Z в 4-й степени}
К: =1.4;
wri teln (Step(K,4)) {вывод К в 4-й степени}
End.