Aula 10 do curso básico de algoritmo em C
Código 05 - Requisitos
Esse programa é para calcular e exibir a média ponderada de um aluno. Inicialmente o programa lerá o peso da primeira prova e o peso da segunda prova, depois lerá os seguintes dados dos alunos: matrícula, nota da primeira prova e nota da segunda prova.
Esse programa terá uma função que receberá duas notas (real) e seus respectivos pesos (inteiro) como parâmetros.
Essa função deve devolver a média ponderada dos valores. Exemplo:
Notas: 7.0 e 5.0
Pesos: 2 e 3
Média = (7x2 + 5x3) / 5
Obs: 5 é a soma dos pesos, nesse caso, 2 + 3, por isso o 5 no divisor.
Obs: Nesse código, vamos explorar as mensagens no console, usando acentuação, cedilha etc. Para isso é necessário usar os números correspondentes ao caractere que se deseja usar: Ç, ç, É, é, Ê, ê, Í, í etc.
Exemplo de uso nesse código:
printf ("Digite o n\243mero da matr\641cula:\n");
Ou
printf ("Digite o n%cmero da matr%ccula:\n", 163, 177);
//Ambos imprimem na tela a mesma coisa
Para usar o %c usamos os número referente ao caractere desejado na tabela ASCII
Veja a diferença dos números, o uso de um ou de outro depende da opção de uso no printf ( )
\243 != 163 ambos para o ( ‘ú ‘ )
\641 != 177 ambos para o ( ‘í ‘ )
Tabela com alguns caracteres típicos de alguns idiomas e seus respectivos valores em octal
Obs: Para usar na string entre as aspas do printf() com o contra barra antes do número
| Á = \665 |
É = \220 |
Í = \726 |
Ó = \740 |
Ú = \751 |
| á = \240 |
é = \202 |
í = \641 |
ó = \242 |
ú = \243 |
| À = \667 |
È = \724 |
Ì = \736 |
Ò = \743 |
Ù = \753 |
| à = \205 |
è = \212 |
ì = \736 |
ò = \225 |
ù = \227 |
| Â = \666 |
Ê = \722 |
Î = \214 |
Ô = \742 |
Û = \752 |
| â = \203 |
ê = \210 |
î = \727 |
ô = \223 |
û = \226 |
| Ã = \707 |
|
|
Õ = \745 |
|
| ã = \706 |
|
|
õ = \744 |
|
|
|
|
|
|
| Ç = \200 |
ç = \207 |
|
|
|
Alguns dos caracteres da tabela ASCII para usar com o %c no printf ( )
| Á = 181 |
É = 144 |
Í = 214 |
Ó = 224 |
Ú = 233 |
| á = 160 |
é = 130 |
í = 161 |
ó = 162 |
ú = 163 |
| À = 183 |
È = 212 |
Ì = 222 |
Ò = 227 |
Ù = 235 |
| à = 133 |
è = 138 |
ì = 141 |
ò = 149 |
ù = 151 |
| Â = 182 |
Ê = 212 |
Î = 215 |
Ô = 226 |
Û = 234 |
| â = 131 |
ê = 136 |
î = 140 |
ô = 147 |
û = 150 |
| Ã = 199 |
|
|
Õ = 229 |
|
| ã = 198 |
|
|
õ = 228 |
|
|
|
|
|
|
| Ç = 128 |
ç = 135 |
|
|
|
Código 05
#include <stdio.h> /* Instrução de pré-processamento, habilita nosso programa a usar essa biblioteca
de entradas e saídas, possui funções como scanf e printf*/
#include <stdlib.h> /*Instrução de pré-processamento, habilita nosso programa a usar essa biblioteca,
para poder usar o system("PAUSE"); */
//Função que recebe duas notas, dois pesos, calcula a média ponderada e devolve o valor
//calculado
float mediaP (float nota1, float nota2, int peso1, int peso2)
{
float mediaPnd; //Variável que armazenará o cálculo
mediaPnd = (nota1*peso1+nota2*peso2)/(peso1 + peso2); //Onde ocorre o cálculo
return (mediaPnd); //retorna o valor calculado
}
//Função main ( ), por onde o programa inicia a execução
int main (void)
{
int rpeso1, rpeso2, matricula; //Declaração das variáveis inteiras
float rnota1, rnota2, rmedia; //Declaração das variáveis decimais
printf ("Digite o peso da primeira nota:\n"); //Exibe a mensagem para o usuário ...
scanf ("%d", &rpeso1); //Armazena o valor digitado no endereço de rpeso1
printf ("Digite o peso da segunda nota:\n"); //Exibe a mensagem para o usuário ...
scanf ("%d", &rpeso2); //Armazena o valor digitado no endereço de rpeso2
printf ("Digite o n\243mero da matr\641cula:\n"); //Exibe a mensagem para o usuário ...
scanf ("%d", &matricula); //Armazena o valor digitado no endereço de matricula
printf ("Digite a nota da primeira prova:\n"); //Exibe a mensagem para o usuário ...
scanf ("%f", &rnota1); //Armazena o valor digitado no endereço de rnota1
printf ("Digite a nota da segunda prova:\n"); //Exibe a mensagem para o usuário ...
scanf ("%f", &rnota2); //Armazena o valor digitado no endereço de rnota2
rmedia = mediaP (rpeso1, rpeso2, rnota1, rnota2); //chama a função mediap, passando os valores e rmedia recebe o resultado do cálculo
printf ("A m\202dia ponderada do aluno de matr\641cula %d \202:\n %.2f", matricula, rmedia); //Exibe a mensagem com a resposta para o usuário.
system("PAUSE");
return 0; // Finaliza o programa.
}