ВУЗ: Не указан
Категория: Не указан
Дисциплина: Не указана
Добавлен: 18.09.2024
Просмотров: 32
Скачиваний: 0
Вариант 24. Реализовать в виде модуля набор подпрограмм для выполнения следующих операций над натуральными числами в шестнадцатеричной системе счисления:
1) сложения;
2) вычитания;
3) умножения;
4) деления;
5) перевода из двоичной системы счисления в шестнадцате-ричную;
6) перевода из шестнадцатеричной системы счисления в десятичную;
7) функции проверки правильности записи числа в шестнадцатеричной системе счисления;
8) функций, реализующих операции отношения (равно, не равно, больше или равно, меньше или равно, больше, меньше).
Используя этот модуль, решить следующие задачи.
1. Возвести число в степень (основание и показатель степени записаны в шестнадцатеричной системе счисления). Результат выдать в шестнадцатеричной и десятичной системах счисления.
2. Дан массив А — массив чисел, записанных в шестнадцатеричной системе счисления. Отсортировать его в порядке убывания. Результат выдать в шестнадцатеричной и десятичной системах счисления.
Вариант 25. Для некоторого множества заданных координатами своих вершин треугольников найти треугольник максимальной площади (если максимальную площадь имеют несколько треугольников, то найти первый из них). Предусмотреть возможность перемещения треугольников и проверки включения одного треугольника в другой. (Т. А. Павловская, Ю. А. Щупак C++ Объектно-ориентированное программирование, практикум)
Для реализации этой задачи составить описание класса треугольников на плоскости. Предусмотреть возможность объявления в клиентской программе (main) экземпляра треугольника с заданными координатами вершин. Предусмотреть наличие в классе методов, обеспечивающих:
1) перемещение треугольников на плоскости;
2) определение отношения > для пары заданных треугольников (мера сравнения — площадь треугольников);
3) определение отношения включения типа: «Треугольник 1 входит в (не входит в) Треугольник 2». Программа должна содержать меню, позволяющее осуществить проверку всех методов класса.
Вариант 26. Дан массив из 5 целых чисел. Сформировать из него стек (с возможностью добавления и удаления элементов) и очередь с аналогическими возможностями и выводит её на экран. Программа формирует стек из пяти целых чисел (1, 2, 3, 4, 5) и выводит его на экран. Программа формирует очередь из пяти целых чисел. (С++ Конспект лекций. Часть II Одесский колледж компьютерных технологий) (3)
Вариант 27. Работа с матрицами:
-
Задана матрица натуральных чисел A(n,n). Все строки, где находится более двух простых чисел, обнулить. Найти среднее арифметическое элементов матрицы до и после обнуления. Вывести сообщение, сколько строк было обнулено.
-
В матрице X(n,m) на место минимального элемента, если это двузначное число, записать сумму всех остальных элементов. Проверить, остался ли минимальный элемент двузначным числом.
-
В матрице D(n,m) найти и вывести номера столбцов, упорядоченных по убыванию. В каждом столбце найти количество и сумму положительных элементов.
-
В квадратной матрице X(n,n) найти максимальный и минимальный элементы. Поэлементно поменять местами строку с максимальным элементом со столбцом с минимальным элементом.
Вариант 28. Работа с матрицами:
-
Задана матрица А(n,m), в каждом столбце которой минимальный элемент необходимо заменить суммой положительных элементов этого же столбца.
-
Задана матрица А(n,n). Определить максимальный элемент среди элементов матрицы, расположенных выше главной диагонали, и минимальный элемент среди тех, что находятся ниже главной диагонали. Если эти элементы равны, найти количество таких чисел в матрице.
-
В матрице Р(n,m) найти строку с максимальной суммой элементов и поэлементно поменять ее с первой строкой.
-
Поменять местами максимальный элемент матрицы F(k,p) в его первым элементом, а минимальный элемент – с последним. Найти количество положительных, отрицательных и нулевых элементов матрицы.
Вариант 29. Работа с матрицами:
-
В матрице Х(n,n) поменять местами элементы на главной и побочной диагоналях. Проверить, поменялось ли положение максимального элемента в каждой строке.
-
Задана матрица A(n,n). Первый элемент каждого четного столбца заменить суммой простых чисел этого столбца, первый элемент каждого нечетного столбца заменить произведением элементов этого столбца, не являющимися простыми числами.
-
Задана матрица A(n,n). Зеркально отразить ее относительно побочной диагонали. В преобразованной матрице найти столбцы, элементы которых образуют убывающую последовательность.
-
Задана матрица A(n,m). Обнулить те строки, где находится наибольшее простое число. Вывести сообщение, если простых чисел нет.
Вариант 30. Работа с матрицами:
-
Определить сумму и количество простых чисел расположенных вне диагоналей матрицы B(n,n). Если нет простых чисел, то поменять местами элементы главной и побочной диагоналей.
-
Задана матрица A(n,n). Зеркально отразить ее относительно главной диагонали. В преобразованной матрице найти строки, элементы которой образуют возрастающую последовательность.
-
Задана матрица целых чисел A(n,n). Вывести номера столбцов, в которых находится более двух простых чисел. Найти сумму положительных элементов на периметре матрицы.
-
Задана матрица В(n,m). Определить количество столбцов, упорядоченных по возрастанию. Каждый второй столбец упорядочить по возрастанию и найти, на сколько увеличилось количество таких упорядоченных столбцов.
Вариант 31. Составить описание класса одномерных массивов строк, каждая строка которых задается длиной и указателем на выделенную для нее память. Предусмотреть возможность обращения к отдельным строкам массива по индексам, контроль выхода за пределы индексов, выполнения операций поэлементного сцепления двух массивов с образованием нового массива, слияния двух массивов с исключением повторяющихся элементов, печать (вывод на экран) элементов массива и всего массива.
Вариант 32. Построить систему классов для описания плоских геометрических фигур: круга, квадрата, прямоугольника. Предусмотреть методы для создания объектов, перемещения на плоскости, изменения размеров и поворота на заданный угол.
Вариант 33. Построить описание класса, содержащего информацию о почтовом адресе организации. Предусмотреть возможность раздельного изменения составных частей адреса, создания и уничтожения объектов этого класса.
Вариант 34. Составить описание класса для работы с цепными списками строк (строки произвольной длины) с операциями включения в список, удаления из списка элемента с заданным значением данного, удаления всего списка или конца списка, начиная с заданного элемента.
Вариант 35. Составить описание класса для определения одномерных массивов целых чисел (векторов). Предусмотреть возможность обращения к отдельному элементу массива с контролем выхода за пределы индексов, возможность задания произвольных границ индексов при создании объекта и выполнения операций поэлементного сложения и вычитания массивов с одинаковыми границами индексов, умножения и деления всех элементов массива на скаляр, печати (вывода на экран) элементов массива по индексам и всего массива.
Вариант 36. Составить описание класса для определения одномерных массивов строк фиксированной длины. Предусмотреть возможность обращения к отдельным строкам массива по индексам, контроль выхода за пределы индексов, выполнения операций поэлементного сцепления двух массивов с образованием нового массива, слияния двух массивов с исключением повторяющихся элементов, печать (вывод на экран) элементов массива и всего массива.
Вариант 37. Простые и иерархические меню.
а) Спроектировать простое меню в одной строке экрана. Меню обеспечивает перебор пунктов в результате нажатия на клавишу Пробел, позволяет зафиксировать выбор нажатием на клавишу Enter или отказаться от выбора нажатием на клавишу Esc. После выбора одного из пунктов в программу возвращается какое-то значение, связанное с выбранным пунктом, например символ. При отказе от выбора в программу возвращается #27.
Перед началом работы меню ему надо передать названия пунктов и возвращаемые символы (ими могут быть первые буквы пунктов или какие-то специальные символы). Все это можно сделать в форме строки вида
«Первое Второе Третье»
или
«Первое (а) Второе (b) Третье (с)» (здесь за названием пункта следует в скобках возвращаемый символ).
Состояние меню характеризуется координатами меню на экране, номером отмеченного пункта, общим количеством пунктов, перечнем названий пунктов и возвращаемых символов (во втором варианте представления).
Методами объекта являются:
Init — заполняет поле названий пунктов, подсчитывает количество пунктов, делает выбранным первый пункт;
Select — позволяет выбрать пункт меню и возвращает символ выбранного пункта, при отказе от выбора возвращает #27;
Draw — рисует меню, выделяя выбранный пункт цветом;
LeftBoard — возвращает начало названия данного пункта;
Len — возвращает длину названия пункта;
WhatSel — возвращает символ выбранного пункта.
б) Создать новый объект TNeatMenu, наследующий TMenu, который, в отличие от своего предка, будет восстанавливать вид экрана. Для этого нужно добавить новое поле Store, где будет храниться прежний экран во время действия меню, перекрыть метод Init и добавить метод Done, который восстанавливает состояние экрана.
в) Создать меню, которое изображает себя в форме столбца. Для этого рационально воспользоваться виртуальными методами. Достаточно изменить метод Draw объекта TNeatMenu и объявить одноименные методы виртуальными.
г) Разместить объекты в динамической памяти, для этого достаточно описать указатели на них.
д) Построить сложное иерархическое меню: пробел будет открывать главное меню, последовательное нажатие на клавиши Enter и Пробел будет разворачивать подсвеченный пункт в подменю или, если пункт находится на нижнем уровне, клавиша Enter будет сворачивать подменю. Нажатие на клавишу Esc заканчивает работу программы.
е) Построить иерархическое меню: пробел будет открывать главное меню, нажатие на клавишу Enter будет разворачивать подсвеченный пункт в меню или, если пункт находится на самом нижнем уровне, клавиша Enter сворачивает подменю. Нажатие на клавишу Esc заканчивает работу программы. Нижний уровень — вертикальный.
Вариант 38. Составить программу, работающую со связанными списками. Мы будем рассматривать связанный список как объект, содержащий связанный список данных и операций (методов), которые вы можете с ними выполнять. Связанный список данных состоит из указателей на начало («голову») и конец («хвост») связанного списка (в нашем примере из-за его гибкости используется двунаправленный связанный список). Каждый элемент связанного списка представляет собой реализацию отдельного объекта. Возможности, необходимые для использования связанного списка, предоставляют следующие операции:
• создание связанного списка (выделение для него памяти);