1. Сортировка двух массивов. Оба массива являются динамическими и располагаются с памяти только тогда, когда над ними производят действия (заполнение случайными числами, сортировка и вывод на экран). После того, как массив отсортирован, он удаляется из памяти.
2. Разработать программу для определения суммы элементов массива большой размерности (n≤10000, m≤10000, n×m≤50000), заполняя его:
Приступая к решению задач этого раздела, следует вспомнить, что:
· для задания списка нужно определить тип элементов этого списка по следующему правилу:
TYPE ССЫЛКА = ^ЭЛЕМЕНТ
ЭЛЕМЕНТ = RECORD
ДАННЫЕ: ТИП;
АДРЕС: ССЫЛКА;
END;
· в зависимости от количества полей в адресной части и порядка связывания элементов различают однонаправленные и двунаправленные списки;
· Для размещения первого элемента направленного списка в памяти нужно выполнить следующие действия:
1. Разместить ссылку на первый элемент списка в памяти;
2. Присвоить значение полю данных;
3. Присвоить ссылке на следующий элемент списка значение NIL (пустой ссылки);
4. Присвоить ссылке на хвост списка ссылку на первый элемент списка. Это нужно, чтобы сохранить начало списка и при необходимости вернуться к нему.
· Для добавления нового элемента в конец направленного списка нужно выполнить следующие действия:
1. Разместить в памяти следующий элемент списка
2. Ссылке на хвост присвоить ссылку на следующий элемент
3. Присвоить значение полю данных
4. Присвоить ссылке на следующий элемент списка значение NIL (для контроля конца списка)
· Для добавления нового элемента в произвольное место направленного списка нужно выполнить следующие действия:
1. Разместить в памяти новый элемент списка;
2. В поле для данных этого элемента занести нужную информацию;
3. В поле ссылки на следующий элемент вставляемого элемента занести ссылку, взятую из одноименного поля элемента списка, за которым вставляется новый элемент;
4. В поле ссылки на следующий элемент списка, за которым вставляется новый элемент занести ссылку на вставляемый элемент.
ЗАДАЧИ
1. Составить программу, которая удаляет из списка L все отрицательные элементы.
2. Дан список, содержащий натуральные числа. Удалить те его элементы, которые кратны заданному числу k.
3. Дан список символов. Подсчитать количество вхождений в этот список букв ‘t’.
4. Составить программу, которая вставляет в список L новый элемент F за каждым вхождением элемента E.
5. Составить программу, которая удаляет из списка L все элементы E, если таковые имеются.
6. Составить программу, которая удаляет из списка L за каждым вхождением элемента E один элемент, если таковой имеется и он отличен от E.
7. Составить программу, которая проверяет, есть ли в списке L хотя бы два одинаковых элемента.
8. Составить программу, которая переносит в конец непустого списка L его первый элемент.
9. Составить программу, которая в списке L из каждой группы подряд идущих одинаковых элементов оставляет только один.
10. Составить программу, которая формирует список L, включив в него по одному разу элементы, которые входят одновременно в оба списка L1 и L2.
11. Составить программу, которая формирует список L, включив в него по одному разу элементы, которые входят в один из списков L1 и L2, но в то же время не входят в другой.
12. Составить программу для упорядочения в порядке возрастания элементов однонаправленного списка.
13. Составить программу, заполняющую список последовательностью случайных различных целых чисел и суммирующую те его элементы, которые расположены между минимальным и максимальным элементом (если минимальный элемент предшествует максимальному).
14. Даны упорядоченные списки L1 и L2. Вставить элементы списка L2 список L1, не нарушая его упорядоченности.
15. Дан список вещественных чисел. Написать следующие функции:
а) проверки наличия в нем двух одинаковых элементов;
б) переноса в начало его последнего элемента;
в) переноса в конец его первого элемента;
г) вставки списка самого в себя вслед за первым вхождением числа x.
16. Даны два списка L1и L2вещественных чисел. Написать подпрограммы, возвращающие новый список L, включающий по одному разу числа, которые:
а) входят одновременно в оба списка;
б) входят хотя бы в один из списков;
в) входят в один из списков L1и L2, но в то же время не входят в другой из них;
г) входят в список L1 , но не входят в список L2.
17. Дан список слов, среди которых есть пустые. Написать подпрограмму, выполняющую следующее действие:
а) перестановку первого и последнего непустых слов;
б) печать текста из первых букв непустых слов;
в) удаление из непустых слов первых букв;
г) определение количества слов в непустом списке, отличных от последнего.