close

Вход

Забыли?

вход по аккаунту

?

semestrC+obj

код для вставкиСкачать
Список семестровых задания
для студентов 2 курса вечернего отделения ВМК
составитель Гайнутдинова А.Ф.
Задание 1
1.Описать класс List “Линейный односвязный список”.Примерная структура класса:
• закрытые поля:top,marker,pred – указатели на начало списка,на текущий
элемент и на элемент перед текущим,соответственно;
• открытые методы класса:
– конструктор List(coздается пустой список);
– Reset – установить маркер на начало;
– Move – сдвиг по списку на один шаг;
– EoList – проверка,не находится ли marker на конце списка;
– Add – добавить элемент перед текущим после предыдущего;
– Del – удалить текущий элемента
2.Описать класс UporList “Упорядоченный линейный список” – наследник класса
List.Методы класса UporList
• конструктор UporList.
• создание упорядоченного списка из элементов текстового файла;
• объединение двух упорядоченных списка (с построением нового упорядочен-
ного списка)– однопроходной алгоритм;
• пересечение двух упорядоченных списков (с построением нового упорядочен-
ного списка)– однопроходной алгоритм;
• добавить элемент в упорядоченный линейный список;
• вывести список в текстовый файл;
• деструктор (с освобождением памяти).
3.С использованием описанных классов составить программу для решение следую-
щей задачи:
• построить три упорядоченных линейных списка l1,l2,l3.Значения взять из
текстовых файлов;
• построить и вывести четвертый список l4 = (l1
l2)
l3.
• добавить в l4 новый элемент с сохранением упорядоченности (значение вво-
дится с клавиатуры).Результирующий список вывести на экран.
Возможно добавление других методов в описание класса,если в этом возникает необхо-
димость.
1
Задание 2
1.Описать базовый класс List “Линейный односвязный список”.Примерная структура
класса:
• закрытые поля:top,marker,pred – указатели на начало списка,на текущий
элемент и на элемент перед текущим,соответственно;
• открытые методы класса:
– конструктор List(coздается пустой список);
– Reset – установить маркер на начало;
– Move – сдвиг по списку на один шаг;
– EoList – проверка,не находится ли marker на конце списка;
– Add – добавить элемент перед текущим после предыдущего;
– Del – удалить текущий элемента
2.Описать класс Massiv – наследника класса List.Класс Massiv служит для представ-
ления разреженного массива (где большинство элементов равны 0) в виде списка.
Каждый элемент списка хранит значение и индекс ненулевой компоненты массива.
Методы класса Massiv
• конструктор Massiv.
• создание разреженного массива в виде из обычного массива;
• сложение массивов;
• скалярное произведение массивов;
• возврат значения по индексу;
• запись элемента в массив (по индексу).Если элемент с данным индексом при-
сутствовал в списке (то есть значение данного элемента массива было ненуле-
вое),то старое значение заменяется на новое,иначе – элемент добавляется в
список;
• деструктор (с освобождением памяти).
3.С использованием описанных классов составить программу для решение следую-
щей задачи:
• создать три разреженных массива m1,m2,m3.Значения берутся из текстовых
файлов;
• построить и вывести четвертый массив m4 = m1 +m2.
• вывести значение скалярное произведение массивов m4 и m3.
• в i-ый элемент массива m4 записать новое значение a и вывести массив m4 на
экран (значения i и a вводятся с экрана).
Возможно добавление других методов в описание класса,если в этом возникает необхо-
димость.
2
Задание 3
1.Описать класс List “Линейный односвязный список”.Примерная структура класса:
• закрытые поля:top,marker,pred – указатели на начало списка,на текущий
элемент и на элемент перед текущим,соответственно;
• открытые методы класса:
– конструктор List(coздается пустой список);
– Reset – установить маркер на начало;
– Move – сдвиг по списку на один шаг;
– EoList – проверка,не находится ли marker на конце списка;
– Add – добавить элемент перед текущим после предыдущего;
– Del – удалить текущий элемента
2.Описать класс UporList “Упорядоченный линейный список” – наследник класса
List.Методы класса UporList
• конструктор UporList.
• создание упорядоченного списка из элементов текстового файла;
• Sort – сортировка списка;
• объединение двух упорядоченных списка (с построением нового упорядочен-
ного списка) – сделать конкатенацию списков,затем вызвать метод Sort;
• разность двух упорядоченных списка (с построением нового упорядоченного
списка)– однопроходной алгоритм;;
• добавить элемент в упорядоченный линейный список;
• вывести список в текстовый файл;
• деструктор (с освобождением памяти).
3.С использованием описанных классов составить программу для решение следую-
щей задачи:
• построить три упорядоченных линейных списка l1,l2,l3.Значения взять из
текстовых файлов;
• построить и вывести четвертый список l4 = (l1
l2)\l3.
• добавить в l4 новый элемент с сохранением упорядоченности (значение вво-
дится с клавиатуры).Результирующий список вывести на экран.
Возможно добавление других методов в описание класса,если в этом возникает необхо-
димость.
Задание 4
1.Описать класс List “Линейный односвязный список”.Примерная структура класса:
• закрытые поля:top,marker,pred – указатели на начало списка,на текущий
элемент и на элемент перед текущим,соответственно;
3
• открытые методы класса:
– конструктор List(coздается пустой список);
– Reset – установить маркер на начало;
– Move – сдвиг по списку на один шаг;
– EoList – проверка,не находится ли marker на конце списка;
– Add – добавить элемент перед текущим после предыдущего;
– Del – удалить текущий элемента
2.Описать класс Polinom – наследник класса List.Класс Polinom задает представле-
ние полинома P(x) = p
0
+p
1
∗ x +...p
n
x
n
в виде списка.Каждый элемент списка
хранит коэффициент и степень соответствующего элемента полинома (слагаемые
с нулевыми коэффициентами в спике не хранятся).Методы класса UporList
• конструктор Polinom.
• создание полинома из текстового файла;
• вычисление полинома в точке x = a;
• сортировка полинома по возрастанию коэффициентов;
• нахождение коэффициента с максимальной степенью x;
• вывести полином в текстовый файл;
• деструктор (с освобождением памяти).
3.С использованием описанных классов составить программу для решения следую-
щей задачи:
• создать полином из текстового файла.
• найти значение полинома в точке.Значение точки a вводится с клавиатуры.
• вывести на экран коэффициент с максимальной степенью x;
• вывести на экран полином,упорядоченный по возрастанию своих коэффици-
ентов;
Возможно добавление других методов в описание класса,если в этом возникает необхо-
димость.
Задание 5
1.Описать класс List “Линейный односвязный список”.Примерная структура класса:
• закрытые поля:top,marker,pred – указатели на начало списка,на текущий
элемент и на элемент перед текущим,соответственно;
• открытые методы класса:
– конструктор List(coздается пустой список);
– Reset – установить маркер на начало;
– Move – сдвиг по списку на один шаг;
– EoList – проверка,не находится ли marker на конце списка;
4
– Add – добавить элемент перед текущим после предыдущего;
– Del – удалить текущий элемента
2.Описать класс Polinom – наследник класса List.Класс Polinom задает представле-
ние полинома P(x) = p
0
+p
1
∗ x +...p
n
x
n
в виде списка.Каждый элемент списка
хранит коэффициент и степень соответствующего элемента полинома (слагаемые
с нулевыми коэффициентами в спике не хранятся).Методы класса UporList
• конструктор Polinom.
• создание полинома из текстового файла;
• вычисление полинома в точке x = a;
• сложение двух полиномов;
• удаление из полинома всех слагаемых с четными степенями x;
• вывести полином в текстовый файл;
• деструктор (с освобождением памяти).
3.С использованием описанных классов составить программу для решения следую-
щей задачи:
• создать два полинома p1,p2 из текстового файла.
• найти полином p3 = p1 +p2;
• найти значение полинома p3 в точке a.Значение точки a вводится с клавиа-
туры.
• удалить из p3 все слагаемые с четными степенями x;
• вывести результирующий полином p3 в текстовый файл;
Возможно добавление других методов в описание класса,если в этом возникает необхо-
димость.
Задание 6
1.Описать класс List “Линейный односвязный список”.Примерная структура класса:
• закрытые поля:top,marker,pred – указатели на начало списка,на текущий
элемент и на элемент перед текущим,соответственно;
• открытые методы класса:
– конструктор List(coздается пустой список);
– Reset – установить маркер на начало;
– Move – сдвиг по списку на один шаг;
– EoList – проверка,не находится ли marker на конце списка;
– Add – добавить элемент перед текущим после предыдущего;
– Del – удалить текущий элемента
5
2.Описать класс Polinom – наследник класса List.Класс Polinom задает представле-
ние полинома P(x) = p
0
+p
1
∗ x +...p
n
x
n
в виде списка.Каждый элемент списка
хранит коэффициент и степень соответствующего элемента полинома (слагаемые
с нулевыми коэффициентами в спике не хранятся).Методы класса UporList
• конструктор Polinom.
• создание полинома из текстового файла;
• вычисление полинома в точке x = a;
• сложение двух полиномов;
• приведение подобных членов в полиноме;
• вывести полином в текстовый файл;
• деструктор (с освобождением памяти).
3.С использованием описанных классов составить программу для решения следую-
щей задачи:
• создать два полинома p1,p2 из текстового файла.
• найти полином p3 = p1 +p2;
• привести подобные члены в полиноме p3;
• найти значение полинома p3 в точке a.Значение точки a вводится с клавиа-
туры.
• вывести результирующий полином p3 в текстовый файл;
Возможно добавление других методов в описание класса,если в этом возникает необхо-
димость.
Задание 7
1.Описать класс Set “Множество”.Примерная структура класса:
• закрытые поля:n – количество элементов в базовом множестве,vec – массив,
задающий характеристический вектор подмножества базового множества.
• открытые методы класса:
– конструктор Set с параметрами,определяющими данное множество (coз-
дается множество );
– добавить элемент в множество;
– удалить элемент из множества;
– проверка принадлежности элемента множеству;
– проверка множества на пустоту;
2.С использованием описанного класса составить программу,выводящую в тексто-
вый файл все простые числа,меньшие заданного числа k (k вводится с клавиату-
ры).В качестве алгоритма решения данной задачи использовать алгоритм “Решето
Эратосфена”.
Возможно добавление других методов в описание класса,если в этом возникает необхо-
димость.
6
Задание 8-
1.Описать класс Poisk – “Дерево двоичного поиска”.Примерная структура класса:
• закрытые поля:root – указатель на корень дерева.
• открытые методы класса:
– конструктор Poisk;
– поиск элемента в дереве двоичного поиска с добавлением элемента,если
его в дереве нет;
– деструктор (с освобождением памяти);
2.Описать класс Stek со всеми необходимыми методами.
3.Сиспользованием данных классов решить следующуюзадачу.Дан текстовый файл,
в котором записаны слова через пробел.Длина каждого слова не превосходит 30
символов.Распечатать все слова текста по алфавиту.Каждое слово печатать толь-
ко один раз (без повторов).Алгоритм решения задачи следующий:
• при чтении слов из файла записывать каждое слово в дерево двоичного поиска
(если его там еще нет);
• затем распечатать все слова из дерева в порядке возрастания (используя КЛП-
обход).
Возможно добавление других методов в описание класса,если в этом возникает необхо-
димость.
Задание 9-
1.Описать класс Array– “Массив” с возможностью нумеровать элементы с любого
числа (а не только с нуля,как это принять в C++).Примерная структура класса:
• закрытые поля:размер массива,массив элементов.
• открытые методы класса:
– 2 различных конструктора Array (с инициализацией и без инициализа-
ции);
– извлечение элемента массива по индексу;
– запись в массив значения по индексу;
– ввод массива из текстового файла;
– проверка выхода индекса за границы массива;
– сложение двух массивов;
– вычитание двух массивов;
– среднее арифметическое элементов массива;
– вывод массива в текстовый файл;
2.С использованием данного класса решить задачу сортировки массива по возрас-
танию алгоритмом сортировки вставкой.Вывести на экран неотсортированый и
отсортированный массивы и среднее арифметическое.
Возможно добавление других методов в описание класса,если в этом возникает необхо-
димость.
7
Задание 10-
1.Описать класс SortArray – “Упорядоченный Массив” с возможностью нумерации
элементов с любого числа (а не только с нуля,как это принять в C++).В классе
элементы массива хранятся только в упорядоченном виде.Примерная структура
класса:
• закрытые поля:размер массива,массив значений элементов.
• закрытый метод – сортировка массива (возможно использование любого по
выбору алгоритма сортировки).Данный метод используется открытыми ме-
тодами для поддержания упорядоченности массива;
• открытые методы класса:
– 2 различных конструктора Array (с инициализацией и без инициализа-
ции);
– извлечение элемента массива по индексу;
– булевский метод – поиск элемента в массиве (используя алгоритм дихото-
мии).Метод должен также возвращать через выходной параметр индекс
найденного элемента;
– запись в массив значения по индексу;
– ввод массива из текстового файла;
– проверка выхода индекса за границы массива;
– сложение двух массивов;
– вывод массива в текстовый файл;
2.С использованием данного класса решить следующую задачу.Ввести два массива
a,b из текстового файла (в файле элементы могут быть неупорядочены).Найти
массив c = a+b.Вывести в текстовый файл массив c а также все элементы массива
a,которых нет в массиве c.
Возможно добавление других методов в описание класса,если в этом возникает необхо-
димость.
Задание 11-
1.Описать класс Matr – “Матрица” с возможностью нумеровать элементы с любого
числа (а не только с нуля,как это принять в C++).Примерная структура класса:
• закрытые поля:размер матрицы,массив элементов.
• открытые методы класса:
– 2 различных конструктора Маtr (с инициализацией и без инициализации);
– извлечение элемента матрицы по индексам;
– запись в матрицу значения по индексам;
– ввод матрицы из текстового файла;
– проверка выхода индексов за границы матрицы;
– сложение двух матриц;
8
– умножение двух матриц;
– максимальный элемент матрицы;
– вывод матрицы в текстовый файл (с разбивкой на строки);
2.С использованием данного класса решить следующую задачу.Для заданной мат-
рицы A размера (1..10,1..10) найти матрицу B такой же размерности,такую,что
B = A
2
+A.Вывести в текстовый файл матрицу Bи значение x = max(A)−max(B).
Возможно добавление других методов в описание класса,если в этом возникает необхо-
димость.
Задание 12-
1.Описать класс BoolMatr – “Булевская Матрица” с возможностью нумеровать эле-
менты с любого числа (а не только с нуля,как это принять в C++).Элементы
матрицы false или true.Примерная структура класса:
• закрытые поля:размер матрицы,массив элементов.
• открытые методы класса:
– 2 различных конструктора Маtr (с инициализацией и без инициализации);
– извлечение элемента матрицы по индексам;
– запись в матрицу значения по индексам (с проверкой допустимости запи-
сываемого значения);
– ввод матрицы из текстового файла;
– проверка выхода индексов за границы матрицы;
– сложение двух матриц;
– умножение двух матриц;
– След (Tr) матрицы – произведение (коньюнкция) элементов главной диа-
гонали;
– вывод матрицы в текстовый файл (с разбивкой на строки);
2.С использованием данного класса решить следующую задачу.Для заданных мат-
риц A,B размера (2..10,2..10) найти матрицу C такой же размерности,такую,что
C = A
B
+B.Вывести в текстовый файл матрицу C и значение x = Tr(C).
Возможно добавление других методов в описание класса,если в этом возникает необхо-
димость.
Задание 13
1.Описать класс Стек с необходимыми методами;
2.Описать класс Morze “Кодовое дерево азбуки Морзе”.Примерная структура класса:
• закрытые поля:top – указатель на кодовое дерево азбуки Морзе.
• открытые методы класса:
9
– конструктор Morze (coздается кодовое дерево азбуки Морзе);
– метод,возвращающий код в азбуке Морзе для заданной буквы (с исполь-
зованием КЛП-обхода по дереву);
– метод,возвращающий букву по заданному коду в азбуке Морзе;
– деструктор (в освобождением памяти);
3.С использованием описанных классов составить программу для решения следу-
ющей задачи.Для заданного во входном файле текста (слова,разделенные про-
белами) вывести в выходной файл текст,закодированный в азбуке Морзе.Затем
раскодировать закодированный файл и вывести его во второй выходной файл.
Возможно добавление других методов в описание класса,если в этом возникает необхо-
димость.
Задание 14
1.Описать класс BigNumber,представляющий целое число в виде символьного мас-
сива цифр.Примерная структура класса:
• закрытые поля:массив цифр числа.
• открытые методы класса:
– 2 конструктора (с инициализацией и без инициализации);
– сложение;
– вычитание;
– умножение;
– сравнение (равно/не равно).
– вывести число на экран.
2.Сиспользованием описанного класса составить программу для решения следующей
задачи.Ввести два массива a,b больших чисел.Найти их скалярное произведение.
Вывести на экран все числа первого массива,которых нет во втором массиве.
Возможно добавление других методов в описание класса,если в этом возникает необхо-
димость.
Задание 15
1.Описать класс NumberP,представляющий целое число по модулю p.Примерная
структура класса:
• закрытые поля:p – значение модуля,n – значение числа по модулюp (n может
прирнимать значения от 0 до p −1).
• открытые методы класса:
– 2 конструктора (с инициализацией и без инициализации);
– сложение;
– вычитание;
10
– умножение;
– сравнение (больше/меньше,равно/не равно).
– методы доступа set/get.
2.Сиспользованием описанного класса составить программу для решения следующей
задачи.Ввести значение модуля p.Ввести две матрицы a,b целых чисел по модулю
p.Найти матрицу c = a∗b−(a+b).Вывести матрицу c в текстовый файл.Вывести
значение max
i
min
j
c[i][j].
Возможно добавление других методов в описание класса,если в этом возникает необхо-
димость.
11
Автор
m-super
Документ
Категория
Без категории
Просмотров
243
Размер файла
105 Кб
Теги
obj, semestr
1/--страниц
Пожаловаться на содержимое документа