![](/user_photo/2706_HbeT2.jpg)
- •Лабораторная работа №1
- •Программирование линейных алгоритмов
- •Общие сведения:
- •Контрольные вопросы:
- •Задачи:
- •Задачи повышенной сложности
- •Составим схему алгоритма
- •Контрольные вопросы
- •Задачи повышенной трудности
- •Лабораторная работа №3 Программирование циклических алгоритмов
- •Общие сведения
- •Примеры
- •Контрольные вопросы
- •Задачки на смекалку
- •Задачи повышенной сложности
- •Контрольные вопросы
- •Задачи повышенной сложности
- •Лабораторная работа 5
- •Общие сведения
- •Примеры
- •Контрольные вопросы
- •Задания
- •Задачи повышенной сложности
- •Лабораторная работа 6 Программирование с использованием множеств
- •Общие сведения
- •Контрольные вопросы
- •Задания
- •Задачи повышенной сложности
- •Лабораторная работа 7 Программирование с использованием типа запись
- •Общие сведения
- •Контрольные вопросы
- •Задания
- •Задачи повышенной сложности
- •Лабораторная работа 8 Программирование с использованием процедур и функций
- •Общие сведения
- •Контрольные вопросы
- •Задания
- •Задачи повышенной сложности
- •Лабораторная работа 9 Работа с файлами
- •Общие сведения
- •Контрольные вопросы
- •Задания
- •Задачи повышенной сложности
- •Задания:
- •Задачи повышенной сложности
- •Контрольные вопросы
- •Варианты заданий
- •Контрольные вопросы
- •Варианты заданий:
- •Лабораторная работа №3 Сортировка методом прямого включения
- •Общие сведения
- •Контрольное задание
- •Варианты заданий
- •Лабораторная работа №4 Бинарный поиск
- •Общие сведения
- •Контрольные вопросы
- •Варианты заданий
- •Лабораторная работа №5 Рекурсия
- •Общие сведения:
- •Примеры
- •Контрольные вопросы
- •Варианты заданий
- •Лабораторная работа №6 Линейные списки
- •Общие сведения
- •Примеры
- •Контрольные вопросы
- •Варианты заданий
- •Лабораторная работа №7 Стек
- •Общие сведения
- •Примеры
- •Контрольные вопросы
- •Варианты заданий
- •Лабораторная работа №8 Двоичные деревья
- •Общие сведения
- •Примеры
- •Контрольные вопросы
- •Приложения
- •1. Сообщения об ошибках во время компиляции
- •2. Сообщения об ошибках вовремя выполнения программы
Контрольные вопросы
1. Что такое рекурсивный алгоритм?
2. Из каких частей строится определение рекурсивного алгоритма?
3. Что является обязательным в любом рекурсивном алгоритме?
4. Можно ли рекурсию заменить итерацией? Можно ли итерацию заменить рекурсией?
5. Каков принцип построения динамической структуры «дерево»?
6. Перечислите сходства и отличия динамических структур типа «линейный список», «стек», «дерево».
7. Перечислите структуры, которые можно представить в виде дерева, которые встречаются в повседневной жизни.
8. Закончите фразу: «Список – это дерево, в котором …».
Задачи
Во всех задачах подразумеваются деревья двоичного поиска.
1. Написать рекурсивную числовую функцию, подсчитывающую сумму элементов дерева.
2. Написать функцию, которая находит наибольший элемент дерева.
3. Написать функцию, которая находит наименьший элемент дерева.
4. Напишите процедуру, которая удаляет из дерева все четные элементы.
5. Написать рекурсивную процедуру, которая определяет число вхождений заданного элемента в дерево.
6. Написать рекурсивную процедуру, которая печатает элементы из всех листьев дерева.
7.
Написать процедуру, которая выводит на
экран дерево, показывая глубину узлов
отступом от левого края экрана. Например,
дерево
будет
выведено так:
1 группа
1 курс
2 группа
ФМИ
3 группа
2 курс
4 группа
8. Написать рекурсивную функцию, которая определяет глубину заданного элемента на дереве и возвращает –1, если такого элемента нет.
9. Написать процедуру, которая печатает (по одному разу) все вершины дерева.
10. Написать процедуру, которая по заданному n считает число всех вершин глубины n в заданном дереве.
11. Написать процедуру, которая считает глубину дерева.
12. Отсортировать массив А путем включения его элементов в дерево и скопировать отсортированные данные обратно в А.
13. Задана последовательность слов. Определить частоту вхождения каждого из слов в последовательность.
Указание. Для решения задачи любое слово ищется в дереве, которое на начальном этапе пусто. Если слово найдено, то счетчик его вхождений увеличивается на единицу, если нет, то слово включается в дерево с единичным значением счетчика.
Приложения
1. Сообщения об ошибках во время компиляции
1. Out of memory - Выход за границы основной памяти. 2. Identifier expected - Нужен идентификатор. 3. Unknown identifier - Неизвестный идентификатор. Этот идентификатор не объявлен. 4. Duplicate identifier - Повторный идентификатор. 5. Syntax error - Синтаксическая ошибка. 6. Error in real constant - Ошибка в действительной константе. 7. Error in integer constant - Ошибка в целой константе. 8. String constant exceeds line - Строковая константа превышает размеры строки. Вероятно, Вы забыли поставить апостроф в конце строки, 10. Unexpected end of file - Неожиданный конец файла программы или модуля. Возможно:
ваш исходный текст закончился до последнего end;
вы не закончили комментарий.
11 Line too long - Строка слишком длинная. Допустимая длина - 126 символов. 12. Type identifier expected - Нужен идентификатор типа. 14. Invalid file name - Неверное имя файла. 15. File not found - Файл не найден. 16. Disk full - Диск заполнен. 17. Invalid compiler directive - Ошибочна директива компилятора. 20. Variable identifier expected - Нужен идентификатор переменной. 21. Error in type - Ошибка в определении типа. 22. Structure too large - Слишком большая структура (массив, запись). Допустима структура длиною 65520 байт. 23. Set base type out of range - Базовый тип множества нарушает границы. Количество элементов множества может быть до 255. 24. File components may not be files or objects - Компонентами файла не могут быть файлы или объекты. 25. Invalid string length - Ошибочна длина строки. Допускается 255 символов. 26. Type mismatch - Несовместимость типов. Например:
переменной слева от знака присваивания и результата выражения в операторе присваивания;
фактического и формального параметров;
выражения. Определяющего индекс;
операндов в выражении.
29. Ordinal type expected - Нужен порядковый тип. 30. Integer constant expected - Нужна целая константа. 31. Constant expected - Нужна константа. 34. Invalid function result type - Ошибочен тип результата функции. 36. Begin expected - Нужен Begin 37. END expected - Нужен END. 42. Error in expression - Ошибка в выражении. 43. Illegal assignment - Неверное присваивание 44. Field identifier expected - Hужeн идeнтификaтop пoля зaписи. 50. DO expected -Нужен оператор DO 54. OF expected - Нужен оператор OF 57. THEN expected - Нужен оператор THEN 58. TO or DOWNTO expected - Нужен оператор TO или DOWNTO 59.Undefined forward - Heoпpeдeлeннoe опережающее описание. 60. Too many procedures - Слишком много процедур и (или) функций. Допускается не более 512 в одной программе или модуле. 62. Division by zero - Деление на нуль. 63. 1nvalid file type - Ошибочен файловый тип. 64. Cannot read or write variables of this type - He допускается чтение или запись переменных данного типа:
процедуры Read и Readln могут считывать переменные символьного, целого, действительного и строкового типа;
процедуры Write и Writeln могут выводить переменные символьного, целого, действительного, булевского и строкового типа.
66. String variable expected - Hужнa cтpoкoвaя пepeмeннaя. 67. String expression expected - Нужно выражение, строкового типа. 69. Unit name mismatch - Ошибочное имя программного модуля. 71. Internal stack overflow - Внутреннее переполнение стека. 74. Constant and case tуpes do not match - Tипы констант и тип выражения оператора CASE не соответствуют друг другу. 75. Record or obiect vaгiable expected - Hужнa переменная типа запись или объект. 76. Constant out of range - Константа нарушает допустимые границы. 77. File variable expected - Hужнa файловая переменная. 79. Integer or real expression expected - Hужнo выражение типа real или Integer. 85. ";" expected - Нужна ";". 86. ":" expected - Нужна ":". 87. "(" expected - Нужна "(". 88. ")" expected - Нужна ")". 89. "=" expected - Нужна "=". 90. "=" expected - Нужна ":=". 91. ":=" expected - Нужна ":=". 92. "[" expected - Нужна "[". 93. "]" expected - Нужна "]". 94. "." expected - Нужна ".". 95. ".." expected - Нужна "..". 96. Too many variables - Слишком много переменных; (ОП для них более 64 Кбайт). 97. Invalid FOR control variable - Ошибочен тип переменной параметра цикла оператора FOR. 98. 1nteger variable expected - Hужнa переменная целого типа. 99. Files and procedure types are not allowed here - Здесь не допускаются файлы и процедуры. 100. String length mismatch - Ошибочна длина строковой константы. 101. Invalid ordering of fields - Неверный порядок полей в константе типа запись. 102. String constant expected - Нужна константа строкового типа. 108. Overflow in arithmetic operation - Переполнение при выполнении арифметических операций. 111. User break - Компиляция прервана с помощью клавиш Ctrl + Break. 112. CASE constant out of range - кoнcтaнтa CASE нapушaeт дoпуcтимыeгpaницы. Целочисленные константы оператора Case должны быть в диапазоне от 32768 до: 32767. 113. Error in statement - Ошибка в операторе. 122. Invalid variable reference - Ошибочна ссылка на переменную. 123. Too manу sуmbols - Cлишкoм мнoгo cимвoлoв в пpoгpaммe (нужнa OП бoлee 64Kбaйт). 124. Statement part too large - Слишком большой раздел операторов (более 24 Кбайт). 126. Files must be var parameters - Файлы должны быть параметрами - переменными. 131. Header does not match previous definition - Заголовок процедуры или функции не соответствует предыдущему определению. 132. Disk erгor - Kpитичecкaя ошибка диска: он в состоянии "не готов". 133. Cannot evaluate this expгession - Heльзя вычиcлить дaннoe выражение. 137. Structured variables are not allowed here - Здесь не допускается использование структурной переменной (записи, массива). 140. Invalid floating point operation - Недопустимая операция с плавающий :запятой. 143. Invalid procedure or function reference - Недопустимая ссылка на процедуру или функцию. 146. File access denied - Нужно назначение файла.