Olá, estudante! Chegou o momento de explorar de forma PRÁTICA os conteúdos aprendidos na nossa disciplina. Vamos lá? Inicie realizando a leitura do seguinte texto:
Para testar sua implementação, você pode criar um pequeno programa C que usa sua pilha para realizar essa tarefa. Por exemplo, você pode criar um programa que lê uma palavra do usuário e, em seguida, usa uma pilha para inverter a ordem das letras na palavra e imprimir a palavra resultante. Para isso iniciou o seguinte código C que usa uma pilha para inverter a ordem das letras em uma palavra:
#include <stdio.h>
#include <string.h>
#define MAX_SIZE 100
struct Pilha {
char itens[MAX_SIZE];
int topo;
};
void inicializar(struct Pilha *p) {
p->topo = -1;
}
int vazia(struct Pilha *p) {
return p->topo == -1;
}
void push(struct Pilha *p, char item) {
…
}
char pop(struct Pilha *p) {
…
}
char topo(struct Pilha *p) {
…
}
void limpar(struct Pilha *p) {
…
}
int main() {
struct Pilha p;
inicializar(&p);
while (1) {
printf(“\nDigite 1 para adicionar uma palavra à pilha\n”);
printf(“Digite 2 para desempilhar a palavra\n”);
printf(“Digite 3 para limpar a pilha\n”);
printf(“Digite 4 para exibir o topo da pilha\n”);
printf(“Digite 0 para sair\n”);
int opcao;
printf(“\nEscolha uma opção: “);
scanf(“%d”, &opcao);
switch (opcao) {
case 1: {
char palavra[MAX_SIZE];
printf(“\nDigite a palavra a ser adicionada: “);
scanf(“%s”, palavra);
for (int i = 0; i < strlen(palavra); i++) {
push(&p, palavra[i]);
}
printf(“\nPalavra ‘%s’ adicionada à pilha.\n”, palavra);
break;
}
case 2: {
char palavra[MAX_SIZE];
int indice = 0;
while (!vazia(&p)) {
palavra[indice++] = pop(&p);
}
palavra[indice] = ‘\0’;
if (indice>0) {
printf(“\nPalavra desempilhada: ‘%s’\n”, palavra);
} else {
printf(“\nPilha vazia. Nenhum elemento para mostrar.\n”);
}
break;
}
case 3: {
limpar(&p);
printf(“\nPilha limpa.\n”);
break;
}
case 4: {
char top = topo(&p);
if (top == ‘\0’) {
printf(“\nPilha vazia. Nenhum elemento para mostrar.\n”);
} else {
printf(“\nElemento no topo da pilha: %c\n”, top);
}
break;
}
case 0: {
return 0;
}
default: {
printf(“\nOpção inválida. Digite 1, 2, 3, 4 ou 0.\n”);
}
}
}
return 0;
}
Neste código, a classe Pilha é definida com os mesmos métodos básicos da primeira implementação. A função inverte palavra recebe uma palavra e usa uma pilha para inverter a ordem das letras na palavra. Para cada letra na palavra, ela é adicionada à pilha. Em seguida, as letras são removidas da pilha uma a uma e adicionadas à palavra resultante.
Para esta atividade MAPA, complete o código com as funcionalidades para empilhar (push), desempilhar (pop), limpar a pilha (limpar) e exibir o topo da pilha (topo).
AVISOS IMPORTANTES!
– A atividade deve ser realizada utilizando linguagem C; outras linguagens de programação, como JAVA, PHP, entre outras, não serão aceitas.
– Também não serão aceitos arquivos executáveis.
– Envie o código-fonte da atividade em .C.
IMPORTANTE:
- Acesse o link do vídeo que o professor da disciplina gravou com orientações para ajudá-lo nesse processo de criação e desenvolvimento. O acesso deverá ser realizado em: FÓRUM INTERATIVO >> FÓRUM INTERATIVO – LINKS DAS AULAS AO VIVO.
- Responda à atividade seguindo como roteiro os tópicos elencados anteriormente.
- Após o envio não são permitas alterações, ou modificações. Logo, você tem apenas uma chance de enviar o arquivo corretamente. Revise bem antes de enviar!
- Não são permitidas correções parciais no decorrer do módulo, ou seja, o famoso: “professor, veja se minha atividade está certa?”. Isso invalida seu processo avaliativo. Lembre-se que a interpretação da atividade também faz parte da avaliação.
- Procure sanar suas dúvidas junto à mediação em tempo hábil sobre o conteúdo exigido na atividade, de modo que consiga realizar sua participação.
- Atenção ao prazo de entrega, evite envio de atividade em cima do prazo. Você pode ter algum problema com internet, computador, software etc., e os prazos não serão flexibilizados, mesmo em caso de comprovação.
Bons estudos!
Em caso de dúvidas, encaminhar mensagem ao seu Professor Mediador.