mirror of
https://github.com/Gustavo-E-D-Demarchi/dicionario.git
synced 2026-07-28 08:46:52 -03:00
takin
pelo espaço de code não conseguir atualizar
This commit is contained in:
committed by
GitHub
parent
846007cad7
commit
c862e32d7d
+198
-41
@@ -1,86 +1,243 @@
|
|||||||
program pzim;
|
program pzim;
|
||||||
|
uses crt;
|
||||||
|
|
||||||
type
|
type
|
||||||
Tverbete = ^E_Dicionario;
|
Tverbete = ^E_Dicionario;
|
||||||
E_Dicionario = record
|
E_Dicionario = record
|
||||||
portugues : string;
|
br : string; //portugues
|
||||||
ingles : string;
|
ing : string; // ingles
|
||||||
prox : Tverbete;
|
prox : Tverbete;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
Tlista = ^E_lista;
|
Tlista = ^E_lista ;
|
||||||
E_lista = record ;
|
E_lista = record
|
||||||
ant : Tlista ; //anterior
|
ant : Tlista ; //anterior
|
||||||
key : string;
|
key : string;
|
||||||
dicionario : E_dicionario ;
|
dicionario : Tverbete ;
|
||||||
prox : Tlista ;
|
prox : Tlista ;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
{
|
||||||
function maior(a , b : string):boolean;
|
function maior(a , b : string):boolean;
|
||||||
begin
|
begin
|
||||||
maior := upcase(a) > upcase(b);
|
maior := upcase(a) > upcase(b);
|
||||||
end;
|
end;
|
||||||
|
}
|
||||||
procedure criar_lista(lista: Tlista );
|
procedure criar_lista ( var lista: Tlista );
|
||||||
begin
|
begin
|
||||||
lista:=nil;
|
lista := nil;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure adicionar_lista(var lista : Tlista ; chave : string);
|
procedure adicionar_lista(var T_lista : Tlista );
|
||||||
var
|
var
|
||||||
aux , aux_Ant , aux_Prox : Tlista;
|
novo , anterior , atual : Tlista ;
|
||||||
temp_s : string;
|
chave : string ;
|
||||||
begin
|
begin
|
||||||
new(aux);
|
chave := ler ;
|
||||||
if
|
new (novo);
|
||||||
//memoria cheia
|
if novo = nil then
|
||||||
|
writeln ('memoria cheia')
|
||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
while aux^.prox <> nil do
|
if T_lista = nil then
|
||||||
aux := aux^.prox;
|
|
||||||
temp_s := aux^.key;
|
|
||||||
|
|
||||||
new (aux_Ant);
|
|
||||||
new (aux_Prox);
|
|
||||||
|
|
||||||
if maior(temp_s , chave)then
|
|
||||||
begin
|
begin
|
||||||
if aux^.ant <> nil then
|
|
||||||
aux_Ant := aux^.ant ;
|
|
||||||
if aux^.prox <> nil then
|
|
||||||
aux_Prox := aux^.prox;
|
|
||||||
|
|
||||||
aux^.key := chave ;//
|
novo^.key := chave ;
|
||||||
|
novo^.prox := T_lista;
|
||||||
|
novo^.ant := nil ;
|
||||||
|
T_lista := novo ;
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
|
||||||
|
atual := T_lista ;
|
||||||
|
anterior := nil ;
|
||||||
|
|
||||||
|
while (atual <> nil) and (atual^.key < chave) do
|
||||||
|
begin
|
||||||
|
anterior := atual;
|
||||||
|
atual := atual^.prox;
|
||||||
|
end;
|
||||||
|
|
||||||
|
novo^.ant := anterior ;
|
||||||
|
novo^.prox := atual ;
|
||||||
|
novo^.key := chave ;
|
||||||
|
|
||||||
|
if anterior <> nil then
|
||||||
|
anterior^.prox := novo
|
||||||
|
else
|
||||||
|
T_lista := novo ;
|
||||||
|
|
||||||
|
if atual <> nil then
|
||||||
|
atual^.ant := novo ;
|
||||||
|
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
procedure adicionar_dicionario(dicionario : E_dicionario);
|
||||||
|
var
|
||||||
|
|
||||||
procedure portugues()
|
|
||||||
|
|
||||||
procedure adicionar_dicionario(dicionario : E_dicionario);
|
|
||||||
var
|
|
||||||
aux , aux2 : Tlista;
|
aux , aux2 : Tlista;
|
||||||
begin
|
chave_p , chave_i : string ;
|
||||||
|
//portugues /\ /\ inglês
|
||||||
|
begin
|
||||||
|
chave_p := ler ;
|
||||||
|
chave_i := ler ;
|
||||||
new(aux);
|
new(aux);
|
||||||
if aux = nil then
|
if aux = nil then
|
||||||
begin
|
begin
|
||||||
//memoria cheia
|
writeln ('memoria cheia') ;
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
if (dicionario = nil) then
|
if (dicionario = nil) then
|
||||||
begin
|
begin
|
||||||
aux^.
|
aux^.br := chave_p ;
|
||||||
|
aux^.ing := chave_i ;
|
||||||
|
aux^.prox := dicionario ;
|
||||||
|
dicionario := aux ;
|
||||||
|
end;
|
||||||
|
aux2 := aux ;
|
||||||
|
while (aux2 <> nil) and (aux2^.br < chave_p ) do
|
||||||
|
begin
|
||||||
|
aux2 := aux2^.prox ;
|
||||||
|
aux := aux2 ;
|
||||||
|
end;
|
||||||
|
if aux2 = nil then
|
||||||
|
begin
|
||||||
|
|
||||||
|
aux2^.br := chave_p ;
|
||||||
|
aux2^.ing := chave_i ;
|
||||||
|
|
||||||
|
if aux <> nil then
|
||||||
|
aux2^.prox := aux
|
||||||
|
else
|
||||||
|
aux2^.prox := nil ;
|
||||||
|
|
||||||
|
|
||||||
end;
|
end;
|
||||||
while aux^.prox <> nil do
|
|
||||||
aux := aux^.prox
|
|
||||||
if aux^.prox = nil then
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function consultar ( T_lista : Tlista ; chave : string ) : Tlista ;
|
||||||
|
var
|
||||||
|
atual : Tlista ;
|
||||||
|
begin
|
||||||
|
atual := T_lista ;
|
||||||
|
|
||||||
|
while ( atual <> nil ) and ( atual^.key < chave ) do
|
||||||
|
atual := atual^.prox ;
|
||||||
|
|
||||||
|
if ( atual <> nil ) and ( atual ^.key = chave)
|
||||||
|
consultar := atual
|
||||||
|
else
|
||||||
|
consultar := nil ;
|
||||||
|
end;
|
||||||
|
|
||||||
|
|
||||||
|
procedure consultar_lista ( T_lista : Tlista );
|
||||||
|
var
|
||||||
|
aux : tlista ;
|
||||||
|
op : string ;
|
||||||
|
begin
|
||||||
|
write ( ' vc quer consutar quer consultar qual palavra ? ') ;
|
||||||
|
op := ler ;
|
||||||
|
|
||||||
|
aux := consultar( T_lista , op );
|
||||||
|
|
||||||
|
if aux = nil then
|
||||||
|
writeln (' palavra nao encontrada ')
|
||||||
|
else
|
||||||
|
write (' palavra encontrada :' , aux^.key );
|
||||||
|
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure consultar_dicionario (T_lista : Tlista );
|
||||||
|
var
|
||||||
|
aux : Tlista ;
|
||||||
|
op : string ;
|
||||||
|
begin
|
||||||
|
end;
|
||||||
|
|
||||||
|
procedure menu ( var T_lista : Tlista);
|
||||||
|
var
|
||||||
|
op : integer
|
||||||
|
begin
|
||||||
|
writeln (' 1 : adicionar_lista ') ;
|
||||||
|
writeln (' 2 : adicionar_dicionario ') ;
|
||||||
|
writeln (' 3 : consultar_lista ') ;
|
||||||
|
writeln (' 4 : consultar_dicionario ') ;
|
||||||
|
writeln (' 5 : consultar_geral ')
|
||||||
|
writeln (' 6 : remover_lista ');
|
||||||
|
writeln (' 7 : remover_dicionario ');
|
||||||
|
writeln (' 0 : sair ');
|
||||||
|
op := ler_int ;
|
||||||
|
case ler_int of
|
||||||
|
1 : adicionar_lista ;
|
||||||
|
2 : adicionar_dicionario ;
|
||||||
|
3 : consultar_lista ;
|
||||||
|
4 : consultar_dicionario ;
|
||||||
|
5 : consultar_geral ;
|
||||||
|
6 : remover_lista ;
|
||||||
|
7 : remover_dicionario ;
|
||||||
|
end
|
||||||
|
else if ( )
|
||||||
|
write (' opcao invalida digite novamente : ');
|
||||||
|
end;
|
||||||
|
|
||||||
|
function ler : string ;
|
||||||
|
var
|
||||||
|
temp : string ;
|
||||||
|
begin
|
||||||
|
write (' digite a palavra :') ;
|
||||||
|
readln( temp ) ;
|
||||||
|
ler := temp ;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function ler_int : integer ;
|
||||||
|
var
|
||||||
|
temp : integer ;
|
||||||
|
begin
|
||||||
|
write (' digite um numero : ') ;
|
||||||
|
readln (temp) ;
|
||||||
|
ler_int := temp ;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function continuar ( num : integer ) : boolean ;
|
||||||
|
var
|
||||||
|
op : string ;
|
||||||
|
begin
|
||||||
|
if num = 1 then
|
||||||
|
continuar := true
|
||||||
|
else
|
||||||
|
begin
|
||||||
|
write ( 'quer continuar ? (S / N)' ) ;
|
||||||
|
op := ler ;
|
||||||
|
while ( op <> 'S' ) and ( op <> 'N') do
|
||||||
|
begin
|
||||||
|
writeln ('opcao invalida') ;
|
||||||
|
op := ler ;
|
||||||
|
end;
|
||||||
|
if op = 'S' then
|
||||||
|
continuar := true
|
||||||
|
else
|
||||||
|
continuar := false ;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
|
var
|
||||||
|
lista : Tlista ;
|
||||||
|
|
||||||
|
i : integer ;
|
||||||
begin
|
begin
|
||||||
|
i := 1;
|
||||||
|
criar_lista (lista) ;
|
||||||
|
while ( continuar(i) ) do
|
||||||
|
begin
|
||||||
|
menu (lista);
|
||||||
|
i := 0;
|
||||||
|
end;
|
||||||
end.
|
end.
|
||||||
|
|||||||
Reference in New Issue
Block a user