Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Сборник задач Бабалова.doc
Скачиваний:
95
Добавлен:
04.06.2015
Размер:
1.16 Mб
Скачать

Пример 2.3

Program Number_2_3;

{текст основной программы}

uses crt,prg9,prg9_1;

begin

Run;

end.

unit prg9; {Этот модуль содержит основные действия с объектом}

Interface

{Вводится некоторая последовательность строк Составить список из предложений по строкам, причем между словами в предложениях не может быть более одного пробела, то-есть при решении придется удалить лишние пробелы между словами.}

type

ss=string[80]; {Этот раздел в модуле с объектами}

T_el = ^el; { или без них называется - интерфейс}

el= record { Структура- запись }

s : ss; { Предложение }

next:T_el; {Ссылка на элемент списка }

end;

MY_list = object { Структура - объект с данными }

First,Pcur:T_el; { Переменные, с которыми придется}

f:text; { работать в объекте}

Constructor Init;

Destructor Done; {Методы объекта-список}

Procedure Loadfile;

Procedure Del_prob;

Procedure Outtext;

end;

Implementation

uses crt,prg9_1;

Var Pcur1:t_el;

{Раздел описания методов объекта}

Constructor MY_list.Init;

begin

First:=nil;

end;

Destructor MY_list.Done;

begin

Pcur:=First;

While Pcur<>nil do

begin

Pcur1:=Pcur;

Pcur:=Pcur^.next;

Dispose(Pcur1);

end;

end;

Procedure MY_list.Loadfile;

Var fname:ss;

P1cur:T_el;

begin

fname:=Read_name_file(f);

if fname<>' 'then

begin

assign(f,fname);

reset(f);

MY_list.done;

while not eof(f)do

begin

if First =nil then

begin

new(Pcur); {Здесь обычный список}

readln(f,Pcur^.s); {из предложений }

Pcur^.next:=nil; {создается}

First:=Pcur;

end else

begin

new(P1cur); {Это любой следующий элемент списка}

Pcur^.next:=P1cur;

readln(f,P1cur^.s);

P1cur^.next:=nil;

Pcur:=P1cur;

end;

end;

close(f);

end;

end;

Procedure MY_list.del_prob;