Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции информатика.doc
Скачиваний:
59
Добавлен:
11.04.2015
Размер:
2.47 Mб
Скачать

1.4 Общая структура программы

Программа на Паскале представляет собой формальную запись алгоритма, приводящую к решению некоторых задач. Программа состоит из заголовка и двух разделов: Раздел описания данных и Раздел описания действий. Действия представляются операторами языка, данные вводятся посредством описаний и определений. Описание данных предшествует описанию действий и должно содержать все объекты, используемые в действиях.

Итак, рассмотрим структуру программы подробнее.

Заголовок программы Program Pr1;

В Турбо-Паскале заголовок программы необязателен и компилятором (см. п.1.1.) игнорируется; Кроме того, в Турбо-Паскале существует еще один раздел – раздел объявления используемых модулей:

Uses Crt, Graph;

который описывается в самом начале текста программы, после заголовка, если таковой имеется.

Раздел описания данных может включать пять подразделов:

  1. описание меток Label M1, Met;

- используются для передачи управления внутри программы,

  1. описание констант Const a=2; c=3.5;

константы – элементы программы, значения которых не меняются в процессе ее выполнения.

В результате приведенного примера описания констант, система отведет две ячейки памяти с именами a и c и занесет в них значения 2 и 3,5 соответственно. При попытке записать в эти ячейки памяти какие-либо значения во время работы программы – система выдаст сообщение об ошибке.

Константы могут быть целыми, вещественными, символьными и строковыми.

Пример:

Const a=5; - целая десятичная.

b=$F; - целая шестнадцатеричная (~15)

c=-0.5; d=7.5E-5; - вещественные (Е или е – показатель степени; 7.5Е–5 = 7.510-5 ).

Обратите внимание: целая часть отделяется от дробной – точкой (а не запятой).

e=’*’; - символьная.

f=’Турбо’; - строковая.

Бывают Типизированные константы – переменные, которым при описании присваивается начальное значение. Могут использоваться как обычные переменные (о типах и переменных см. далее)

Пример:

Const max: integer = 92;

R: real = 2.7;

В результате данного примера описания констант, система отведет две ячейки памяти с именами max и R и занесет в них значения 92 и 2.7 соответственно. Во время работы программы разрешается заносить в такие ячейки новые значения соответствующего типа. В приведенном примере: в ячейку max – целые числа; в ячейку R – вещественные числа.

  1. описание типов Type Mas = array [1..10] of integer;

tp = 1..6;

int = integer;

Под типом данных понимается множество допустимых значений этих данных и совокупность операций над ними. В языке определены несколько стандартных типов данных: integer, real, char, Boolean,… (о стандартных типах Паскаля см. далее в разделе 2). Кроме того, можно описывать и собственные типы в разделе Type (см. также п.2.7).

  1. описание переменных Var x: real; y,z: integer;

p:Boolean;

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

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

- в ячейку x можно записывать только вещественные числа из диапазона значений, соответствующего типу Real; {о типах и соответствующих диапазонах см. в разделе 2}

- в ячейки y,z можно записывать только целые числа из диапазона от -32768 до +32767.

При попытке записать в эти переменные значение, например, 32768, система выдаст сообщение об ошибке: выход за границы диапазона типа.

- в ячейку p можно записывать только значения True (истина) или False (ложь).

  1. описание подпрограмм: функций Function F(x: real): real;

и (или) процедур Procedure Alfa;

Процедуры и функции – самостоятельные части программы, имеющие свое имя и выполняющие определенные действия (см. раздел 5).

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

Раздел описания данных может вообще отсутствовать.

Раздел описания действий (еще его называют выполняемая часть программы или тело программы)

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

Пример:

Begin

Write(‘*****’);

End.

Данная программа содержит только одну команду – оператор вывода на экран. В результате ее работы на экране мы увидим строку из 5-ти звездочек: ***** . Раздел описания данных для этой задачи не требуется.

Пример: Программа вычисляет сумму двух заданных чисел и выводит результат на экран.

Несколько забегая вперед скажу, что знак := (присвоить) - это обозначение оператора присваивания, который заносит значение, полученное справа от знака, в ячейку памяти с именем, указанным слева от знака (см. п. 3.1.)

1 вариант: const a=3.5; b=2;

var sum: real;

Begin

sum:=a+b; {складывается содержимое ячеек a и b, результат записывается в ячейку sum }

write(a,’ + ’,b,’ = ’,sum); {на экран выводится: 3.5 + 2 = 5.5}

End.

2 вариант: var a,b,sum: real;

Begin

a:=3.5; b:=2; {в ячейку a заносится число 3.5, в b – число2}

sum:=a+b; {складывается содержимое ячеек a и b, результат записывается в ячейку sum }

write(a,’ + ’,b,’ = ’,sum); {на экран выводится: 3.5 + 2 = 5.5}

End.

3 вариант: var a,b: real;

Begin

a:=3.5; b:=2; {в ячейку a заносится число 3.5, в b – число2}

a:=a+b; {складывается содержимое ячеек a и b, результат записывается в ячейку sum }

write(’ сумма = ’,a); {на экран выводится: сумма = 5.5}

End.

В 3-м варианте к моменту выполнения команды write в ячейке a содержится уже не слагаемое (3.5), а результат (5.5), поэтому вывод слагаемых как в первых двух вариантах невозможен. Таким образом, если слагаемые еще необходимо далее использовать в программе, то для хранения результата надо выделять отдельную ячейку памяти, как в вариантах1 и 2.

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