- •Лабораторные работы. Сборник задач.
- •Оглавление
- •Часть 1. Лаборатоные работы
- •Работа со структурами и объединениями …………………………………….91
- •3 Задача
- •4 Задача
- •5 Задача
- •6 Задача
- •Дополнительное условие:использование цикла с предусловием.
- •1 Задача
- •2 Задача
- •Дополнительное условие: программа написана без использования функции.
- •Дополнительное условие: программа написана с использованием функций.
- •3 Задача
- •Дополнительное условие: программа написана без использования функции.
- •Дополнительное условие: программа написана с использованием функции.
- •4 Задача
- •Дополнительное условие: программа написана без использования функции
- •Дополнительное условие: программа написана с использованием функции.
- •Самостоятельная работа
- •Лабораторная работа №3
- •Самостоятельная работа
- •1 Задача
- •2 Задача
- •1 Задача
- •2 Задача
- •3 Задача
- •Лабораторная работа №6
- •1 Задача
- •1 Задача
- •2 Задача
- •3 Задача
- •1 Задача
- •1 Задача
- •2 Задача
- •3 Задача
- •4 Задача
- •Синтаксический анализатор
- •Самостоятельная работа
- •1 Задача
- •2 Задача
- •3 Задача
- •Работа с каталогами
- •Самостоятельная работа
- •1 Задача
- •2 Задача
- •1 Задача
- •2 Задача
- •3 Задача
- •1 Задача
- •2 Задача
- •1 Задача Реализовать очередь, состоящую из целых чисел
- •Комментарий:
- •2 Задача
- •1 Задача
- •Идеально-сбалансированные деревья
- •1 Задача
- •2 Задача
- •1 Задача
- •2 Задача
- •3 Задача
- •1 Задача
- •2 Задача
- •3 Задача
- •1 Задача
- •1 Задача
- •1 Уровень сложности
- •2 Уровень сложности
- •3 Уровень сложности
- •1 Уровень сложности.
- •2 Уровень сложности
- •3 Уровень сложности
- •1 Уровень сложности
- •Работа с несколькими массивами
- •Преобразование массива
- •Изменение элементов массива
- •2 Уровень сложности Формирование массива и вывод его элементов
- •Анализ элементов массива
- •Преобразование массива
- •Изменение элементов массива
- •Удаление и вставка элементов
- •Серии целых чисел
- •3 Уровень сложности Множества точек на плоскости
- •1 Уровень сложности
- •2 Уровень сложности
- •3 Уровень сложности
- •1 Уровень сложности
- •2 Уровень сложности
- •3 Уровень сложности
- •1 Уровень сложности
- •2 Уровень сложности
- •3 Уровень сложности
- •Not простое_логическое
- •(Простое_логическое знак_операции простое_логическое)
- •Построить синтаксический анализатор для понятия предложение.
- •1 Уровень сложности
- •2 Уровень сложности
- •1 Уровень сложности
- •Примеры:
- •Двусвязные списки
- •1 Уровень сложности
- •2 Уровень сложности
- •3 Уровень сложности
Примеры:
a-bab-;
a*b+c ab*c+;
a*(b+c) abc+*;
a+bcd*e abcde*+.
Вычислить как целое число значение выражения (без переменных), записанного в постфиксной форме в текстовом файле postfix.
Создать программу, которая отыскивает проход по лабиринту.
Лабиринт представляется в виде матрицы, состоящей из квадратов. Каждый квадрат либо открыт, либо закрыт. Вход в закрытый квадрат запрещен. Если квадрат открыт, то вход в него возможен со стороны, но не с угла. Каждый квадрат определяется его координатами в матрице.
Программа находит проход через лабиринт, двигаясь от заданного входа. После отыскания прохода программа выводит найденный путь в виде координат квадратов.
Алгоритм.
Выражение просматривается слева направо. Если встречается операнд (число), то его значение (как целое) заносится в стек, а если встречается знак операции, то из стека извлекаются два последних элемента (это операнды данной операции), над ними выполняется операция, и ее результат записывается в стек. В конце концов, в стеке останется только одно число – значение всего выражения.
Перевести выражение, записанное в обычной (инфиксной) форме в текстовом файле infix, в постфиксную форму. Записать его в текстовый файл postfix.
Алгоритм.
В стек записывается открывающая скобка, и выражение просматривается слева направо. Если встречается операнд (число или переменная), то он сразу переносится в файл postfix. Если встречается открывающая скобка, то она заносится в стек, а если встречается закрывающая скобка, то из стека извлекаются находящиеся там знаки операций до ближайшей открывающей скобки, которая также удаляется из стека, и все эти знаки (в порядке их извлечения) записываются в файлpostfix. Когда же встречается знак операции, то из конца стека извлекаются (до ближайшей скобки, которая сохраняется в стеке) знаки операций, старшинство которых больше или равно старшинству данной операции, и они записываются в файлpostfix, после чего рассматриваемый знак заносится в стек. В заключение выполняются такие же действия, как если бы встретилась закрывающая скобка.
Напечатать в обычной (инфиксной) форме выражение, записанное в постфиксной форме в текстовом файле postfix. Лишние скобки желательно не печатать.
Двусвязные списки
Дан двусвязный список:
вывести количество элементов в списке;
вставить перед (после) данным элементом списка новый элемент;
добавить в начало списка новый элемент, а в конец – другой новый элемент;
добавить набор чисел после (перед) i-го элемента;
продублировать в списке первый и последний элементы (новые элементы добавлять перед (после) существующими элементами с такими же значениями);
продублировать в списке все элементы с нечетными номерами (новые элементы добавлять перед существующими элементами с такими же значениями);
удалить из списка i-ый элемент;
удалить из списка все элементы с нечетными номерами;
удалить из списка все элементы с нечетными значениями;
удалить из списка nэлементов и вывести их значения;
переместить i-ый элемент в начало (конец) списка;
переместить в списке i-ый элемент наkпозиций вперед (назад);
перегруппировать элементы списка, переместив все элементы с нечетными (четными) номерами (значениями) в конец (начало) списка;
преобразовать список в циклический, связав его последний элемент с первым, а первый элемент - с последним;
преобразовать список в два циклических списка, разбив изначальный на равное количество элементов;
осуществить циклический сдвигэлементов списка наKпозиций вперед (назад) (то есть в направлении от начала к концу списка). Для выполнения циклического сдвига преобразовать исходный список в циклический;
присвоить нулевые значения элементам исходного списка с нечетными номерами и вывести количество элементов в списке;
вывести все четные значения элементов исходного списка, просматривая список с конца. Вывести также количество элементов в списке.
Дано два двусвязных списка.
добавить один из списков, в конец другого. Вывести полученный список;
переместить заданный элемент одного списка в другой на заданную позицию;
объединить исходные списки, поместив все элементы первого списка (в том же порядке) перед (после) данным (-го) элементом (-а) второго списка.
Двусвязные списки с барьерным элементом
Дан двусвязный список. Барьерный элемент должен иметь значение 0 и быть связан с первым и последним элементом исходного списка.
Разбить список на два, перенеся во второй список все элементы от текущего до последнего и добавив ко второму списку барьерный элемент. Если текущий элемент исходного списка является барьерным элементом, то второй список должен быть пустым (то есть состоять только из барьерного элемента);
Добавить в конец исходного списка данный набор чисел (в том же порядке (в обратном порядке)) и вывести адрес текущего элемента полученного списка.
Даны два двусвязных списка. Барьерный элемент должен иметь значение 0 и быть связан с первым и последним элементом исходного списка. Объединить исходные списки, связав конец первого и начало второго списка (барьерным элементом объединенного списка должен остаться барьерный элемент первого (второго) списка).
Разряженную матрицу, содержащую незначительное количество ненулевых элементов, представить в виде трех одномерных массивов, в которых хранятся соответственно номера строк, номера столбцов и ненулевые значения исходной матрицы. Матрицу задать вручную.
Деревья