|
Запись с вариантами Учебник 04/11/10 |
Общий вид:
type v = record
a: type1
b: type2
……
case n: typen of
c1:(t11: type11;
t12: type12; …);
c2:(t21: type21;
t22: type22; …);
……..
end;
var z: v;
Здесь z – переменная типа v; n – переменная, называемая переключателем; typen – тип переменной n. Этому же типу должны принадлежать метки c1 и c2. Каждой метке соответствует набор полей t11, …. Эти поля являются компонентами варианта. |
|
Записи (Record) Учебник 31/10/10 |
Запись – это структура, состоящая из фиксированного числа компонент, называемых полями. Данные одного поля разных записей имеют один и тот же тип, а разных полей могут иметь разные типы. Общий вид описания типа record:
type t = record
id11, id12, …: type1;
id21, id22, …: type2;
……………….
end;
здесь id – идентификаторы полей; type – типы полей; t – имя типа. Пример. Данные комплексного вида можно описать переменной типа record.
type complex = record
re, im: real
end;
|
|
Локальные и глобальные переменные Учебник 31/10/10 |
Напомним, что каждый модуль (процедура, функция, программа) состоит из заголовка (procedure…, function…, program…) и блока. Если блок какой-либо процедуры p1 содержит внутри процедуру p2, то говорят, что p2 вложена в p1. Пример.
procedure p1(x: real; var y: real);
var c: integer;
procedure p2(var z: real);
…………………….
end;
begin
…………………….
end;
Любые идентификаторы, введенные внутри какого-либо блока (процедуры, функции) для описания переменных, констант, типов, процедур, называются локальными для данного блока. Такой блок вместе с вложенными в него модулями называют областью действия этих локальных переменных, констант, типов и процедур. |
|
Процедуры и функции в качестве параметров Учебник 31/10/10 |
Такие параметры в списке формальных параметров представляются ключевыми словами procedure и function. Примеры. procedure p(procedure a); Здесь процедура p имеет один параметр-процедуру a. procedure q(function s: real; b: real); Процедура q имеет два параметра: параметр-функцию s и параметр-значение b. procedure q(function f(i: integer): real); Здесь формальный параметр f – функция от одного целого аргумента, результат f – вещественный. |
|
Побочные эффекты Учебник 31/10/10 |
Если в теле процедуры (функции) используется некоторая нелокальная переменная, т.е. такая переменная, которая описана в основной части программы, то могут наблюдаться непредвиденные последствия. Пример. Пусть функция f(x) имеет такой вид:
function f(x: real): real;
begin
v := v * x;
f := sqrt(v) + x
end;
т.е. в процессе работы функция f изменяет некоторую нелокальную величину v. Рассмотрим теперь два выражения, которые вычисляются в программе: f(x) + v и v + f(x). Эти выражения дадут разные результаты, т.к. в первом случае к f(x) прибавляется уже измененное значение v (в процессе работы f), а во втором случае к первоначальному значению v добавляется f(x). |
|
Параметры-переменные Учебник 30/10/10 |
Если перед именем формального параметра стоит ключевое слово var, то такой параметр есть параметр-переменная. Примерами таких параметров служат x1 и x2 в заголовке procedure sq(a, b, c: real; var x1, x2: real); Фактический параметр, соответствующий параметру-переменной, может быть только переменной (не константой и не выражением). При вызове процедур (функций) параметры-переменные обрабатываются так: для формального параметра используется именно та ячейка, которая содержит соответствующий фактический параметр. Пример. При вызове процедуры sq оператором sq(p, q, r, y, z) для переменных x1 и x2 используются непосредственно те ячейки, которые отведены для y и z. Поэтому оператор присваивания x1 := (-b + sqrt(d)) / (2 * a) засылает полученное значение в y. |
|
Параметры-значения Учебник 30/10/10 |
Если в качестве формального параметра указана переменная, то такой параметр и есть параметр-значение. Примерами таких параметров служат параметры a, b и с в процедуре sq: procedure sq((a, b, c: real; var x1, x2: real); В этом случае фактическим параметром, соответствующим a либо b либо c, может быть любое выражение соответствующего типа, в частности, константа. Например, обратиться к sq можно так: sq((25./3 + 2) * 2, -1.5, (8.2 – 3.1) / 3, x1, x2); |
|
Формальные параметры Учебник 28/10/10 |
Формальные параметры – это наименование переменных, через которые передается информация из программы в процедуру либо из процедуры в программу. Пусть, например, процедура sq осуществляет решение квадратного уравнения ax2 + bx + c = 0. Тогда она должна иметь пять формальных параметров: для значений коэффициентов a, b, c и для результатов: x1 и x2. Для того, чтобы запустить процедуру в работу, необходимо к ней обратиться (ее вызвать). Вызов процедуры N производится оператором вида N (p1, p2, p3, …); |
|
Операторы Учебник 27/10/10 |
Под операторами в языке Паскаль подразумевают только описание действий. Операторы отделяются друг от друга только точкой с запятой. Если оператор стоит перед end, until или else, то в этом случае точка с запятой не ставится. Оператор присваиванияОбщий вид: v := a;
здесь v – переменная, a – выражение, := - операция присваивания. Выражение a может содержать константы, переменные, названия функций, знаки операций и скобки. Пример. f := 3 * C + 2 * sin(x); |
|
Структура программы на языке Паскаль Учебник 26/10/10 |
Программа состоит из заголовка и блока. Заголовок программыВ заголовке указывается имя программы и список параметров. Общий вид: program n (input, output, x, y,…); здесь n – имя программы; input – файл ввода; output – файл вывода; x, y – внешние файлы, используемые в программе. Заголовка может и не быть или он может быть без параметров. БлокБлок программы состоит из шести разделов, следующих в строго определенном порядке:
|
Последние комментарии
1 день 2 часа назад
1 день 10 часов назад
1 день 16 часов назад
2 дня 22 часа назад
5 дней 18 часов назад
5 дней 19 часов назад
6 дней 18 часов назад
1 неделя 20 часов назад
1 неделя 21 час назад
1 неделя 1 день назад