Escolar Documentos
Profissional Documentos
Cultura Documentos
return 0;
}
Problema “Nota Final”
Desenho do algoritmo
int main() {
Protótipo da função: indica o tipo do
int numAluno, notaFinal, aprovado; valor que devolve e o tipo dos
float t1, t2, tp1, tp2; parâmetros que recebe.
void lerNotasAluno(int * n, float * t1, float * t2, float * t3, float * t4) {
...
}
Implementação da função
Problema “Nota Final”
Implementação de funções – “lerNotasAluno” (2)
void lerNotasAluno(int * n, float * t1, float * t2, float * t3, float * t4) {
printf("Numero de aluno: ");
scanf("%d", n); Apontadores
printf("Notas dos testes (dois valores reais): ");
scanf("%f%f", t1, t2);
printf("Notas dos trabalhos (dois valores reais: ");
scanf("%f%f", t3, t4);
} Parâmetros por referência: São valores que
podem ser alterados dentro da função.
Apontadores
N - é uma variável que guarda o endereço de memória onde vai
armazenar um inteiro
t1, t2, t3 e t4 - são variáveis que guardam o endereço de memória
onde vai armazenar reais
Problema “Nota Final”
Desenho do algoritmo – Identificação de funções (2)
int main(){
...
return 0;
}
Problema “Nota Final”
Implementação de funções – “calculaNota”
...
#define PERT1 0.15 Novas constantes
#define PERT2 0.45
#define PERTP1 0.25
#define PERTP2 0.15 Protótipo da função: indica o tipo do
#define APROVADO 10 valor que devolve e o tipo dos
#define CENTENAS 100 parâmetros que recebe.
#define ARREDONDA 45
int main(){
... Implementação da função
notaFinal = calculaNota(t1,t2,tp1,tp2);
...
}
int calculaNota(float t1, float t2, float tp1, float tp2){
float nota = t1*PERT1 + t2*PERT2 + tp1*PERTP1 + tp2*PERTP2;
int resto = (int)((nota - (int) nota) * CENTENAS);
if (resto <= ARREDONDA)
return (int) nota;
return (int) (nota+1);
}
Problema “Nota Final”
Implementação de funções – “eAprovado”
...
#define PERT1 0.15
#define PERT2 0.45
#define PERTP1 0.25 Protótipo da função: indica o tipo do
#define PERTP2 0.15 valor que devolve e o tipo dos
#define APROVADO 10
#define CENTENAS 100
parâmetros que recebe.
#define ARREDONDA 45
...
/* indica se a nota é aprovada */
int eAprovado(int nota);
int main(){
...
aprovado = eAprovado(notaFinal);
... Implementação da função
}
...
int eAprovado(int nota){
if (nota >= APROVADO)
return 1;
return 0;
}