Государственноеобразоватеьное учреждение

Высшего профессионального образования

«МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ЛЕСА»

Программирование и алгоритмические языки

Курс лекций для специальности

«Прикладная математика»

Первый семестр

Москва

Издательство Московского государственного университета леса

2006
Содержание

Общие сведения.

Название курса: «Программирование и алгоритмические языки»

Вид занятий

часов в 1 семестре

часов во 2 семестре

Лекций

34 (2 час/нед)

34 (2 час/нед)

Практических

34 (2 час/нед)

17 (1 час/нед)

Лаборат

34 (2 час/нед)

34+17 (3 час/нед)

Отчетность

I семестр

Программы на 20 баллов

Контрольная

Коллоквиум

Зачет

Экзамен

II семестр

Программы на 10 баллов (до 1 апреля)

Контрольная

Курсовая работы

Экзамен

Содержание курса

I семестр

лек. 1- 7

лек. 8-12

лек.13-17

Основы алгоритмизации, структурное программирование.

Технологии программирования, реализация на ТР

Модули, стандартные модули.

II семестр

лек.1-7

лек. 8- 14

лек. 15-17

Абстрактные Структуры Данных (АСД), реализация на ТР.

Технологии программирования, реализация на языке Fortran

Общие вопросы программирования

Дальнейшее обучение программированию (по семестрам)

Математическое обеспечение ЭВМ (3,4)

Методы разработки ПО (Объектно-ориентированное программирование ОП) (4)

Машинно ориентированные языки (4,5)

Компьютерная графика (5,6)

Проектирование трансляторов (6,7-кр)

Системное программное обеспечение (ПО) (6,7,8-кр)

Базы данных и экспертные системы (7,8)

ПО современных коммуникаций (9 каф ЭМТ)

Рекомендуемая литература

·  Фигурнов. IBM PC для пользователей. "Ф и С", 1995.

·  Паскаль: руководство для пользователя. – М.: Финансы и статистика, 1989.

·  Фаронов -Паскаль 7.0. Начальный курс. Учебное пособие. М. 1997.

·  Ван Стиль, разработка, эффективность и испытания программ. - М.: Мир. 1985.

·  Структурное программирование. - М.: Мир, 1975.

·  , , Шура-Бура программ на Фортране. "Ф и С", 1984.

·  , , Ярошевский -ловушки при программировании на Фортране. Статистика, 1989.

·  Алгоритмы и структуры данных. – С-П, 2001.

·  Структурное программирование. - М.: Мир, 1975.

·  Программирование на языке Паскаль. Задачник. Под ред. . Питер, 2002.

I семестр

Лекция 1

1.1 Алгоритм. Понятие алгоритма

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

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

1.2 Алгоритмические языки

Записать алгоритм можно на любом языке (на русском, на китайском, на языке условных знаков). Однако, для записи алгоритма для такого строгого исполнителя, как вычислительная машина, не все языки годятся. Вычислительная машина «умеет» выполнять лишь определенный набор машинных команд. Именно в терминах машинных команд должен быть сформулирован для нее алгоритм.

Записывать алгоритмы для вычислительной машины в кодах очень непроизводительно. Поэтому для записи алгоритмов для ЭВМ разработаны специальные строгие математические языки, называемые алгоритмическими языками. В настоящее время существует много алгоритмических языков. Они отличаются друг от друга различными выразительными средствами записи алгоритмов и различными возможностями. Но всех их объединяет одно – для каждого из них разработаны специальные программы, называемые трансляторами, с помощью которых текст, написанный на алгоритмическом языке, превращается в алгоритм, записанный на языке машинных кодов.

Разработчики алгоритмических языков вынуждены искать компромисс между простотой транслятора и простотой использования алгоритмического языка. Чем ближе выразительные средства алгоритмического языка к машинным кодам, тем проще сам транслятор, тем более эффективен алгоритм, записанный в машинных кодах. Чем ближе выразительные средства алгоритмического языка к бытовому разговорному языку, тем легче программисту записать на нем алгоритм. Однако за простоту нужно платить. В результате, алгоритм, записанный в кодах машины, полученный транслятором с такого языка, менее эффективен, а сам транслятор более сложен. Языки, близкие к разговорному по своим выразительным средствам, принято называть языками высокого уровня, тогда как языки, близкие к кодам машины по своим выразительным средствам, называют языками низкого уровня, или машинно-ориентированными языками.

НЕ нашли? Не то? Что вы ищете?

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

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

Здесь этап 1 – творческие усилия составителя алгоритма, этап 2 – формализованный перевод алгоритма в текст на алгоритмическом языке, этап 3 – трансляция текста с алгоритмического языка в коды машины.

1.3 Запись алгоритма

Условимся записывать алгоритм с помощью следующих обозначений:

a). Элементарная операция присваивания. В прямоугольнике записывается сама операция.

b). Элементарная операция ввода. В параллелограмме записывается ключевое слово «Ввод» и список переменных через запятую, значения которых должны быть введены. В данном случае вводится значение единственной переменной X.

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

Будем считать, если это не оговорено особо, что ввод данных осуществляется с клавиатуры, а вывод – на экран монитора.

d). Подалгоритм, требующий дальнейшей детализации. В прямоугольнике с двойными боковыми ребрами записывается имя подалгоритма. В данном случае имя подалгоритма «Ф».

e). Решение. С помощь этой конструкции можно осуществлять ветвление алгоритма в зависимости от значения логического выражения Усл внутри ромбика. Если значение логического выражения «истина», то осуществляется переход по стрелке «да», в противном случае по стрелке «нет». Условимся всегда стрелку «да» рисовать влево, стрелку «нет» - вправо.

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

1.4 Элементарные структуры

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

Структура a) – линейная. Действия выполняются последовательно – сначала выполняется фрагмент Ф1, затем фрагмент Ф2. Структура b) – выбор. В зависимости от истинностного значения логического выражения Усл выполняется либо фрагмент Ф1, либо фрагмент Ф2. Структура с) – цикл. Многократно повторяется фрагмент Ф1 – тело цикла, перед каждым последующим выполнением тела цикла выполняется фрагмент Ф2 – модификатор. Логическое выражение Усл является условием выхода из цикла.

Если Вы хотите записать решение задачи с помощью перечисленных схем, попробуйте изложить решение задачи на бытовом, разговорном языке. В изложении решения неминуемо будут использоваться такие конструкции, как «сначала … затем», «если … то … иначе …», «повторяем … пока …», или на них похожие. Эти конструкции определяют соответствующие элементарные структуры. Попробуйте определить самую внешнюю структуру Вашего алгоритма. Если это удастся, то алгоритм разобьется на два подалгоритма (Ф1 и Ф2), которые можно записывать независимо, как решение двух более простых задач.

Заметим, что элементарные структуры имеют единственный вход и единственный выход. Таким образом, элементарные структуры топологически совместимы, то есть, вместо любого фрагмента можно поместить любую структуру. Поэтому, записав подалгоритмы Ф1 и Ф2, мы можем записать и сам алгоритм, связав решения соответствующей структурой.

Построение алгоритма последовательным выделением самой внешней структуры лежит в основе методики нисходящего метода проектирования алгоритмов (детализация сверху вниз). Используя описанный выше подход, мы получаем решение задачи в виде композиции трех элементарных структур. Если иметь таблицу перевода каждой элементарной структуры на какой-нибудь алгоритмический язык, то легко получить запись всего алгоритма на этом алгоритмическом языке.

Лекция 2

2.1. Договоренности о синтаксисе

Для того, чтобы построить таблицу перевода элементарных структур на алгоритмический язык, необходимо познакомиться с минимальными синтаксическими требованиями этого алгоритмического языка. На примере языка Турбо Паскаль (Turbo Pascal – ТР) мы сформулируем эти минимальные требования, чтобы каждый из вас мог самостоятельно построить таблицу перевода элементарных структур на другой алгоритмический язык. Поскольку в настоящем разделе мы познакомимся не с синтаксисом языка ТР, а лишь с его частью, достаточной для записи алгоритма, использоваться, пока, будет не вся мощь алгоритмического языка.

Нам потребуются следующие элементы языка ТР:

Целая константа - цепочка цифр, возможно со знаком (Например: 1,-1995,+22).

Действительная константа - цепочка цифр с точкой, возможно со знаком (Например: 3.1415, -0.0, +0.0001).

Переменная = <имя, тип, значение>. Имя - идентификатор (слово из латинских букв и цифр, начинающееся с буквы), Тип - действительный или целый (пока), значение должно соответствовать типу.

Арифметические операции + (сложение), - (вычитание), * (умножение), / (деление), div (деление целых), mod (взятие остатка).

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

Отношения: равно (=), не равно (<>), больше (>), бльше либо равно (>=), меньше (<), меньше либо равно (<=) - связывают арифметические величины, результат - логическая величина (принимает значения либо «истина» (TRUE), либо «ложь» (FALSE)).

Логические операции – not (отрицание), and (логическое умножение), or (логическое сложение).

Логические выражения – осмысленные комбинации логических величин, связанных логическими операциями.

2.2. Текст программы на Turbo Pascal

Текст программы на языке ТР представляет собой последовательность символов (латинские буквы и некоторые знаки кодовой таблицы). Транслятор читает этот текст последовательно, игнорируя разбиение на строки, не различая строчные и прописные буквы, пропуская комментарии (часть текста, заключенная в фигурные скобки { }). Символ пробел является разделителем слов, несколько пробелов подряд воспринимается как один пробел. Символ точка с запятой является разделителем между предложениями (операторами языка). В любом месте программы, где допустимо записать какой-нибудь оператор, можно записать пустой оператор (ничего не писать).

Текст программы на языке ТР начинается с заголовка program <имя программы>, где имя программы – уникальный идентификатор в программе. Заканчивается текст программы на языке ТР закрывающей логической скобкой end с точкой. С открывающей логической скобки begin, соответствующей последнему end программы, начинается секция действий. Секция действий состоит из записи алгоритма решения задачи на алгоритмическом языке ТР. Именно сюда и помещается текст, полученный из алгоритма по таблице перевода.

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

2.3 Элементарные операции

При записи на ТР элементарной операции присваивания следует учесть, что имя операции – комбинация символов := (двоеточие и равенство), слева от имени оператора записывается имя переменной, которой присваивается значение, а справа – выражение. В выражении должны использоваться только допустимые для данного типа операции, порядок выполнения операций лучше указать скобками.

Элементарные операции ввода реализуются предопределенными в ТР процедурами ввода read и readln.

Read ( <список элементов ввода через запятую>)

Readln ( <список элементов ввода через запятую>)

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

Элементарные операции вывода реализуются предопределенными в ТР процедурами вывода write и writeln.

Write ( <список элементов вывода через запятую>)

Writeln ( <список элементов вывода через запятую>)

Под элементами вывода подразумеваются имена переменных и констант. Вывод данных осуществляется на устройство вывода. Отличие процедур заключается в том, что после завершения вывода данных процедура writeln осуществляет переход на новую логическую запись. Если устройство вывода – экран монитора, переход на новую логическую запись соответствует переходу курсора в начало следующей строки.

2.4. Таблица перевода для структур

Пусть нам удалось записать на языке ТР фрагменты Ф1 и Ф2.

Связать эти два фрагмента линейной структурой очень просто. Нужно выписать первый фрагмент, затем поставить знак ; (тока с запятой), а затем выписать второй фрагмент.

Чтобы связать фрагменты Ф1 и Ф2 структурой выбора, можно использовать следующий оператор ТР:

if Усл then begin Ф1 end else begin Ф2 end

Логические скобки begin … end можно опустить около фрагмента, если фрагмент представляет собой единый оператор.

Чтобы связать фрагменты Ф1 и Ф2 структурой цикла, можно воспользоваться следующей конструкцией:

M1: Ф1; if Усл then goto M2; Ф2; goto M1; M2:

Здесь используются метки M1 и M2, которые должны быть описаны в секции описаний. Предложенная реализация цикла довольно неуклюжа, однако, практически всегда можно модифицировать цикл так, либо фрагмент Ф1 отсутствовал, либо фрагмент Ф2 отсутствовал. Для таких частных случаев в языке ТР имеются очень удобные операторы:

repeat Ф1 until Усл

while not Усл do begin Ф2 end

Пример

Вычислить S = 1 - x**2/2! + x**4/4! - x**6/6! + ... с точностью E.

Алгоритм:

Текст программы

PROGRAM Example01;

LABEL M17,M18;

var X, E,S, A:REAL; I, ZN:INTEGER;

BEGIN

READLN(X, E);

S:=0;

ZN:=1;

I:=0;

A:=1;

M17: S:=S+ZN*A;

IF A<E THEN GOTO M18;

ZN:=-ZN;

I:=I+2;

A:=A*X*X/(I*(I-1));

GOTO M17;

M18: WRITELN(S);

END.

2.5 Практические рекомендации по решению задач

Вы получили задачу, сформулированную на русском языке. Прежде чем приступать к ее решению, постарайтесь вдуматься в условие задачи и точно его понять. Затем следует продумать, какие исходные данные и в каком порядке потребуются при решении задачи и что собой будет представлять результат работы будущей программы. Следует, также, продумать сюжет взаимодействия пользователя с Вашей программой (интерфейс пользователя). Интерфейс пользователя должен быть удобным и простым.

Особое внимание следует уделить обозначениям, используемым в алгоритме. Имена объектов алгоритма должны соответствовать смыслу обозначаемых ими объектов, но не забывайте, что эти же имена нужно будет использовать и в тексте программы на ТР, поэтому позаботьтесь о том, чтобы эти имена были допустимы в языке ТР.

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

2.6. Понятие о файловой системе

В современных операционных системах хорошо развиты средства поддержки файловой системы. Для уверенной работы за ПК необходимо уметь ориентироваться в существующей файловой структуре и выполнять основные операции поддержки файловой системы – создание, удаление, переименование, копирование и перенос файлов и папок.

2.7. Интегрированная среда ТР

Для создания программ на языке ТР необходимо освоить работу в интегрированной среде ТР. Интегрированная среда ТР содержит встроенный редактор, транслятор и сервисные средства. Необходимо научиться набирать и редактировать текст программ, компилировать, выполнять и просматривать результаты работы программы.

Лекция 3

3.1 Проект программы

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

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

Каждый из перечисленных пунктов требует глубокого осмысления и будет уточняться по мере изложения материала текущего курса. Попробуйте на базе материала 1 и 2 лекций при выполнении лабораторных работ максимально проработать позиции проекта программы.

3.2. Частные случаи для структуры цикла

Полный цикл с) пункта 1.4 редко используется при разработке алгоритмов. При решении конкретных задач используются частные случаи этого цикла, в которых отсутствует один из блоков – либо Ф1, либо Ф2. Можно строго математически доказать, что этих двух частных случаев цикла достаточно для организации любого цикла.

Решим такую задачу: написать программу, вычисляющую сумму

S=1-1/2+1/3-1/4+1/5-1/6-...+1/999-1/n.

В этом решении использован полный цикл. Однако, нетрудно видеть, что подалгоритм «Накопление» можно реализовать по-другому. Сравните представленные ниже реализации:

Обратите внимание на то, что тело цикла с постусловием обязательно будет выполнено хотя бы один раз при любом значении n и начальном значении параметра цикла i, тогда как при начальном значении параметра цикла i > n тело цикла с предусловием не будет выполнено ни разу.

Для реализации цикла с предусловием на языке ТР (как и на многих других языках) удобнее вместо условия выхода из цикла использовать условие продолжения цикла (напоминаю, в блоке решения стрелка влево всегда помечается значением «истина», стрелка вправо – значением «ложь»):

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

Приведем решения поставленной задачи с использованием частных случаев полного цикла:

Цикл с постусловием

Цикл с предусловием

readln(n);

S=0; Zn=1; I=1;

repeat

S=S+Zn/I;

Zn=-Zn;

I=I+1

until I>n;

writeln(S)

readln(n);

S=0; Zn=1; I=1;

while not(I>n) do

begin

S=S+Zn/I;

Zn=-Zn;

I=I+1;

end;

writeln(S)

Если в решении задачи заранее известно количество повторений тела цикла (в нашей задаче n), можно упростить изображение структуры, указав лишь операции в теле цикла и границы изменения параметра цикла – начальное значение, конечное значение и шаг. Такой цикл называется циклом с параметром. На языке ТР имеется оператор цикла с параметром.

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

3.3 Массивы

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

x1,x2,...x10 – обозначения, принятые в математике, x[1],x[2],...x[10] – в ТР.

Индексами могут служить выражения.

Объявление массива в программе:

VAR <Имя>: ARRAY[<Нач_индекс>..<Кон_индекс>] of <Тип>;

где

·  <Имя> - имя переменной-массива;

·  ARRAY, of - ключевые слова;

·  <Нач_индекс> и <Кон_индекс> - целые числа (пока), определяющие диапазон изменения индексов (номеров) элементов массива;

·  <Тип> - тип элементов массива.

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

Например,

VAR

Matrix : ARRAY [1 .. 10] OF REAL;

Koef : ARRAY [1 .. 3] OF INTEGER;

Пример

Ввести несколько чисел и распечатать их в обратном порядке.

Массив Х, содержащий 100 элементов.

Ввести n (n<=100).

(Нарисовать схемы и записать тексты)

i:=1;

WHILE i<=n DO BEGIN

READLN(Х[i]);

i:=i+1

END;

i:=n;

WHILE i>=1 DO BEGIN

WRITELN(X[i]);

i:=i-1

END;

i:=1;

REPEAT

READLN(X[i]);

i:=i+1

UNTIL i>n;

i:=n;

REPEAT

WRITELN(X[i]);

i:=i-1

UNTIL i<1;

Цикл с параметром:

For i:=1 to n do readln(X[i]);

For i:=n downto 1 do writeln(X[i]);

For i:=1 to n do writeln(X[n-i+1]);

Лекция 4

4.0 Требования к защите бальных задач

1.  Защищается алгоритм, а не текст программы на Паскале. Если Вы не в состоянии вразумительно объяснить ход решения, рисуйте схему алгоритма.

2.  Текст на ТР должен соответствовать алгоритму.

3.  После заголовка - комментарий, в котором ФИО, номер задачи и стоимость в баллах.

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

5.  Зацикливание программы, если это имеет смысл.

6.  Задержка пользовательского экрана, если это необходимо.

4.1 Начало систематического изложения Turbo Pascal (TP)

·  Алгоритмический язык TP ориентирован на работу в среде MS-DOS.

Базовый язык Pascal разработан Н. Виртом (1968) как язык обучения программированию. Все реализации языка унаследовали принципы, позволяющие разрабатывать читабельные, структурные, надежные и эффективные программы.

·  В основе этих принципов заложена концепция типа данных, которую можно сформулировать следующим образом:

1)  каждая переменная, константа, выражение и функция относятся к определенному типу данных;

2)  тип данных задается явно;

3)  над данными каждого типа допустимы определенные операции.

·  Язык Pascal называют языком со строгой типизацией данных. Строгая типизация данных требует некоторых дополнительных затрат от разработчика программы на этапе проектирования и реализации на алгоритмическом языке, однако эти затраты окупаются на стадии отладки и модификации программы, поскольку у компилятора имеется возможность более детального синтаксического анализа исходного текста во время компиляции и создания машинного кода, способного более строго контролировать корректность операций на шаге выполнения.

·  Каждая реализация языка ТP является расширением базового (стандартного) языка Pascal. Для того чтобы создавать мобильные программы, необходимо в данной конкретной реализации отличать средства, относящиеся к стандарту, и возможности, относящиеся к расширению стандарта.

·  Программа - цепочка символов, слова, разделители, пробелы.

·  Программа - последовательность предложений (вложенность)

·  Структура программы: [Заголовок], секция описаний, секция действий.

·  Алфавит языка TP содержит прописные и строчные буквы латинского алфавита (буквой считается символ подчеркивания "_"), цифры от 0 до 9, символы + - * / = > < ( ) [ ] { } . , ; : ' @ # ^ $ и пробел.

·  К элементам языка относятся:

идентификаторы - имена переменных, констант, процедур, функций и т. д., зарезервированные (или ключевые) слова,

стандартные идентификаторы (предопределенные имена)

специальные символы - комбинации символов алфавита.

·  Идентификатором в TP может быть любое слово, состоящее из букв и цифр, начинающееся с буквы. Компилятор не различает прописные и строчные буквы, кроме того, следует иметь в виду, что компилятор анализирует лишь первые 63 символа идентификатора.

·  Все зарезервированные (ключевые) слова алгоритмического языка следует помнить, поскольку нельзя использовать в программе идентификаторы, совпадающие с ключевым словом. В списке ключевых слов значком "+" помечены слова, не используемые в стандарте языка Pascal:

and

Mod

shr+

asm

file

Nil

string+

array

for

Not

then

begin

object+

to

case

function

Of

type

const

goto

or

unit+

constructor+

if

packed

until

destructor+

implementation+

procedure

uses+

div

in

program

var

do

inline+

record

downto

interface+

repeat

while

else

set

with

end

label

shl+

xor+

·  Стандартные идентификаторы могут быть переопределены в программе, однако при этом теряется возможность использования соответствующих предопределенных средств. Например, в программе можно описать переменную "sin", но доступ к стандартной функции синуса будет закрыт в области действия этой переменной.

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5