Студопедия

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

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

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






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






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

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

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

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

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

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

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

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

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 :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.