mirror of
https://github.com/Gustavo-E-D-Demarchi/dicionario.git
synced 2026-07-27 16:25:46 -03:00
Rename explicação to explicação.md
This commit is contained in:
committed by
GitHub
parent
34cbf1d229
commit
a593774710
+370
@@ -0,0 +1,370 @@
|
||||
# Dicionário Português-Inglês em Pascal
|
||||
|
||||
## Descrição
|
||||
|
||||
Este programa implementa um dicionário Português-Inglês utilizando listas encadeadas dinâmicas em Pascal.
|
||||
|
||||
A estrutura principal é composta por:
|
||||
|
||||
* Uma lista duplamente encadeada de chaves.
|
||||
* Cada chave possui um dicionário próprio.
|
||||
* Cada dicionário é uma lista simplesmente encadeada de verbetes.
|
||||
|
||||
Cada verbete contém:
|
||||
|
||||
* Palavra em português.
|
||||
* Tradução em inglês.
|
||||
|
||||
Exemplo:
|
||||
|
||||
Chave: A
|
||||
|
||||
* Abacaxi = Pineapple
|
||||
* Amor = Love
|
||||
* Avião = Airplane
|
||||
|
||||
Chave: M
|
||||
|
||||
* Mesa = Table
|
||||
* Morango = Strawberry
|
||||
|
||||
---
|
||||
|
||||
# Estruturas Utilizadas
|
||||
|
||||
## Tverbete
|
||||
|
||||
Representa um verbete do dicionário.
|
||||
|
||||
Campos:
|
||||
|
||||
* br: palavra em português.
|
||||
* ing: tradução em inglês.
|
||||
* prox: próximo verbete da lista.
|
||||
|
||||
## Tlista
|
||||
|
||||
Representa uma chave do dicionário.
|
||||
|
||||
Campos:
|
||||
|
||||
* key: letra ou chave identificadora.
|
||||
* dicionario: lista de verbetes pertencentes à chave.
|
||||
* ant: chave anterior.
|
||||
* prox: próxima chave.
|
||||
|
||||
---
|
||||
|
||||
# Funções
|
||||
|
||||
## ler
|
||||
|
||||
Lê uma string digitada pelo usuário.
|
||||
|
||||
Retorno:
|
||||
|
||||
* String informada pelo usuário.
|
||||
|
||||
---
|
||||
|
||||
## ler_int
|
||||
|
||||
Lê um número inteiro digitado pelo usuário.
|
||||
|
||||
Retorno:
|
||||
|
||||
* Valor inteiro informado.
|
||||
|
||||
---
|
||||
|
||||
## buscar_verbete
|
||||
|
||||
Procura uma palavra dentro de um dicionário.
|
||||
|
||||
Parâmetros:
|
||||
|
||||
* D: dicionário onde será feita a busca.
|
||||
* P: palavra procurada.
|
||||
|
||||
Retorno:
|
||||
|
||||
* Ponteiro para o verbete encontrado.
|
||||
* Nil caso não exista.
|
||||
|
||||
Método utilizado:
|
||||
|
||||
Busca recursiva.
|
||||
|
||||
---
|
||||
|
||||
## encontrar_lista
|
||||
|
||||
Localiza a chave responsável por armazenar determinada palavra.
|
||||
|
||||
Parâmetros:
|
||||
|
||||
* T_lista: lista principal.
|
||||
* palavra: palavra a ser localizada.
|
||||
|
||||
Retorno:
|
||||
|
||||
* Ponteiro para a chave adequada.
|
||||
* Nil caso não exista chave compatível.
|
||||
|
||||
---
|
||||
|
||||
# Procedimentos
|
||||
|
||||
## lista_iniciar
|
||||
|
||||
Inicializa a estrutura principal.
|
||||
|
||||
Ação:
|
||||
|
||||
* Define a lista principal como vazia.
|
||||
|
||||
---
|
||||
|
||||
## dicionario_adicionar
|
||||
|
||||
Insere um novo verbete em ordem alfabética.
|
||||
|
||||
Parâmetros:
|
||||
|
||||
* dicionario
|
||||
* br
|
||||
* ing
|
||||
|
||||
Ação:
|
||||
|
||||
* Cria um novo verbete.
|
||||
* Insere mantendo a ordenação alfabética.
|
||||
|
||||
---
|
||||
|
||||
## dicionario_remover
|
||||
|
||||
Remove um verbete de um dicionário.
|
||||
|
||||
Parâmetros:
|
||||
|
||||
* dicionario
|
||||
* palavra
|
||||
* removido
|
||||
|
||||
Ação:
|
||||
|
||||
* Procura a palavra.
|
||||
* Remove da lista.
|
||||
* Retorna o ponteiro removido.
|
||||
|
||||
---
|
||||
|
||||
## lista_adicionar
|
||||
|
||||
Insere uma nova chave.
|
||||
|
||||
Parâmetros:
|
||||
|
||||
* lista
|
||||
|
||||
Ação:
|
||||
|
||||
* Cria uma nova chave.
|
||||
* Mantém as chaves ordenadas.
|
||||
* Atualiza ponteiros anterior e próximo.
|
||||
* Redistribui verbetes quando necessário.
|
||||
|
||||
---
|
||||
|
||||
## redistribuir_verbetes
|
||||
|
||||
Redistribui verbetes após a criação de uma nova chave.
|
||||
|
||||
Parâmetros:
|
||||
|
||||
* lista
|
||||
* chave
|
||||
|
||||
Ação:
|
||||
|
||||
* Localiza a nova chave.
|
||||
* Analisa o dicionário da chave anterior.
|
||||
* Separa os verbetes que agora pertencem à nova chave.
|
||||
* Move esses verbetes para o novo dicionário.
|
||||
|
||||
Exemplo:
|
||||
|
||||
Antes:
|
||||
|
||||
Chave A
|
||||
|
||||
* Abacaxi
|
||||
* Banana
|
||||
* Morango
|
||||
|
||||
Após criar a chave M:
|
||||
|
||||
Chave A
|
||||
|
||||
* Abacaxi
|
||||
* Banana
|
||||
|
||||
Chave M
|
||||
|
||||
* Morango
|
||||
|
||||
---
|
||||
|
||||
## mover_verbetes_para_listas
|
||||
|
||||
Redistribui verbetes quando uma chave é removida.
|
||||
|
||||
Parâmetros:
|
||||
|
||||
* lista
|
||||
* origem
|
||||
|
||||
Ação:
|
||||
|
||||
* Percorre todos os verbetes da chave removida.
|
||||
* Procura uma nova chave compatível.
|
||||
* Reinsere os verbetes.
|
||||
* Descarta os verbetes sem destino válido.
|
||||
|
||||
---
|
||||
|
||||
## adicionar_dicionario
|
||||
|
||||
Adiciona uma nova palavra ao sistema.
|
||||
|
||||
Ação:
|
||||
|
||||
* Solicita palavra em português.
|
||||
* Solicita tradução.
|
||||
* Localiza a chave correta.
|
||||
* Insere o verbete.
|
||||
|
||||
---
|
||||
|
||||
## consultar_lista
|
||||
|
||||
Exibe todas as chaves cadastradas.
|
||||
|
||||
Ação:
|
||||
|
||||
* Percorre a lista principal.
|
||||
* Mostra cada chave.
|
||||
|
||||
---
|
||||
|
||||
## consultar_dicionario
|
||||
|
||||
Busca uma palavra específica.
|
||||
|
||||
Ação:
|
||||
|
||||
* Procura a palavra em todas as chaves.
|
||||
* Exibe a tradução caso encontrada.
|
||||
|
||||
---
|
||||
|
||||
## consultar_geral
|
||||
|
||||
Exibe todo o conteúdo do sistema.
|
||||
|
||||
Ação:
|
||||
|
||||
* Mostra todas as chaves.
|
||||
* Mostra todos os verbetes de cada chave.
|
||||
|
||||
---
|
||||
|
||||
## remover_dicionario
|
||||
|
||||
Remove uma palavra do sistema.
|
||||
|
||||
Ação:
|
||||
|
||||
* Procura a palavra.
|
||||
* Remove o verbete.
|
||||
* Libera a memória utilizada.
|
||||
|
||||
---
|
||||
|
||||
## remover_lista
|
||||
|
||||
Remove uma chave inteira.
|
||||
|
||||
Ação:
|
||||
|
||||
* Remove a chave da lista principal.
|
||||
* Redistribui seus verbetes.
|
||||
* Libera a memória da chave removida.
|
||||
|
||||
---
|
||||
|
||||
## menu
|
||||
|
||||
Controla a interação com o usuário.
|
||||
|
||||
Opções:
|
||||
|
||||
1 - Adicionar chave
|
||||
|
||||
2 - Adicionar palavra
|
||||
|
||||
3 - Consultar chaves
|
||||
|
||||
4 - Consultar palavra
|
||||
|
||||
5 - Consultar geral
|
||||
|
||||
6 - Remover chave
|
||||
|
||||
7 - Remover palavra
|
||||
|
||||
0 - Sair
|
||||
|
||||
---
|
||||
|
||||
# Fluxo Geral do Programa
|
||||
|
||||
1. Inicializa a lista principal.
|
||||
2. Exibe o menu.
|
||||
3. Recebe a opção do usuário.
|
||||
4. Executa a operação escolhida.
|
||||
5. Retorna ao menu.
|
||||
6. Encerra quando o usuário selecionar a opção 0.
|
||||
|
||||
---
|
||||
|
||||
# Conceitos Aplicados
|
||||
|
||||
* Ponteiros
|
||||
* Alocação dinâmica
|
||||
* Listas simplesmente encadeadas
|
||||
* Listas duplamente encadeadas
|
||||
* Recursão
|
||||
* Manipulação de memória
|
||||
* Ordenação alfabética
|
||||
* Estruturas de dados dinâmicas
|
||||
|
||||
Lista Principal
|
||||
|
||||
[A] <-> [M] <-> [S]
|
||||
|
||||
[A]
|
||||
|
|
||||
v
|
||||
Abacaxi -> Amor -> Avião
|
||||
|
||||
[M]
|
||||
|
|
||||
v
|
||||
Mesa -> Morango
|
||||
|
||||
[S]
|
||||
|
|
||||
v
|
||||
Sapato -> Sol
|
||||
Reference in New Issue
Block a user