mirror of
https://github.com/Gustavo-E-D-Demarchi/dicionario.git
synced 2026-07-27 16:25:46 -03:00
ve se estar certo esta porra
This commit is contained in:
committed by
GitHub
parent
02221ad4c7
commit
39dd9008e9
+98
-83
@@ -21,19 +21,23 @@ uses crt;
|
|||||||
var
|
var
|
||||||
sair : boolean ;
|
sair : boolean ;
|
||||||
begin
|
begin
|
||||||
if D^.br < P then
|
if D = nil then
|
||||||
verificar_palavra := true
|
verificar_palavra := false
|
||||||
else if D^.prox <> nil then
|
|
||||||
sair := false
|
|
||||||
else
|
|
||||||
sair := true
|
|
||||||
|
|
||||||
if sair then
|
|
||||||
verificar_palavra := false
|
|
||||||
else
|
else
|
||||||
verificar_palavra( D^.prox , P );
|
begin
|
||||||
end;
|
if D^.br = P then
|
||||||
|
verificar_palavra := true
|
||||||
|
else if D^.prox <> nil then
|
||||||
|
sair := false
|
||||||
|
else
|
||||||
|
sair := true
|
||||||
|
|
||||||
|
if sair then
|
||||||
|
verificar_palavra := false
|
||||||
|
else
|
||||||
|
verificar_palavra := verificar_palavra( D^.prox , P );
|
||||||
|
end;
|
||||||
|
end;
|
||||||
|
|
||||||
function consultar ( T_lista : Tlista ; chave : string ) : Tlista ;
|
function consultar ( T_lista : Tlista ; chave : string ) : Tlista ;
|
||||||
var
|
var
|
||||||
@@ -44,7 +48,7 @@ uses crt;
|
|||||||
while ( atual <> nil ) and ( atual^.key < chave ) do
|
while ( atual <> nil ) and ( atual^.key < chave ) do
|
||||||
atual := atual^.prox ;
|
atual := atual^.prox ;
|
||||||
|
|
||||||
if ( atual <> nil ) and ( atual ^.key = chave)
|
if ( atual <> nil ) and ( atual ^.key = chave) then
|
||||||
consultar := atual
|
consultar := atual
|
||||||
else
|
else
|
||||||
consultar := nil ;
|
consultar := nil ;
|
||||||
@@ -68,26 +72,21 @@ uses crt;
|
|||||||
ler_int := temp ;
|
ler_int := temp ;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function continuar ( num : integer ) : boolean ;
|
function continuar : boolean ;
|
||||||
var
|
var
|
||||||
op : string ;
|
op : string ;
|
||||||
begin
|
begin
|
||||||
if num = 1 then
|
write ( 'quer continuar ? (S / N)' ) ;
|
||||||
|
op := ler ;
|
||||||
|
while ( ( op <> 'S' ) or ( op <> 's' ) ) and ( ( op <> 'N') or ( op <> 'n') ) do
|
||||||
|
begin
|
||||||
|
writeln ('opcao invalida') ;
|
||||||
|
op := ler ;
|
||||||
|
end;
|
||||||
|
if op = 'S' then
|
||||||
continuar := true
|
continuar := true
|
||||||
else
|
else
|
||||||
begin
|
continuar := false ;
|
||||||
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;
|
end;
|
||||||
|
|
||||||
{
|
{
|
||||||
@@ -96,10 +95,13 @@ uses crt;
|
|||||||
maior := upcase(a) > upcase(b);
|
maior := upcase(a) > upcase(b);
|
||||||
end;
|
end;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Procedimentos \/ | /\ funçoes
|
||||||
|
|
||||||
procedure criar_lista ( var lista: Tlista );
|
procedure criar_lista ( var lista: Tlista );
|
||||||
begin
|
begin
|
||||||
lista := nil;
|
lista := nil;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure adicionar_lista(var T_lista : Tlista );
|
procedure adicionar_lista(var T_lista : Tlista );
|
||||||
var
|
var
|
||||||
@@ -115,9 +117,11 @@ uses crt;
|
|||||||
if T_lista = nil then
|
if T_lista = nil then
|
||||||
begin
|
begin
|
||||||
|
|
||||||
novo^.key := chave ;
|
|
||||||
novo^.prox := T_lista;
|
|
||||||
novo^.ant := nil ;
|
novo^.ant := nil ;
|
||||||
|
novo^.key := chave ;
|
||||||
|
novo^.dicionario := nil ;
|
||||||
|
novo^.prox := T_lista;
|
||||||
|
|
||||||
T_lista := novo ;
|
T_lista := novo ;
|
||||||
|
|
||||||
end
|
end
|
||||||
@@ -137,6 +141,7 @@ uses crt;
|
|||||||
novo^.ant := anterior ;
|
novo^.ant := anterior ;
|
||||||
novo^.prox := atual ;
|
novo^.prox := atual ;
|
||||||
novo^.key := chave ;
|
novo^.key := chave ;
|
||||||
|
novo^.dicionario := nil ;
|
||||||
|
|
||||||
if anterior <> nil then
|
if anterior <> nil then
|
||||||
anterior^.prox := novo
|
anterior^.prox := novo
|
||||||
@@ -150,49 +155,66 @@ uses crt;
|
|||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure adicionar_dicionario( var dicionario : Tverbete );
|
procedure adicionar_dicionario( var lista : Tlista );
|
||||||
var
|
var
|
||||||
|
aux_l : Tlista ;
|
||||||
aux , aux_atual , aux_ant : Tverbete ;
|
aux , aux_atual , aux_ant : Tverbete ;
|
||||||
chave_p , chave_i : string ;
|
chave , chave_p , chave_i , op : string ;
|
||||||
//portugues /\ /\ inglês
|
//portugues /\ /\ inglês
|
||||||
existe : boolean ;
|
existe : boolean ;
|
||||||
begin
|
begin
|
||||||
chave_p := ler ;
|
writeln (' digite a chave que vc quer : ') ;
|
||||||
chave_i := ler ;
|
chave := ler ;
|
||||||
new(aux);
|
|
||||||
if aux = nil then
|
aux_l := consultar (lista , chave );
|
||||||
|
|
||||||
|
if aux_l = nil then
|
||||||
|
begin
|
||||||
|
writeln ('nao exite esta chave quer adicionar ? ');
|
||||||
|
|
||||||
|
if continuar then
|
||||||
begin
|
begin
|
||||||
writeln ('memoria cheia') ;
|
adicionar_lista ( lista );
|
||||||
end
|
aux_l := consultar (lista , chave) ;
|
||||||
|
end;
|
||||||
|
end
|
||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
aux := dicionario ;
|
chave_p := ler ;
|
||||||
if (aux = nil) then //adicionar o primeiro verbete
|
chave_i := ler ;
|
||||||
|
|
||||||
|
new(aux);
|
||||||
|
|
||||||
|
if aux_l^.dicionario = nil then //adicionar o primeiro verbete
|
||||||
begin
|
begin
|
||||||
aux^.br := chave_p ;
|
aux^.br := chave_p ;
|
||||||
aux^.ing := chave_i ;
|
aux^.ing := chave_i ;
|
||||||
aux^.prox := dicionario ;
|
aux^.prox := aux_l^.dicionario ;
|
||||||
dicionario := aux ;
|
aux_l^.dicionario := aux ;
|
||||||
end
|
end
|
||||||
else
|
|
||||||
begin
|
else
|
||||||
aux_ant := nil ;
|
begin
|
||||||
aux_atual := aux ;
|
existe := verificar_palavra( aux_l^.dicionario , chave_p); // verificar se a palavra ja existe no dicionario
|
||||||
while (aux_atual <> nil) and ( aux_atual^.br < chave_p ) do
|
|
||||||
begin
|
|
||||||
aux_ant := aux_atual ;
|
|
||||||
aux_atual := aux_atual^.prox ;
|
|
||||||
end;
|
|
||||||
|
|
||||||
existe := verificar_palavra( aux , chave_p); // verificar se a palavra ja existe no dicionario
|
|
||||||
|
|
||||||
if not existe then
|
if not existe then
|
||||||
begin
|
begin
|
||||||
|
aux_ant := nil ;
|
||||||
|
aux_atual := aux_l^.dicionario ; // apontar para o primeiro verbete do dicionario da chave
|
||||||
|
|
||||||
|
while (aux_atual <> nil) and ( aux_atual^.br < chave_p ) do
|
||||||
|
begin
|
||||||
|
aux_ant := aux_atual ;
|
||||||
|
aux_atual := aux_atual^.prox ;
|
||||||
|
end;
|
||||||
|
|
||||||
if aux_ant = nil then
|
if aux_ant = nil then
|
||||||
begin
|
begin
|
||||||
aux^.br := chave_p ;
|
aux^.br := chave_p;
|
||||||
aux^.ing := chave_i ;
|
aux^.ing := chave_i;
|
||||||
aux^.prox := aux_atual ;
|
aux^.prox := aux_atual;
|
||||||
|
|
||||||
|
aux_l^.dicionario := aux;
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
begin
|
begin
|
||||||
@@ -201,21 +223,15 @@ uses crt;
|
|||||||
aux^.ing := chave_i ;
|
aux^.ing := chave_i ;
|
||||||
aux^.prox := aux_atual;
|
aux^.prox := aux_atual;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
end
|
end
|
||||||
else
|
else
|
||||||
write (' esta palavra ja existe no dicionario ')
|
write (' esta palavra ja existe no dicionario ') ;
|
||||||
|
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
end;
|
||||||
end;
|
|
||||||
|
|
||||||
procedure adicionar_dicionario_lista (L , D) ;
|
|
||||||
var
|
|
||||||
begin
|
|
||||||
while (l <> nil) and (l^.dicionario < d) do
|
|
||||||
end;
|
|
||||||
|
|
||||||
|
|
||||||
procedure consultar_lista ( T_lista : Tlista );
|
procedure consultar_lista ( T_lista : Tlista );
|
||||||
var
|
var
|
||||||
@@ -241,7 +257,7 @@ uses crt;
|
|||||||
begin
|
begin
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure menu ( var lista : Tlista ; var dicionario : Tverbete);
|
procedure menu ( var lista : Tlista );
|
||||||
var
|
var
|
||||||
op : integer ;
|
op : integer ;
|
||||||
begin
|
begin
|
||||||
@@ -250,30 +266,28 @@ uses crt;
|
|||||||
writeln (' 2 : adicionar_dicionario ') ;
|
writeln (' 2 : adicionar_dicionario ') ;
|
||||||
writeln (' 3 : consultar_lista ') ;
|
writeln (' 3 : consultar_lista ') ;
|
||||||
writeln (' 4 : consultar_dicionario ') ;
|
writeln (' 4 : consultar_dicionario ') ;
|
||||||
writeln (' 5 : consultar_geral ')
|
writeln (' 5 : consultar_geral ') ;
|
||||||
writeln (' 6 : remover_lista ');
|
writeln (' 6 : remover_lista ') ;
|
||||||
writeln (' 7 : remover_dicionario ');
|
writeln (' 7 : remover_dicionario ') ;
|
||||||
writeln (' 0 : sair ');
|
writeln (' 0 : sair ') ;
|
||||||
op := ler_int ;
|
op := ler_int ;
|
||||||
case op of
|
case op of
|
||||||
1 : adicionar_lista(lista) ;
|
1 : adicionar_lista(lista) ;
|
||||||
2 :
|
2 : adicionar_dicionario (lista) ;
|
||||||
begin
|
|
||||||
adicionar_dicionario (dicionario) ;
|
|
||||||
adicionar_dicionario_lista (lista , dicionario)
|
|
||||||
end;
|
|
||||||
3 : consultar_lista (lista) ;
|
3 : consultar_lista (lista) ;
|
||||||
4 : consultar_dicionario (dicionario) ;
|
4 : consultar_dicionario (lista) ;
|
||||||
5 : consultar_geral (lista , dicionario) ;
|
5 : consultar_geral (lista , dicionario) ;
|
||||||
6 :
|
6 :
|
||||||
begin
|
begin
|
||||||
remover_lista (lista) ;
|
remover_lista (lista) ;
|
||||||
adicionar_dicionario_lista (lista , dicionario) ;
|
adicionar_dicionario (lista) ;
|
||||||
end;
|
end;
|
||||||
7 : remover_dicionario (dicionario) ;
|
7 : remover_dicionario (dicionario) ;
|
||||||
|
0 : writeln (' vc saiu do sistema ') ;
|
||||||
end
|
end
|
||||||
else if ( )
|
else
|
||||||
write (' opcao invalida digite novamente : ');
|
write (' opcao invalida digite novamente : ') ;
|
||||||
|
|
||||||
end;
|
end;
|
||||||
var
|
var
|
||||||
lista : Tlista ;
|
lista : Tlista ;
|
||||||
@@ -282,9 +296,10 @@ var
|
|||||||
begin
|
begin
|
||||||
i := 1;
|
i := 1;
|
||||||
criar_lista (lista) ;
|
criar_lista (lista) ;
|
||||||
while ( continuar(i) ) do
|
while ( i = 1 ) do
|
||||||
begin
|
begin
|
||||||
menu (lista);
|
menu (lista);
|
||||||
i := 0;
|
if not continuar then
|
||||||
|
i := 0;
|
||||||
end;
|
end;
|
||||||
end.
|
end.
|
||||||
|
|||||||
Reference in New Issue
Block a user