ProjectWesley Posted April 20, 2015 Report Share Posted April 20, 2015 Alguém poderia me ajudar neste exercício: FUPCQ – Tendo-se um conjunto de dados, de tamanho indeterminado, contendo a altura e o sexo (M ou F) de um grupo de pessoas. Faça um programa que calcule e mostre: a. a maior e a menor altura do grupo; b. a média de altura das mulheres; c. o número de homens; d. o sexo da pessoa mais alta; O usuário deve responder se deseja inserir informações de outra pessoa. Obrigado, desde já!!! Quote Link to comment Share on other sites More sharing options...
0 PedroCunha Posted April 21, 2015 Report Share Posted April 21, 2015 O que você tentou fazer? Mostre o seu código e tentaremos lhe ajudar. Não podemos ajudar se você nem tentar. Att., Pedro Quote Link to comment Share on other sites More sharing options...
0 PedroCunha Posted April 22, 2015 Report Share Posted April 22, 2015 Fiz um código básico para esse programa em C++: #include <iostream> #include <vector> #include <locale> #include <limits> using namespace std; vector<float> Alturas_dos_Homens; vector<float> Alturas_das_Mulheres; float Numero_de_Homens = 0; float Numero_de_Mulheres = 0; float Maior_altura_dos_Homens = 0; float Menor_altura_dos_Homens = 0; float Maior_altura_das_Mulheres = 0; float Menor_altura_das_Mulheres = 0; void Perguntar_Valores(vector<float>&, vector<float>&); void Calcular_maior_e_menor_alturas(vector<float>&, vector<float>&); void Media_de_altura_das_Mulheres(float, float); void Quantidade_de_Homens(float); void Sexo_da_pessoa_mais_alta(float,float); void Perguntar_Valores(vector<float>& Alturas_dos_Homens, vector<float>& Alturas_das_Mulheres) { int i = 0; int j = 0; int Sexo; int Sim_ou_Nao = 0; bool Continuar = true; while ( Continuar == true) { Sexo = 0; cout << "Digite o sexo da pessoa (1 - Homem / 2 - Mulher)" << endl; cin >> Sexo; cin.sync(); if (Sexo == 1) { Numero_de_Homens++; Alturas_dos_Homens.resize(Numero_de_Homens); cout << "\nDigite a altura da pessoa (em metros)." << endl; cin >> Alturas_dos_Homens[i]; if (!cin) { cin.clear(); cin.ignore(numeric_limits<streamsize>::max(), '\n'); cout << "Valor inválido." << endl << endl; Numero_de_Homens--; Perguntar_Valores(Alturas_dos_Homens,Alturas_das_Mulheres); } i++; } else if (Sexo == 2) { Numero_de_Mulheres++; Alturas_das_Mulheres.resize(Numero_de_Mulheres); cout << "\nDigite a altura da pessoa (em metros)." << endl; cin >> Alturas_das_Mulheres[j]; if (!cin) { cin.clear(); cin.ignore(numeric_limits<streamsize>::max(), '\n'); cout << "Valor inválido." << endl << endl; Numero_de_Mulheres--; Perguntar_Valores(Alturas_dos_Homens,Alturas_das_Mulheres); } j++; } else if ( Sexo != 1 || Sexo != 2 || !cin) { cin.clear(); cin.ignore(numeric_limits<streamsize>::max(), '\n'); cout << "Opção inválida" << endl << endl; Perguntar_Valores(Alturas_dos_Homens,Alturas_das_Mulheres); } cout <<"\nDeseja inserir informações de outra pessoa? (1 - Sim/ 2 - Não) " << endl; cin >> Sim_ou_Nao; cin.sync(); cout << "\n\n"; switch(Sim_ou_Nao) { case 1: Continuar = true; break; case 2: Continuar = false; break; default: cout << "Opção inválida. Continuando o programa" << endl << endl; Continuar = false; } } Calcular_maior_e_menor_alturas(Alturas_dos_Homens, Alturas_das_Mulheres); } void Calcular_maior_e_menor_alturas(vector<float>& Alturas_dos_Homens, vector<float>& Alturas_das_Mulheres) { int i = 0; int j = 0; float Maior_altura = 0; float Menor_altura = 0; if (Numero_de_Homens > 1) { for (i = 0; i < Numero_de_Homens; i++) { if ( i != Numero_de_Homens - 1) { if (Alturas_dos_Homens[i+1] > Alturas_dos_Homens[i]) { Maior_altura_dos_Homens = Alturas_dos_Homens[i+1]; Menor_altura_dos_Homens = Alturas_dos_Homens[i]; } else { Maior_altura_dos_Homens = Alturas_dos_Homens[i]; Menor_altura_dos_Homens = Alturas_dos_Homens[i+1]; } } else { if ( Alturas_dos_Homens[i] > Maior_altura_dos_Homens) { Maior_altura_dos_Homens = Alturas_dos_Homens[i]; } } } } else { Maior_altura_dos_Homens = Menor_altura_dos_Homens = Alturas_dos_Homens[0]; } if (Numero_de_Mulheres > 1) { for (j = 0; j < Numero_de_Mulheres; j++) { if ( j != Numero_de_Mulheres-1) { if (Alturas_das_Mulheres[j+1] > Alturas_das_Mulheres[j]) { Maior_altura_das_Mulheres = Alturas_das_Mulheres[j+1]; Menor_altura_das_Mulheres = Alturas_das_Mulheres[j]; } else { Maior_altura_das_Mulheres = Alturas_das_Mulheres[j]; Menor_altura_das_Mulheres = Alturas_das_Mulheres[j+1]; } } else { if (Alturas_das_Mulheres[j] > Maior_altura_das_Mulheres) { Maior_altura_das_Mulheres = Alturas_das_Mulheres[j]; } } } } else { Maior_altura_das_Mulheres = Menor_altura_das_Mulheres = Alturas_das_Mulheres[0]; } if (Maior_altura_dos_Homens > Maior_altura_das_Mulheres) { Maior_altura = Maior_altura_dos_Homens; } else { Maior_altura = Maior_altura_das_Mulheres; } if (Menor_altura_dos_Homens < Menor_altura_das_Mulheres) { Menor_altura = Menor_altura_dos_Homens; } else { Menor_altura = Menor_altura_das_Mulheres; } cout << "\n\nA maior altura do grupo é: " << Maior_altura << "m" << endl; cout << "\n\nA menor altura do grupo é: " << Menor_altura << "m" << endl; } void Media_de_altura_das_Mulheres(vector<float>& Alturas_das_Mulheres, float Numero_de_Mulheres) { int i = 0; float Soma_das_alturas_das_Mulheres = 0; for(i = 0; i < Numero_de_Mulheres; i++) { Soma_das_alturas_das_Mulheres += Alturas_das_Mulheres[i]; } cout << "\n\nA média das alturas das mulheres é: " << (Soma_das_alturas_das_Mulheres)/(Numero_de_Mulheres) << "m" << endl; } void Quantidade_de_Homens (float Numero_de_Homens) { cout << "\n\nO numero de homens é: " << Numero_de_Homens << endl << endl; } void Sexo_da_pessoa_mais_alta (float Maior_altura_dos_Homens, float Maior_altura_das_Mulheres) { if (Maior_altura_dos_Homens > Maior_altura_das_Mulheres) { cout << "A pessoa com a maior altura ( " << Maior_altura_dos_Homens << "m ) é um homem."; } else { cout << "A pessoa com a maior altura ( " << Maior_altura_das_Mulheres << "m ) é uma mulher."; } } int main() { setlocale(LC_ALL, "Portuguese"); Perguntar_Valores(Alturas_dos_Homens,Alturas_das_Mulheres); Media_de_altura_das_Mulheres(Alturas_das_Mulheres, Numero_de_Mulheres); Quantidade_de_Homens(Numero_de_Homens); Sexo_da_pessoa_mais_alta(Maior_altura_dos_Homens, Maior_altura_das_Mulheres); cin.get(); return 0; } Poste a sua tentativa para que possamos comparar os códigos e a lógica e melhorar o programa. Att., Pedro Quote Link to comment Share on other sites More sharing options...
Question
ProjectWesley
Alguém poderia me ajudar neste exercício:
Link to comment
Share on other sites
2 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.