Construa um algoritmo para calcular a média de valores PARES e ÍMPARES, que serão digitados pelo usuário. Ao final o algoritmo deve mostrar estas duas médias. O algoritmo deve mostrar também o maior número PAR digitado e o menor número ÍMPAR digitado. Para finalizar o usuário irá digitar um valor negativo.
(Usar a função MOD para saber se o número é par ou ímpar. 10 mod 2 = 0 – par; 11 mod 2 <>0 – ímpar.)
Olá, vou apresentar um código detalhado, que com o tempo você irá ver que pode ser otimizado. Fiz para lhe ajudar a entender.
#include <iostream.h>
int main()
{
int entrada, calc;
int total_impar, qtde_impar, maior_impar, media_impar, menor_impar;
int total_par, qtde_par, maior_par, media_par, maior_par;
cout << "Informe um numero positivo, caso contrario encerra \n";
entrada=0;
menor_impar=999999999;
maior_par=0;
while(entrada>-1) {
cin >> entrada ;
calc= entrada % 2;
if(calc>0) {
total_impar+=entrada;
qtde_impar+=1;
if(entrada<menor_impar) {
menor_impar=entrada;
}
} else {
total_par+=entrada;
qtde_par+=1;
if(entrada>maior_par) {
maior_par=entrada;
}
}
}
media_par=total_par / qtde_par;
media_impar=total_impar / qtde_impar;
cout << "Media Impar = media_impar \n";
cout << "Media par = media_par \n";
cout << "Maior numero par = maior_par \n";
cout << "Menor numero impar = menor_impar \n";
return(0);
}
Inicialmente devemos declarar as variáveis que serão utilizadas.
Var
numero,maior,menor,cont,i:inteiro
mediapar,mediaimpar:real
Assim, podemos iniciar um loop de 10 vezes recebendo números.
Inicio
enquanto cont<10 faca
escreval ("Digite o numero")
leia (numero)
Com isso podemos utilizar mod para saber se o número é par, dessa forma se for par será somado para média e verificado se é o maior até o momento.
se (numero mod 2 =0)entao
mediapar<-mediapar+numero
se numero>maior entao
maior<-numero
fimse
Caso o número não seja par, ele será ímpar, assim podemos realizar a soma para média e verificar se o mesmo é o menor.
senao
mediaimpar<-mediaimpar+numero
se i=0 entao
menor<-numero
i<-1
fimse
se menor>numero entao
menor<-numero
fimse
fimse
cont<-cont+1
fimenquanto
Por fim, podemos calcular as médias e apresentar o resultado ao usuário.
mediapar<-mediapar/10
mediaimpar<-mediaimpar/10
escreval("Maior par",maior)
escreval("Menor impar",menor)
escreval("Media pares",mediapar)
escreval("Media impares",mediaimpar)
Fimalgoritmo
Inicialmente devemos declarar as variáveis que serão utilizadas.
Var
numero,maior,menor,cont,i:inteiro
mediapar,mediaimpar:real
Assim, podemos iniciar um loop de 10 vezes recebendo números.
Inicio
enquanto cont<10 faca
escreval ("Digite o numero")
leia (numero)
Com isso podemos utilizar mod para saber se o número é par, dessa forma se for par será somado para média e verificado se é o maior até o momento.
se (numero mod 2 =0)entao
mediapar<-mediapar+numero
se numero>maior entao
maior<-numero
fimse
Caso o número não seja par, ele será ímpar, assim podemos realizar a soma para média e verificar se o mesmo é o menor.
senao
mediaimpar<-mediaimpar+numero
se i=0 entao
menor<-numero
i<-1
fimse
se menor>numero entao
menor<-numero
fimse
fimse
cont<-cont+1
fimenquanto
Por fim, podemos calcular as médias e apresentar o resultado ao usuário.
mediapar<-mediapar/10
mediaimpar<-mediaimpar/10
escreval("Maior par",maior)
escreval("Menor impar",menor)
escreval("Media pares",mediapar)
escreval("Media impares",mediaimpar)
Fimalgoritmo
Para escrever sua resposta aqui, entre ou crie uma conta
Lógica de Programação e Algoritmos
•FACTHUS
Compartilhar