Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
ALGUEM ME AJUDA A FAZER ESSE EXERCIO (PRECISO DO CODIGO FONTE)
Construa um programa em C constituído por várias funções que servirão de apoio ao controlo de notas dos alunos. Propõe-se a criação de um conjunto de funções para realizar as seguintes tarefas:
a) Escrever uma função para verificar se a nota é válida (notas de 0.00 a 20.00).
b ) Criar um array onde seja possível armazenar os seguintes dados:
a. Nr. do Aluno
b. Nota
Escrever uma função que leia este array. O número máximo de alunos é 50. Este número pode ser alterado no código e não na execução do programa.
c) Refazer a alínea a), agora com o array referido em b ).
d) Escrever uma função calcule a média, o máximo, o mínimo e a diferença entre o máximo e o mínimo das notas dos alunos da cadeira de Programação I do curso de Engenharia Informática. A estrutura base é a da alínea anterior. Dizer qual o aluno com nota máxima e mínima.
e) Refazer a alínea b ) de forma que valide as notas, utilizando a alínea c).
f) Escrever um menu com opções relativas às alíneas b ) e d).
g) Construir a função main( ) que deve invocar a função da alínea anterior; verificar qual a opção do utilizador e invocar a função correspondente.
>
Qual sua pergunta?
como faco esse exercico?
para a alinea a) fiz
#include<stdio.h>
#include<conio.h>
main()
{
float nota;
printf("Digite uma nota\n");
scanf("%f",¬a);
if (nota>=0.00 && nota<=20.00)
printf("Nota Valida");
else
printf("Nota Invaida");
getche();
}
para a alinea b ) fiz
#include<stdio.h>
#include <string.h>
#include<stdlib.h>
main()
{
float nota[50];
int num_aluno[50];
int i;
for(i=0;i<50;i++) printf("Informe o Nr. do aluno %d: ",i+1);
scanf("%d",&num_aluno[i]);
printf("Informe nota do aluno Nr. %d: ",num_aluno[i]);
scanf("%f",¬a[i]);
}
for(i=0;i<50;i++)printf("\n O Aluno Nr. %d tem Nota de: %3.2f\n\n",num_aluno[i],nota[i]);
}
system("pause");
return(0);
}
AINDA NAO CONSEGUI FAZER OS OUTROS
???
Na c) você junta a a) com a b ), ou seja quando pedir o scanf da nota tem que checar se tal nota é valida. Em d) você cria uma variável para guardar o máximo e o minimo, a máximo inicia em 0 e a minima em 21, e toda vez que achar um valor maior que a máximo anterior guarde esse valor, e toda vez que achar um valor menor que a minima anterior guarde o valor, para a media faça uma variável que guarde o total, então toda vez que ler uma nova nota junte-a ao valor total e depois divida pelo total de alunos que existem, no caso 50.
Pelo que entendi a e) é igual a c), e as duas ultimas faça um menu utilizando printf e cria uma variável opcao para guardar um valor que você especificar para a chamada da função, um switch ou if-elses resolvem a determinação da função escolhida.
'AINDA NAO CONSEGUI FAZER OS OUTROS
???' não é uma pergunta muito boa. Tente seguir os conselhos acima, e se tiver problemas, faça uma pergunta objetiva e clara.
>
Na c) você junta a a) com a b ), ou seja quando pedir o scanf da nota tem que checar se tal nota é valida. Em d) você cria uma variável para guardar o máximo e o minimo, a máximo inicia em 0 e a minima em 21, e toda vez que achar um valor maior que a máximo anterior guarde esse valor, e toda vez que achar um valor menor que a minima anterior guarde o valor, para a media faça uma variável que guarde o total, então toda vez que ler uma nova nota junte-a ao valor total e depois divida pelo total de alunos que existem, no caso 50.
Pelo que entendi a e) é igual a c), e as duas ultimas faça um menu utilizando printf e cria uma variável opcao para guardar um valor que você especificar para a chamada da função, um switch ou if-elses resolvem a determinação da função escolhida.
c)
#include<stdio.h>
#include <string.h>
#include<stdlib.h>
main()
{
float nota[50];
int num_aluno[50];
int i;
for(i=0;i<50;i++) printf("\n\nDigite o Nr. do aluno: ");
scanf("%d",&num_aluno[i]);
printf("Digite a nota do aluno Nr. %d: ",num_aluno[i]);
scanf("%f",¬a[i]);
}
for(i=0;i<50;i++)if (nota[i]>=0.00 && nota[i]<=20.00)
printf("\nNota Valida\n O Aluno Nr.%d tem Nota de: %3.2f\n\n",num_aluno[i],nota[i]);
else
printf("\nNota Invalida\n Para Aluno Nr.%d \n\n",num_aluno[i]);
}
system("pause");
}
mas como declaro as variaveis.
tentei fazer a alinea d) com 3 alunos
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include <string.h>
aluno()
{
float nota[50];
int num_aluno[50];
int i;
for(i=0;i<3;i++) printf("Digite o Nr. do aluno: ");
scanf("%d",&num_aluno[i]);
printf("Digite nota do aluno Nr. %d: ",num_aluno[i]);
scanf("%f",¬a[i]);
}
}
float maximo(int i)
{
float maximo=0;
for(i=1;i<=3;i++)if(maximo<i)
maximo=i;
}
}float minimo=20;
for(i=1;i<=3;i++)if(minimo<i)
minimo=i;
}
}return(maximo()+minimo())/2;
}return maximo() - minimo();
}printf("nota maxima é do aluno nº: %d\n",i);
}
}printf("nota minimo é do aluno nº: %d\n",i);
}
}
main()
{
int i;
float media(float maximo(), float minimo());
float diferenca(float maximo(), float minimo());
aluno();
printf("\nA Nota Maxima/Minima dos Alunos da caderia de Programacao I:\n Maxima-%f\n Minima-%f",maximo,minimo);
printf("\n A media eh: %f e A Diferenca eh: %f\n\n",media,diferenca);
system("pause");
}
MAS NAO CONSIGO IVOCAR BEM AS FUNCOES
COMO FACO PARA QUE CONSIGA OS VALORES DO MAXIMO/MINIMO/MEDIA/DEFERENCA?
(SE CORRIGIR O CODIGO SERIA OTIMO)
---------------------------------------------------------------------------------
>
'AINDA NAO CONSEGUI FAZER OS OUTROS
???' não é uma pergunta muito boa. Tente seguir os conselhos acima, e se tiver problemas, faça uma pergunta objetiva e clara.
mas como declaro as variaveis.
tentei fazer a alinea d) com 3 alunos
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include <string.h>
aluno()
{
float nota[50];
int num_aluno[50];
int i;
for(i=0;i<3;i++) printf("Digite o Nr. do aluno: ");
scanf("%d",&num_aluno[i]);
printf("Digite nota do aluno Nr. %d: ",num_aluno[i]);
scanf("%f",¬a[i]);
}
}
float maximo(int i)
{
float maximo=0;
for(i=1;i<=3;i++)if(maximo<i)
maximo=i;
}
}float minimo=20;
for(i=1;i<=3;i++)if(minimo<i)
minimo=i;
}
}return(maximo()+minimo())/2;
}return maximo() - minimo();
}printf("nota maxima é do aluno nº: %d\n",i);
}
}printf("nota minimo é do aluno nº: %d\n",i);
}
}
main()
{
int i;
float media(float maximo(), float minimo());
float diferenca(float maximo(), float minimo());
aluno();
printf("\nA Nota Maxima/Minima dos Alunos da caderia de Programacao I:\n Maxima-%f\n Minima-%f",maximo,minimo);
printf("\n A media eh: %f e A Diferenca eh: %f\n\n",media,diferenca);
system("pause");
}
MAS NAO CONSIGO IVOCAR BEM AS FUNCOES
COMO FACO PARA QUE CONSIGA OS VALORES DO MAXIMO/MINIMO/MEDIA/DEFERENCA?
(SE CORRIGIR O CODIGO SERIA OTIMO)
---------------------------------------------
fiz a alinea d) mas nao consigo obter o valor da nota minima do vector nota
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include <string.h>
#define TMN 3
void nota1(float nota[])
{
int i;
for(i=1;i<=TMN;i++)
{
printf("Digite nota do aluno Nr. %d: ",i);
scanf("%f",¬a[i-1]);
}
}
float maximo(float nota[])
{
int i;
float m=0;if(nota[i]<nota[i+1])
m=nota[i+1];
}
return m;
}
float minimo(int nota[])
{
int i;
float z=0;if(nota[i]<nota[i+1])
z=nota[i];
}
return z;
}
float diferenca(float maximo, float minimo)
{
return maximo-minimo;
}
float media( float nota[])
{for(i=1;i<=TMN;i++)
float m,soma=0;
int i;
for(i=0;i<TMN;i++) soma=soma+nota[i];
m=soma/(i+1);
}
return m;
}
main()
for(i=1;i<=TMN;i++)
{
float nota[TMN];
int i;
float c,b,m;
nota1(nota);
c=maximo(nota);
b=minimo(nota);
m=media (nota);
printf("\nA Nota Maxima/Minima dos Alunos da caderia de Programacao I:\n\n Maxima=%.2f\n Minima=%.2f",c,B);
printf("\n\nMedia = %.2f e Diferenca = %.2f\n\n",m,diferenca(c,B));
system("pause");
}
como declaro a variael em float minimo(int nota[]) ???
float maximo(float nota[])
{
int i;
float m=0;
for(i=0;i<TMN;i++)
{
if(m<nota[i])
m=nota[i];
}
return m;
}
float minimo(int nota[])
{
int i;
float z=21;
for(i=0;i<TMN;i++)
{
if(z>nota[i])
z=nota[i];
}
}a)
nota()
{
float nota;
printf("Digite uma nota\n");
scanf("%f",¬a);
if (nota>=0.00 && nota<=20.00)
printf("Nota Valida");
else
printf("Nota Invalida");
}
b )
#define TMN 50
nota()
{
float nota[TMN];
int num_aluno[TMN];
int i;
for(i=0;i<TMN;i++) printf("Digite o Nr. do aluno: ");
scanf("%d",&num_aluno[i]);
printf("Digite nota do aluno Nr. %d: ",num_aluno[i]);
scanf("%f",¬a[i]);
}
for(i=0;i<TMN;i++)printf("\n O Aluno Nr. %d tem Nota de: %.2f\n\n",num_aluno[i],nota[i]);
}
system("pause");
}
c)
linha()
{
int z;
for(z=1;z<=80;z++)
putchar('-');
putchar('\n');
}float nota[TMN];
int num_aluno[TMN];
int i,z;
for(i=0;i<TMN;i++) printf("\n\nDigite o Nr. do aluno: ");
scanf("%d",&num_aluno[i]);
printf("Digite a nota do aluno Nr. %d: ",num_aluno[i]);
scanf("%f",¬a[i]);
}
linha();
for(i=0;i<TMN;i++)if (nota[i]>=0.00 && nota[i]<=20.00)
printf("\nNota Valida\n O Aluno Nr.%d tem Nota de: %3.2f\n\n",num_aluno[i],nota[i]);
else
printf("\nNota Invalida\n Para Aluno Nr.%d \n\n",num_aluno[i]);
}
linha();
}
d)
nota1(float nota[])
{
int i;
for(i=1;i<=TMN;i++)
{
printf("Digite nota do aluno Nr. %d: ",i);
scanf("%f",¬a[i-1]);
}
}
float maximo(float nota[]) int i;
float m=0;
for(i=0;i<TMN;i++)
{
if(m<nota[i])
m=nota[i];
}
return m;
} int i;
float z=21;
for(i=0;i<TMN;i++)
{
if(z>nota[i])
z=nota[i];
}
return z;
} return maximo-minimo;
} float m,soma=0;
int i;
for(i=0;i<TMN;i++)
{
soma=soma+nota[i];
m=soma/(i+1);
}
return m;
}
void calculo()
{
float nota[TMN];
int i;
float c,b,m;
nota1(nota);
c=maximo(nota);
b=minimo(nota);
m=media (nota);
printf("\nA Nota Maxima/Minima dos Alunos da cadeira de Programacao I:\n\n Maxima=%.2f\n Minima=%.2f",c,B);
printf("\n\nMedia = %.2f e Diferenca = %.2f\n\n",m,diferenca(c,B));
system("pause");
}
f)
linha()
{
int z;
for(z=1;z<=80;z++)
putchar('-');
putchar('\n');
}linha();
printf("\t\tFERRAMENTA DE APOIO DE NOTAS\n\t\t\tPROGRAMACAO I\n\t\tCURSO DE ENGENHARIA INFORMATICA\n");
linha();
printf("\n\t (1)ARMAZENAR DADOS DOS ALUNOS \n\n CALCULAR:(2) NOTA MAXIMA (3) NOTA MINIMA (4) MEDIA (5) DIFERENCA \n\n\t (0) SAIR\n\n");
linha();
printf("\nESCOLHA UMA OPCAO: ");
}
g)
main()
{
int op;
do
{
menu();
scanf("%d",&op);
switch(op)
{
case 1: nota();break;
case 2: calculo();break;
case 0: break;
default : printf("\n\n\tVoce escolheu uma opcao que nao existe!!!!\n");
system("pause");break;
}
}
while (op != 0);
}Codigo fonte do programa final
#include<stdio.h>
#include <string.h>
#include<stdlib.h>
#define TMN 3
nota()
{
float nota[TMN];
int num_aluno[TMN];
int i;
for(i=0;i<TMN;i++) printf("Digite o Nr. do aluno: ");
scanf("%d",&num_aluno[i]);
printf("Digite nota do aluno Nr. %d: ",num_aluno[i]);
scanf("%f",¬a[i]);
}
for(i=0;i<TMN;i++)printf("\n O Aluno Nr. %d tem Nota de: %.2f\n\n",num_aluno[i],nota[i]);
}
system("pause");
} int i;
for(i=1;i<=TMN;i++)
{
printf("Digite nota do aluno Nr. %d: ",i);
scanf("%f",¬a[i-1]);
}
}
float maximo(float nota[]) int i;
float m=0;
for(i=0;i<TMN;i++)
{
if(m<nota[i])
m=nota[i];
}
return m;
} int i;
float z=21;
for(i=0;i<TMN;i++)
{
if(z>nota[i])
z=nota[i];
}
return z;
} return maximo-minimo;
} float m,soma=0;
int i;
for(i=0;i<TMN;i++)
{
soma=soma+nota[i];
m=soma/(i+1);
}
return m;
}
void calculo()
{
float nota[TMN];
int i;
float c,b,m;
nota1(nota);
c=maximo(nota);
b=minimo(nota);
m=media (nota);
printf("\nA Nota Maxima/Minima dos Alunos da cadeira de Programacao I:\n\n Maxima=%.2f\n Minima=%.2f",c,B);
printf("\n\nMedia = %.2f e Diferenca = %.2f\n\n",m,diferenca(c,B));
system("pause");
} int z;
for(z=1;z<=80;z++)
putchar('-');
putchar('\n');
}system("cls");
linha();
printf("\t\tFERRAMENTA DE APOIO DE NOTAS\n\t\t\tPROGRAMACAO I\n\t\tCURSO DE ENGENHARIA INFORMATICA\n");
linha();
printf("\n\t (1)ARMAZENAR DADOS DOS ALUNOS \n\n\t (2)CALCULAR: NOTA MAXIMA NOTA MINIMA DIFERENCA E MEDIA \n\n\t (0) SAIR\n\n");
linha();
printf("\nESCOLHA UMA OPCAO: ");
} int op;
do
{
menu();
scanf("%d",&op);
switch(op)
{
case 1: nota();break;
case 2: calculo();break;
case 0: break;
default : printf("\n\n\tVoce escolheu uma opcao que nao existe!!!!\n");
system("pause");break;
}
}
while (op != 0);
}
espero que esteja correcto
???
Qual sua pergunta?