Ir para conteúdo
Fórum Script Brasil
  • 0

Onde está o erro


jfjofeir

Pergunta

Olá,

Sou aluno do curso técnico em informática 1º modulo e estou tendo dificuldades com estrutura de repetição "enquanto e repita", tanto é que não consigo enxergar onde está o erro no algoritmo. Já tentei por todos os caminhos e té faze-lo da forma mais simples para a seguir colocar o enquanto e depois o repita, tenho de fazer das duas formas. Se alguém puder ajudar eu ficaria grato. Sei que o tempo de vocês se prestam para coisas mais complexas, só que não consigo enxergar o erro.

obrigado pela ajuda. Segue o algoritmo.

algoritmo "40 aulas"
// Função : Em uma faculdade a média para ser aprovado é é 7,0.
// Em uma turma de 40 alunos, para cada aluno será informado o nome, 3 notas e o número de faltas.
// O aluno não pode ter mais que 25% de falta. A turma terá 40 aulas.
// Imprimir para cada aluno o seu nome, a sua média, se ele está aprovado,
// Reprovado por falta ou reprovado por média.
// Data : 23/06/2014
var
contador,nome:inteiro
notafinal,faltas,soma,n1,n2,n3,media:real
inicio
contador<-0
enquanto nome <5 faca
Escreva ("Digite o nome do aluno. ")
Leia (nome)
Escreva ("Digite a 1ª nota do aluno. ")
Leia (n1)
Escreva ("Digite a 2ª nota do aluno. ")
Leia (n2)
Escreva ("Digite a 3ª nota do aluno. ")
Leia (n3)
Escreva ("Digite o número de faltas do aluno. ")
Leia (faltas)
Se (notafinal >= 7)então
media<-(n1+n2+n3)/3
contador<-nome+1
Escreval (nome," aprovado com média ",media:2:2)
senao
Escreval (nome," reprovado por média ",media:2:2)
Fimse
Se (faltas <=10) então
faltas<-faltas
Escreval (nome, " reprovado com" ,faltas," faltas")
Fimse
Escreva ("Digite o nome do aluno. ")
Leia (nome)
Escreva ("Digite a 1ª nota do aluno. ")
Leia (n1)
Escreva ("Digite a 2ª nota do aluno. ")
Leia (n2)
Escreva ("Digite a 3ª nota do aluno. ")
Leia (n3)
Escreva ("Digite o número de faltas do aluno. ")
Leia (faltas)
fimenquanto
fimalgoritmo
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Olá,

Eu reparei os seguintes erros:

1) Se são 40 alunos na turma, você deveria fazer o "enquanto" com o contador (que é utilizado incorretamente em outra parte do algoritmo):

contador<-0
enquanto contador<40 faca
    ... // Restante do código
    contador <- contador + 1
fimenquanto
A parte incorreta é essa (que deve ser removida):
contador<-nome+1
2) Você não precisa repetir a leitura dos dados (nome, notas e faltas) no começo e no final do enquanto, basta apenas no começo no caso do "enquanto". Do jeito que está, ele pedirá os dados do primeiro aluno, mostrará os resultados, e pedirá os dados do segundo e terceiro alunos, mostrando então os dados apenas do terceiro (o segundo, que é lido no final do "enquanto" será ignorado).

3) Você usa uma variável chamada "notafinal" para calcular a aprovação, porém não faz o cálculo para atribuir à mesma (que é o cálculo da média, então a variável "media" nem seria necessária):
Leia (faltas)
    notafinal <- (n1+n2+n3)/3
    Se (notafinal >= 7) então
4) E, por último, essa ordem dos "se"s que determinam a aprovação/reprovação. Eu trabalho em uma escola (na secretaria da escola), então para a minha geração dos boletins, é muito importante essa ordem. No seu algoritmo é tratado independentemente a reprovação por média e falta. Ou seja, o mesmo aluno poderá receber as mensagens de que foi aprovado (pela média) e de que foi reprovado (pelas faltas), ou vice-versa, quando na verdade ele deveria receber apenas a informação de que foi aprovado quando for em ambos os casos (média e faltas). Portanto, essa parte seria:
  Se (faltas <=10) então
        Escreval (nome, " reprovado com " ,faltas," faltas")
  Senao
        Se (notafinal >= 7) então
            Escreval (nome," aprovado com média ",notafinal:2:2)
        Senao
            Escreval (nome," reprovado por média ",notafinal:2:2)
        Fimse
  Fimse
Repare que primeiro olhamos se ele ficou reprovado pelas faltas (pois não importa a média, uma vez que ele já ficou pelas faltas), e caso contrário, olhamos então a média.
Falou?
Abraços!
Editado por Graymalkin
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,2k
×
×
  • Criar Novo...