Files
dicionario/explicação.md
T
2026-06-16 18:59:09 -03:00

4.7 KiB

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