Консультация № 186938
15.12.2012, 00:03
131.37 руб.
0 1 0
Здравствуйте! Помогите с решением этой задачи на тему «линейные списки» .
1. Реализовать СД типа «линейный список» в виде модуля.
ПЛС. Массив, на основе которого реализуется ПЛС, находится в статической памяти (базовый тип элемента — pointer). Выделение памяти под информационную часть элемента ПЛС и запись в нее значения происходит при выполнении процедуры PutList. При выполнении процедуры GetList память, занимаемая элементом, освобождается. Размер информационной части элемента задается при инициализации ПЛС и сохраняется в дескрип-торе.
Реализация на языке Pascal:
Unit List6;
Interface
Const ListOk = 0;
ListNotMem = 1;
ListUnder = 2;
ListEnd = 3;
Type BaseType = Pointer;
Index = 0..100;
PtrEl = Index;
List = Record
MemList: array[Index] of BaseType;
Ptr : PtrEl;
N : Word; { длина списка }
Size : Word { размер информационной }
End; { части элемента }
Var ListError : 0..3;
Procedure InitList(var L:List; Size:Word);
Procedure PutList(var L:List; var E);
Procedure GetList(var L:List; var E);
Procedure ReadList(var L:List; var E);
Function FullList(var L:List):boolean;
Function EndList(var L:List):boolean;
Function Count(var L:List):Word;
Procedure BeginPtr(var L:List);
Procedure EndPtr(var L:List);
Procedure MovePtr(var L:List);
Procedure MoveTo(var L:List; N:word);
Procedure DoneList(var L:List);
Procedure CopyList(var L1,L2:List);


Назначение процедур и функций
InitList — инициализация списка.
PutList — включение элемента в список.
GetList — исключение элемента из списка.
ReadList — чтение элемента списка.
EmptyList — проверка: свободен ли список.
EndList — проверка: является ли элемент последним.
Count — возвращает количество элементов в списке.
BeginPtr — устанановка в начало списка.
EndPtr — устанановка в конец списка.
MovePtr — переход к следующему элементу.
MoveTo — переход к n-му элементу.
DoneList — удаление списка.
CopyList — копирование списка L1 в список L2.

2. Разработать программу для решения задачи с использованием модуля, полученного в результате выполнения пункта 1 задания.
Дано натуральное число n и целые числа a1,a2,...,an. Вычислить min|a[i]-a'| 1<=i<=n , где a' среднее арифметическое чисел a1,...,an.

Среда разработки FPC.

Обсуждение

Неизвестный
15.12.2012, 13:33
общий
Этот вопрос чем отличается от № 186923 ? Мне показалось, что нет
Форма ответа