Методический материал представляет собой сборник задач по дисциплине "Основы алгоритмизации и программирования" для студентов 2-3 курса. Глава 9. Динамическая память и связанные динамические структуры

  • docx
  • 16.11.2021
Публикация на сайте для учителей

Публикация педагогических разработок

Бесплатное участие. Свидетельство автора сразу.
Мгновенные 10 документов в портфолио.

Иконка файла материала Л2-01409.docx

Методический материал представляет собой сборник задач по дисциплине "Основы алгоритмизации и программирования" для студентов 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