- •Министерство образования Российской Федерации Ярославский государственный педагогический университет имени к.Д. Ушинского Лабораторный практикум по языку программирования Pascal Ярославль 2004
- •Оглавление
- •Лабораторные работы Лабораторная работа №1Знакомство с клавиатурой. Организация работы в среде Турбопаскаль.
- •Задание 1
- •Задание 2
- •Задание 3
- •Задание 4
- •Задание 5
- •Лабораторная работа №2Команды присваивания, ввода и вывода. Составление простейших программ на языке Турбопаскаль.
- •Задание 1
- •Задание 2
- •Задание 3
- •Задание 4
- •Задание 5
- •Лабораторная работа №3Команды ветвления и выбора на языке Турбопаскаль
- •Задание 1
- •Задание 2
- •Задание 3
- •Задание 4
- •Задание 5
- •Лабораторная работа №4Команды ветвления и повторения на языке Паскаль
- •Задание 1
- •Задание 2
- •Задание 3
- •Задание 3
- •Задание 4
- •Задание 5
- •Лабораторная работа №6Циклы
- •Задание 1
- •Задание 2
- •Задание 3
- •Задание 4
- •Задание 5
- •Дополнительные задания
- •Лабораторная работа №7Одномерные массивы
- •Задание 1
- •Задание 2
- •Задание 3
- •Задание 4
- •Задание 5
- •Дополнительные задачи.
- •Лабораторная работа №8Двумерные массивы
- •Задание 1
- •Задание 2
- •Задание 3
- •Задание 4
- •Задание 5
- •Дополнительные задачи.
- •Лабораторная работа №9Работа со строковыми величинами
- •Задание 1
- •Задание 2
- •Задание 3
- •Задание 4
- •Задание 5
- •Дополнительные задания
- •Лабораторная работа №10Обработка литерных величин на языке Турбопаскаль
- •Дополнительные задания
- •Задание 5
- •Лабораторная работа №12Работа с одномерными и двумерными массивами
- •Задание 1
- •Задание 2
- •Лабораторная работа №13Многочлены
- •Задание 1
- •Задание 2
- •Задание 3
- •Задание 4
- •Задание 5
- •Лабораторная работа №14Линейная комбинация векторов
- •Задание 1
- •Задания повышенной трудности
- •Лабораторная работа №15Скалярное произведение векторов.
- •Лабораторная работа №16 Простейшие графические операторы
- •Задание 5
- •Задание 6
- •Дополнительные задания.
- •Лабораторная работа n 19 Работа с множествами Задание 1
- •Задание 2-3
- •Задание 4
- •Задание 5
- •Лабораторная работа № 20 Работа с записями
- •Дополнительные залания
- •Задание 3
- •Задание 5
- •Задание 6 (дополнительный балл)
- •Дополнительное задание (до 3 баллов)
- •Задание 5
- •Примерные вопросы к собеседованиям Величина. Команды присваивания, ветвления и выбора.
- •Массивы
- •Литерные переменные
- •Процедуры и функции
- •Графика
- •Датчик случайных величин
- •Множества
- •Динамическая память
- •Деревья
- •Тексты программ для выполнения лабораторных работ Файл primer1.Pas
- •Файл lab10.Pas
- •Файл lab11.Pas
- •Файл List1.Pas
- •Файл List2.Pas
- •Файл lab5.Pas
- •Файл lab6.Pas
- •Примерный список индивидуальных задач
Задание 5
Решить одну из следующих задач:
Составить процедуру слияния двух упорядоченных списков в один и с ее помощью организовать быструю сортировку списка.
Реализовать процедуру выбора водящего с помощью детской считалочки по кругу с выбыванием (после выбывшего счет начинается заново со следующего по кругу, а последний оставшийся и есть водящий).
Восстановить список, если есть список всех пар следующих друг за другом элементов, например по данным (4,13),(5,7),(7,3),(13,5),(67,4) должен быть получен исходный список (67,4,13,5,7,3).
Задание 6 (дополнительный балл)
Имеется указатель на первый элемент однонаправленного списка. Последний элемент списка указывает на nil. Описать алгоритм, (аккуратно, но не доводя до программы), с помощью которого можно установить корректность списка или наличие в нем циклов. При этом можно использовать только ограниченный объем памяти (например, не более 20 простых переменных). Кроме того, желательно, чтобы быстродействие программы было «хорошим», т.е. трудоемкость должна линейно зависеть от размера списка.
Лабораторная работа №27 Использование стека
Задание 1
Составьте с использованием процедур и функций программу, которая заполняет стек числами, введенными с клавиатуры, и распечатывает его содержимое, начиная от вершины. Используйте в программе реализацию стека в виде массива. После исполнения программу оставьте.
Задание 2
Составьте с использованием процедур и функций программу, которая заполняет стек числами, введенными с клавиатуры, и распечатывает его содержимое, начиная от вершины. Используйте в программе реализацию стека с использованием динамических структур. После исполнения программу оставьте.
Задание 3
Реализуйте задачу об определении правильности расстановки скобок трех типов «([{}])» в строке, не содержащей никаких других символов. Реализация стека при этом может быть любой на Ваше усмотрение.
Задание 4
Составьте и проверьте правильность работы программы по вычислению значения арифметического выражения, записанного в одну строку в постфиксной (или по желанию – префиксной) форме. При этом заранее известно, что все операнды в исходной строке являются целыми неотрицательными числами, выражение записано корректно, а числа и знаки операций разделяются друг от друга и между собой с помощью одного пробела. Реализация стека в данной программе должна отличаться от использованной Вами в задании 3.
Задание 5
Составьте программу для решения одной из следующих задач:
Перевести выражение с ограничениями из задания 4 и не содержащее скобок из обычной формы записи в постфиксную
Перевести выражение с ограничениями из задания 4 и не содержащее скобок из обычной формы записи в префиксную
Вычислить значение арифметического выражения с ограничениями из задания 4 и не содержащее скобок, записанного в обычной форме
Добавить в программу из задания 4 проверку корректности, т.е. прерывание работы с выдачей одного из сообщений: «мало чисел», «мало операций», «неверная структура», «некорректный символ»
(*) Вычислить значение арифметического выражения с ограничениями из задания 4, содержащее скобки.
(*) Перевести выражение с ограничениями из задания 4, содержащее скобки, из обычной формы записи в постфиксную.