Индивидуальное задание задание по дисциплине




"Объектно-ориентированное программирование"

Требования к выполненной работе:

- результат выполнения представить в следующем виде: текст отлаженной программы с подробным комментарием, инструкция по использованию программы,

- основные подпрограммы оформить в виде отдельного модуля,

- все задачи должны быть решены с использованием структур.

 

1. Использовать (линейные) однонаправленные списки без заглавного звена (рис. а) или с заглавным звеном (рис. б) при следующем их описании

Параметр L обозначает список, а параметры Е, Е1 — данные типа ТЭ, к которым применимы операции присваивания и проверки на равенство. {ТЭ = double}

Определить рекурсивные функции, которые:

а) удаляет из списка L все вхождения элемента Е;

б) строит L1—копию списка L;

в) удваивает каждое вхождение элемента Е в список L;

г) оставляет в списке L только первые вхождения оди­наковых элементов.

д) выводит результат в отдельный файл.

 

2. Использовать (линейные) однонаправленные списки без заглавного звена (рис. а) или с заглавным звеном (рис. б) при следующем их описании

Параметр L обозначает список, а параметры Е, Е1 — данные типа ТЭ, к которым применимы операции присваивания и проверки на равенство. {ТЭ = double}

Определить функции, которые формируют список L, включив в него по одному разу элементы, которые:

а) входят хотя бы в один из списков L1 и L2;

б) входят одновременно в оба списка L1 и L2;

в) входят в список L1, но не входят в список L2;

г) входят в один из списков L1 и L2, но в то же время не входят в другой из них.

д) выводит список L в отдельный файл.

 

3. Использовать (линейные) однонаправленные списки без заглавного звена (рис. а) или с заглавным звеном (рис. б) при следующем их описании

Параметр L обозначает список, а параметры Е, Е1 — данные типа ТЭ, к которым применимы операции присваивания и проверки на равенство. {ТЭ = double}

Определить функции, которые объединяют два упорядоченных по неубыванию списка L1 и L2 (ТЭ=double) в один упорядоченный по неубыванию список;

а) построив новый список L;

б) меняя соответствующим образом ссылки в L1 и L2 и присвоив полученный список параметру L1.

в) результат записывается в отдельный файл.

 

4. Параметр L обозначает список, а параметры Е, Е1 — данные типа ТЭ, к которым применимы операции присваивания и проверки на равенство. Список имеет структуру

type

указатель=^цепочка

цепочка=record

буква: string;

связь: указатель;

end;

 

Определить функцию, которая:

а) в списке L переставляет местами первое и послед­нее непустые слова, если в L есть хотя бы два непустых слова;

б) печатает текст из первых букв всех непустых слов списка L

в) удаляет из непустых слов списка L их первые буквы;

г) печатает все непустые слова списка L;

д) определяет количество слов в непустом списке L, отличных от последнего.

e) выводит результат в отдельный файл.

 

5. Многочлен P(X)=An*Xn +An-1*Xn-1 + …+A1*X+A0

с целыми коэффициентами можно представить в виде списка (рис. 14 а), причем если Ai =0, то соответствующее звено

не включается в список (на рис. 14 б показано представление многочлена P(X)=52*X40 -3*X8+X).

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

а) логическую функцию ровно(р,q) проверяющую на равенство многочлены р и q;

6) функцию знач(р,х), вычисляющую значение много­члена р в целочисленной точке х

в) процедуру диф(р,q) которая строит многочлен р — производную многочлена q;

г) процедуру слож(р,q,r), которая строит многочлен р — сумму многочленов q и r;

д) процедуру вывод(р,v), которая печатает многочлен р как многочлен от переменной, однобуквенное имя которой является значением литерного параметра и; (например, для указанного выше многочлена S процедура вывoд(s',y') должна напечатать 52y**40-3y**8+y);

е) процедуру ввод(р) которая считывает из входного файла безошибочную запись многочлена (за ней—пробел) и формирует соответствующий список-многочлен р.

 

6. Пусть L обозначает кольцевой (циклический) двунаправленный список с заглавным звеном (рис. 15) (с элементами E типа *char)

Определить функции, которые:

а) определяет, является ли список L пустым;

б) подсчитывает количество элементов списка L, у которых равные «соседи»;

в) определяет, есть ли в списке L хотя бы один элемент, который равен следующему за ним (по кругу) элементу;

г) в списке L переставляет в обратном порядке все элементы между первым и последним вхождениями элемента E, если E входит в L не менее двух раз;

д) выводит результат в отдельный файл.

 

 

7. Использовать (линейные) однонаправленные списки без заглавного звена (рис. а) или с заглавным звеном (рис. б) при следующем их описании

Параметр L обозначает список, а параметры Е, Е1 — данные типа ТЭ, к которым применимы операции присваивания и проверки на равенство. {ТЭ = char}

Определить функции, которые удаляют:

а) из непустого списка L первый элемент;

б) из списка L второй элемент, если такой есть;

в) из списка L за каждым вхождением элемента Е один элемент, если такой есть и он отличен от Е

г) из непустого списка L последний элемент;

д) выводит результат в отдельный текстовый файл.

8. Использовать (линейные) однонаправленные списки без заглавного звена (рис. а) или с заглавным звеном (рис. б) при следующем их описании

Параметр L обозначает список, а параметры Е, Е1 — данные типа ТЭ, к которым применимы операции присваивания и проверки на равенство. {ТЭ = integer}

Непустая последовательность натуральных чисел вводится с экрана, за которой следует 0. Определить функции, которые:

а) выводит числа в обратном порядке;

б) выводит порядковые номера тех чисел последовательности, которые имеют наибольшую величину;

в) сортирует числа в порядке их неубывания;

г) записывает результат в отдельный файл.

 

9. Использовать (линейные) однонаправленные списки без заглавного звена (рис. а) или с заглавным звеном (рис. б) при следующем их описании

Параметр L обозначает список, а параметры Е, Е1 — данные типа ТЭ, к которым применимы операции присваивания и проверки на равенство. {ТЭ = char}

Определить функцию, которая:

а) проверяет на равенство списки L1 и L2;

б) определяет, входит ли список L1 в список L2;

в) проверяет, есть ли в списке L1 (L2) хотя бы два одинаковых элемента;

г) переносит в конец непустого списка L1 (L2) его первый элемент;

д) выводит результат в отдельный файл.

10. Использовать (линейные) однонаправленные списки без заглавного звена (рис. а) или с заглавным звеном (рис. б) при следующем их описании

Параметр L обозначает список, а параметры Е, Е1 — данные типа ТЭ, к которым применимы операции присваивания и проверки на равенство. {ТЭ = char}

Определить функции, которые:

а) добавляет в конец списка L1 все элементы списка L2;

б) вставляет в список L1 за первым вхождением элемента Е все элементы списка L2, если Е входит в L1;

в) переворачивает список L1 (L2), т.е. изменяет ссылки в этом списке так, чтобы его элементы оказались расположенными в обратном порядке;

г) в списке L из каждой группы подряд идущих равных элементов оставляет только один;

д) выводит результат в отдельный файл.

 

11. Использовать (линейные) однонаправленные списки без заглавного звена (рис. а) или с заглавным звеном (рис. б) при следующем их описании

Параметр L обозначает список, а параметры Е, Е1 — данные типа ТЭ, к которым применимы операции присваивания и проверки на равенство. {ТЭ = double}

Определить рекурсивные функции, которые:

а) определяет, входит ли элемент Е в список L;

б) подсчитывает число вхождений элемента Е в список L;

в) находит максимальный элемент непустого списка L;

г) заменяет в списке L все вхождения E1 на E2;

д) выводит результат в отдельный файл.

 

12. Одно из возможных представлений “длинного” текста - это разделить его на участки (строки) и создать список (обозначить признак конца текста). Используя данное представление текста, определить функции:

а) число строк (T) для подсчета числа строк в тексте Т;

б) элем(Т,i,j,с), проверяющую, есть ли в тексте Т строка с номером i, и, если есть, присваивающую j-ю литеру этой строки параметру с;

в) перестановка (T,i,j), меняющую местами i-ю и j-ю строки текста Т;

г) з амена(Т, i, j), заменяющую i-ю строку текста Т на копию j-й строки.

д) вывод(Т), печатающую построчно текст Т;

е) ввод(Т), считывающую из входного файла последовательность литер до первой точки и формирующую из них текст Т (последнюю строку, если надо, дополнить пробелами).

 

13. Одно из возможных представлений “длинного” текста - это разделить его на участки (строки) и создать список (обозначить признак конца текста). Используя данное представление текста, определить функции:

а) добавить(Т,i,j), добавляющую после i-й строки текста Т копию j-й строки;

б) у далить(Т,j), удаляющую j-ю строку из текста Т;

в) поиск(Т, с, i, j), определяющую, входит ли литера с в текст Т, и, если входит, присваивающую параметрам i и / «координаты» первого вхождения этой литеры, i—номер строки, j —номер позиции в этой строке;

г) максимум(T,c) – номер строки с максимальным числом раз вхождения литеры с;

д) вывод(Т), печатающую построчно текст Т;

е) ввод(Т), считывающую из входного файла последовательность литер до первой точки и формирующую из них текст Т (последнюю строку, если надо, дополнить пробелами).

 

14. Использовать (линейные) однонаправленные списки без заглавного звена (рис. а ) или с заглавным звеном (рис. б) при следующем их описании

type

ТЭ: double;

указ_на_звено=^звено;

звено=record

элем: ТЭ;

след: указ_на_звено;

end;

При этом параметры L, L1 и L2 обозначают списки, а параметры Е, Е1 и Е2—данные типа ТЭ, к которым применимы операции присваивания и проверки на равенство.

Определить функции, которые:

а) определяет, является ли список L пустым;

б) находит среднее арифметическое элементов непустого списка L;

в) заменяет в списке L все вхождения E1 на Е2;

г) меняет местами первый и последний элементы непустого списка L;

д)вводит данные списка с экрана;

е) выводит в файл результаты работы.

 

15. Использовать (линейные) однонаправленные списки без заглавного звена (рис. а ) или с заглавным звеном (рис. б) при следующем их описании

type

ТЭ: double;

указ_на_звено=^звено;

звено=record

элем: ТЭ;

след: указ_на_звено;

end;

При этом параметры L, L1 и L2 обозначают списки, а параметры Е, Е1 и Е2—данные типа ТЭ, к которым применимы операции присваивания и проверки на равенство.

Определить функции, которые:

а) определяет, является ли список L пустым;

б) упорядочивает элементы списка L по алфавиту;

в) находит коды ASCII последнего и предпоследнего элементов списка L, содержащего не менее двух элементов.

г) выводит результаты работы в файл.

 

16. Использовать (линейные) однонаправленные списки без заглавного звена (рис. а ) или с заглавным звеном (рис. б) при следующем их описании

type

ТЭ: string[10];

указ_на_звено=^звено;

звено=record

элем: ТЭ;

след: указ_на_звено;

end;

 

Параметры L, L1 и L2 обозначают списки, а параметры Е, Е1 и Е2—данные типа ТЭ, к которым применимы операции присваивания и проверки на равенство.

Определить функции, подсчитывающие количество слов списка L, которые;

а) начинаются и оканчиваются одной и той же литерой;

б) начинаются с той же литеры, что и следующее слово;

в) совпадают с последним словом;

г) записывает результат в отдельный файл.

17. Использовать (линейные) однонаправленные списки без заглавного звена (рис. а ) или с заглавным звеном (рис. б) при следующем их описании

type

ТЭ: string[10];

var

файл: file of ТЭ;

массив: аггау [1..50] оf ТЭ;

Определить функцию, значением которой является список, построенный из элементов:

а)файла f;

б) массива х (список строить от конца).

 

18. Использовать (линейные) однонаправленные списки без заглавного звена (рис. а ) или с заглавным звеном (рис. б) при следующем их описании

Параметры L, L1 и L2 обозначают списки, а параметры Е, Е1 и Е2—данные типа ТЭ, к которым применимы операции присваивания и проверки на равенство.

Определить функцию, которая

а) удаляет из списка L первое вхождение элемента E, если такое есть;

б)по списку L строит два новых списка: L1 —из положительных элементов и L2 —из остальных элементов списка L {ТЭ=double).

в) удаляет из списка L2 первый отрицательный элемент, если такой есть,

г) выводит результат в два разных файла.

 

19. Использовать (линейные) однонаправленные списки без заглавного звена (рис. а) или с заглавным звеном (рис. б) при следующем их описании

Параметр L обозначает список, а параметр Е, Е1 — данные типа ТЭ, к которым применимы операции присваивания и проверки на равенство. {ТЭ = char}

Описать процедуру, которая

а) вставляет в начало списка L новый элемент Е;

6) в конец списка L новый элемент Е;

в) новый элемент Е после первого элемента непустого списка L;

г) в список L новый элемент E1 за каждым вхождением элементаE;

д) записывает результаты в текстовый файл.

 

20. Использовать (линейные) однонаправленные списки без заглавного звена (рис. а) или с заглавным звеном (рис. б) при следующем их описании

Параметр L обозначает список, а параметр Е, Е1 — данные типа ТЭ, к которым применимы операции присваивания и проверки на равенство. {ТЭ = char}

Описать процедуру, которая

а) добавляет в список L новый элемент Е1 перед первым вхождением элемента Е, если Е входит в L;

б) в непустой список L добавляет пару новых элементов Е1 иЕ2перед его последним элементом;

в) в непустой список L, элементы которого упорядочены по не убыванию, новый элемент Е так, чтобы сохра­нилась упорядоченность;

г) переносит в начало непустого списка L его послед­ний элемент;

д) записывает результаты в отдельный текстовый файл.

 



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2017-06-12 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: