sábado, 25 de maio de 2019

URI Online Judge | 1005 - Média 1( Resolução Em Linguagem C )

Para a resolução deste problema serão usadas duas ferramentas:

VisualG, você pode baixar-lo clicando aqui. Ou saber mais clicando aqui.

Dev-C++, você pode baixa-lo clicando aqui. Ou saber mais clicando aqui.


Problema:

URI Online Judge | 1005
Média 1



Leia 2 valores de ponto flutuante de dupla precisão A e B, que correspondem a 2 notas de um aluno. A seguir, calcule a média do aluno, sabendo que a nota A tem peso 3.5 e a nota B tem peso 7.5 (A soma dos pesos portanto é 11). Assuma que cada nota pode ir de 0 até 10.0, sempre com uma casa decimal.


Entrada

O arquivo de entrada contém 2 valores com uma casa decimal cada um.

Saída

Calcule e imprima a variável MEDIA conforme exemplo abaixo, com 5 dígitos após o ponto decimal e com um espaço em branco antes e depois da igualdade. Utilize variáveis de dupla precisão (double) e como todos os problemas, não esqueça de imprimir o fim de linha após o resultado, caso contrário, você receberá "Presentation Error".



Exemplos de Entrada
Exemplos de Saída
5.0
7.1
MEDIA = 6.43182
0.0
7.1
MEDIA = 4.84091
10.0
10.0
MEDIA = 10.00000

Resolução:

No problema é pedido para que sejam digitados dois números, A e B e seja calculada a média entre eles, com o detalhe de que as notas possuem pesos diferentes. A tem peso 3.5 e B tem peso 7.5, e isto acaba confundindo pois por possuir pesos diferentes em cada nota, não usaremos o calculo da média aritmética simples, e sim uma média aritmética ponderada.
A formula da média aritmética ponderada é: 

 
Mp = X1.P1 + X2.P2 + X3.P3...

P1 + P2 + P3...
Onde:
Mp = Média ponderada.
X1 = Número 1.
P1 = peso 1.
X2 = Número 2.
P2 = peso 2.
X3 = Número 3.
P3 = peso 3.
E assim por diante.
Neste vídeo você pode entender melhor sobre média aritmética ponderada:
 Não tenho nenhum vinculo com o autor do vídeo, mas ele explica de uma forma clara e fácil de entender.
Depois de efetuar o calculo é só armazenar o resultado na variável MEDIA e exibir o resultado conforme pedido no problema.

Algoritmo no VisualG.

Descrição linha a linha:
Linhas  com // seguidas de texto: Comentários a cerca do algoritmo.
Linha 5: Início da declaração da variáveis.
Linha 7: Declaração das variáveis. A,B e MEDIA são os nomes das variáveis, e são do tipo real.
Linha 9: Inicio da execução do programa.
Linhas 11 e 12: Comando Leia. Entrada dos valores das variáveis A e B.
Linha 13: Calculo. É calculada a Média aritmética ponderada, e o resultado é atribuído à variável MEDIA.
Linha 14: Comando escreval. Mostra na tela tudo oque está entre " ", no caso MEDIA =, o valor da variável MEDIA, e 1:5 especifica que no mínimo será usada uma casa antes da virgula, e as casas decimais serão limitadas a 5.
Linha 16: Fim do algoritmo.

Resolução em C:




Descrição linha a linha:

Linhas  com // seguidas de texto: Comentários a cerca do programa.
Linha 5: É carregada a biblioteca stdio.h responsável pelas funções básicas de entrada e saída em C.
Linha 7: Início da função main. A partir daqui se inicia a execução do programa.
Linha 8: Entrada das variáveis. A,B e MEDIA são as variáveis e são do tipo double.
Linha 9: Comando Leia. São pedidas as entradas dos valores para as variáveis A e B, %lf sinaliza que as variáveis são do tipo double, e & é necessário antes do nome da variável para indicar seu endereço ao programa.
Linha 10: Calculo. É calculada a Média aritmética ponderada, e o resultado é atribuído à variável MEDIA.
Linha 11: Comando Escreva. É mostrada a mensagem MEDIA = na tela seguida do valor da variável MEDIA. %1.5lf\n indica que será usada no minimo uma casa antes do ponto, e as casas decimais serão limitadas a 5. \n pula uma linha após a execução do comando.
Linha 13: Valor de retorno para a função main.
Linha 14: Fim da função main, e da execução do programa.
Obrigado pela visita.

Você pode baixar esta resolução tanto no VisualG quanto em linguagem C clicando aqui.

Um comentário: