- •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.4 Действия над записями
- •19.5 Записи с вариантами
- •19.2 Доступ к полям записи.
- •19.3 Оператор with
- •Замечание1:Порядок частей – именно такой, как показано: фиксированная часть всегда первая (или единственная)
- •19.6 Типизированные константы - записи
- •20. Модули (Unit)
- •20.1 Что такое модуль?
- •20.2 Зачем нужны модули и какие есть средства, аналогтчные (в какой-то мере) модулям
- •Интерфейсная секция
- •Секция реализации
- •Секция инициализации
- •Подключение других модулей к данному (модулю)
- •20.4 Ссылки на описания модуля
- •Пример создания модуля
- •Использование модулей. Режимы Compile, Build и Make при компиляции модулей
- •Косвенные и перекрестные ссылки на модули
- •Пример модуля (стек)
- •Модули и большие программы
19.2 Доступ к полям записи.
Доступ к полям записи производится с использованием т.н. составных имен, в записи которых всегда присутствует точка. Применительно к записи составное имя образуется из имени переменной типа запись, справа от которого через точку записывается в простейшем случае имя интересующего нас поля.
Var
A: record
b: byte;
C : record
d: char;
e : byte;
end;
end;
В
приведенной записи доступ к полям
выглядит следующим образом:
A. b
:= ;
A. C. d := ;
Имя поля
Путь к полю записи
В записи три поля. Доступ к полю b записи достаточно прост. Доступ к полям e и d наиболее сложен, потому что слева записывается путь, который нужно пройти, двигаясь от начала описания записи.
В случае массива записей доступ для поля h будет выглядеть:
table[5]. B. C. h:= ;
Для случая, где массивы являются полями записи доступ к полю h выглядит следующим образом:
table. B. C. h[5]:= ;
19.3 Оператор with
Формат его записи:
with префикс do
оператор;
один оператор!
Если описание записи длинное (путь к полям записи долго писать) и необходимо выполнить единообразные действия над полями этой записи, то оператор with избавляет от необходимости каждый раз для каждого действия записывать полный путь интересующей записи.
Для последнего случая, если надо обработать все элементы массива (поля) и, то обработку можно описать следующим образом:
table.B.C.h[1]:= ;
table.B.C.h[2]:= ;
table.B.C.h[3]:= ;
...
table.B.C.h[9]:= ;
Путь к полю записи
begin
h[1]:= …;
h[2]:= …;
...
end;
В качестве префикса после with необходимо указывать ту часть пути, которую не надо (не хочется) многократно переписывать. В этом случае после do в описании действий над полями можно префикс над полями автоматически опускать.
Примечание. После do можно писать только один оператор. Если надо написать несколько, то следует использовать операторные скобки.
19.4 Действия над записями
Разрешается присваивать одной записи целиком содержимое другой (но обязательно однотипной) записи. Ввод-вывод возможен только по отношению к полям записи. Запись можно передавать как параметр в подпрограммы. Надо только предварительно описать тип такой записи в секции описания типов (для обеспечения эквивалентности типа формального и фактического параметра-записи).
19.5 Записи с вариантами
Основная идея состоит в том, что в рамках одной и той же области памяти, выделенной для одной записи, привести описания различных вариантов заполнения этой области. В общем случае вариантрая запись состоит из двух частей: фиксированной и вариантной (переменной).
имя1 : тип1; поля фиксированной части
Var имя2 : тип2;
R : Record ……………. имя : тип или тип
Фиксированная часть
Варьируемая часть case селектор of
End; конст1 : (имя1 : тип1) ; вариантные поля
конст2 : (имя2 : тип2) ;
………………………..
