Файл: Динамические структуры данных. Списки (Понятие и классификация языков программирования высокого уровня).pdf
Добавлен: 30.03.2023
Просмотров: 305
Скачиваний: 1
СОДЕРЖАНИЕ
Глава 1. Языки программирования высокого уровня (ЯПВУ)
1.1 Понятие и классификация языков программирования высокого уровня
1.2. Наиболее распространенные языки программирования
1.3 Обоснование выбора языка Паскаль
Глава 2. Основные принципы построения динамических списочных структур данных
После описания переменных можно приступить к созданию первого элемента списка. Для этого нам необходимо выделить память для переменной типа 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 были приведены практические примеры работы со списком – создание однонаправленного списка.
СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ
- М. П. Левин. Параллельное программирование с использованием OpenMP. Издательство: Интернет-университет информационных технологий, Бином. Лаборатория знаний, 2017 – 78 с.
- E. Р. Алексеев, О. В. Чеснокова, Т. В. Кучер. Турбо Паскаль. Самоучитель. Издательство: ДМК-пресс, 2018 – 442 с
- Язык программирования высокого уровня. [Электронный ресурс]. URL: http://dic.academic.ru/dic.nsf/ruwiki/1219319 (дата обращения 15.10.2019).
- Основы ООП. Поколения языков программирования [Электронный ресурс]. URL: http://lib.znate.ru/docs/index-222448.html (дата обращения 15.10.2019).
- Логическое программирование. [Электронный ресурс]. URL: https://ru.wikipedia.org/wiki/Функциональное_программирование (дата обращения 15.10.2019).
- Логическое программирование. [Электронный ресурс]. URL: http://www.nestor.minsk.by/kg/2000/10/kg01004.html (дата обращения 15.10.2019).
- Программирование на языке ассемблера. [Электронный ресурс]. URL: http://natalia.appmat.ru/c&c++/assembler.html (дата обращения 16.10.2019).
- Cи (язык программирования). [Электронный ресурс]. URL: https://ru.wikipedia.org/wiki/Си_(язык_программирования) (дата обращения 16.10.2019)
- BASIC. [Электронный ресурс]. URL: http://altcode.ru/basic/ (дата обращения 16.10.2019).
- Паскаль (язык программирования ) https://ru.wikipedia.org/wiki/ Паскаль_(язык_программирования) (дата обращения 17.10.2019).
- Списки. Однонаправленные списки. [Электронный ресурс]. URL: http://it.kgsu.ru/PasDin/dnpas002.html (дата обращения 17.10.2019).
- Однонаправленные списки. [Электронный ресурс]. URL: http://inf.1september.ru/2000/6/c/13.htm (дата обращения 17.10.2019).
- Информатика. Pascal // Структуры данных в Паскале http://www.uchites.ru/informatika/pascal/struktury_dannyh (дата обращения 17.10.2019).
- Самуйлов С.В. Структуры и Алгоритмы Обработки Данных // Циклические [Электронный ресурс]. URL: http://webpnz.narod.ru/student/saod /lections/19 (дата обращения 18.10.2019.
- Циклические списки. [Электронный ресурс]. URL: http://www.life-prog.ru/1_17065_tsiklicheskie-spiski.html (дата обращения 18.10.2019).
- Мультисписки. [Электронный ресурс]. URL: http://teasoft.ru/data/books/guap/index1.htm (дата обращения 18.10.2019).
- Дек. [Электронный ресурс]. URL: http://kvodo.ru/deque.html (дата обращения 19.10.2019).
- Дек. [Электронный ресурс]. URL: https://ru.wikipedia.org/ wiki/Дек (дата обращения 19.10.2019).
- Стек. [Электронный ресурс]. URL: https://ru.wikipedia.org/wiki/Стек (дата обращения 20.10.2019).