Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






  • Задание. Опишите и реализуйте класс, необходимый для решения задачи, указанной в вашем варианте задания, и реализуйте его методы.






    Опишите и реализуйте класс, необходимый для решения задачи, указанной в вашем варианте задания, и реализуйте его методы.

    Составьте программу решения задачи с использованием динамической структуры данных, реализованной в виде класса.

    В этой и во всех последующих лабораторных работах должны быть выполнены требования, приведённые ниже в рамке.

    Описание класса и реализацию его методов разместите в модуле. Для выполнения операций, не включенных в набор операций класса, например вывод элементов структуры, реализуйте и используйте итератор, либо напишите соответствующий метод.

    Исходные данные необходимо считывать из файла и вместе с результатами работы помещать в файл результатов.

    В программе следует предусмотреть вывод необходимых промежуточных и всех окончательных результатов решения задачи. По окончании работы экземпляры структур очистить и освободить память, занимаемую ими.

    Предусмотреть генерацию и обработку исключительных ситуаций, которые могут возникнуть при выполнении операций со структурами данных.

    Варианты заданий

    1. Проверить правильность расстановки скобок в арифметическом выражении (допустимы четыре типа скобок: круглые, квадратные, фигурные и угловые). Для слежения за скобками воспользоваться стеком.

    2. Создать стек, каждый элемент которого является совокупностью двух целых значений. Заменить нулевыми все элементы с заданной суммой значений.

    3. Сформировать стек с элементами – строками. Прочитать три нижних элемента стека и поменять местами верхний и нижний элементы.

    4. Сформировать две очереди с фамилиями клиентов. Слить обе очереди в третью, расположив клиентов через одного.

    5. Прочитать из входного файла последовательность слов Pop и Push. Слово Push вталкивается в стек и выводится число элементов стека, при чтении слова Pop выполняется операция исключения элемента из стека. При невозможности выполнения операции Pop вывести нужное сообщение и операцию пропустить.

    6. Ввести программу на языке Бейсик, состоящую из произвольного числа расположенных последовательно или вложенных инструкций:

    10 FOR x=a TO b STEP c

    40 NEXT x

    и определить правильность вложения циклов. Для каждого цикла выводить сообщение вида: «Цикл по x открыт», «Цикл по x закрыт».

    7. Перевести программу из задания 6 в следующую форму:

    10 x=a-c

    20 x=x+c

    50 IF x< b THEN 20

    Номер строки перехода, переменная цикла и ее конечное значение сохраняются в стеке и выталкиваются из него при достижении строки со словом NEXT.

    8. Выполнить задание 6 при условии, что один оператор NEXT, содержащий несколько переменных, может завершать одновременно несколько вложенных циклов (например: NEXT z, y, x).

    9. Решить задачу 7 с условием задания 8.

    10. Преобразовать бесскобочное выражение в инфиксной записи в постфиксную. Операнды представляют собой переменные с однобуквенным идентификатором или (и) цифры от 0 до 9, и в выражении используются только операции «+», «-», «*», «/».

    11. Вычислить значение выражения, записанного в постфиксной форме (требования к операндам – в задании 10).

    12. Преобразовать выражение в инфиксной форме в префиксную (требования к операндам – в задании 10).

    13. Вычислить значение выражения, записанного в префиксной форме (требования к операндам – в задании 10).

    14. Создать очередь с элементами – строками. Исключить из очереди элементы, начинающиеся с буквы A. Вывести длину получившейся очереди и значения ее первого и последнего элементов.

    15. Сформировать две очереди с элементами – фамилиями клиентов. Удалить из второй очереди клиентов, стоящих также и в первой.

    16. Сформировать очередь целых чисел. С использованием дека расположить все элементы очереди в обратном порядке.

    17. Сформировать два дека с фамилиями клиентов. Слить оба дека в третий, расположив клиентов через одного, начиная с конца.

    18. Сформировать дек, каждым элементом которого являются сведения о студенте (фамилия, номер группы, год рождения). Переписать в очередь студентов заданного года рождения.

    19. Создать дек, каждый элемент которого представляет собой совокупность трех вещественных значений. Исключить из дека все элементы, у которых каждое из трёх значений превышает заданное. Вывести длину получившегося дека и значения его первого и последнего элементов.

    20. Сформировать очередь для двух стеков вещественных значений таким образом, чтобы вершина первого стека стала началом очереди, а вершина второго – её концом.

    21. Создать дек целочисленных значений и распределить все его элементы по двум стекам, начиная с последнего элемента.

    22. Сформировать дек целочисленных элементов и преобразовать его таким образом, чтобы первый элемент стал последним, второй – предпоследним и т.д. При преобразовании исключить из дека нулевые элементы.

    23. Создать очередь клиентов и распределить клиентов по двум вспомогательным очередям (через одного).

    24. Создать дек с элементами – фамилиями студентов. Перенести в очередь элементы с фамилиями, начинающимися с букв «А» – «К».

    25. Создать дек с элементами – двумя целочисленными значениями. Подсчитать количество элементов с заданной суммой значений, прочитать пятый и шестой элементы от начала сформированного дека.

    26. Сформировать две очереди с элементами – фамилиями клиентов. Удалить из первой очереди клиентов, стоящих в двух очередях.

    27. Сформировать очередь целых чисел. С использованием стека расположить все элементы очереди в обратном порядке.

    28. Исключить из стека строк три нижних элемента, если в вершине содержится текст «Вершина». В противном случае изменить содержимое трех нижних элементов на «Первый», «Второй», «Третий».

    29. Сформировать дек, каждым элементом которого являются сведения о студенте (фамилия, номер группы, год рождения). Переписать в очередь студентов заданной группы.

    30. Определить, имеет ли вводимая строка вид xCy, где x – строка, состоящая из букв A и B, а y – строка, обратная строке x. Если да, то определить, имеет ли вводимая строка форму aDbD...Dz, где a, b,..., z – строки вида xCy.






    © 2023 :: MyLektsii.ru :: Мои Лекции
    Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
    Копирование текстов разрешено только с указанием индексируемой ссылки на источник.