- •Понятие формального языка. Описание синтаксиса языка.
- •Понятия тестирования и отладки. Принципы тестирования.
- •Полнота тестирования. Критерии черного ящика.
- •Критерии белого ящика.
- •Мгт. Ошибкоопасные ситуации при работе с файлами.
- •Ошибкоопасные ситуации при обращении к данным.
- •Ошибкоопасные ситуации при вычислениях.
- •Ошибкоопасные ситуации при передаче управления и вызовах подпрограмм.
- •Безмашинное тестирование.
- •Оценка количества ошибок в программе.
- •Мера доверия к миллсовой модели оценки количества ошибок в программе. Оценка количества необходимых тестов.
- •Отладка. Отладочные операторы.
- •Методы поиска ошибки. Принципы отладки. Анализ обнаруженной ошибки.
- •Отладочные средства авс-Паскаля.
- •Нисходящее программирование. Нисходящее тестирование.
- •Стиль программирования
- •Понятие алгоритма. Свойства алгоритма.
- •Операторы Паскаля
- •Замкнутые подпрограммы.
- •Открытые подпрограммы.
- •Передача параметров.
- •Рекурсия.
- •Рекуррентные вычисления. Вычисления рекурсивные и итеративные. Реализация одного и того же алгоритма рекурсивно и итеративно.
- •Блочная структура.
- •Понятие типа данных. Классификация языков по типизации.
- •Классификация типов данных. Числовые типы.
- •Перечисления. Диапазоны.
- •Массивы.
- •Моделирование массивом последовательностей: стек.
- •Моделирование массивом последовательностей: очереди
- •Моделирование массивом последовательностей: деки
- •Записи. Присоединяющий оператор.
- •Файлы. Виды файлов. Методы доступа. Триада для работы с файлом.
- •Синхронизация. Буферизация. Блокирование.
- •Двоичные файлы в авс-Паскале.
- •Строки Тип string в авс Паскале.
- •Множества.
- •Процедурные типы.
- •1 ) Описание процедурной константы в Паскале:
- •2 ) Не в Паскале:
- •Типовая безопасность. Идентичность типов.
- •Абстракция данных. Модули в Турбо-Паскале и в авс-Паскале.
- •Подходы к созданию универсального языка программирования
- •Запись с вариантами
- •Классы памяти
- •Понятие конечного автомата и мп-автомата
- •Понятие Машины Тьюринга, нормальных алгоритмов Маркова
Замкнутые подпрограммы.
Процедура или функция представляет собой последовательность операторов, которая имеет имя, список параметров и может быть вызвана из различных частей программы. Функции, в отличие от процедур, в результате своего выполнения возвращают значение. Для единообразия функции и процедуры называются подпрограммами.
Замкнутая подпрограмма – логическая вставка кода
-
-
Call p
-
-
Call p
-
-
Программа: Вызов процедуры:
р
Адрес возврата:=адрес а1
Call p1 Вернуться по адресу возврата
a1
Адрес возврата:=адрес а2
Call p2
a2
Открытые подпрограммы.
MACRO
End MACRO;
Mcall MACRO; - макровызов
Подстановка тела макро команды
Макрорасширение (макроподстановка = 1 строка текста расширяется до тела макро команды)
Макроопределение – определение макро команды
1) Физическая подстановка текста
Macro M
End M;
Программа Текст после препроцессорной обработки Коды после трансляции
T1; Т1; К1;
Macll M; КМ`;
T2; Т2; K2;
Mcall M; KM``;
T3; Т3; K3;
Втрое больше времени
При трансляции не обязательно одинаковые коды
Расширяется объем программы (код и текст)
2) Физическая подстановка кода
Macro M
End M;
Программа Коды после трансляции
T1; К1;
Macll M; КМ;
T2; K2;
Mcall M; KM;
T3; K3;
Нет стадии препроцессорной обработки
Код расширяется, текст - нет
Трансляция 1 раз
3) Логическая подстановка текста
Macro M
End M;
Program (Turbo Pascal)
T1; Трансляция Программы: К1;
{$ insert M}; Трансляция файла М: KM`;
T2; Трансляция Программы: К2;
{$ insert M}; Трансляция файла М: KM``;
T3; Трансляция Программы: К3;
Нет препроцессорной обработки
Трансляция совмещена с макроподстановкой
Нет физической подстановки текста
Передача параметров.
Внешние данные в подпрограмме могут использоваться, если они являются глобальными объектами для данной подпрограммы или переданы ей в качестве параметров. В описании подпрограммы указываются формальные параметры, а в точке вызова подпрограммы задаются фактические параметры. Формальный параметр определяет тип передаваемого фактического параметра. Фактический параметр представляет собой выражение соответствующего типа.
Различаются следующие способы передачи параметров: по ссылке, по имени, по значению, по значению-результату, по результату, по значению-константе. Набор допустимых способов передачи параметров зависит от конкретного языка программирования.
1)по значению
- локальные переменные, которые получают начальное значение из соответствующих фактических параметров, после чего всякая связь между формальными и фактическими параметрами исчезает, изменение фактического параметра не влияет на формальный
При передаче параметров по значению-константе значение фактического параметра не может быть изменено. Такой способ передачи параметров может быть реализован и как частный случай передачи параметра по значению, и как передача параметра по ссылке на константное выражение, что однозначно гарантирует неизменность фактического параметра вызывающей подпрограммы.
При передаче массива по значению идет копирование всех значений, вследствие чего требуется большой объем памяти.
2)по ссылке (формальным параметрам могут соответствовать только переменные) (с var)
- другое имя для соответствующего фактического параметра
При передаче параметра по ссылке в подпрограмму передается адрес фактического параметра. Поэтому если параметр занимает много памяти (массив, запись), то обычно он также передается по ссылке. В результате в процедуру передается не сам параметр, а его адрес, что экономит память и время работы. При этом если параметр меняется внутри подпрограммы, то он передается с ключевым словом var, если не меняется - с ключевым словом const
При передаче массива по ссылке, например, при возведении в квадрат массива, то при вычислениях будут меняться исходные данные и результат будет неверным.
