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 = (7×2 + 5×3) / 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. }