LAB15_01 (Задания)

2017-07-08СтудИзба

Описание файла

Файл "LAB15_01" внутри архива находится в следующих папках: Задания на лабы 2 семестр, ЯВУ, Лаб 11 (Динам. структуры). Документ из архива "Задания", который расположен в категории "". Всё это находится в предмете "информационные технологии" из 2 семестр, которые можно найти в файловом архиве РТУ МИРЭА. Не смотря на прямую связь этого архива с РТУ МИРЭА, его также можно найти и в других разделах. Архив можно найти в разделе "лабораторные работы", в предмете "информационные технологии" в общих файлах.

Онлайн просмотр документа "LAB15_01"

Текст из документа "LAB15_01"

ЛАБОРАТОРНАЯ №14

Тема: Динамические структуры данных.

Цель: Получение навыков по обработке линейных динамических структур и динамических массивов.

Темы теоретической подготовки.

Ссылочный тип в языке Паскаль. Сегментная организация памяти. Карта памяти при выполнении программ. Указатель. Ссылочная переменная. Подпрограммы доступа к динамической памяти. Аппарат создания и разрушения динамического объекта. Подпрограммы обслуживания динамической памяти.

Линейные и нелинейные динамические структуры. Операции над линейными структурами. Способы хранения их в памяти.

Контрольные вопросы

  1. Система адресации в MS DOS.

  2. Ссылочный тип. Виды указателей .

  3. Объявление указателей.

  4. Что является значением ссылочной переменной?

  5. Если ссылочная переменная содержит значение nil, что это значит?

  6. Какие операции можно выполнять над указателями? (приведите примеры)

  7. Укажите подпрограммы для работы с адресами.

  8. Когда используется динамическая память?

  9. Укажите разницу в объявлении ссылочных переменных:

Var A:^integer;

Ptr: pointer;

  1. Найдите ошибки, объясните каждый оператор, исправьте ошибки:

Var A:^integer;

Ptr: pointer; b:integer;

Begin b:=5; Ptr:=@b; a:=ptr; ptr:=a; end.

  1. Как создать динамическую переменную? Чем динамическая переменная отличается от ссылочной? Результат работы программы изобразите в виде схемы?

Var a:poiter; b:^ real; begin New(b); a:=b;b^:=5; write(b^) end.

  1. Как удалить динамическую переменную?

  2. Что значит разыменовать ссылку?

  3. Как создать динамический массив в пределах одного сегмента? А большого размера?

  4. Какие операции выполняет монитор динамической памяти ? Процедуры управления кучей.

  5. Как изменить размер кучи и стека?

  6. Какое назначение у подпрограмм: MARK, RELEASE.

  7. Как осуществить из программы анализ состояния кучи?(Проверить тостаточно ли памяти в куче для размещения структуры данных).

  8. Рекурсивные типы данных.

  9. Динамические структуры данных: линейные списки.

  10. Дайте определение для линейных списков: Стек, Очередь, Дек.

  11. Способы хранения списковых структур в памяти.

  12. Определите структуру элемента односвязного списка для обоих способов хранения.

  13. Изобразите все линейные списки в виде схемы для связанного хранения.

  14. Напишите программу для построения в динамической памяти следующей структуры:

false

nil

r

2.7


  1. Определите 9 базовых операций над списком.

  2. Нелинейные структуры данных: графы, деревья.

  3. Определение графа. Разновидности графов. Понятие пути в графе.

  4. Динамическая структура данных – дерево.(основные понятия)

  5. Бинарное дерево – его особенности.

  6. Три алгоритма обхода дерева.

  7. Алгоритм создания бинарного дерева.

  8. Раскажите о использование бинарного дерева и линейных структур данных для организации поиска в таблицах данных. Преимущество одной структуры перед другой.

  9. Классы Delphi для работы с динамическими структурами данных: список и дерево. Их назначение, свойства и методы.

Задание

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

  • создание списковой структуры

  • просмотр списковой структуры

  • поиск в списковой структуре элемента с заданным значением

  1. Подпрограммы должны содержать параметры, одним из которых должен быть указатель на вершину списка.

  2. Все дополнительные операции со списком, согласно варианта, оформить в виде подпрограмм.

  3. Исследуйте возможность создания списковых структур с помощью класса TList Delphi

  4. Опишите в тетради вашу структуру в виде объекта ООП.

ВАРИАНТЫ

  1. Разработать программу сложения двух больших целых чисел ( не попадающих в диапазон стандартных типов), вводимых с клавиатуры как последовательность символов. Используя циклический однонаправленный список.

  2. Используя циклический список с головным элементом, вычислить значение многочлена заданной степени по схеме Горнера, при заданном значении Х. Элемент списка должен содержать коэффициент и степень переменной Х при этом коэффициенте. Если коэффициент равен нулю, то элемент для него не строится.

  3. В текстовом файле храниться неупорядоченный набор слов ( слова могут повторяться). Организуйте частотный словарь, используя для этой цели однонаправленный список. Частотный словарь содержит упорядоченные в лексикографическом порядке слова из файла. Элемент списка содержит слово и количество его вхождений в файл.

  4. В текстовом файле хранятся числа из диапазона 0..100. Создать однонаправленный линейный список, элементы которого содержат числа из файла. Найти элементы списка, содержащие максимальный и минимальный элементы соответственно, и поменять их местами. Получившийся массив дописать в конец файла и перед ним вставить текст: Измененный массив.

  5. Воспользуйтесь типизированным файлом лабораторной №11 и постройте индексный файл, для ускорения поиска данных в файле, в виде двунаправленного списка. Элемент списка должен содержать : ключ (одно из полей записи файла по которому организуется поиск) и значение указателя на запись с этим ключом. Затем разработайте подпрограмму поиска, использующую ваш список.

  6. Представить многочлен N – ой степени в виде линейного однонаправленного списка, элемент которого содержит значение коэффициента и показатель степени Х при этом коэффициенте. Написать подпрограмму, проверяющую на равенство два многочлена Р(х) и Q(x). Если коэффициент при степени равен 0, то для него элемент в списке не образуется.

  7. Представить многочлен N – ой степени в виде линейного однонаправленного списка, элемент которого содержит значение коэффициента и показатель степени Х при этом коэффициенте. Написать подпрограмму,которая строит многочлен R(x) как сумму многочленов Р(х) и Q(x). Если коэффициент при степени равен 0, то для него элемент в списке не образуется.

  8. Даны два линейных однонаправленных списка L1 и L2. Разработать процедуру, которая формирует список L, включив в него по одному разу элементы, значения которых входят хотя бы в один из списков L1 и L2.

  9. Даны два линейных однонаправленных списка L1 и L2. Разработать процедуру, которая формирует список L, включив в него по одному разу элементы, значения которых входят одновременно в оба списка L1 и L2

  10. Даны два линейных однонаправленных списка L1 и L2. Разработать процедуру, которая формирует список L, включив в него по одному разу элементы, значения которых входят в список L1 и не входят в список L2.

  11. Даны два линейных однонаправленных списка L1 и L2. Разработать процедуру, которая формирует список L, включив в него по одному разу элементы, значения которых входят ы в один из списков L1 и L2 и в то же вркмя не входят в другой.

  12. Представить многочлен N – ой степени в виде линейного однонаправленного списка, элемент которого содержит значение коэффициента и показатель степени Х при этом коэффициенте. Причем одночлены многочлена могут быть не упорядочены по степени Х, а одночлены одной степени могут повторяться. Требуется привести подобные члены в этом многочлене. Вывести этот многочлен в порядке возрастания степеней Х.

  13. Дана непустая последовательность слов в каждом из которых от 1 до 8 строчных латинских букв, между словами пробел, за последним словом точка. Напечатать эти слова в следующем порядке: сначала по алфавиту все слова из одной буквы, затем из двух букв и т.д.(одинаковые слова печатать один раз). Слова читаются из текстового файла и при обработке хранятся в двунаправленном упорядоченном списке.

  14. L – циклический двунаправленный линейный список. Разработать рекурсивную подпрограмму, которая удаляет из списка L все элементы, у которых одинаковые соседи(первый и последний считать соседяями). Тип информационного поля элемента списка произвольный.

  15. L – циклический двунаправленный линейный список. Разработать рекурсивную подпрограмму, которая определяет является ли список пустым и подпрограмму, которая переставляет в обратном порядке все элементы списка между первым и последним вхождением элемента Е, если таких элементов не более двух. Тип информационного поля элемента списка произвольный.

  16. Используя структуру данных стек вычислить значение выражения с учетом приоритетности операций. 2+3+7*5+12/3. Выражение читается из текстового файла. Результат представить в форме выражения и его значения и вывести его на принтер.

  17. Используя структуру данных стек вычислить значение выражения с учетом приоритетности операций. (32*7+2)/2 –(44-11). Выражение читается из текстового файла. Результат представить в форме выражения и его значения и вывести его на принтер.

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

  19. В текстовом файле содержаться английские слова, являющиеся словарными. Используя структуру линейный список(упорядоченный) информационная часть которого содержит Английское слово и его перевод на русский язык. Удалить из файла одинаковые слова и выполнить грубый перевод английского текста. Результат из списка записать в типизированный файл а результат перевода вывести на принтер.

  20. В тектовом файле записано без ошибок логическое выражение по следующей форме:

<ЛВ> ::= true| false | (not <ЛВ>)|(<ЛВ> or <ЛВ>)|(<ЛВ> and <ЛВ>)

Используя структуру данных Стек вычислить значение этого выражения. Результат вывести на принтер вместе с выражением.

  1. Используя структуру данных стек сформировать и записать в файл постфиксную запись арифметического выражения, включающего скобки. Считывая созданное выражение из файла, вычислить его значение Результат: выражения в инфиксной форме, в постфиксной форме и его значение вывести на принтер.

Свежие статьи
Популярно сейчас
Зачем заказывать выполнение своего задания, если оно уже было выполнено много много раз? Его можно просто купить или даже скачать бесплатно на СтудИзбе. Найдите нужный учебный материал у нас!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5137
Авторов
на СтудИзбе
440
Средний доход
с одного платного файла
Обучение Подробнее