Ir ao conteúdo
  • Cadastre-se

(exercício) tirar média e verificar qual é maior


Posts recomendados

Bom dia Galera de TI! :)

 

Estou começando a aprender pascal e estou com algumas dúvidas.

Eu escrevi um código ao qual as funções básicas dele é:

• Fazer a leitura de 3 notas de provas.

• Verificar se a media das duas primeiras é maior que 7 ou se a terceira é maior que 7.

• Verificar qual foi a maior e menor nota.

• Retornar se foi aprovado ou reprovado de acordo com a nota.

 

O meu problema está sendo fazer um loop para encontrar a maior e menor nota.

Será que alguém pode me ajudar?

 

program Teste;

var
	{ INICIO: DIZER MEU TIPO DE VARIAVÉL }
	NotaMaior, NotaMenor : real;
	nota1, nota2, nota3, media : real;
	i : integer;
	{ FIM: DIZER MEU TIPO DE VARIAVÉL }

begin
	{ INICIO: EXECUÇÃO DO MEU SCRIPT }

	{ INICIO: INFORMAÇÃO INICIAL DO SCRIPT }
	writeln('Olá. Como vai?');
	writeln;
	writeln('Este programa ira tirar sua media anual. Você ira inserir suas 3 notas');
	writeln('do primeiro semestre, e depois as 3 do segundo semestre.');
	writeln;
	writeln('Vamos começar?');
	writeln;
	{ FIM: INFORMAÇÃO INICIAL DO SCRIPT }

	{ INICIO: PEGAR VALOR DAS NOTAS }
	writeln('Insira por favor a nota da P1 do primeiro semestre:');
	readln(nota1);
	writeln('Insira por favor a nota da P2 do primeiro semestre:');
	readln(nota2);
	writeln('Insira por favor a nota da P3 do primeiro semestre: (Caso não tenha feiro digite 0.)');
	readln(nota3);
	{ FIM: PEGAR VALOR DAS NOTAS }

	{ INICIO: CALCULO DE MÉDIAS }
	media := (nota1*0.25 + nota2*10/6) / 2;
	NotaMaior := 0;
	NotaMenor := 1;
	for i:= 1 to 3 do
		Begin;
		read(nota);
		if nota[i] > NotaMaior then
			NotaMaior := nota[i];
		if nota[i] < NotaMenor then
			NotaMenor := nota[i]
		End;
				
	
	{ FIM: CALCULO DE MÉDIAS }

	{ INICIO: RESULTADO }
	if (media >= 7.0) or nota3sem1 >= 7.0 then
		Begin;
		writeln(' _____       ___   _____        ___   _____   _____   __   _   _____  ');
		writeln(' |  _  \     /   | |  _  \      /   | |  _  \ | ____| |  \ | | /  ___/');
		writeln(' | |_| |    / /| | | |_| |     / /| | | |_| | | |__   |   \| | | |___  ');
		writeln(' |  ___/   / / | | |  _  /    / / | | |  _  { |  __|  | |\   | \___  \ ');
		writeln(' | |      / /  | | | | \ \   / /  | | | |_| | | |___  | | \  |  ___| | ');
		writeln(' |_|     /_/   |_| |_|  \_\ /_/   |_| |_____/ |_____| |_|  \_| /_____/ ');
		writeln('Sua maior nota foi ', NotaMaior);
		writeln('Sua menor nota foi ', NotaMenor);
		End
	else
		Begin;
		writeln(' _     _       ___        _____   _____   _____   _   _   _____       ___   _____   ');
		writeln('| |   / /     /   |      | ____| /  ___/ |_   _| | | | | |  _  \     /   | |  _  \  ');
		writeln('| |  / /     / /| |      | |__   | |___    | |   | | | | | | | |    / /| | | |_| |  ');
		writeln('| | / /     / / | |      |  __|  \___  \   | |   | | | | | | | |   / / | | |  _  /  ');
		writeln('| |/ /     / /  | |      | |___   ___| |   | |   | |_| | | |_| |  / /  | | | | \ \  ');
		writeln('|___/     /_/   |_|      |_____| /_____/   |_|   \_____/ |_____/ /_/   |_| |_|  \_\ ');
		End;
	{ FIM: RESULTADO }

	end .

 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Olá

1) Cálculo das médias

 

Em 10/03/2016 às 09:31, Eric Pulquerio disse:

• Verificar se a media das duas primeiras é maior que 7 ou se a terceira é maior que 7.

Esse "a média" também precisa ser verificada...

media := (nota1*0.25 + nota2*10/6) / 2;

Daria para nos explicar como foi feito essa fórmula? (acho que tem alguma coisa errada nessa conta)

 

2) Maior e Menor nota

Basicamente você terá que usar as notas que já tem!.. e como você está utilizando variáveis comuns (sem se array), não faz sentido utilizar laços de repetições.

 

O laço de repetição nesse caso serviria para auxiliar a percorrer um suposto array de notas. Ou você faz if a if para cada nota, ou converte a nota para array.

 

Obs.: Se for se basear pela a organização do código, como nos comentários, o trecho da média está misturado com o trecho das "verificações do maior e menor", ou seja, ou você ajusta o comentário, ou separa as coisas.

 

***

 

MINHA SUGESTÃO

Acredito que fazer a média e maior e menor juntos não seja uma boa ideia no momento. Retire a parte do maior e menor, e tente finalizar utilizando apenas média (por si só, tem detalhes que precisam ser revistos). Após, insira a parte do maior e menor... (juntamente com as possíveis modificações que ela pode exigir).

Link para o comentário
Compartilhar em outros sites

  • 6 meses depois...

Seria  mais fácil você tirar a média das três notas e se for maior que 7 aprovado e menor que 7 reprovado 

Utilizando as condições if

 

program teste
var  
n1,n2,n3: real; 
m: real;
begin 
writeln('digite a primeira nota');
readln(n1); 
writeln('digite a segunda nota');
readln(n2);
writeln('digite a terceira nota');
readln(n3);
m:= (n1+n2)/2;
if (m >7 ) then 
writeln( 'maior nota e aluno aprovado');
else
writeln(menor nota aluno reprovado'); 
end.

 

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

@FAWAUGHAN, acho que é por ai. Mas tem outros requisitos:

 

Em 10/03/2016 às 09:31, Eric Pulquerio disse:

Fazer a leitura de 3 notas de provas.

• Verificar se a media das duas primeiras é maior que 7 ou se a terceira é maior que 7.

• Verificar qual foi a maior e menor nota.

• Retornar se foi aprovado ou reprovado de acordo com a nota.

 

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...