Файл: Динамические структуры данных. Списки (Понятие и классификация языков программирования высокого уровня).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 30.03.2023

Просмотров: 306

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

После описания переменных можно приступить к созданию первого элемента списка. Для этого нам необходимо выделить память для переменной типа element, заполнить информационное поле data и адресное поле next первого элемента, а также установим на первый элемент указатель начала (головы) списка list_header:

new(x);

x^.data := 7;

x^.next := nil;

list_header := x

Продолжим формировать наш список. Для этого добавим следующий элемент в конец нашего списка.

new(x^.next);

x := x^.next;

x^.data := 5;

x^.next := nil;

Теперь список содержит два элемента – 7, 5. Добавление оставшихся элементов для построения списка происходит аналогичным образом.

Мы рассмотрели решение простой задачи построения списка из уже определенного числа элементов.

Обладая имеющимися знаниями, напишем пример программы с помощью котором создадим список, в который элементы будут добавляться вводом с клавиатуры.

procedure init(var y : Pointer);

var

x : pointer;

element : integer;

begin

writeln('Введите список ');

y := nil; {Список пуст}

writeln ('Введите элементы. Чтобы закончить ввод символа, введите 0');

read (Element);

if element <> 0

then {Формируем и вставляем первый элемент списка}

begin

new(x);

x^.next := nil;

x^.data := element;

y := x;

read (element);

while Element<>0 do

begin

new(x^.next); {Формируем и вставляем элемент в конец списка}

x := x^.next;

x^.next := Nil;

x^.data := element;

read(element);

end;

end;

writeln;

end;

В представленной программе, в виде процедуры, мы формируем список неизвестной длины. В процессе выполнения мы осуществляем проверку на «0», которым мы заканчиваем формирование списка.

ЗАКЛЮЧЕНИЕ

В данном исследовании мы рассмотрели понятие языка программирования, рассмотрели достоинства и недостатки одних из самых популярных, таких как (Бейсик, Фортран и другие)

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

  • Паскаль способствует «правильному» дисциплинированному программированию;
  • Паскаль в виде структуры-иерархии дает гарантии сохранности уже отлаженной части кода программы при внесении изменений или исправлений ошибок в каком-либо другом блоке программы.
  • Паскаль предлагает среду разработки, обладает не низкой скоростью компиляции, а также высокой скоростью исполнения откомпилированных программ, имеет встроенную возможность вставки на языке assembler.

В данном исследовании рассмотрели динамические структуры данных, а именно списки.

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

Но элементы двунаправленного списка имеют два указателя, поэтому при выполнении операций добавления или удаления элемента списка надо менять больше связей по сравнению с однонаправленными списками.

В главе 4 были приведены практические примеры работы со списком – создание однонаправленного списка.

СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ

  1. М. П. Левин. Параллельное программирование с использованием OpenMP. Издательство: Интернет-университет информационных технологий, Бином. Лаборатория знаний, 2017 – 78 с.
  2. E. Р. Алексеев, О. В. Чеснокова, Т. В. Кучер. Турбо Паскаль. Самоучитель. Издательство: ДМК-пресс, 2018 – 442 с
  3. Язык программирования высокого уровня. [Электронный ресурс]. URL: http://dic.academic.ru/dic.nsf/ruwiki/1219319 (дата обращения 15.10.2019).
  4. Основы ООП. Поколения языков программирования [Электронный ресурс]. URL: http://lib.znate.ru/docs/index-222448.html (дата обращения 15.10.2019).
  5. Логическое программирование. [Электронный ресурс]. URL: https://ru.wikipedia.org/wiki/Функциональное_программирование (дата обращения 15.10.2019).
  6. Логическое программирование. [Электронный ресурс]. URL: http://www.nestor.minsk.by/kg/2000/10/kg01004.html (дата обращения 15.10.2019).
  7. Программирование на языке ассемблера. [Электронный ресурс]. URL: http://natalia.appmat.ru/c&c++/assembler.html (дата обращения 16.10.2019).
  8. Cи (язык программирования). [Электронный ресурс]. URL: https://ru.wikipedia.org/wiki/Си_(язык_программирования) (дата обращения 16.10.2019)
  9. BASIC. [Электронный ресурс]. URL: http://altcode.ru/basic/ (дата обращения 16.10.2019).
  10. Паскаль (язык программирования ) https://ru.wikipedia.org/wiki/ Паскаль_(язык_программирования) (дата обращения 17.10.2019).
  11. Списки. Однонаправленные списки. [Электронный ресурс]. URL: http://it.kgsu.ru/PasDin/dnpas002.html (дата обращения 17.10.2019).
  12. Однонаправленные списки. [Электронный ресурс]. URL: http://inf.1september.ru/2000/6/c/13.htm (дата обращения 17.10.2019).
  13. Информатика. Pascal // Структуры данных в Паскале http://www.uchites.ru/informatika/pascal/struktury_dannyh (дата обращения 17.10.2019).
  14. Самуйлов С.В. Структуры и Алгоритмы Обработки Данных // Циклические [Электронный ресурс]. URL: http://webpnz.narod.ru/student/saod /lections/19 (дата обращения 18.10.2019.
  15. Циклические списки. [Электронный ресурс]. URL: http://www.life-prog.ru/1_17065_tsiklicheskie-spiski.html (дата обращения 18.10.2019).
  16. Мультисписки. [Электронный ресурс]. URL: http://teasoft.ru/data/books/guap/index1.htm (дата обращения 18.10.2019).
  17. Дек. [Электронный ресурс]. URL: http://kvodo.ru/deque.html (дата обращения 19.10.2019).
  18. Дек. [Электронный ресурс]. URL: https://ru.wikipedia.org/ wiki/Дек (дата обращения 19.10.2019).
  19. Стек. [Электронный ресурс]. URL: https://ru.wikipedia.org/wiki/Стек (дата обращения 20.10.2019).