Jump to content


Photo

Algortimo Com Problemas (visualg)


  • Faça o login para participar
4 replies to this topic

#1 Renato Barros

Renato Barros

    Novato no fórum

  • Usuários
  • 1 posts
  • Sexo:Não informado

Posted 17/05/2008, 18:06

Pessoal o seguinte, a questão é essa:

2. Calcular a média final (usando a ponderação da UFRN) dadas as notas das 3 provas e
produzir uma saída com a média e a situação do aluno de acordo com o seguinte critério:
média >= 7, aprovado; 5 < média < 7, recuperação; média < 5, reprovado.

Bem eu fiz o algoritmo em portugol e pelo que parece ele não estã errado, sendo que acho que deixei de digitar algum critério que no visualg sempre interpreta um erro na função se "se 5 > soma e soma < 7 entao" ja fiz esse comando de várias maneiras e nada. Vou colar tudo que fiz e por favor que usa o visualg colem algo parecido que rode para ver o que eu errei. Agradeço a todos.


algoritmo "media ufrn"
// Função :
// Autor :
// Data : 17/5/2008
// Seção de Declarações
var
nota1, nota2, nota3 :real
media : real
soma : real
inicio
escreva ("escreva a primeira nota: ")
leia (nota1)
escreva ("escreva a segunda nota: ")
leia (nota2)
escreva ("escreva a terceira nota: ")
leia (nota3)
soma<-(nota1+nota2+nota3)/3
se soma >= 7 entao
escreva ("você está aprovado")
fimse
se soma <=5 entao
escreva ("voce esta reprovado")
fimse
se 5 > soma e soma < 7 entao <---- acho que o problema está aqui.
escreva ("voce esta em recuperação")
fimse
fimalgoritmo

Edição feita por: Renato Barros, 17/05/2008, 18:08.


#2 dgt

dgt

    diego^SCFC

  • Usuários
  • 281 posts
  • Sexo:Masculino
  • Localidade:Recife-PE
  • Interesses:Java, Delphi, PHP, SQL, Modelagem de Dados, CSS, Lógica de Programação (Algoritmos), Teoria em Banco de Dados

Posted 19/05/2008, 01:19

Fazendo da maneira mais correta (questão de perfomance):
Se (soma >= 7) Entao
		 Escreval("Você está aprovado")
	  Senao
		   Se (soma > 5) Entao
			  Escreval("Você está em recuperação")
		   Senao
				Escreval("Você está reprovado")
		   FimSe
	  FimSe

Ou fazendo do seu jeito:
Se (soma >= 7) Entao
		 Escreval("Você está aprovado")
	  FimSe
	  Se (soma > 5) e (soma < 7) Entao
		 Escreval("Você está em recuperação")
	  FimSe
	  Se (soma <= 5) Entao
		 Escreval("Você está reprovado")
	  FimSe

Edição feita por: dgt, 19/05/2008, 01:24.

Posted Image

#3 juwebmt

juwebmt

    Novato no fórum

  • Usuários
  • 1 posts
  • Sexo:Não informado

Posted 06/07/2008, 19:01

Pessoal o seguinte, a questão é essa:

2. Calcular a média final (usando a ponderação da UFRN) dadas as notas das 3 provas e
produzir uma saída com a média e a situação do aluno de acordo com o seguinte critério:
média >= 7, aprovado; 5 < média < 7, recuperação; média < 5, reprovado.

Bem eu fiz o algoritmo em portugol e pelo que parece ele não estã errado, sendo que acho que deixei de digitar algum critério que no visualg sempre interpreta um erro na função se "se 5 > soma e soma < 7 entao" ja fiz esse comando de várias maneiras e nada. Vou colar tudo que fiz e por favor que usa o visualg colem algo parecido que rode para ver o que eu errei. Agradeço a todos.


algoritmo "media ufrn"

// Função :
// Autor :
// Data : 17/5/2008
// Seção de Declarações
var
nota1, nota2, nota3 :real
media : real
soma : real
inicio
escreva ("escreva a primeira nota: ")
leia (nota1)
escreva ("escreva a segunda nota: ")
leia (nota2)
escreva ("escreva a terceira nota: ")
leia (nota3)
soma<-(nota1+nota2+nota3)/3
se soma >= 7 entao
escreva ("você está aprovado")
fimse
se soma <=5 entao
escreva ("voce esta reprovado")
fimse
se 5 > soma e soma < 7 entao <---- acho que o problema está aqui.
escreva ("voce esta em recuperação")
fimse
fimalgoritmo



#4 Paulo_Rocha

Paulo_Rocha

    Novato no fórum

  • Usuários
  • 1 posts
  • Sexo:Não informado

Posted 12/07/2008, 22:51

[codebox]algoritmo "media ufrn"

var
nota1, nota2, nota3 :real
media : real
soma : real
inicio
escreval ( " MEDIA SEMESTRAL")
escreval()
escreva ("escreva a primeira nota: ")
leia (nota1)
enquanto ( nota1 < 0) ou (nota1 > 10)faca
escreval("NOTA INVALIDA DIGITE NOVAMENTE")
escreva ("escreva a primeira nota: ")
leia (nota1)
fimenquanto
escreva ("escreva a segunda nota: ")
leia (nota2)
enquanto ( nota2 < 0) ou (nota2 > 10)faca
escreval("NOTA INVALIDA DIGITE NOVAMENTE")
escreva ("escreva a primeira nota: ")
leia (nota2)
fimenquanto
escreva ("escreva a terceira nota: ")
leia (nota3)
enquanto ( nota3 < 0) ou (nota3 > 10)faca
escreval("NOTA INVALIDA DIGITE NOVAMENTE")
escreva ("escreva a primeira nota: ")
leia (nota3)
fimenquanto
escreval()
soma<-(nota1+nota2+nota3)/3
se (soma >= 7) entao
escreva (" VOCÊ ESTÁ APROVADO")
senao
se (soma >= 5) ou (soma < 7 )entao
escreva (" VOCÊ ESTÁ EM RECUPERAÇÃO")
senao
se (soma <5) entao
escreva (" VOCÊ ESTÁ REPROVADO")
fimse
fimse
fimse
escreval()
escreval()
fimalgoritmo
[/codebox]

Edição feita por: Paulo_Rocha, 12/07/2008, 22:57.


#5 Igor Maldonado

Igor Maldonado

    Novato no fórum

  • Usuários
  • 1 posts
  • Sexo:Não informado

Posted 04/04/2009, 15:53

Existe um erro no algoritmo do paulo, no trecho que ele diz

"se (soma >= 7) entao
escreva (" VOCÊ ESTÁ APROVADO")
senao
se (soma >= 5) ou (soma < 7 )entao
escreva (" VOCÊ ESTÁ EM RECUPERAÇÃO")
senao
se (soma <5) entao
escreva (" VOCÊ ESTÁ REPROVADO")"

mais precisamente em
"se (soma >=5) OU (soma <7 ) entao"

o erro está no "OU", neste caso se a nota for apenas <7,
ele estará sempre em recuperação
tendo em vista que o caso da nota ser <5 nunca irá acontecer,
o correto é utilizar "E", tendo em vista que as duas expressoes logicas devem ser verdadeiras,

e acreditem, se estou corrigindo é porque vim tirar duvidas,
e estava incorreto =|

"Sempre crescer, é sinal de evolução constante."




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq