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: 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.