
- •Основы программирования на языке паскаль
- •1. Простейшие программы Структура Паскаль-программы
- •Данные и тип данных
- •Стандартные функции
- •Выражения
- •Организация простейших программ
- •Модуль crt
- •Задания для самостоятельной работы
- •2. Ветвления
- •Задания для самостоятельной работы
- •3. Циклы
- •Оператор цикла с постусловием используется, когда известно условие, при котором цикл будет прекращать свою. Формат оператора:
- •Задания для самостоятельной работы
- •4. Массивы
- •Сортировка
- •Задания для самостоятельной работы
- •5. Строки
- •Задания для самостоятельной работы
- •6. Процедуры и функции
- •Параметры
- •Локальные и глобальные переменные
- •Функции
- •Задания для самостоятельной работы
- •7. Записи
- •Задания для самостоятельной работы
- •8. Множества
- •Операции над множествами
- •Задания для самостоятельной работы
- •9. Файлы
- •Стандартные процедуры и функции для работы с файлами всех типов
- •Стандартные процедуры и функции для работы с типизированными файлами
- •Задания для самостоятельной работы
- •10. Модуль graph
- •Процедуры и функции модуля graph
- •Задания для самостоятельной работы
- •11. Модули, определяемые пользователем
- •Задания для самостоятельной работы
- •12. Линейные однонаправленные списки Указатели
- •Линейные однонаправленные списки
- •Задания для самостоятельной работы
- •13. Двунаправленные списки.
- •Задания для самостоятельной работы
- •14. Кольцевые списки
- •Задания для самостоятельной работы
- •15. Стеки и очереди
- •Задания для самостоятельной работы
- •16. Деревья
- •Задания для самостоятельной работы
- •Простейшие программы . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
- •Бадмаева Энгельсина Сергеевна, Тонхоноева Антонида Антоновна
- •670000, Г. Улан-Удэ, ул. Смолина, 24-а.
Задания для самостоятельной работы
Используя стек и/или очередь, составить программы для решения следующих задач:
Варианты заданий:
Type FR = File of Real;
За один просмотр файла f типа FR и без использования дополнительных файлов напечатать компоненты файла f в следующем порядке: сначала – все числа, меньшие a, затем все числа из отрезка [a, b], и, наконец, – все остальные числа, сохраняя исходный взаимный порядок в каждой из этих трех групп чисел (a и b – заданные числа, a < b).
Type FB = File of Byte;
За один просмотр файла f типа FB и без использования дополнительных файлов напечатать компоненты файла f в следующем порядке: сначала – все числа, кратные 3, затем все четные числа и, наконец, – все остальные числа, сохраняя исходный взаимный порядок в каждой из этих трех групп чисел.
Type FB = File of Byte;
За один просмотр файла f типа FB и без использования дополнительных файлов напечатать элементы файла f в следующем порядке: сначала – все числа, в записи которых встречается цифра 1, затем все числа, кратные 5, и, наконец, – все остальные числа, сохраняя исходный взаимный порядок в каждой из этих трех групп чисел.
Type Name = (ann, bill, cat, jon, mary, sam, tom);
Children = Array[Name, Name] of Boolean;
Potomki = File of Name;
Считая заданными имя I и массив C типа Children (C[x, y]=true, если человек по имени y является ребенком человека по имени x), записать в файл F типа Potomki имена всех потомков человека с именем I в следующем порядке: сначала – имена всех его детей, затем – его внуков, затем – всех правнуков и т.д.
Напечатать содержимое текстового файла, выписывая символы каждой его строки в обратном порядке.
Проверить, является ли содержимое текстового файла правильной записью формулы следующего вида:
<формула>::=<терм>/<терм> + <формула>/<терм> – <формула>;
<терм>::=<имя>/(<формула>);
<имя>::=x/ y/ z
Обработать очередь пассажиров, желающих купить авиабилет. Элементы очереди содержат следующую информацию: фамилия пассажира, пункт прибытия, дата вылета. Информация об имеющихся билетах хранится в списке, элементы которого содержат номер рейса, пункт прибытия, дату, число непроданных билетов. Пассажир, обеспеченный билетом, из очереди удаляется. Содержимое списка по мере обеспечения пассажиров билетами корректируетя.
В текстовом файле записано без ошибок логическое выражение (ЛВ) в следующей форме:
<ЛВ>::=True / False / (!<ЛВ>) / (<ЛВ>*<ЛВ>) / (<ЛВ>+<ЛВ>)
где знаки !, *, + обозначают соответственно отрицание, конъюнкцию и дизъюнкцию. Вычислить (как Boolean) значение этого выражения.
9. В текстовом файле записан текст, сбалансированный по круглым скобкам. Требуется для каждой пары соответствующих открывающей и закрывающей скобок напечатать номера их позиций в тексте, упорядочив пары номеров в порядке возрастания номеров позиций закрывающих скобок.
Например, для текста А+(45-К(Х)*(С-У)) надо напечатать: 8 10; 12 16; 3 17.
10. В текстовом файле записан текст, сбалансированный по круглым скобкам. Требуется для каждой пары соответствующих открывающей и закрывающей скобок напечатать номера их позиций в тексте, упорядочив пары номеров в порядке возрастания номеров позиций открывающих скобок
Например, для текста А+(45-К(Х)*(С-У)) надо напечатать: 3 17; 8 10; 12 16.
11. Под «выражением» будем понимать конструкцию следующего вида:
<выражение>::=<терм> / <терм><знак><выражение>
<знак>::= + / -
<терм>::=<множитель> / <множитель>*<терм>
<множитель>::=<число> / <переменная> / (<выражение>) / <множитель>^<число>
<число>::=<цифра>
<переменная>::=<буква>
Здесь знак ^ обозначает операцию возведения в степень.
Постфиксной формой записи выражения ab называется запись, в которой знак операции размещен за операндами: ab. Примеры:
a-b → ab-
a*b+c → ab*c+
a*(b+c) → abc+*
a+b^c^d*e → abc^d^e*+
Описать функцию VALUE(Postfix), которая вычисляет как целое число значение выражения (без переменных), записанного в постфиксной форме в текстовом файле Postfix.
Начало смотреть в задании 11. Описать процедуру TRANSLATE(Infix, Postfix), которая переводит выражение, записанное в обычной (инфиксной) форме в текстовом файле Infix, в постфиксную форму и в таком виде записывает его в текстовый файл Postfix.
Начало смотреть в задании 11. Описать (нерекурсивную) процедуру INFIXPRINT(Postfix), которая печатает в обычной (инфиксной) форме выражение, записанное в постфиксной форме в текстовом файле Postfix. (Лишние скобки желательно не печатать.)