Главная страница
Случайная страница
Разделы сайта
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Задание. Взять задание из таблицы №1 согласно варианту
Взять задание из таблицы №1 согласно варианту. Написать программу, создающую список, выполняющую задание, а затем удаляющую список.
ЛИТЕРАТУРА
1. Новичков В.С. Паскаль - В.С. Новичков, Н.И. Парфилова, А.Н. Пилькик. - М.: Высш. школа, 1990-223с.
2. Боон К. Паскаль для всех.
Таблица 1
№
| Содержание задания
|
| Даны списки L1 и L2. Сформировать список L, включив в него по одному разу элементы, которые входят хотя бы в один из списков L1 и L2.
|
| Даны списки L1 и L2. Сформировать список L, включив в него по одному разу элементы, которые входят одновременно в оба списка L1 и L2.
|
| Даны списки L1 и L2. Сформировать список L, включив в него по одному разу элементы, которые входят в список L1, но не входят в L2.
|
| Даны списки L1 и L2. Сформировать список L, включив в него по одному разу элементы, которые входят в один из списков L1 и L2, но в то же время не входят в другой.
|
| Определить входит ли, элемент Е в список L.
|
| Подсчитать число вхождений элемента Е в список L.
|
| Найти максимальный элемент в непустом списке L.
|
| Заменить в списке L все вхождения элемента Е1 на Е2.
|
| Написать программу, которая удаляет из списка L первое вхождение элемента Е, если такое есть.
|
| Удалить из списка все вхождения элемента Е.
|
| Построить список L1, элементами которого являются квадраты элементов списка L.
|
| Написать программу, которая удваивает каждое вхождение элемента Е в список L.
|
| Найти среднее арифметическое всех элементов непустого списка L.
|
| Проверить, есть ли в списке L хотя бы два одинаковых элемента.
|
| Определить, входит ли список L1 в список L2.
|
| Проверить на равенство списки L1 и L2.
|
Цель работы: Получение навыков работы с переменными ссылочного типа, организация динамических структур данных.
| При решении задач определенного класса может возникнуть необходимость в динамическом порождении объектов и размещении их в памяти ЭВМ во время выполнения программы. Такая ситуация может встретиться, когда количество объектов в программе заранее не известно или под используемую структуру данных невозможно выделить достаточно места в памяти. Динамическая переменная не указывается явно в описании переменных и у них нет имени.
| Для доступа к динамическим переменным предназначены переменные специального типа данных, называемого ссылочным.
| Существуют типизированные и не типизированные указатели. Типизированный указатель ссылается только на переменные заданного типа.
| Не типизированные указатели не связываются ни с каким типом данных, поэтому с их помощью удобно размещать динамические данные, структура и тип которых меняются в ходе работы программы.
| Значениями указателей являются адреса переменных в памяти. В Турбо Паскале можно передавать значения только между указателями, связанными с одним и тем же типом данных.
| Память под любую динамическую переменную выделяется процедурой NEW.
| Освобождение памяти производится процедурой DISPOSE.
| Для освобождения целого фрагмента в динамической памяти используют процедуры MARK и RELEASE.
| Выделение и освобождение динамической памяти при работе с нетипизированными указателями производится процедурами GETMEM и FREEMEM.
| После того, как указатель приобрел некоторое значение, по адресу можно разместить некоторое значение.
| Динамические переменные можно использовать в любом месте программы, где это допустимо для константы и переменных соответствующего типа.
|
1. Разработать блок - схему алгоритма и написать текст программы задачи согласно варианту.
| 2. Отладить программу.
| 3. Выполнить тестовые примеры.
|
1. Блок - схема алгоритма.
| 2. Текст программы.
| 3. Результаты работы программы.
| 4. Выводы.
|
1. Какие переменные называются динамическими?
| 2. В каких случаях используются динамические переменные?
| 3. Какие указатели называются типизированными?
| 4. Данные типа POINTER.
| 5. Как осуществляется размещение в памяти динамических переменных?
| 6. Для чего используются процедуры MARK и RELEASE?
| 7. Каким образом осуществляется доступ к значению динамической переменной?
| 8. Понятие списка.
| 9. Какое значение имеют переменные ссылочного типа?
| 10. Дано описание переменных:
| var
| x, y: ^integer;
| r^: ^char;
| Какие операторы являются правильными, какие - нет и почему?
| а) x: =y; б) y: =r; в) x: =nil; г) r: =nil;
| д) if y=x then x^: =21; е) if x
|
1. Пусть стек представлен в виде цепного списка. Разработать алгоритм добавления нового элемента.
| 2. Пусть в памяти две строки представлены в виде цепных списков. Указатели списков x и y. Разработать алгоритм проверки совпадения строк.
| 3. Разработать алгоритм определения первой пары совпадающих элементов двух цепных списков.
| 4. Разработать алгоритм изменения порядка следования элементов в цепном списке на обратный.
| 5. Разработать алгоритм удаления элемента из цепного списка.
| 6. Разработать алгоритм преобразования цепного списка в последовательный.
| 7. Разработать алгоритм слияния двух цепных списков, элементы которых расположены в порядке возрастания.
| 8. Разработать алгоритм извлечения элемента из стека, представленного цепным списком.
| 9. Разработать алгоритм поиска в цепном списке элемента с минимальным значением.
| 10. Отсортировать элементы последовательного списка по убыванию.
| 11. Отсортировать элементы цепного списка по возрастанию.
| 12. Пусть в стек занесено 20 элементов. Выбрать элемент, расположенный сразу под самым верхним, а затем через один.
| 13. Разработать алгоритм поиска максимального элемента в последовательном списке.
| 14. Разработать алгоритм внесения элемента в цепной список.
| 15. Разработать алгоритм удаления из стека элемента, помещенного в него первым.
| 16. Разработать алгоритм удаления элементов последовательного списка по заданному признаку.
| 17. Пусть последовательный список содержит 25 элементов. Откорректировать список путем удаления каждого пятого элемента.
| 18. Задан список фамилий. Расположить их по алфавиту.
| 19. Разработать алгоритм преобразования последовательного списка в цепной.
| 20. Разработать алгоритм, который меняет местами первый и последний элементы списка.
| 21. Дан список L, построить два новых списка: L1 - содержит положительные элементы списка L, L2 - все остальные.
| 22. Разработать алгоритм преобразования списка по правилу: за каждым отрицательным элементом вставить нулевой элемент.
| 23. Даны два списка, вставить все элементы второго списка за первым положительным элементом первого списка.
|
|