Добавил:
Tushkan
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лабораторные работы / Laba10 / fifo
.pas unit DynFifo;
interface
type
Info = record
ch: char;
end;
Tfifo= ^S;
S = record
Inf: info; {‡ 票Ґ}
Next: Tfifo; {‘«Ґ¤гойЁ© ®ЎкҐЄв}
End;
fifo = record
start, endl: tfifo;
end;
procedure Clearfifo(var fifo: fifo); {1) Џа®жҐ¤га ®зЁйҐЁп ®зҐаҐ¤Ё}
function Emptyfifo(fifo: fifo): boolean; {2) ”гЄжЁп Їа®ўҐаЄЁ, Їгбв «Ё ®зҐаҐ¤м?}
procedure Addfifo(var fifo: fifo; data: Info); {3) Џа®жҐ¤га ¤®Ў ў«ҐЁп н«Ґ¬Ґв ў ®зҐаҐ¤м}
procedure Getfifo(fifo: fifo; VAR K: info); {4) ”гЄжЁп ў®§ўа й Ґв н«Ґ¬Ґв Ё§ з « ®зҐаҐ¤Ё}
procedure DelBeginfifo(var fifo: fifo); {5) “¤ «ҐЁҐ ўҐаиЁл ®зҐаҐ¤Ё}
function MemoryControl: boolean; {6) …бвм «Ё бў®Ў®¤ п Ї ¬пвм}
implementation
procedure Clearfifo(var fifo: fifo);
begin
while fifo.start <> nil do fifo.start:=fifo.start^.next;
fifo.endl:=nil;
end;
function Emptyfifo(fifo: fifo): boolean;
begin
Emptyfifo:=fifo.start=nil; {True Ґб«Ё Їгбв, false - Ґб«Ё Ґ Їгбв}
end;
procedure Addfifo(var fifo: fifo; data: Info);
var tmp: Tfifo;
Begin
new(tmp);
tmp^.inf:=data;
tmp^.next:=nil;
fifo.endl^.next:=tmp;
fifo.endl:=tmp;
tmp:=nil;
end;
procedure Getfifo(fifo: fifo; VAR K: info);
begin
k:=fifo.start^.inf;
end;
procedure DelBeginfifo(var fifo: fifo);
var start: tfifo;
begin
fifo.start:=fifo.start^.next;
end;
function MemoryControl: boolean;
begin
MemoryControl:=MaxAvail >= SizeOf(Tfifo);
end;
end.
interface
type
Info = record
ch: char;
end;
Tfifo= ^S;
S = record
Inf: info; {‡ 票Ґ}
Next: Tfifo; {‘«Ґ¤гойЁ© ®ЎкҐЄв}
End;
fifo = record
start, endl: tfifo;
end;
procedure Clearfifo(var fifo: fifo); {1) Џа®жҐ¤га ®зЁйҐЁп ®зҐаҐ¤Ё}
function Emptyfifo(fifo: fifo): boolean; {2) ”гЄжЁп Їа®ўҐаЄЁ, Їгбв «Ё ®зҐаҐ¤м?}
procedure Addfifo(var fifo: fifo; data: Info); {3) Џа®жҐ¤га ¤®Ў ў«ҐЁп н«Ґ¬Ґв ў ®зҐаҐ¤м}
procedure Getfifo(fifo: fifo; VAR K: info); {4) ”гЄжЁп ў®§ўа й Ґв н«Ґ¬Ґв Ё§ з « ®зҐаҐ¤Ё}
procedure DelBeginfifo(var fifo: fifo); {5) “¤ «ҐЁҐ ўҐаиЁл ®зҐаҐ¤Ё}
function MemoryControl: boolean; {6) …бвм «Ё бў®Ў®¤ п Ї ¬пвм}
implementation
procedure Clearfifo(var fifo: fifo);
begin
while fifo.start <> nil do fifo.start:=fifo.start^.next;
fifo.endl:=nil;
end;
function Emptyfifo(fifo: fifo): boolean;
begin
Emptyfifo:=fifo.start=nil; {True Ґб«Ё Їгбв, false - Ґб«Ё Ґ Їгбв}
end;
procedure Addfifo(var fifo: fifo; data: Info);
var tmp: Tfifo;
Begin
new(tmp);
tmp^.inf:=data;
tmp^.next:=nil;
fifo.endl^.next:=tmp;
fifo.endl:=tmp;
tmp:=nil;
end;
procedure Getfifo(fifo: fifo; VAR K: info);
begin
k:=fifo.start^.inf;
end;
procedure DelBeginfifo(var fifo: fifo);
var start: tfifo;
begin
fifo.start:=fifo.start^.next;
end;
function MemoryControl: boolean;
begin
MemoryControl:=MaxAvail >= SizeOf(Tfifo);
end;
end.
Соседние файлы в папке Laba10