Ir ao conteúdo
  • Cadastre-se

Problema de iniciante com Código VisualG


Posts recomendados

Bom, comecei a usar o VisualG ontem, portanto sou novo em programação. Meu objetivo nesse código é que o aluno pudesse informar 2 ou mais notas e fazer a média, porém ele deve ter a opção de querer calcular a média com apenas 2 notas ou com mais, porém quando eu executo o código, mesmo que quando pergunte se eu quero fazer com apenas 2 notas e eu escreva n(não) ele continua me dando a média, alguém poderia me explicar como arrumar? Agradeço pela colaboração.

Algoritmo "media"
Var
// Seção de Declarações das variáveis 
nota1, nota2, nota3, nota4, nota5, nota6, nota7, nota8, nota9, nota10, media:real
aluno:caracter
opcao: logico
Inicio
// Seção de Comandos, procedimento, funções, operadores, etc... 
escreval("Favor informar o nome do aluno:")
leia(aluno)
escreval("Bom dia ",aluno,", informe a primeira nota:")
leia(nota1)
escreval("Informe a segunda nota:")
leia(nota2)
escreval("Você gostaria de calcular a média apenas dessas notas?(s/n)")
leia(opcao)
se opcao -> "s" então
media <- (nota1 + nota2)/2
      se media >= 7 então
      escreval("O aluno ",aluno," teve média ",media," e portanto foi aprovado.")
      senao
      escreval("O aluno ",aluno," teve média ",media," e portanto foi reprovado.")
      fimse
senao
escreval("Informe a terceira nota:")
leia(nota3)
escreval("Você gostaria de calcular a média apenas dessas notas?(s/n)")
leia(opcao)
           se opcao -> "s" então
           media <- (nota1 + nota2 + nota3)/3
      se media >= 7 então
      escreval("O aluno ",aluno," teve média ",media," e portanto foi aprovado.")
      senao
      escreval("O aluno ",aluno," teve média ",media," e portanto foi reprovado.")
      fimse

fimse
Fimalgoritmo

 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Olá @Paulo Rubens de M. Leme Jr. Seja bem vindo ao Fórum do Clube do Hardware.

 

1) INDENTAÇÃO DE CÓDIGO

Um dos pontos que considero mais importante é que o código sempre deve está bem indentando, pois no mínimo facilita para identificar a estrutura do código... mais aqui.

 

Abaixo seu código reindentado:

Algoritmo "media"
Var
   // Seção de Declarações das variáveis
   nota1, nota2, nota3, nota4, nota5, nota6, nota7, nota8, nota9, nota10, media:real
   aluno:caracter
   opcao: logico
Inicio
// Seção de Comandos, procedimento, funções, operadores, etc...
escreval("Favor informar o nome do aluno:")
leia(aluno)
escreval("Bom dia ",aluno,", informe a primeira nota:")
leia(nota1)
escreval("Informe a segunda nota:")
leia(nota2)
escreval("Você gostaria de calcular a média apenas dessas notas?(s/n)")
leia(opcao)
se opcao -> "s" então
   media <- (nota1 + nota2)/2
   se media >= 7 então
      escreval("O aluno ",aluno," teve média ",media," e portanto foi aprovado.")
   senao
      escreval("O aluno ",aluno," teve média ",media," e portanto foi reprovado.")
   fimse
senao
   escreval("Informe a terceira nota:")
   leia(nota3)
   escreval("Você gostaria de calcular a média apenas dessas notas?(s/n)")
   leia(opcao)
   se opcao -> "s" então
      media <- (nota1 + nota2 + nota3)/3
      se media >= 7 então
         escreval("O aluno ",aluno," teve média ",media," e portanto foi aprovado.")
      senao
         escreval("O aluno ",aluno," teve média ",media," e portanto foi reprovado.")
      fimse
   fimse
Fimalgoritmo

Então, só analisando visualmente percebemos que está faltando um fimSe, no caso para o primeiro "se..senao" (antes do fimAlgoritmo). Veja, não estou analisando a sua intenção, ou seja, apenas a estrutura da sintaxe.

 

 

 

2) SINTAXE DO VISUALG

Nos se você está utlizando "->", mas esse não é um operador relacional válido... se quer um "igual", seria "=" mesmo.

 

 

 

3) TIPO DE DADOS

Você está usando o tipo logico (é um tipo especial que só aceita VERDADEIRO ou FALSO) para a variável opcao, mas está solicitando ao usuário que ele insira uma letra ("s" ou "n"), ou seja, opcao deveria ser do tipo caractere. Execute o seu código antes de corrigir e veja como a variável opcao fica como FALSO quando digitar alguns valores... obs.: fiz uns testes aqui, e ele fica VERDADEIRO quando digita algo começado com "v", como "verde"... rs. Mas eu estou entendendo isso como um bug!!!!

 

RESUMINDO: opcao :caractere

 

obs.: você está usando caracter, falta um "e" no final (não sei dizer se é mesma coisa, mas use o que é recomendado)

 

 

 

***

 

No aguardo

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...