Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1_SAOD_-_Dinamicheskie_peremennye_OOP.doc
Скачиваний:
12
Добавлен:
21.03.2016
Размер:
1.06 Mб
Скачать

Лабораторная работа 2. Создание модуля для работы с динамическим списком

Задание

Измените программу выполнения лабораторной работы 1 «Организация списков с помощью динамических переменных», расположив все необходимые типы, процедуры и функции обработки списков в модуле.

Пример выполнения задания

// Лабораторная работа 2. Модули. Выполнил Сергеев Андрей, группа 999.

// Модуль подпрограмм обработки списков.

unitLab2Un; // заголовок модуля обработки списков

interface // интерфейс модуля

type

tValue=Integer; // тип элемента списка – целый

pItem=^tItem; // тип указателя на элемент списка

tItem=record// тип элемента списка

Value: tValue; // содержательная часть элемента списка

Next : pItem; // указатель на следующий элемент списка

end; // record tItem

// Заголовки процедур работы со списками

procedure Create(var List: pItem); // создание пустого списка

procedure InsertFirst(var List:pItem;v:tValue); // включение в начало

procedure InsertLast(var List:pItem;v:tValue); // включение в конец

procedure WriteList(var f:Text;List:pItem); // вывод списка в файл

function Size(List: pItem): Word; // вычисление размера

procedure Clear(var List: pItem); // удаление элементов

implementation // Секция реализации модуля

// Реализация процедур работы со списками

procedure Create(var List: pItem);

begin

// Текст в лабораторной работе 1

end; //procedure Create

procedure InsertFirst(var List: pItem; v: tValue);

// Текст в лабораторной работе 1

end; // procedure InsertFirst

procedure InsertLast(var List: pItem; v: tValue);

// Текст в лабораторной работе 1

end; // procedure InsertLast

procedure WriteList(var f: Text; List: pItem);

// Текст в лабораторной работе 1

end; // procedure WriteList

function Size(List: pItem): Word;

// Текст в лабораторной работе 1

end; // function Size

procedure Clear(var List: pItem);

// Текст в лабораторной работе 1

end;// procedure Clear

end.

// Лабораторная работа 2. Модули.

// Использование модуля подпрограмм обработки обработки списков.

// Выполнил Сергеев Андрей, группа 999.

// Исходные данные – элементы основного списка – в файле LW4Dat.txt

// Результаты работы помещаются в файл LW2Res.txt

programLW2;

uses

SysUtils,

LW2Un in 'LW2Un.pas'; // использование модуля обработки списков

procedure FormLists(L:pItem;var L1,L2:pItem); //формирование L1, L2

// Текст в лаб.раб. 1

end; // procedure FormLists

var

fDat, fRes:Text;// файлы с исходными данными и результатами

L, L1, L2:pItem; // указатели на исходный и полученные списки

v:tValue; // значение элемента списка

begin

Assign(fDat,'LW2Dat.txt'); Reset(fDat);// открытие файла для чтения

Assign(fRes,'LW2Res.txt'); Rewrite(fRes);// открытие файла для записи

Create(L); Create(L1); Create(L2);// создание пустых списков

whilenoteof(fDat)dobegin// пока не достигнут конец файла fDat

Read(fDat, v); // чтение из файла очередного значения

InsertFirst(L, v); // вставка элемента со значением v в начало списка L

end;// while

// Вывод списка L и его размера:

Writeln(fRes, 'Исходный список:'); WriteList(fRes, L);

Writeln(fRes, 'Число элементов списка: ',Size(L));

FormLists(L, L1, L2); // формирование списков L1 и L2

Writeln(fRes, 'Список отрицательных нечетных элементов:'); WriteList(fRes, L1);

Writeln(fRes, 'Список положительных четных элементов:'); WriteList(fRes, L2);

Clear(L);Clear(L1);Clear(L2);// удаление списков

Close(fDat); Close(fRes); // закрытие файлов

end.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]