- •1. Структура (состав) языка
- •2. Алфавит
- •3. Лексическая структура языка
- •4. Структура программной единицы
- •5. Стиль записи программ на языке Паскаль
- •6. Типы данных в Паскале
- •6.3 Классификация типов данных в Турбо Паскале
- •6.4 Порядковые типы
- •6.4.2 Булевский (логический) тип
- •Repeat тело_цикла until (логическое_выражение);
- •6.4.3 Целые типы Выделяют целые типы ------------- со знаком – shortint, integer, longint)
- •1 Группа функций:
- •2 Группа функций:
- •3 Группа функций:
- •6.4.4 Перечисляемый тип.
- •6.4.6 Символьный тип
- •6.5 Вещественные типы.
- •7. Выражения в языке Паскаль.
- •10. Вычисление по формулам.
- •10.1 Оператор присваивания .
- •10.2 Характер использования переменных в математике и в программах.
- •10.3 Бесконечности
- •10.4 Нестандартные операции
- •6.6 Строки
- •1) Операции присваивания и сравнения.
- •3) Заполнение строки одним символом
- •4) Стандартные функции и процедуры для работы со строками:
- •5) Подпрограммы преобразования из строкового представления в числовое и наоборот:
- •8. Совместимость и преобразование типов.
- •Совместимость типов
- •8.2 Тип результата арифметических выражений.
- •8.3 Преобразование (приведение) типов и значений.
- •8.3.1 Явное преобразование (приведение) типов.
- •8.3.2 Неявное преобразование или приведение типов.
- •9. Простейший ввод-вывод на Паскале
- •Стандартные файлы Input и Output
- •9.2 Процедуры ввода информации (с клавиатуры.
- •9.3 Процедуры вывода в тр.
- •10. Вычисление по формулам (продолжение)
- •10.6. Уточнение многоместных (n - арных) операций
- •11. Средства языка Паскаль для циклов с известным числом повторений.
- •12. Табулирование функций
- •13. Разветвляющиеся алгоритмы
- •13.1 Таблица ситуаций и команда выбора.
- •13.2 Средства языка Паскаль для программирования разветствляющихся алгоритмов
- •13.4 Описание ситуаций
- •13.5 Запись команды выбора (case) (уточнение таблицы ситуаций) с помощью набора команд ветвления
- •13.6 Запись последовательных команд ветвления в случае, когда соседние зависимые ситуации имеют общие признаки.
- •13.6.1 Восходящий подход
- •13.6.2 Нисходящий подход
- •14. Циклы с неизвестным числом повторений
- •15. Структурированные типы данных. Массивы
- •15.1 Классификация (особенности) структурированных типов данных
- •15. 2. Определение массива
- •15.3 Объявление массива на Турбо Паскале
- •15.4 Хранение элементов массива. Доступ к элементам и частям массива
- •15.5 Уточнение команд обработки массива
- •16. Правила разработки цикла
- •15. 6 Действия над массивами
- •17. Множества.
- •17.1 Множества в Паскале и в математике. Сходства и различия между ними.
- •17.2 Объявление множества на Паскале
- •17.3 Присваивание значений множествам. Конструктор множества
- •17.4 Операции над множествами.
- •17.5 Сравнение множеств.
- •17.6 Применение множеств.
- •18. Вспомогательные алгоритмы (подпрограммы).
- •18.1 Три способа записи повторяющихся команд
- •18.2 Понятие блока
- •18.3 Объекты подпрограммы (то, над чем выполняются действия).
- •18.4 Свойства локальных и глобальных объектов
- •Свойства глобальных объектов:
- •18.5 Выделение памяти под локальные и глобальные переменные
- •18.6 Передача параметров в подпрограммы.
- •Фактические параметры
- •18.7 Подпрограммы, возвращающие значение (функции)
- •18.8 Особенности использования процедур и функций в Турбо Паскале
- •18.9. Побочный эффект (side effect)
- •18.10 Опережающее определение процедур и функций.
- •18.11 Рекурсия и итерация.
- •18.12 Процедуры и функции как параметры.
- •18.13 Директивы подпрограмм
- •Директива forward
- •Директивы far и near
- •Директива external
- •Директива assembler
- •Директива inline
- •Директива interrupt
- •Отладка и тестирование программ, содержащих подпрограммы
- •18.14.1 Нисходящее тестирование и подпрограммы-заглушки
- •18.14.2 Восходящее тестирование и программы-тестеры
- •18.14.3 Рекомендации по отладке программ, содержащих подпрограммы
- •18.14.4 Использование отладчика для трассировки процедур
- •18.14.5 Область действия идентификаторов и переменные в окне Watch
- •18.15. Получение доступа а параметрам командной строки, запуск внешних программ.
- •19. Записи.
- •19.1 Понятие записи. Объявление записи в программе.
- •19.2 Доступ к полям записи.
- •19.3 Оператор with
- •19.4 Действия над записями
- •19.5 Записи с вариантами
- •Замечание1:Порядок частей – именно такой, как показано: фиксированная часть всегда первая (или единственная)
- •19.6 Типизированные константы - записи
- •20. Модули (Unit)
- •20.1 Что такое модуль?
- •20.2 Зачем нужны модули и какие есть средства, аналогтчные (в какой-то мере) модулям
- •Интерфейсная секция
- •Секция реализации
- •Секция инициализации
- •Подключение других модулей к данному (модулю)
- •20.4 Ссылки на описания модуля
- •Пример создания модуля
- •Использование модулей. Режимы Compile, Build и Make при компиляции модулей
- •Косвенные и перекрестные ссылки на модули
- •Пример модуля (стек)
- •Модули и большие программы
ОСНОВЫ ПАСКАЛЯ
1. Структура (состав) языка
В состав языка включается обычно три составляющие: алфавит, синтаксис и семантика. Кроме того в составе синтаксиса выделяют еще так называемую лексическую структуру языка.
Алфавит – это фиксированный для данного языка набор основных символов, из которого будут строиться все основные конструкции языка. Алфавит задается перечислением всех допустимых символов.
Синтаксис задаёт (содержит) правила (для человека) образования допустимых (правильных) для данного языка конструкций и правила образования программы из этих конструкций. Синтаксис описывается с использованием специальных искусственных языков – аналитических (БНФ) и графических (синтаксические диаграммы). Например, определение «арабские цифры» имеет вид:
или Арабские цифры::= 0 | 1 | 2 | 3 | 4 | … | 9
Описание синтаксиса на графическом языке Описание синтаксиса на аналитическом языке
Семантика – правила (для компилятора) толкования конструкций языка (с точки зрения возможности вычисления результата).
Замечание: в программе могут быть конструкции, правильные с точки зрения синтаксиса (человека, написавшего программу по правилам грамматики) и неправильные с точки зрения семантики (компилятора, толкующего то, что написал человек):
Var
С точки зрения семантики языка Паскаль
(по правилам т.н. совместимости типов)
недопустимо присваивание вещественного
значения переменной целого типа.
r : real;
begin
r := 1.25;
i := r;
end.
Задаётся семантика, в отличии от синтаксиса, не формально (т.е. не на искусственном языке), а посредством неформальных описаний на естественном языке.
2. Алфавит
Включает в себя буквы, цифры, спец. символы и пустые символы.
Буквы – допускается использование букв латинского алфавита (строчных и прописных, причем регистр букв в программах на Паскале не различается). Буквы русского алфавита не допускается использовать в конструкциях языка (только в составе строк, символьных переменных и комментариев). К буквам в Паскале относится и символ подчеркивания, часто выполняющий при записи сложных (многословных) имен роль пробела (day_of_week).
Цифры – арабские (от 0 до 9) или шестнадцатиричные (от a до f, или от A до F), где a16=1010, …f16=1510..
Пустые
символы (их коды – от 0 до 32) – они
названы так потому, что не отображаются
на экране ЭВМ, но производят некоторое
действие. Так, символ с кодом 7 при попытке
вывести его на экран вызывает
кратковременный гудок динамика, а символ
с кодом 32 – пробел (пустое место в тексте
на бумаге или на экране дисплея). При
подготовке текста, чтобы подчеркнуть
наличие в определенном месте пробела,
для его обозначения используют символ
.
Спец.
символы (их 22) – это + - * / = < > ( ) [ ]
{ } . , : ; ^ @ # $ ‘ . Cюда входят
знаки препинания, скобки, знаки операций,
Кроме того, некоторые пары символов,
рассматриваются как отдельные символы:
>=, <=, .. – знак диапазона, <> - знак
неравенства, (* и *) – вместо фигурных
скобок для обозначения границ комментария,
(. и .) – вместо квадратных скобок.
