Stack Overflow em Português Asked by Thiago de Barros on March 12, 2021
Boa noite pessoal.
Sou novo em programação e estou fazendo os cursos do Guanabara.
Empaquei nesse exercício:
var
contador: inteiro
resposta: vetor[1..5] de caractere
aluno: vetor [1..3] de caractere
respostaAluno: vetor [1..5] de caractere
notaFinal: vetor[1..3] de inteiro
nome: inteiro
somaNotas: inteiro
media: real
procedimento cadastrarGabarito()
inicio
para contador <- 1 ate 5 faca
escreva("Resposta da Questão", contador, ": ")
leia(resposta[contador])
fimPara
fimProcedimento
funcao mediaTurma(): real
inicio
para contador <- 1 ate 3 faca
escrevaL(aluno[contador], ":", notaFinal[contador])
fimPara
media <- somaNotas / 3
escrevaL ("Média da Turma: ", media)
fimFuncao
inicio
escrevaL("Passo 1 - Cadastro de Gabarito")
escrevaL("------------------------------")
cadastrarGabarito()
limpaTela
para nome <- 1 ate 3 faca
escrevaL("Passo 2 - Gabarito dos Alunos(as)")
escrevaL("---------------------------------")
escreva("Nome do Aluno: ")
leia(aluno[nome])
escrevaL("RESPOSTAS DO ALUNO")
para contador <- 1 ate 5 faca
escreva("Resposta da Questão", contador, ": ")
leia(respostaAluno[contador])
se (respostaAluno[contador] = resposta[contador]) entao
notaFinal[nome] <- notaFinal[nome] + 2
fimSe
fimPara
somaNotas <- somaNotas + notaFinal[nome]
limpaTela
fimPara
limpaTela
escrevaL("Passo 3 - Notas Finais")
escrevaL("----------------------")
mediaTurma()
escrevaL("----------------------")
fimalgoritmo
Consigo resolver o programa se eu escrever a função diretamente dentro do programa, sem usar o mediaTurma() para chama-la, mas, a intenção era ter uma função funcionando.
Quando tento fazer desse jeito, o Visualg me diz que a variável mediaTurma() não existe.
Eu olho o programa e não consigo enxergar o problema…
Por favor, me ajudem.
Esse é o código funcionando e levando em conta a acumulação das notas dentro da função, para depois usar o retorno no cálculo da média.
var
contadorGabarito: inteiro
gabarito: vetor[1..5] de caractere
aluno: vetor[1..3] de caractere
resposta: vetor[1..5] de caractere
notaAluno: vetor[1..3] de real
notaTurma: real
notaFinal: real
contadorNotas: inteiro
media: real
procedimento cadastrarGabarito
inicio
para contadorGabarito <- 1 ate 5 faca
escreva("Resposta da Questão", contadorGabarito, ": ")
leia(gabarito[contadorGabarito])
fimPara
// Lembre-se: O vetor gabarito PRECISA ter a variável [contadorGabarito]
// para cadastrar o número de respostas necessárias e saber em qual
// posição vai cada resposta.
fimProcedimento
funcao notasAlunos(): real
var
contadorAlunos: inteiro
contadorRespostas: inteiro
inicio
notaFinal <- 0
para contadorAlunos <- 1 ate 3 faca
escrevaL("------------------------------")
escrevaL("Passo 2 - Respostas dos Alunos")
escrevaL("------------------------------")
escreva("Nome do Aluno: ")
leia(aluno[contadorAlunos])
para contadorRespostas <- 1 ate 5 faca
escreva("Resposta da Questão", contadorRespostas, ": ")
leia(resposta[contadorRespostas])
se (resposta[contadorRespostas] = gabarito[contadorRespostas]) entao
notaTurma <- notaTurma + 2
notaAluno[contadorAlunos] <- notaAluno[contadorAlunos] + 2
fimSe // As duas últimas linhas antes do fimSe atribuem uma nota
// para a turma, que será usada para calcular a média da turma e
// uma nota para o aluno, usando o [contadorAlunos] para atribuir
// a nota ao nome do aluno através de um vetor.
retorne notaTurma
fimPara
limpaTela
fimPara // Esse é o para do contador de alunos, ele repete toda a sessão
// para que as respostas do alunos sejam inseridas nos vetores e as notas
// calculadas.
fimFuncao
inicio
escrevaL("------------------------------")
escrevaL("Passo 1 - Cadastro do Gabarito")
escrevaL("------------------------------")
cadastrarGabarito()
limpaTela
notaFinal <- notasAlunos()
escrevaL("------------------------------")
escrevaL("Passo 3 - Atribuição das Notas")
escrevaL("------------------------------")
para contadorNotas <- 1 ate 3 faca
escrevaL("Nota final de ", aluno[contadorNotas], ": ", notaAluno[contadorNotas])
media <- notaFinal / 3
fimPara
escrevaL("------------------------------")
escreva("Média da Turma: ", media:4:1)
escrevaL("------------------------------")
fimalgoritmo
Answered by Thiago de Barros on March 12, 2021
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP