Методический материал представляет собой сборник задач по дисциплине "Основы алгоритмизации и программирования" для студентов 2-3 курса.
Глава 9. Динамическая память и связанные динамические структуры
Задание 9.1.*
Разместить в «куче» одно целое и одно вещественное число. Вывести на экран их сумму.
Задание 9.2.**
Создать очередь из 10 целых элементов. Напечатать сумму всех элементов, имеющих четные числа в информативном поле, и вывести на экран все элементы, имеющие нечетные числа в информативном поле очереди.
Задание 9.3.***
Написать программу, которая по желанию пользователя может устанавливать элемент в очередь или удалять элемент из очереди.
Задание 9.4.***
Программа сортирует односвязный список из целых чисел по возрастанию.
Задание 9.5.*
Разместить в статической памяти 2 целых числа и в динамической памяти 2 вещественных числа. Показать на экране их сумму.
Задание 9.6.**
Написать процедуру, размещающую в статической памяти одномерный массив из 10 целых элементов и процедуру, размещающую в динамической памяти такой же массив. Написать программу, которая использует эти процедуры для вывода на экран обоих массивов и их поэлементной суммы
Задание 9.7.*
Создать очередь из 3-х строковых элементов. Вывести 2-ого на экран.
Задание 9.8.*
Создать очередь из 3-х вещественных элементов. Вывести на экран последний элемент.
Задание 9.9.**
Создать очередь из 10 целых элементов. Напечатать сумму всех элементов, имеющих четные числа в информативном поле, и вывести на экран все элементы, имеющие нечетные числа в информативном поле очереди.
Задание 9.10.**
Написать программу, которая по желанию пользователя может устанавливать элемент в очередь или удалять элемент из очереди.
Задание 9.11.*
Разместить в динамической памяти массив из 500 случайных чисел и вывести на экран
Задание 9.12.****
Создать список из N элементов, помещая элементы в конец списка. Затем следующие M элементов внести после 2,4,6,10 и т.д. элемента, а остальные R элементов - в начало списка. Распечатать список.
Задание 9.14.**
Программа размещает в динамической памяти одномерный массив. Программа запрашивает у пользователя имя файла. Программа заполняет массив целыми числами из типизированного файла. Вывести на экран все элементы размещенного в куче массива.
Задание 9.15.**
Установить в двусвязный список 4 целочисленных элемента. Вывести список на экран в обратной последовательности.
Задание 9.16.**
Установить в циклический односвязный список 5 целочисленных элементов, а затем вывести список на экран.
Задание 9.17.**
Установить в кольцевой список 6 символьных элементов. Добавить символ "f" после символа "F", если он существует.
Задание 9.18.**
Установить 5 целочисленных элементов в кольцевой список. Добавить к четным элементам по 1. Список вывести на экран.
Задание 9.19.*
Установить в двусвязный список 7 элементов типа запись. Вывести список на экран в обратной последовательности.
Здание 9.20.**
Установить в двусвязный список 5 вещественных элементов. Удалить из списка 4й элемент.
Задание 9.21.*
Установить в двусвязный список 5 вещественных элементов. Добавить в список элемент после 3го.
Задание 9.22.**
Установить в очередь 6 символьных элементов. Вывести на экран только цифры
Задание 9.23.***
Установить в односвязный список 6 целых элементов. Добавить "0" после каждого четного элемента, если такие есть.
Задание 9.24.**
Программа размещает в динамической памяти одномерный массив. Программа запрашивает у пользователя имя файла. Программа заполняет массив целыми числами из типизированного файла. Вывести на экран все элементы полученного динамического массива.
Задание 9.25.**
Программа размещает в динамической памяти массив произвольной длины в виде односвязного списка. Значения элементов списка вводить с клавиатуры. Список вывести на экран. Программа удаляет элемент, номер которого укажет пользователь. Измененный массив программа вновь выводит на экран.
Задание 9.26.**
Программа размещает в динамической памяти массив произвольной длины в виде односвязного списка. Список вывести на экран. Значения элементов списка вводить с клавиатуры. Программа заменяет элемент, номер которого укажет пользователь на новое значение, также полученное от пользователя. Измененный массив программа вновь выводит на экран.
Задание 9.27.*
Создать очередь из 4-х вещественных элементов. Вывести очередь на экран, окрашивая все положительные числа в зеленый цвет.
Задание 9.28.**
Создать очередь из 10 целых элементов. Напечатать сумму всех элементов, имеющих четные числа в информативном поле, и вывести на экран все элементы, имеющие нечетные числа в информативном поле очереди.
Задание 9.29.***
Написать программу, которая по желанию пользователя может устанавливать элемент в односвязный список или удалять элемент из односвязного списка.
Задание 9.30.*
Разместить в статической памяти 2 целых числа и в динамической памяти 2 строки. Показать на экране сумму 2-х чисел и слияние 2-х строк.
Задание 9.31.**
Написать процедуру, размещающую в статической памяти одномерный массив из 10 целых элементов и процедуру, размещающую в динамической памяти такой же массив. Написать программу, которая использует эти процедуры для вывода на экран обоих массивов и их поэлементной суммы.
Задание 9.32.*
Разместить в динамической памяти вещественный массив из 10 элементов и распечатать его в обратной последовательности.
Задание 9.33.**
Запросить у пользователя имя файла, считать с него массив из 20 и разместить в динамической памяти, вывести на экран массив сначала в прямой, а потом в обратной последовательности.
Задание 9.34.**
Запросить у пользователя имя файла, считать с него массив из 10 и разместить его в динамической памяти. Все элементы под четными номерами переписать в файла, имя которого запросить у пользователя. Вывести на экран массив и компоненты нового файла.
Задание 9.35.***
Ставить в начало (середину или конец) односвязного списка вещественные числа, запрашиваемые у пользователя.
Задание 9.36.*
Установить в очередь 3 целых числа
Задание 9.37.**
Установить в очередь n чисел, где n задает пользователь.
Задание 9.38.**
Устанавливать в очередь целые числа как это нужно пользователю.
Задание 9.39.*
Установить в очередь 3 записи с полями «фамилия» и «возраст» и вывести 3 элемента очереди на экран.
Задание 9.40.**
Установить в очередь 3 записи с полями «фамилия», «возраст». Добавить по желанию пользователя запись или удалить.
Задание 9.41.*
Установить в односвязный список 10 целых чисел и вывести на экран только отрицательные.
Задание 9.42.*
Установить в односвязный список 10 целых чисел и вывести на экран только положительные.
Задание 9.43.*
Добавить в односвязный список из 5 элементов новый элемент между 3 и 4 элементом списка, вывести на экран список до и после добавления
Задание 9.44.**
Добавить в уже существующий односвязный список новые элементы после каждых четных элементов.
Здание 9.45.*
Программа создает односвязные список из 10-и целых и с помощью процедуры удаляет элемент с заданным номером.
Задание 9.46.***
Программа создает двусвязный список и с помощью процедуры удаляет элемент с заданным номером.
Задание 9.47.***
Программа создает двусвязный список и с помощью процедуры добавляет указанное пользователем количество элементов после заданного номера.
Задание 9.48.*
Запросить у пользователя количество и создать односвязный список состоящий из заданного пользователем количества случайных целых чисел, вывести список на экран, заменить все отрицательные числа на 70 и список снова распечатать.
Задание 9.49.**
Программа запрашивает адрес начала списка и с помощью процедуры выводит на экран односвязный список. Программ переписывает список в типизированный файл.
Задание 9.50.**
Программа запрашивает имя текстового файла, и количество элементов двусвязного списка. С помощью процедуры заполняет двусвязный список элементами текстового файла. Программа распечатывает двусвязный список.
Задание 9.51.**
Имеется односвязный список с началом в указателе beg. Запросить у пользователя номер элемента и с помощью процедуры добавить после указанного номера число 5
Задание 9.52.**
Имеется односвязный список с началом в указателе beg. Запросить у пользователя номер элемента и с помощью процедуры удалить после указанного номера один элемент.
Задание 9.53.**
Поменять местами в двусвязном списке первый и последний элементы
Задание 9.54.**
Программа заполняет двусвязный список компонентами типизированного файла, до тех пор, пока этого хочет пользователь. Вывести список на экран.
Задание 9.55.**
Имеется односвязный список. Распечатать в прямом порядке. Заменить все элементы списка с отрицательной информационной частью на нули и снова распечатать
Задание 9.56.**
Имеется двусвязный список. С помощью одной процедуры распечатать его в прямом порядке, с помощью другой – в обратном.
Задание 9.57.***
Отсортировать односвязный список методом пузырька
Задание 9.58.**
Имеется двусвязный список с началом в указателе beg. Запросить у пользователя номер элемента и с помощью процедуры удалить после указанного номера один элемент
Задание 9.59.**
Имеется двусвязный список с началом в указателе beg. Запросить у пользователя номер элемента и с помощью процедуры добавить после указанного номера два числа 5.
Задание 9.60.*
Разместить вещественный массив из 100 элементов в динамической памяти и распечатать его в прямой последовательности.
Задание 9.61.**
Запросить у пользователя имя файла, считать с него массив и разместить его в динамической памяти, после чего вывести на экран в обратной последовательности
Задание 9.62.**
Программа по желанию пользователя добавляет или удаляет вещественные элементы очереди.
Задание 9.63.*
Разместить в «куче» вещественный масив из 10 случайных элементов и распечатать его в обратной последовательнтости.
Задание 9.64.**
Запросить у пользователя имя файла, считать из него масив из 10 элементов и разместить в динамической памяти, вывести на экран в прямой последовательности в 3 колонки.
Задание 9.65.**
Программа из имеющегося односвязного списка выводит только те фамилии, которые имеют длину не менее 5 символов и обязятельно содержат символ «р».
Задание 9.66.**
Программа запрашивает адрес начала списка и с помощью процедуры выводит на экран односвязный список. Программ переписывает список в типизированный файл.
Задание 9.67.**
Программа запрашивает имя текстового файла, и количество элементов двусвязного списка. С помощью процедуры заполняет двусвязный список элементами текстового файла. Программа распечатывает двусвязный список.
Задание 9.68.**
Имеется односвязный список из целых элементов с началом в указателе beg. Запросить у пользователя номер элемента и с помощью процедуры добавить перед указанным номером число 15.
Задание 9.69.*
Имеется односвязный список с началом в указателе beg. Запросить у пользователя номер элемента и с помощью процедуры удалить после указанного номера один элемент.
Задание 9.70.***
Поменять местами в двусвязном списке первый и последний элементы, второй и предпоследний и т.д.
Задание 9.71.**
Программа заполняет двусвязный список компонентами типизированного файла, до тех пор, пока этого хочет пользователь. Вывести список на экран.
Задание 9.72.**
Имеется односвязный список. Распечатать в прямом порядке. Заменить все элементы списка с отрицательной информационной частью на нули и снова распечатать.
Задание 9.74.****
Отсортировать односвязный список методом «вставки».
Задание 9.75.**
Программа устанавливает в односвязный список 10 записей с полями (фамилия, марка машины, номер машины). С помощью процедуры распечатать записи указанной марки и вывести их в файл. Программа выводит на экран путь к созданному файлу. Создать модуль с процедурой.
Задание 9.76.*
Написать программу, которая приведет к следующей ситуации:
Задание 9.77.***
Программа запрашивает, сколько элементов нужно удалить из очереди? Затем удаляет заданное число элементов, если это возможно. После удаления выводит очередь на экран. Если нет, - программа печатает на экране одно из сообщений: «очередь пуста», «в очереди не хватает элементов».
Задание 9.78.**
Программа удаляет 5 элементов из очереди, если это возможно. После удаления выводит очередь на экран. Если нет, - программа печатает на экране одно из сообщений: «очередь пуста», «в очереди не хватает элементов».
Задание 9.79.***
Программа запрашивает у пользователя номер элемента односвязного линейного списка, после которого вставляет указанный пользователем элемент. Описать в программе все возможные ситуации и предусмотреть сообщения для пользователя.
Задание 9.80.***
Вставлять указанные пользователем элементы после каждого символа «*» в очереди, которая состоит из символов.
Задание 9.81.**
Программа выводит на экран сначала весь линейный односвязный список, состоящий из символов, а затем только те элементы списка, которые следуют за символом «&». Если ни один элемент списка не равен «&», предусмотреть сообщение для пользователя.
Задание 9.82.***
Программа выводит на экран всю очередь, состоящую из фамилий. Затем удаляет из нее все фамилии, начинающиеся на букву «Т» и имеющие длину > 10 символов. Программа снова выводит очередь на экран. Если ни один элемент не удален, предусмотреть сообщение для пользователя.
Задание 9.83.**
Программа вводит с клавиатуры данные, но записывает в очередь, состоящую из фамилий, только те фамилии, в которых есть буква «Т». Запись продолжается до тех пор, пока длина очереди не станет равной 10. Программа выводит очередь на экран.
Задание 9.84.*
Программа вводит целые числа с клавиатуры и размещает их в виде массива размером 20 элементов в «куче». Программа находит max и ср. арифм. и выводит их на экран.
Задание 9.85.*
Программа вводит с клавиатуры 2 целых числа и 2 вещественных числа и размещает их в «куче». Программа находит сумму и ср. арифметическое всех чисел и выводит результат на экран.
Задание 9.86.***
Программа запрашивает у пользователя количество элементов и создает очередь заданной длины из символов, вводимых пользователем, Программа выводит на экран только 5 первых элементов очереди, если это возможно. Если нет, - то предусмотреть сообщение для пользователя.
Задание 9.87.**
Известно, что указатель Beg содержит адрес начала очереди, а информационная часть элемента очереди является целым числом. Написать фрагмент программы, который выводит элементы очереди на экран только в тех случаях, когда элементы положительные.
Задание 9.88.**
Известно, что указатель Beg содержит адрес начала очереди, а информационная часть элемента очереди является целым числом. Написать фрагмент программы, который удаляет из очереди 3 элемента или меньше, в зависимости от длины очереди.
Задание 9.89.*
Известно, что указатель Beg содержит адрес начала очереди, а информационная часть элемента очереди является целым числом. Написать фрагмент программы, который добавляет в очередь один элемент, вводимый пользователем, если он кратен 2. Если вводимое пользователем число не кратно 2, то добавление в очередь не происходит.
Задание 9.90.*
Известно, что указатель Beg содержит адрес начала очереди, а информационная часть элемента очереди является строкой. Написать фрагмент программы, который добавляет в очередь один элемент, вводимый пользователем, если в строке есть буква «ф».
Задание 9.91.*
Написать программу, которая приведет к следующей ситуации:
Задание 9.92.*
Написать программу, которая приведет к следующей ситуации:
Задание 9.93.*
Написать программу, которая приведет к следующей ситуации:
Задание 9.94.**
Написать программу, которая приведет к следующей ситуации:
Задание 9.95.**
Написать программу, которая приведет к следующей ситуации:
Скачано с www.znanio.ru
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.