1. Заголовок темы должен быть информативным. В противном случае тема удаляется ... 2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения. 3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали! 4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора). 5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM! 6. Одна тема - один вопрос (задача) 7.Проверяйте программы перед тем, как разместить их на форуме!!! 8.Спрашивайте и отвечайте четко и по существу!!!
Мне нужен вывод етой проги я паскаль практически не знаю и не получается вывести с файлами не разбираюсь я хочу чтобы вы вывели упорядоченный список и вписали вывод в ету тему заранее спасибо во код:
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: FileOf 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 <> nilDoBegin
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 = nilThen 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 > 1DoBegin
p := p^.next; Dec(n)
End;
r1 := p^.next;
p^ := r1^;
Dispose(r1); {Избавляемся от записи очищаем память}
r1 := nilEnd;
Procedure ForEachList(Var L: TList;{Для другова списка}
Action: TActionType);
Var p: PTItem;
Begin
p := L.first;
While p <> nilDoBegin
Action(p^.Info);
p := p^.Next;
End;
End;
Procedure WriteRec(Var X: R); Far; {Просмотр данных}BeginWith 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 <> nilDoBeginwith p^.Info do temp:=kol_u;
r1:=p;
while r1 <> nildobeginwith r1^.Info doif (temp<kol_u) thenbegin
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;
beginrepeat;
clrscr; {очистка экрана}
gotoxy (1,10); {переводит курсор}
writeln ('1. Загрузить данные из файла ......');
writeln ('2. Просмотр данных ................');
writeln ('3. Сортировать данные .............');
writeln ('4. Сохранить данные ...............');
writeln (' ');
writeln ('0. Выход');
writeln ('Выберете 1-3:');
readln (Choice);
case Choice of2:
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:
beginIf PlayList.Exists Then
DestroyList(PlayList);
Assign(f, 'FILE.DAT'); {Открываем файл для чтения}
Reset(f);
Whilenot Eof(f) DoBegin
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.