Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

UNIVERSIDADE ANHANGUERA
Kaio Lucas Farinelli de resende
IMPLEMENTAÇÃO E OPERAÇÕES
SUMÁRIO 1 ATIVIDADE PROPOSTA............................................................................3 1.1 Conceitos para implementação da atividade..........................................3 2 CÓDIGO COMPLETO.................................................................................4 3 EXECUTANDO O CODIGO........................................................................7 REFERÊNCIAS..................................................................................................9
EXPLICAÇÃO VISUAL DA PILHA DINÂMICA
A pilha dinâmica cresce e diminui conforme a necessidade do sistema usando a memória Heap por meio da função malloc. Cada nó armazena uma operação e aponta para o elemento anterior na hierarquia da memória. [1, 2, 3]
Operação Push (Inserção no Topo)
Quando o usuário digita uma nova operação (ex: SOMA), um novo nó é alocado dinamicamente. Esse nó passa a apontar para o antigo topo, e o ponteiro Topo é atualizado para o endereço desse novo nó. [1, 2]
Operação Pop (Remoção do Topo / Desfazer)
Quando o usuário escolhe "Desfazer", o elemento apontado por Topo é isolado através de um ponteiro auxiliar, o Topo passa a apontar para o elemento de baixo (proximo), e a memória do nó removido é liberada com a função free(). 
 CODIFICAÇÃO COMPLETA EM C
Este algoritmo foi desenvolvido para simular o histórico de operações de uma calculadora científica, atendendo aos critérios de alocação dinâmica e tratamento de erros.
PRINTS DE EXECUÇÃO (GDBONLINE)
Abaixo está a representação exata da saída do console obtida ao compilar e rodar o código acima na ferramenta GDBOnline:
AVALIANDO OS RESULTADOS (RESPOSTA À QUESTÃO TEÓRICA)
Pergunta do Roteiro: Por que é importante dominar estruturas de dados como pilhas e compreender o tratamento adequado de erros ao desenvolver funcionalidades de histórico e desfazer operações em sistemas computacionais?
Resposta:
Dominar o conceito de pilhas dinâmicas é vital para construir softwares eficientes porque o padrão LIFO espelha exatamente a lógica cronológica inversa necessária para reverter estados de um sistema. Ao utilizar alocação dinâmica, o desenvolvedor garante otimização no uso da memória RAM, alocando recursos de forma elástica apenas quando novos passos no histórico são computados
Tratamento de Underflow (Pilha Vazia): Evita que a aplicação tente ler ou remover ponteiros nulos (NULL), o que resultaria em travamentos do software por Segmentation Fault. [1]
Tratamento de Falha de Alocação (malloc == NULL): Garante a resiliência do sistema em cenários de falta de memória real do hardware, impedindo corrupção de dados ou comportamento imprevisível
image2.png
image3.png
image4.png
image5.png
image6.png
image7.png
image8.png
image1.png

Mais conteúdos dessa disciplina