Помощь - Поиск - Пользователи - Календарь
Полная версия: Вывод программы
Форум «Всё о Паскале» > 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
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.