Главная страница Случайная страница Разделы сайта АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника |
Задание. Опишите и реализуйте класс, необходимый для решения задачи, указанной в вашем варианте задания, и реализуйте его методы.
Опишите и реализуйте класс, необходимый для решения задачи, указанной в вашем варианте задания, и реализуйте его методы. Составьте программу решения задачи с использованием динамической структуры данных, реализованной в виде класса. В этой и во всех последующих лабораторных работах должны быть выполнены требования, приведённые ниже в рамке. Описание класса и реализацию его методов разместите в модуле. Для выполнения операций, не включенных в набор операций класса, например вывод элементов структуры, реализуйте и используйте итератор, либо напишите соответствующий метод. Исходные данные необходимо считывать из файла и вместе с результатами работы помещать в файл результатов. В программе следует предусмотреть вывод необходимых промежуточных и всех окончательных результатов решения задачи. По окончании работы экземпляры структур очистить и освободить память, занимаемую ими. Предусмотреть генерацию и обработку исключительных ситуаций, которые могут возникнуть при выполнении операций со структурами данных. Варианты заданий 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.
|