Advertisement
Guest User

Untitled

a guest
Jun 23rd, 2017
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 2.72 KB | None | 0 0
  1. program alocacao;
  2. uses crt;
  3. type
  4.     tprec=^trec;
  5.     trec=record
  6.     i:integer;
  7.     next:tprec;
  8.     end;
  9. var h,l:tprec;
  10.  
  11. procedure insere(var h,l:tprec; n:integer);
  12.     var q,aux:tprec;
  13. begin
  14.     new(q);
  15.     q^.i:=n;
  16.     q^.next:=nil;
  17.     aux:=h;
  18.     if(aux<>nil)then
  19.     begin
  20.         while (aux<>nil)do
  21.         begin
  22.             aux:=aux^.next;
  23.         end;
  24.         aux:=q;
  25.         h:=aux;
  26.         l:=aux;
  27.     end else h:=q;
  28. end;
  29. procedure load(var h:tprec; fn:string);
  30.     var n:integer; fin:file of integer;
  31. begin
  32.     assign(fin,fn);
  33.     reset(fin);
  34.     while (not eof(fin)) do
  35.         begin
  36.             read(fin,n);
  37.             insere(h,l,n);
  38.         end;
  39.     close(fin);
  40. end;
  41. procedure mostrar(h:tprec);
  42.     var q:tprec;
  43. begin
  44.     q:=h;
  45.     while (q<>nil)do
  46.         begin
  47.             readln(q^.i);
  48.             q:=q^.next;
  49.         end;
  50. end;
  51. procedure modifica(var h:tprec);
  52.     var q:tprec; cont,x,pos:integer;
  53. begin
  54.     writeln('Informe o valor a ser alterado: ');readln(x);
  55.     writeln('Iforme a posiçao a ser substituida: ');readln(pos);
  56.     new(q);
  57.     q:=h;
  58.     cont:=0;
  59.     while ( q<>nil)do
  60.         begin
  61.             if (cont = pos) then
  62.             begin
  63.                 q^.i:=x;
  64.                 break;
  65.             end else
  66.     q:=q^.next;
  67.     inc(cont);
  68.     end;
  69. end;
  70. procedure busca(var h:tprec);
  71.     var q:tprec; contano,x:integer;
  72. begin
  73.     writeln('Qual numero voce procura ?, Digite o numero: ');readln(x);
  74.     new(q);
  75.     q:=h;
  76.     contano:=0;
  77.     while (q<>nil) do
  78.         begin
  79.             if (q^.i = x) then
  80.             begin
  81.                 writeln('O numero esta no nó: ',x);
  82.                 break;
  83.             end else q:=q^.next;
  84.         inc(contano);
  85.     end;//while
  86. end;
  87. procedure excluir(var h:tprec);
  88.     var q,aux:tprec; n:integer;
  89. begin
  90.     writeln('Qual no voce deseja excluir ?');readln(n);
  91.     aux:=nil;
  92.     q:=h;
  93.     while(q<>nil)and(q^.i<>n)do
  94.     begin
  95.         aux:=q;
  96.         q:=q^.next;
  97.     end;
  98.     if (q<>nil) then
  99.         begin
  100.             if (aux=nil)then h:=q^.next
  101.             else aux^.next:=q^.next;
  102.         dispose(q);
  103.     end;
  104. end;
  105. procedure storage(var h:tprec; fn:string);
  106.     var q:tprec; fout:file of integer;
  107. begin
  108.     assign(fout,fn);
  109.     rewrite(fout);
  110.     new(q);
  111.     q:=h;
  112.     while(q<>nil) do
  113.         begin
  114.             write(fout,q^.i);
  115.             q:=q^.next;
  116.         end;
  117.         close(fout);
  118. end;
  119.    
  120. procedure desalocar(var h:tprec);
  121.     var q:tprec;
  122. begin
  123.     while(h<>nil)do
  124.     begin
  125.         q:=h;
  126.         h:=h^.next;
  127.         dispose(q);
  128.     end;
  129. end;
  130.  
  131.  
  132. var f:string; sair:boolean; n,op:integer;
  133. begin
  134.     clrscr;
  135.     f:='arquivo1.kenner';
  136.     sair:=false;
  137.     writeln('1- Load');
  138.     writeln('2- Insere');
  139.     writeln('3- Mostra');
  140.     writeln('4- Modifica');
  141.     writeln('5- Busca');
  142.     writeln('6- Storage');
  143.     writeln('7- Sair');
  144.     writeln('Digite a opcao: ');readln(op);
  145.     repeat
  146.     case op of
  147.         1:load(h,f);
  148.         2:begin
  149.             writeln('Qual o valor que deseja inserir ?');
  150.             readln(n);
  151.             insere(h,l,n);
  152.             readln;
  153.         end;
  154.         3:mostrar(h);
  155.         4:modifica(h);
  156.         5:busca(h);
  157.         6:storage(h,f);
  158.         7:begin
  159.             storage(h,f);      
  160.             sair:=true;
  161.             end;
  162.     end;
  163.     until sair=true;
  164.    
  165. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement