Мои Конспекты
Главная | Обратная связь


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

Разработать и реализовать программу создания и обработки линейного односвязного списка с одним информационным полем, которое содержит целое число.



СПИСОК ГРУППЫ 2.3

Винокурова С.Ю. 10.Сухов А.С.

Дульцева М.Н. 11.Герасимов А.

Иванов С.Н. 12.Топуриа З.

Калашников П.Н. 13. Силинский Н.

Кот Д.А. 14. Бутовец. Л.

Крутякова А.Г.

Крюков Е.Р.

Семенов А.В.

Шакун Б.К.

.

 

ТЕМА 1 ЛИНЕЙНЫЕ ОДНОСВЯЗНЫЕ СПИСКИ

Разработать и реализовать программу создания и обработки линейного односвязного списка с одним информационным полем, которое содержит целое число.

При реализации на языке Паскаль программа должна иметь модульную структуру [ 5 ].

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

Модуль ( unit ) должен содержать описание соответствующих типов и подпрограмм работы со списками:

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

б) создание списка добавлением нового элемента в конец списка (данные вводятся с клавиатуры или из текстового файла);

в) просмотр списка (проход по списку с выдачей на экран значений информационных полей списка );

г) уничтожение списка ( проход по списку с удалением элемента списка );

д) вставка одного или нескольких элементов в список ( Задание 1 );

е) удаление из списка одного или нескольких элементов ( Задание 2 );

ж) рекурсивная обработка элементов списка ( Задание 3 );

з) рекурсивный вариант вставки элементов в список ( Задание 4 );

и) рекурсивный вариант удаления из списка элементов ( Задание 5 ).

Задание 1

Описать подпрограмму вставки одного или нескольких элементов в список. Подпрограмма должна обеспечивать возможность после её вызова выдавать сообщение в случае невозможности вставки с указанием причины ( см. [ 7 ] ).

1) Продублировать первый элемент с заданным значением.

2) Продублировать все элементы с заданным значением.

3) Продублировать первый элемент со значением, большим заданного значения.

4) Продублировать все элементы со значением, большим заданного
значения.

5) Продублировать первый элемент со значением, меньшим заданного значения.

6) Продублировать все элементы со значением, меньшим заданного
значения.

7) Вставить новый элемент после первого нулевого элемента.

8) Вставить новый элемент после каждого нулевого элемента.

9) Вставить новый элемент после первого положительного элемента.

10) Вставить новый элемент после каждого положительного элемента.

11) Вставить новый элемент после первого отрицательного элемента.

12) Вставить новый элемент после каждого отрицательного элемента.

13) Вставить новый элемент после первого нечётного элемента.

14) Вставить новый элемент после каждого нечётного элемента.

15) Вставить новый элемент после первого чётного элемента.

16) Продублировать все нулевые элементы.

17) Продублировать первый нулевой элемент.

18) Продублировать все положительные элементы.

19) Продублировать первый положительный элемент.

20) Продублировать все отрицательные элементы.

21) Продублировать первый отрицательный элемент.

22) Продублировать все нечётные элементы.

23) Продублировать первый нечётный элемент.

24) Продублировать все чётные элементы.

25) Продублировать первый чётный элемент.

Задание 2

Описать подпрограмму удаления одного или нескольких элементов списка. Подпрограмма должна обеспечивать возможность после её вызова выдавать сообщение в случае невозможности удаления с указанием причины ( см. [ 7 ] ).

1) Удалить из списка все положительные элементы.

2) Удалить из списка первый положительный элемент.

3) Удалить из списка все отрицательные элементы.

4) Удалить из списка первый отрицательный элемент.

5) Удалить из списка все нулевые элементы.

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

7) Удалить из списка все нечётные элементы.

8) Удалить из списка первый нёчетный элемент.

9) Удалить из списка все чётные элементы.

10) Удалить из списка первый чётный элемент.

11) Удалить из списка все элементы со значением большим заданного
значения.

12) Удалить из списка первый из элементов со значением большим
заданного значения.

13) Удалить из списка все элементы со значением меньшим заданного
значения.

14) Удалить из списка первый из элементов со значением меньшим
заданного значения.

15) Удалить из списка после каждого элемента с заданным значением один элемент.

16) Удалить из списка после первого элемента с заданным значением один элемент.

17) Удалить из списка после каждого элемента со значением большим
заданного значения один элемент.

18) Удалить из списка после первого элемента со значением большим
заданного значения один элемент.

19) Удалить из списка после каждого элемента со значением меньшим
заданного значения один элемент.

20) Удалить из списка после первого элемента со значением меньшим
заданного значения один элемент.

21) Удалить из списка после каждого элемента с заданным значением один элемент, если его значение отлично от заданного.

22) Удалить из списка после первого элемента с заданным значением один элемент, если его значение отлично от заданного.

23) Удалить из списка перед каждым элементом с заданным значением один элемент.

24) Удалить из списка перед первым элементом с заданным значением один элемент.

25) Удалить из списка перед каждым элементом с заданным значением один элемент, если его значение отлично от заданного значения.

Задание 3

Описать рекурсивную подпрограмму обработки списка.

1) Определить количество нулевых элементов списка.

2) Определить количество отрицательных элементов списка.

3) Определить количество положительных элементов списка.

4) Определить количество чётных элементов списка.

5) Определить количество нечётных элементов списка.

6) Определить количество элементов со значением, большим заданного значения.

7) Определить количество элементов со значением, меньшим заданного значения.

8) Определить количество элементов со значением, абсолютная величина которого больше заданного значения.

9) Определить количество элементов со значением, абсолютная величина которого меньше заданного значения.

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

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

12) Определить сумму значений всех положительных элементов списка.

13) Определить сумму значений всех отрицательных элементов списка.

14) Определить сумму значений всех чётных элементов списка.

15) Определить сумму значений всех нечётных элементов списка.

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

17) Определить сумму значений элементов списка со значением, меньшим заданного значения.

18) Проверить, входит ли в список хотя бы один нулевой элемент.

19) Проверить, входит ли в список хотя бы один положительный элемент.

20) Проверить, входит ли в список хотя бы один отрицательный элемент.

21) Проверить, входит ли в список хотя бы один чётный элемент.

22) Проверить, входит ли в список хотя бы один нечётный элемент.

23) Проверить, входит ли в список хотя бы один элемент с заданным
значением.

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

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

Задание 4

Описать рекурсивную подпрограмму обработки списка.

1) Вставить элемент с заданным значением после каждого нулевого
элемента.

2) Вставить элемент с заданным значением после первого нулевого
элемента.

3) Вставить элемент с заданным значением после каждого положительного элемента.

4) Вставить элемент с заданным значением после первого положительного элемента.

5) Вставить элемент с заданным значением после каждого отрицательного элемента.

6) Вставить элемент с заданным значением после первого отрицательного элемента.

7) Удвоить в списке каждое вхождение чётного элемента.

8) Удвоить в списке первое вхождение чётного элемента.

9) Удвоить в списке каждое вхождение нечётного элемента.

10) Удвоить в списке первое вхождение нечётного элемента.

11) Удвоить в списке каждое вхождение положительного элемента.

12) Удвоить в списке первое вхождение положительного элемента.

13) Удвоить в списке каждое вхождение отрицательного элемента.

14) Удвоить в списке первое вхождение отрицательного элемента.

15) Удвоить в списке каждое вхождение нулевого элемента.

16) Вставить элемент с заданным значением после первого чётного
элемента.

17) Вставить элемент с заданным значением после каждого чётного
элемента.

18) Вставить элемент с заданным значением после первого нечётного
элемента.

19) Вставить элемент с заданным значением после каждого нечётного
элемента.

20) Вставить элемент с заданным значением перед первым чётным
элементом.

21) Вставить элемент с заданным значением перед каждым чётным
элементом.

22) Вставить элемент с заданным значением перед первым нулевым
элементом.

23) Вставить элемент с заданным значением перед каждым нулевым
элементом.

24) Вставить элемент с заданным значением перед первым положительным элементом.

25) Вставить элемент с заданным значением перед каждым положительным элементом.

Задание 5

Описать рекурсивную подпрограмму обработки списка.

1) Удалить из списка один элемент после первого элемента с чётным
значением, если его значение отлично от него.

2) Удалить из списка один элемент после первого элемента с чётным
значением.

3) Удалить из списка один элемент после первого элемента с нечётным
значением, если его значение отлично от него.

4) Удалить из списка один элемент после первого элемента с нечётным
значением.

5) Удалить из списка один элемент после первого элемента с положительным значением, если его значение отлично от него.

6) Удалить из списка один элемент после первого элемента с положительным значением.

7) Удалить из списка один элемент после первого элемента с отрицательным значением, если его значение отлично от него.

8) Удалить из списка один элемент после первого элемента с отрицательным значением.

9) Удалить из списка один элемент после первого элемента с нулевым
значением, если его значение отлично от него.

10) Удалить из списка один элемент после первого элемента с нулевым
значением.

11) Удалить из списка первый элемент с нечётным значением.

12) Удалить из списка все нечётные элементы.

13) Удалить из списка первый элемент с чётным значением.

14) Удалить из списка все чётные элементы.

15) Удалить из списка первый элемент с отрицательным значением.

16) Удалить из списка все отрицательные элементы.

17) Удалить из списка первый элемент с положительным значением.

18) Удалить из списка все положительные элементы.

19) Удалить из списка первый элемент с нулевым значением.

20) Удалить из списка все нулевые элементы.

21) Удалить из списка первый из элементов со значением большим
заданного значения.

22) Удалить из списка все элементы со значением большим заданного
значения.

23) Удалить из списка первый из элементов со значением меньшим
заданного значения.

24) Удалить из списка все элементы со значением меньшим заданного
значения.

25) Удалить из списка один элемент после каждого элемента с нулевым
значением.