Um cinema possui capacidade de 100 lugares e está sempre com ocupação total. Certo dia, cada espectador respondeu a um questionário, no qual constava: - sua idade; - sua opinião em relação ao filme, segundo as seguintes notas: Nota Significado A Ótimo B Bom C Regular D Ruim E Péssimo. Elabore um algoritmo que, lendo estes dados, calcule e imprima:
- a quantidade de respostas ótimo;
- a diferença percentual entre respostas bom e regular;
- a média de idade das pessoas que responderam ruim;
- a percentagem de respostas péssimo e a maior idade que utilizou esta opção;
- a diferença de idade entre a maior idade que respondeu ótimo e a maior idade que respondeu ruim.
em C++
Soluções para a tarefa
Respondido por
1
#include<iostream>
#include<cstdlib>
#include<cstdio>
#include<cctype>
#define LIMPABUFFER while(getchar()!='\n');
using namespace std;
const int acentos=100;
int registro_idade(int idd[], int contador){
if(contador<acentos){
cout<<"Idade do cliente da poltrona "<<(contador+1)<<": ";
cin>>idd[contador];
LIMPABUFFER;
if(idd[contador]<7) return registro_idade(idd, contador);
return registro_idade(idd, contador+1); } cout<<"\n====================================================="<<endl;
return 0; }
bool opiniao_valida(char opiniao){
switch(opiniao){
case 'A':{ return true; }
case 'B':{ return true; }
case 'C':{ return true; }
case 'D':{ return true; }
case 'E':{return true; } }
return false; }
int registro_opiniao(char opiniao[], int contador){
if(contador<acentos){
cout<<"Opiniao do cliente da poltrona "<<(contador+1)<<": ";
cin>>opiniao[contador];
opiniao[contador]=toupper(opiniao[contador]);
LIMPABUFFER;
if(!opiniao_valida(opiniao[contador])) return registro_opiniao(opiniao, contador);
return registro_opiniao(opiniao, contador+1);}
cout<<"\n======================================================="<<endl;
return 0;}
int quantidade_opiniao_x(char opiniao[], char opiniaox, int contador, int total){
if(contador<acentos){
if(opiniao[contador]==opiniaox)
return quantidade_opiniao_x(opiniao, opiniaox, contador+1, total+1);
return quantidade_opiniao_x(opiniao, opiniaox, contador+1, total); }
return total; }
int maior_idade_opiniao_x(int idd[], int maioridd, char opiniao[], int opiniaox, int contador){
if(contador<acentos){
if(opiniao[contador]==opiniaox){
if(idd[contador]>maioridd){ return maior_idade_opiniao_x(idd, idd[contador], opiniao, opiniaox, contador+1);}
return maior_idade_opiniao_x(idd, maioridd, opiniao, opiniaox, contador+1); }
return maior_idade_opiniao_x(idd, maioridd, opiniao, opiniaox, contador+1);}
return maioridd; }
double media_idade_opiniao_x(int idd[], int mediaidd, char opiniao[], int opiniaox, int contador, int total){
if(contador<acentos){
if(opiniao[contador]==opiniaox){
return media_idade_opiniao_x(idd, mediaidd+idd[contador], opiniao, opiniaox, contador+1, total+1); }
return media_idade_opiniao_x(idd, mediaidd, opiniao, opiniaox, contador+1, total);}
return ((double)mediaidd/(double)total); }
double media_idade(int idd[], int mediaidd, int contador){
if(contador<acentos) return media_idade(idd, mediaidd+idd[contador], contador+1); return ((double)mediaidd/(double)acentos); }
int main(){
int idd[acentos];
char opiniao[acentos];
registro_idade(idd, 0);
registro_opiniao(opiniao, 0);
cout<<"A quantidade de \"otimo\" e: "<<quantidade_opiniao_x(opiniao, 'A', 0, 0)<<endl;
cout<<"A diferenca percentual entre \"bom\" e \"regular\" e: "<<( (quantidade_opiniao_x(opiniao, 'B', 0, 0)*100)/acentos )-( (quantidade_opiniao_x(opiniao, 'C', 0, 0)*100)/acentos )<<"%"<<endl;
cout<<"A media da idade de pessoas que deram \"ruim\" e: "<<media_idade_opiniao_x(idd, 0, opiniao, 'D', 0, 0)<<endl;
cout<<"A quantiade de pessoas que responderam \"pessimo\" e: "<<quantidade_opiniao_x(opiniao, 'E', 0, 0)<<", e a maior idade desta opcao e: "<<maior_idade_opiniao_x(idd, 0, opiniao, 'E', 0)<<endl;
cout<<"A diferenca da maior idade quem respondeu \"otimo\" e da quem respondeu \"ruim\" e: "<<(maior_idade_opiniao_x(idd, 0, opiniao, 'A', 0)-maior_idade_opiniao_x(idd, 0, opiniao, 'D', 0))<<endl;
getchar();
return 0; }
#include<cstdlib>
#include<cstdio>
#include<cctype>
#define LIMPABUFFER while(getchar()!='\n');
using namespace std;
const int acentos=100;
int registro_idade(int idd[], int contador){
if(contador<acentos){
cout<<"Idade do cliente da poltrona "<<(contador+1)<<": ";
cin>>idd[contador];
LIMPABUFFER;
if(idd[contador]<7) return registro_idade(idd, contador);
return registro_idade(idd, contador+1); } cout<<"\n====================================================="<<endl;
return 0; }
bool opiniao_valida(char opiniao){
switch(opiniao){
case 'A':{ return true; }
case 'B':{ return true; }
case 'C':{ return true; }
case 'D':{ return true; }
case 'E':{return true; } }
return false; }
int registro_opiniao(char opiniao[], int contador){
if(contador<acentos){
cout<<"Opiniao do cliente da poltrona "<<(contador+1)<<": ";
cin>>opiniao[contador];
opiniao[contador]=toupper(opiniao[contador]);
LIMPABUFFER;
if(!opiniao_valida(opiniao[contador])) return registro_opiniao(opiniao, contador);
return registro_opiniao(opiniao, contador+1);}
cout<<"\n======================================================="<<endl;
return 0;}
int quantidade_opiniao_x(char opiniao[], char opiniaox, int contador, int total){
if(contador<acentos){
if(opiniao[contador]==opiniaox)
return quantidade_opiniao_x(opiniao, opiniaox, contador+1, total+1);
return quantidade_opiniao_x(opiniao, opiniaox, contador+1, total); }
return total; }
int maior_idade_opiniao_x(int idd[], int maioridd, char opiniao[], int opiniaox, int contador){
if(contador<acentos){
if(opiniao[contador]==opiniaox){
if(idd[contador]>maioridd){ return maior_idade_opiniao_x(idd, idd[contador], opiniao, opiniaox, contador+1);}
return maior_idade_opiniao_x(idd, maioridd, opiniao, opiniaox, contador+1); }
return maior_idade_opiniao_x(idd, maioridd, opiniao, opiniaox, contador+1);}
return maioridd; }
double media_idade_opiniao_x(int idd[], int mediaidd, char opiniao[], int opiniaox, int contador, int total){
if(contador<acentos){
if(opiniao[contador]==opiniaox){
return media_idade_opiniao_x(idd, mediaidd+idd[contador], opiniao, opiniaox, contador+1, total+1); }
return media_idade_opiniao_x(idd, mediaidd, opiniao, opiniaox, contador+1, total);}
return ((double)mediaidd/(double)total); }
double media_idade(int idd[], int mediaidd, int contador){
if(contador<acentos) return media_idade(idd, mediaidd+idd[contador], contador+1); return ((double)mediaidd/(double)acentos); }
int main(){
int idd[acentos];
char opiniao[acentos];
registro_idade(idd, 0);
registro_opiniao(opiniao, 0);
cout<<"A quantidade de \"otimo\" e: "<<quantidade_opiniao_x(opiniao, 'A', 0, 0)<<endl;
cout<<"A diferenca percentual entre \"bom\" e \"regular\" e: "<<( (quantidade_opiniao_x(opiniao, 'B', 0, 0)*100)/acentos )-( (quantidade_opiniao_x(opiniao, 'C', 0, 0)*100)/acentos )<<"%"<<endl;
cout<<"A media da idade de pessoas que deram \"ruim\" e: "<<media_idade_opiniao_x(idd, 0, opiniao, 'D', 0, 0)<<endl;
cout<<"A quantiade de pessoas que responderam \"pessimo\" e: "<<quantidade_opiniao_x(opiniao, 'E', 0, 0)<<", e a maior idade desta opcao e: "<<maior_idade_opiniao_x(idd, 0, opiniao, 'E', 0)<<endl;
cout<<"A diferenca da maior idade quem respondeu \"otimo\" e da quem respondeu \"ruim\" e: "<<(maior_idade_opiniao_x(idd, 0, opiniao, 'A', 0)-maior_idade_opiniao_x(idd, 0, opiniao, 'D', 0))<<endl;
getchar();
return 0; }
Perguntas interessantes
Administração,
9 meses atrás
Sociologia,
9 meses atrás
Português,
1 ano atrás
Geografia,
1 ano atrás
Matemática,
1 ano atrás