- •Содержание
- •1 Задача №1.7
- •1.1 Постановка задачи и ее анализ
- •1.2 Описание структур данных
- •1.3 Проектирование программы
- •1.4 Результаты тестирования
- •2.4 Результаты тестирования
- •3.4 Результаты тестирования
- •4 Задача 4.21
- •4.1 Постановка задачи и ее анализ
- •3.2 Описание структур данных
- •4.3 Проектирование программы
- •4.4 Результаты тестирования
- •Приложение
- •Список использованных источников
Содержание
1 Задача №1.7_______________________________________________3
1.1. Постановка задачи и её анализ________________________
1.2. Описание структур данных___________________________
1.3. Проектирование программы__________________________
1.4. Результаты тестирования_____________________________
2 Задача №2.45_______________________________________________6
2.1. Постановка задачи и её анализ________________________
2.2. Описание структур данных___________________________
2.3. Проектирование программы__________________________
2.4. Результаты тестирования_____________________________
3 Задача №3.14______________________________________________12
3.1. Постановка задачи и её анализ________________________
3.2. Описание структур данных___________________________
3.3. Проектирование программы__________________________
3.4. Результаты тестирования_____________________________
4 Задача №4.21______________________________________________18
4.1. Постановка задачи и её анализ________________________
4.2. Описание структур данных___________________________
4.3. Проектирование программы__________________________
4.4. Результаты тестирования____________________________
Приложение_______________________________________________21
Список использованных источников_______________________39
1 Задача №1.7
1.1 Постановка задачи и ее анализ
Задание : Дан двунаправленный список. Упорядочить его элементы по возрастанию.
Для удобства создадим список целых чисел. Чтобы упорядочить элементы будем использовать сортировку пузырьком.
1.2 Описание структур данных
Для реализации данной программы будем использовать двунаправленный список со следующей структурой:
type sp=^uk;
uk=record;
data: integer;
next,pred:sp;
end;
Структура содержит информационное поле data(хранит целые числа), а также поля next и prev – указатели на следующий и предыдущий элементы списка.
1.3 Проектирование программы
Для решения задачи создадим следующие процедуры: create_twodirectlist(создание списка), sort(сортировка), printf(печать списка).
Сперва заполняем наш список целыми числами. Пользователь вводит элементы с клавиатуры, окончанием ввода считаем 0.
Для создания списка реализована процедура create_twodirectlist.
Листинг процедуры create_twodirectlist:
procedure create_twodirectlist(var head,ends: sp;s: integer);
var x,p: sp;
begin
if head=nil then
begin
new(x);
x^.data:=s;
x^.next:=nil;
x^.pred:=nil;
head:=x;
end_sp:=x;
p:=head;
end
else
begin
new(x^.next);
x:=x^.next;
x^.data:=s;
x^.next:=nil;
x^.pred:=p;
p:=x^.next;
end_sp^.next^.pred:=end_sp;
end_sp:=end_sp^.next;
end_sp^.next:=nil;
end;
end;
Далее введенные данные передаются в процедуру sort, которая сортирует элементы пузырьком:
procedure sort(p: sp);
var buf:sp;
inf: integer;
begin
while p<>nil do
begin
buf:=p^.next;
while buf<>nil do
begin
if p^.data>buf^.data then
begin
inf:=buf^.data;
buf^.data:=p^.data;
p^.data:=inf;
end;
buf:=buf^.next;
end;
p:=p^.next;
end;
end;