Разработка программы «Киноафиши» на языке Turbo Pascal 7.1, страница 3

  write('  Rating  - '); readln(a.rat);

end;

procedure add_znach(var a:zap; var top:p);

var temp:p; k:integer;

  procedure add_(var t:p);

  begin new(t); t^.x:=a; t^.y:=nil; end;

begin

window(1,12,80,25);

vvod_zn(a);

IF top=nil then begin add_(top); top^.x.nom:=1; end

        else begin

             temp:=top; k:=2;

             while temp^.y<>nil do begin temp:=temp^.y; k:=k+1; end;

             add_(temp^.y); temp^.y^.x.nom:=k;

           end;

writeln;

writeln(' Information added.'); readkey;

clrscr;

end;

procedure show_tabl_up;

begin

   writeln('┌───────────────────────────────────────────────────────────┐');

   writeln('│  │Film   │Origin│Year│Genre│Producer│Duration│Age│Site │     іActor   іRatingі');

   writeln('└───────────────────────────────────────────────────────────┘');

end;

procedure show_tabl_down;

begin

   writeln('└───────────────────────────────────────────────────────────┘');

end;

procedure show(top:p);

var temp:p; i:integer;a,k:real; codkey:char; b,d,s,r:word;

begin

  k:=0;a:=0;b:=0;d:=0;s:=0;r:=0;

  window(1,10,80,35); clrscr;

  IF top=nil then begin window(1,10,5,5);writeln('    Table is empty!'); end

          else

  begin

    show_tabl_up;

    temp:=top;

    while temp<>nil do

      begin

     If k=10 then begin

                  show_tabl_down;

                 write('     <Space> - Look futher'); readkey;

                  clrscr; wherex; k:=0;

                  show_tabl_up;

                end;

     write('│',temp^.x.nom:2);

     write('│',temp^.x.film:7);

     write('│',temp^.x.ori:6);

     write('│',temp^.x.year:4);

     write('│’,temp^.x.gen:5);

     write('│',temp^.x.prod:8);

     write('│     ',temp^.x.dur:3);a:=a+temp^.x.dur;

     write('│',temp^.x.lim:3);b:=temp^.x.lim;if b>d then d:=b;

                                                if s<r then r:=s;

     write('│',temp^.x.sit:10);

     write('│',temp^.x.act:8);

     write('│  ',temp^.x.rat:1:2);

        writeln('│');

     temp:=temp^.y;

     k:=k+1;

      end;

    show_tabl_down; a:=a/k;

    writeln('Average film duration is- ', a:2:2);

    writeln('max age limit- ',d:2); writeln('min age limit- ',r:2);

  end;

readkey; clrscr;

end;

procedure show_elem(temp:p);

begin

        write('│',temp^.x.nom:2);

     write('│',temp^.x.film:7);

     write('│',temp^.x.ori:6);

     write('│',temp^.x.year:4);

     write('│',temp^.x.gen:5);

     write('│',temp^.x.prod:8);

     write('│     ',temp^.x.dur:3);

     write('│',temp^.x.lim:3);

     write('│',temp^.x.sit:10);

     write('│',temp^.x.act:8);

     write('│  ',temp^.x.rat:3:2);

     writeln('│');

   n:=temp^.x.nom;

end;

procedure stran(top:p);

var temp:p;g:zap;

begin

     if top=nil then begin window(1,12,80,40);clrscr;writeln('Empty!');end

       else

       begin

       window(1,11,20,25);

     writeln('  Film  - ');

        writeln('  Origin  - ');

        writeln('  Year  - ');

        writeln('  Genre  - ');

        writeln('  Producer   - ');

        writeln('  Duration   - ');

        writeln('  Age limit   - ');

        writeln('  Site   - ');

        writeln('  Actor   - ');

        writeln('  Rating  - ');

    temp:=top;

    while temp<>nil do

    begin

        g:=temp^.x;

    window(22,11,80,24);

    writeln(g.film:11);

    writeln(g.ori:11);

    writeln(g.year:11);

    writeln(g.gen:11);

    writeln(g.prod:11);

    writeln(g.dur:11);

    writeln(g.lim:11);

    writeln(g.sit:11);

    writeln(g.act:11);

    writeln(g.rat:9:2);

        temp:=temp^.y;

        readln;

        end;

    end;readln;window(1,11,20,25);clrscr;

    window(22,11,80,24);clrscr;

end;

procedure save_text(top:p);

var temp:p;

begin

  IF top=nil then begin window(1,10,20,15);writeln('   Table is empty !');end

          else

  begin

   assign(tabl,'g:\tabl.txt');

    rewrite(tabl);

   writeln;

   writeln(tabl,'Nomer Film   Origin Year Genre Producer Duration Age Site         Actor    Rating');