Помощь - Поиск - Пользователи - Календарь
Полная версия: Вывод программы
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
DarkDante
Мне нужен вывод етой проги я паскаль практически не знаю и не получается вывести с файлами не разбираюсь я хочу чтобы вы вывели упорядоченный список и вписали вывод в ету тему заранее спасибо во код:

program laba_4_a;
uses crt;

Type
R = Record {Создаем список и мини списки}
uzel:string[20];
ustrois:string[20];
nomer_u:integer;
kol_u:integer;
ves:real;
cena:real;
End;

PTItem = ^TItem;
TItem = Record

Info: R;
next: PTItem;

End;

TList = Record
first, last: PTItem;
Exists: Boolean;
End;

TActionType = Procedure(Var X: R);

Var
PlayList: TList;
r1: R;
f: File Of R; {Создаем файловую переменную}
min_cena: Integer;
n, i, Choice: Integer; {Счётчики}

Procedure InitList(Var L: TList);
Begin
L.first := nil; L.last := nil;
L.Exists := True;
End;
Procedure DestroyList(Var L: TList);{Уничтожаем список}
Var p, T: PTItem; {Счётчики}
Begin
p := L.first;
While p <> nil Do Begin
T := p;
p := p^.next;
dispose(T){Избавляемся от записи очищаем память}
End;
L.Exists := False
End;

Procedure AppendList(Var L: TList;{присоединяем список}
Var X: R);
Var p: PTItem;{счётчик}
Begin
new(p);
p^.Info := X;
p^.next := nil;

If L.first = nil Then L.first := p
Else L.last^.next := p;

L.last := p;
End;
Procedure RemoveItem(Var L: TList; {Удаляем}
n: Integer);
Var p, r1: PTItem; {Счётчики}
Begin
p := L.first;
While n > 1 Do Begin
p := p^.next; Dec(n)
End;

r1 := p^.next;
p^ := r1^;
Dispose(r1); {Избавляемся от записи очищаем память}
r1 := nil
End;

Procedure ForEachList(Var L: TList;{Для другова списка}
Action: TActionType);
Var p: PTItem;
Begin
p := L.first;
While p <> nil Do Begin
Action(p^.Info);
p := p^.Next;
End;
End;


Procedure WriteRec(Var X: R); Far; {Просмотр данных}
Begin
With X Do
WriteLn(uzel, ' ', ustrois, ' ',
nomer_u, ' ', kol_u, ' ',
ves, ' ',cena);
End;


procedure sort (var L:Tlist; X:R);{Упорядочивает список}
var temp:real;
p,r1,t1: PTItem; {Счётчики}
begin
ClrScr;
p := L.first;
While p <> nil Do Begin
with p^.Info do temp:=kol_u;
r1:=p;
while r1 <> nil do begin
with r1^.Info do if (temp<kol_u) then
begin
t1^.Info:=p^.Info;
p^.info:=r1^.Info;
r1^.Info:=t1^.Info;
end;
r1:=r1^.next;
end;
p := p^.Next;
end;
End;


Procedure WriteFile(Var X: R); Far;
Begin {Записывает список в файл процедура}
Write(f, X)
End;

begin
repeat;
clrscr; {очистка экрана}
gotoxy (1,10); {переводит курсор}
writeln ('1. Загрузить данные из файла ......');
writeln ('2. Просмотр данных ................');
writeln ('3. Сортировать данные .............');
writeln ('4. Сохранить данные ...............');
writeln (' ');
writeln ('0. Выход');
writeln ('Выберете 1-3:');
readln (Choice);
case Choice of
2:
begin
ClrScr;
WriteLn(uzel, ' ', ustrois, ' ',
nomer_u, ' ', kol_u, ' ',
ves, ' ',cena);

ForEachList(PlayList, WriteRec);

ReadLn;
end;
4:
begin
Assign(f, 'FILE.DAT');{Открываем файл для записи}
ReWrite(f);
ForEachList(PlayList, WriteFile);
Close(f);
end;

1:
begin
If PlayList.Exists Then
DestroyList(PlayList);

Assign(f, 'FILE.DAT'); {Открываем файл для чтения}
Reset(f);
While not Eof(f) Do Begin

Read(f, r1);
AppendList(PlayList, r1);

End;
Close(f);
end;

3:
begin
sort(PlayList,r1);
end;




end;
until Choice = 0;

If PlayList.Exists Then
DestroyList(PlayList);
end.
Lapp
пожалуйста, ставь тэги (Правила Форума, п.5, и правила раздела Задачи, п.2).
Исправлено.
where is thw cheepesr place to b
Over The Counter Motilium
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.