Desafio Engenharia

O desafio proposto foi o desenvolvimento de uma pilha de floats nas seguintes linguagens: Python 3+, Node.js (JavaScript) ou ANSI C. A linguaguem escolhida foi Python na versão 3.9.5 por uma questão de maior famialiridade. Pilhas são estruturas de dados, do tipo LIFO(last in first out), onde o último elemento a ser inserido é o primeiro a ser removido, permitindo acesso somente ao último item de dados.

Ao iniciar a programação optei por utilizar classe, porque proporcionam uma forma de organizar dados e funcionalidades juntos, e listas, porque irei manipular o topo da estrutura (o final da lista). Nas funções não utilizei as funções prontas do python para poder mostrar o conceito de cada uma e a minha linha de raciocínio.

Tabela de conteúdos

Modelo de uma Estrutura de dados do tipo Pilha.

Estrutura de Dados do tipo pilha é usada para armazenamento de dados com um tipo de estrutura onde os dados ficam empilhados de modo no qual podemos somente acrescentar ou retirar informações do topo dessa pilha.

Funções Utilizadas

Algumas operações básica de estrutura de dados de pilha, seriam:

Instanciação

A operação de instanciação (“invocar” um objeto classe) cria um objeto vazio. Quando define um método init(), o processo de instanciação automaticamente invoca __init() sobre a instância recém criada.

Empilhar

Empilhamento nessa estrutura de dados é adicionar um dado ao topo da pilha, ou seja, dessa forma você adiciona dados em forma sequênciais sem afetar o restante da pilha. Não é possível empilhar ou adicionar dados ao meio ou inicio da pilha, essa ação só pode ser feita no topo.

image

Desempilhar

O desempilhar nessa estrutura de dados é a retirada do dado do topo da pilha, com isso você retira o último dado da estrutura sem afetar o restante da pilha. Não é possível retirar dados que não sejam do topo.

image

Topo

Mostrar o Topo da estrutra de dados, ou seja, nessa função tem como objetivo ver o último valor/dado que foi empilhado, assim como ver o próximo a ser desempilhado/retirado.

image

Menor Valor

Nessa casso, com valores float, tem como função ver o dado de menor valor Float da pilha de dado.

image

Visualizar a Pilha

Visualiza todo os valores correspondentes as suas posições na pilha de dados. Ou seja, nele podemos ter o panorâma geral da estrura da pilha e seus respectivos valores.

image

Como Usar

Para uma melhor interação com o usuário, foi utilizado uma função Main. Com isso o usuário teria opções em número para escolher quais procedimentos iria querer realizar com a pilha de FLOAT.

Função Main Interagindo com o Usuário:

image

Com isso dentro das opções escolhidas você irá realizar uma tarefa na pilha, caso escolha a função empilhar, logo após você entrará com o número FLOAT desejado para o armazenamento do dado na PILHA.

Exemplo 1:

image

Instalação

Pré Requisitos

Antes de começar, você vai precisar ter instalado em sua máquina a seguinte ferramenta: Python. Além disto é bom ter um ambiente integrado de desenvolvimento e à aprendizagem do Python para trabalhar com o código como IDLE.

Local Files

Apesar do Python ser um dos componentes padrões de vários sistemas operacionais, como do Linux, AmigaOS 4, FreeBSD, NetBSD, OpenBSD e OS X, é preciso ter a ferramenta e pode ser encontrada no site oficial.

Python(Windows/MacOS/Linux/Outras Plataformas).

  • Alguns terminais onde pode-se ter um ambiente integrado para programar/desenvolver linguaguem Python no Windows.

IDLE (Windows/MacOS/Linux/Outras Plataformas).

Pycharm (Windows/MacOS/Linux)

Testes

Alguns teste foram feitos para por em prova o empilhamento de dados do tipo Float e possíveis entradas do usuários. Nessa entradas foram levada em contas, entradas corretas, ou seja do tipo FLOAT e entradas do quais o empilhamento não deve ser feito, como entradas de valores inteiros, de string, de dados vazios, entre outros tipo de entradas.

image

image

Conclusão

No Desafio Engenharia prospoto, nossa estruturação de dados, armazenava elementos com valor FLOAT, com isso criamos pilhas com esses valores.

Alguns erros foram sanados durante o processo, caso o usuário entrasse com valores diferentes de FLOAT como por exemplo:

  • Usuário entrar com valores Inteiros(int)
  • Usuário entrar com Strings (str)
  • Usuário entrar com Listas Vazias ([])
  • Usuário entrar com valores nulos ('')
  • Usuário entrar com String de Floats

Esses erros foram contornados com condicionais e Tratamento de Erro e Exceções.. Com isso ffoi chegada a estruturação de dados do tipo PILHA, com entrada em valores FLOAT.

De modo geral pilhas são usualmente utilizadas por muitos programadores para estruturação de dados. Dessa forma alguns exemplos de sistema onde usa essa estrura são:

  • Funções recursivas em compiladores;
  • Mecanismo de desfazer/refazer dos editores de texto;
  • Navegação entre páginas Web;