Основы программирования. Реферат. Информатика, ВТ, телекоммуникации.

Основы программирования. Реферат. Информатика, ВТ, телекоммуникации.




👉🏻👉🏻👉🏻 ВСЯ ИНФОРМАЦИЯ ДОСТУПНА ЗДЕСЬ ЖМИТЕ 👈🏻👈🏻👈🏻



























































Вы можете узнать стоимость помощи в написании студенческой работы.


Помощь в написании работы, которую точно примут!

Похожие работы на - Основы программирования

Скачать Скачать документ
Информация о работе Информация о работе


Скачать Скачать документ
Информация о работе Информация о работе


Скачать Скачать документ
Информация о работе Информация о работе


Скачать Скачать документ
Информация о работе Информация о работе


Скачать Скачать документ
Информация о работе Информация о работе


Скачать Скачать документ
Информация о работе Информация о работе


Скачать Скачать документ
Информация о работе Информация о работе

Нужна качественная работа без плагиата?

Не нашел материал для своей работы?


Поможем написать качественную работу Без плагиата!

Национальный технический университет
Украины


«Киевский политехнический институт»


Факультет информатики и вычислительной
техники


Динамическое
распределение памяти. Списковые структуры. Технические характеристики
предлагаемого модуля для работы с односвязным списком. Листинг модуля Dinamo. Листинг
программы, при написании которой был использован модуль Dinamo.


В языке
программирования Паскаль, как и в других языках, всегда много используются
переменные. В Паскале все переменные, которые мы используем в программе, должны
быть заранее описаны, то есть, должен быть указан их тип: целое число, строка и
т.п. Но зачастую не возможно заранее знать, какого типа переменная нам будет
нужна. Для этих целей и служат динамические переменные, или указатели. Для их
создания следует перед идентификатором вставить специальный символ ^. Прежде
чем в программе можно будет использовать динамические переменные, следует
выделить память, куда будут накапливаться значения соответствующего типа.
Только после этого указатель будет содержать корректный адрес памяти.
Размещение динамических переменных производится в специальной области памяти Heap.
Динамические переменные ничем не отличаются от обычных переменных. Над ними
можно производить все действия, что и с обычными переменными. Для работы с
динамическим распределением памяти очень удобно использовать связанные
структуры данных, например односвязные списки.


Простейшим
примером списка является массив, в котором последовательно расположены все его
элементы. Но у такого представления есть существенный недостаток – требуется
заранее точно указать количество элементов массива. Поэтому лучше воспользоваться
более гибким механизмом – динамическими переменными. Наглядно это выглядит так:


Первый
элемент                                                                                             
Последний элемент


В схеме каждый
элемент разбит на два логических поля: Curr – обозначает все
содержательные данные, и Next – указатель на следующий элемент списка. У последнего
элемента указатель установлен в Nil, что используется для инициализации не распределенных
динамических переменных. Данный список называется односвязным, поскольку
движение от элемента к элементу в нем происходит только в одном направлении.
Односвязный список использован в модуле Dinamo как один из
вариантов работы с динамическими структурами.


Как происходит
работа с элементами односвязного списка, например, вставка нового элемента?
Лучше всего это можно проиллюстрировать следующим рисунком на примере
односвязного списка из трех элементов.




Как мы видим,
первым действием указателю нового элемента присваивается значение указателя
второго элемента (на последний элемент списка), вторым действием разрывается
связь между вторым и последним элементом, а вместо этого указатель второго
элемента связывается с новым элементом списка.


В данной программе
для работы с динамически распределяемой областью используются процедуры New(Var P : Pointer) и Dispose(Var P : Pointer).
Первая позволяет создать в Heap-области новую динамическую переменную, используя при этом
все свободное количество памяти, которое требуется для значения заданного типа
данных. Процедура Dispose освобождает динамическую переменную, выделенную для Р по
соответствующему вызову New. После вызова Dispose любые обращения к значению Р^ могут привести к ошибкам. То
есть, каждому вызову New должен соответствовать вызов Dispose.


В разработке
предложенной программы и модуля также был использован процедурный тип данных.
Процедурные типы данных позволяют интерпретировать процедуры и функции как
объекты, которые можно использовать при определении переменных и передаче параметров.
В программе при вызове такой переменной с соответствующими ей параметрами
происходит выполнение назначенной ей процедуры или функции. Синтаксис записи
описания процедурного типа соответствует синтаксису обычного заголовка
процедуры либо функции.


Технические
характеристики предлагаемого модуля для работы с односвязным списком.


В данном модуле
реализованы все основные функции, которые необходимы для качественной работы с
данными, а именно: создание, вставка, поиск, удаление и просмотр информации, содержащейся
в односвязном списке.


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


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


Процедура удаление
также обеспечивает удаление элемента, предварительно найденного в списке, в
каком бы месте списка он не находился.


Просмотр
обеспечивает последовательный, начиная с первого элемента, просмотр всех
элементов, содержащихся в списке. Управление просмотром осуществляется клавишей
"пробел".


Данный модуль
удобен в использовании, управление отдельными процедурами требует определенной
предварительной типизации.


Листинг программы program dinamo 11;


 
tcurr, tfirst, tlast, dont, temp : pitem;


   if
tcurr^.inf<>adre then tcurr:=tcurr^.next


       
if (tcurr^.next=nil) and (a=0) then


        
if (tcurr<>nil) and (a=0) then


writeln('(С)оздавать, (П)росмотр, (У)даление, По(и)ск, (B)ставка');


until r
in ['c','g','b','d','e', #27];


t_test=function(p:pointer):boolean;




Function
Make_item(dont:pitem; p:pointer):pitem;


Procedure
Prosm(first:pitem;act:taction);


Function
Find(first:pitem; test:t_test; act:taction):pitem;


Procedure
Deleting(first:pitem;test:t_test);


Function
Deleting_f_end(first:pitem; test:t_test):pitem;


Function
Insert_head(first:pitem;p:pointer):pitem;


Procedure
Insert(first:pitem;test:t_test; p:pointer);






Function
Make_item(dont:pitem;p:pointer):pitem;


Procedure
Prosm(first:pitem; act:taction);


Function
Find(first:pitem; test:t_test; act:taction):pitem;


Procedure
Deleting(first:pitem; test:t_test);


Function
Deleting_f_end(first:pitem; test:t_test):pitem;


Function
Insert_head(first:pitem;p:pointer):pitem;


Procedure
Insert(first:pitem;test:t_test; p:pointer);


Программа, использующая модуль DINAMO


Function
test(p:pointer):boolean;far;


       
first:=Insert_head(first,tmp);


       
ptemp:=Find(first,test,Print);


           
Insert(ptemp,test,tmp);{Type mismatch}


writeln('(С)оздавать, (П)росмотр, (У)даление, По(и)ск, (B)ставка');


until r
in ['c', 'g','b','d','e', #27];



Похожие работы на - Основы программирования Реферат. Информатика, ВТ, телекоммуникации.
Реферат: Последовательные процедуры различения сложных гипотез с использованием комбинированной решающей
Контрольная работа по теме Бюджетная система государства и проблемы бюджетной политики
Дипломная Работа На Тему Оценка И Анализ Современных Инновационных Процессов На Предприятии
Основные Способы Обеспечения Договорных Обязательств Реферат
Дипломная работа по теме Основы построения беспроводных систем связи
Контрольная работа по теме Особенности обеспечения безопасных условий труда в сфере профессиональной деятельности на предприятиях общественного питания
Эссе по теме Мой М.Ю. Лермонтов
Оценка Стоимости Реферат
Реферат: Управление персоналом предприятия в кризисных ситуациях
Контрольная работа: Конструкторская документация 2
Дипломная Работа Дети С Зпр
Нравственные Основы Использования Гипноза Полиграфа Реферат
Обезличенный Вид Эссе
Описание Частного Дома Сочинение
Эссе Темы Формы Политического Режима
Мифологический эпос и фольклор
Какие Традиции Обычаи Должны Быть Вечными Эссе
Международное Право В Сфере Местного Самоуправления Реферат
Темы Курсовых Работ По Технологии
Дипломная работа по теме Проект участка технического обслуживания и планово-предупредительного ремонта
Реферат: Диалектика как учение о развитии и способ философствования
Курсовая работа: Идентификация и оценка рисков факторинговых сделок
Похожие работы на - Роль кочевников в истории Древней Месопотамии по данным первоисточников

Report Page