Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- program alocacao;
- uses crt;
- type
- tprec=^trec;
- trec=record
- i:integer;
- next:tprec;
- end;
- var h,l:tprec;
- procedure insere(var h,l:tprec; n:integer);
- var q,aux:tprec;
- begin
- new(q);
- q^.i:=n;
- q^.next:=nil;
- aux:=h;
- if(aux<>nil)then
- begin
- while (aux<>nil)do
- begin
- aux:=aux^.next;
- end;
- aux:=q;
- h:=aux;
- l:=aux;
- end else h:=q;
- end;
- procedure load(var h:tprec; fn:string);
- var n:integer; fin:file of integer;
- begin
- assign(fin,fn);
- reset(fin);
- while (not eof(fin)) do
- begin
- read(fin,n);
- insere(h,l,n);
- end;
- close(fin);
- end;
- procedure mostrar(h:tprec);
- var q:tprec;
- begin
- q:=h;
- while (q<>nil)do
- begin
- readln(q^.i);
- q:=q^.next;
- end;
- end;
- procedure modifica(var h:tprec);
- var q:tprec; cont,x,pos:integer;
- begin
- writeln('Informe o valor a ser alterado: ');readln(x);
- writeln('Iforme a posiçao a ser substituida: ');readln(pos);
- new(q);
- q:=h;
- cont:=0;
- while ( q<>nil)do
- begin
- if (cont = pos) then
- begin
- q^.i:=x;
- break;
- end else
- q:=q^.next;
- inc(cont);
- end;
- end;
- procedure busca(var h:tprec);
- var q:tprec; contano,x:integer;
- begin
- writeln('Qual numero voce procura ?, Digite o numero: ');readln(x);
- new(q);
- q:=h;
- contano:=0;
- while (q<>nil) do
- begin
- if (q^.i = x) then
- begin
- writeln('O numero esta no nó: ',x);
- break;
- end else q:=q^.next;
- inc(contano);
- end;//while
- end;
- procedure excluir(var h:tprec);
- var q,aux:tprec; n:integer;
- begin
- writeln('Qual no voce deseja excluir ?');readln(n);
- aux:=nil;
- q:=h;
- while(q<>nil)and(q^.i<>n)do
- begin
- aux:=q;
- q:=q^.next;
- end;
- if (q<>nil) then
- begin
- if (aux=nil)then h:=q^.next
- else aux^.next:=q^.next;
- dispose(q);
- end;
- end;
- procedure storage(var h:tprec; fn:string);
- var q:tprec; fout:file of integer;
- begin
- assign(fout,fn);
- rewrite(fout);
- new(q);
- q:=h;
- while(q<>nil) do
- begin
- write(fout,q^.i);
- q:=q^.next;
- end;
- close(fout);
- end;
- procedure desalocar(var h:tprec);
- var q:tprec;
- begin
- while(h<>nil)do
- begin
- q:=h;
- h:=h^.next;
- dispose(q);
- end;
- end;
- var f:string; sair:boolean; n,op:integer;
- begin
- clrscr;
- f:='arquivo1.kenner';
- sair:=false;
- writeln('1- Load');
- writeln('2- Insere');
- writeln('3- Mostra');
- writeln('4- Modifica');
- writeln('5- Busca');
- writeln('6- Storage');
- writeln('7- Sair');
- writeln('Digite a opcao: ');readln(op);
- repeat
- case op of
- 1:load(h,f);
- 2:begin
- writeln('Qual o valor que deseja inserir ?');
- readln(n);
- insere(h,l,n);
- readln;
- end;
- 3:mostrar(h);
- 4:modifica(h);
- 5:busca(h);
- 6:storage(h,f);
- 7:begin
- storage(h,f);
- sair:=true;
- end;
- end;
- until sair=true;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement