
- •Понятие формального языка. Описание синтаксиса языка.
- •Понятия тестирования и отладки. Принципы тестирования.
- •Полнота тестирования. Критерии черного ящика.
- •Критерии белого ящика.
- •Мгт. Ошибкоопасные ситуации при работе с файлами.
- •Ошибкоопасные ситуации при обращении к данным.
- •Ошибкоопасные ситуации при вычислениях.
- •Ошибкоопасные ситуации при передаче управления и вызовах подпрограмм.
- •Безмашинное тестирование.
- •Оценка количества ошибок в программе.
- •Мера доверия к миллсовой модели оценки количества ошибок в программе. Оценка количества необходимых тестов.
- •Отладка. Отладочные операторы.
- •Методы поиска ошибки. Принципы отладки. Анализ обнаруженной ошибки.
- •Отладочные средства авс-Паскаля.
- •Нисходящее программирование. Нисходящее тестирование.
- •Стиль программирования
- •Понятие алгоритма. Свойства алгоритма.
- •Операторы Паскаля
- •Замкнутые подпрограммы.
- •Открытые подпрограммы.
- •Передача параметров.
- •Рекурсия.
- •Рекуррентные вычисления. Вычисления рекурсивные и итеративные. Реализация одного и того же алгоритма рекурсивно и итеративно.
- •Блочная структура.
- •Понятие типа данных. Классификация языков по типизации.
- •Классификация типов данных. Числовые типы.
- •Перечисления. Диапазоны.
- •Массивы.
- •Моделирование массивом последовательностей: стек.
- •Моделирование массивом последовательностей: очереди
- •Моделирование массивом последовательностей: деки
- •Записи. Присоединяющий оператор.
- •Файлы. Виды файлов. Методы доступа. Триада для работы с файлом.
- •Синхронизация. Буферизация. Блокирование.
- •Двоичные файлы в авс-Паскале.
- •Строки Тип string в авс Паскале.
- •Множества.
- •Процедурные типы.
- •1 ) Описание процедурной константы в Паскале:
- •2 ) Не в Паскале:
- •Типовая безопасность. Идентичность типов.
- •Абстракция данных. Модули в Турбо-Паскале и в авс-Паскале.
- •Подходы к созданию универсального языка программирования
- •Запись с вариантами
- •Классы памяти
- •Понятие конечного автомата и мп-автомата
- •Понятие Машины Тьюринга, нормальных алгоритмов Маркова
Файлы. Виды файлов. Методы доступа. Триада для работы с файлом.
Виды файлов:
1) записеориентированные (двоичные), при обмене происходит копирование цепочек без преобразования
Type F=file of <тип элементов>
2
)
потокоориентированные (текстовые),
рассматриваются как поток литер, которые
являются текстовым значением вводимых
и выводимых переменных (текстовое
внутреннее представление)
Разбит на строки
Методы доступа к файлам:
1) последовательный
Магнитная лента, записи ничем не отличаются, дозапись возможна только в конец файла
2) прямой
Можно напрямую обратиться к любому элементу
- каждая запись имеет уникальный ключ
- по номеру
3) индексно-последовательный
Ключи упорядочены, записи в порядке возрастания/убывания ключей
Триада для работы с файлами:
Синхронизация. Буферизация. Блокирование.
1) синхронизация – согласование времени работы
X:=a+b;
Writeln(x);
Y:=x;
Центральный процессор выполняет программу, одновременно дает задачу на процессор ввода-вывода
Assign(f,name) |
связывает файловую переменную f с файлом с именем name |
Reset(f) |
Файл должен существовать на диске, в противном случае происходит ошибка времени выполнения. Типизированные файлы - на чтение и запись |
Rewrite(f) |
Если файл с указанным именем уже существует, то он удаляется, и вместо него создается новый файл. Типизированные файлы - на чтение и запись |
|
|
Close(f) |
Закрывает файл |
FileExists(name) |
Возвращает True, если на диске имеется файл с именем name, в противном случае возвращает False |
CanCreateFile(name) |
Возвращает True, если можно создать файл с именем name, в противном случае возвращает False |
Read(f,a,b,...) |
Считывает значения из файла f в переменные a, b ... Если файл типизированный, то типы переменных a, b ... должны совпадать с базовым типом файла, а их значения считываются из файла в двоичном виде. |
Write(f,a,b,...) |
Записывает значения a, b ... в файл f. Если файл типизированный, то типы значений a, b ... должны быть совместимыми с базовым типом файла. |
|
|
|
|
Eof(f) |
Возвращает True, если файловый указатель стоит на конце файла, и False в противном случае |
|
|
|
|
|
|
FileSize(f) |
Возвращает количество элементов в типизированном файле |
FilePos(f) |
Возвращает позицию файлового указателя в типизированном файле (нумерация элементов в типизированном файле начинается с нуля) |
Seek(f,n) |
Перемещает файловый указатель в типизированном файле на n-тый элемент (нумерация начинается с нуля) |
Truncate(f) |
Удаляет все элементы типизированного файла с текущей позиции файлового указателя до конца файла |
Rename(f,name) |
Переименовывает файл, связанный с файловой переменной f. Файл должен быть закрыт |
Erase(f) |
Удаляет файл, связанный с файловой переменной f. Файл должен быть закрыт |
Z:=a+b;
Y:=x;
Когда центральный процессор дойдет до 3-й команды, ему нужно узнать, выполнилась ли первая команда
-либо процессор периодически обращается к процессору ввода-вывода, либо процессор ввода-вывода сам сообщает, когда закончит выполнять
Центральный процессор:
- стартовать операции ввода-вывода
- проверять состояние
- работает быстрее за счет электронных, а не механических операций
2) буферизация – разделение памяти за счет разных процессоров
Write (x,y,z);
X:=f();
Y:=f();
Z:=f();
Когда процессор дал операцию ввода-вывода, центральный процессор не имеет право обращаться в буфер, пока не закончится операция ввода-вывода
3) блокирование –
Логическая запись – (ввод-вывод), в программе манипулирование по логическим записям, логические записи в буфер
Физическая запись – (ввод-вывод), из буфера информация выводится физическими блоками, которые формируются из логических записей