Muito obrigado meu camarada, deu uma luz p resolver essa atividade.
A respeito do "empilhar" escrevi conforme sua orientação, faz todo o sentido sua explicação. Declarei uma variável local "nome" para o procedimento "empilhar",
porém, quando eu listava os valores, algumas letras apareciam repetidas (não entendi o por que) tive que voltar da forma antiga, chamando dentro também e usando a variável local. Imagino que seja um erro do VisualG mesmo.
A respeito do "desempilhar" usei um escreval para chamar a função como você disse e deu certo!
Para o "vazia" fiz da mesma forma colocando dentro do escreval. Deu certo também!
Após sua explicação abriu meu entendimento p conseguir finalizar essa atividade, mano, estava embaçado, 3 semanas quebrando a cabeça com isso.
Tive um problema na hora de "desempilhar". Não estava desempilhando o topo, mas mudei
inicio
elemento := pilha[topo-1]
pilha[topo-1] := ""
topo := topo-1
retorne elemento
fimfuncao
Eu estava usando o decremento no início, estava dando erro, reescrevi na terceira linha e deu certo.
Agradeço pela força brother! Salvou nessa atividade. Forte abraço a todos!
Algoritmo "Implementação de Pilha-PABLO"
// Descrição : SA4 - Atividade 1 Implementação de Pilha
// Autor(a) : Pablo
// Data atual : 15/3/2021
Var
// Seção de Declarações das variáveis
pilha:vetor[0..9] de caractere
contNum: inteiro
//Empilhar (adiciona um elemento no topo da pilha);
procedimento empilhar(nome:caractere)
inicio
escreval(" Digite a letra que deseja empilhar:")
leia(nome)
pilha[topo]:= nome
topo:= topo + 1
fimprocedimento
//Desempilhar (remove e retorna um elemento do topo da pilha);
funcao desempilhar(): caractere
var
elemento: caractere
inicio
elemento:= pilha[topo-1]
pilha[topo-1]:= ""
topo:= topo-1
retorne elemento
fimfuncao
//Limpar (remove todos os elementos da pilha);
procedimento limpar()
var
contNum: inteiro
inicio
para contNum de 0 ate 9 faca
pilha[contNum]:= ""
fimpara
topo:= 0
fimprocedimento
//Listar (lista todos os elementos armazenados na pilha);
procedimento listar()
var
contNum: inteiro
inicio
contNum:= contNum + 1
para contNum de 0 ate 9 faca
escreval(pilha[contNum])
escreval(nome)
fimpara
fimprocedimento
//Vazia (retorna verdadeiro se a pilha estiver vazia,
//falso caso contrário).
funcao vazia(): logico
var
contNum: inteiro
resp: logico
inicio
resp:= verdadeiro
para contNum de 0 ate 9 faca
se nao (pilha[contNum]= "") entao
resp:= falso
fimse
fimpara
retorne resp
fimfuncao
topo: inteiro
op: inteiro
nome: caractere
inicio
// Seção de Comandos, procedimento, funções, operadores, etc...
enquanto op <> 6 faca
escreval("")
escreval("-----------*IMPLEMENTAÇÃO DE PILHA*------------")
escreval("")
escreval("°1 Empilhar")
escreval("°2 Desempilhar")
escreval("°3 Limpar")
escreval("°4 Listar")
escreval("°5 Vazia")
escreval("")
escreval(" Digite a opção desejada:")
leia(op)
escolha op
caso 1
limpatela
empilhar("")
caso 2
limpatela
escreval(desempilhar())
caso 3
limpatela
limpar()
caso 4
limpatela
listar()
caso 5
limpatela
escreval(vazia ())
fimescolha
fimenquanto
Fimalgoritmo