Ir ao conteúdo
  • Cadastre-se
Leoveira

C++ Porcentagem de repetições em um vetor

Recommended Posts

Boa tarde,

 

Estou fazendo um exercício que pede para armazenar 5 notas de juízes ( de 0 a 9) a um atleta em um vetor e depois exiba a media, a maior nota, a menor nota, e a a percentagem de pontuações iguais ou superiores a 8 valores. E essa ultima me pegou de jeito, por que não estou conseguindo montar o trecho de código para identificar repetidos em um vetor. Meu código até então está assim:

 

#include <iostream>
#define juiz 5

using namespace std;

int main(){

int notas[juiz],cont,media=0,maior=0,menor=0;

cout << "\n\t Prova de Atletismo\n";
cout << "Digite 5 notas entre 0 a 9 para o atleta: \n";

//armazenar valores
for(cont=0;cont<juiz;cont++){
    cin >> notas[cont];
}
//media
for(cont=0;cont<juiz;cont++){
    media+=notas[cont];
}
    media=media/juiz;

    cout << "\nA media do atleta foi de: " << media;

//maior
for(cont=0;cont<juiz;cont++){
    if(notas[cont]>maior){
        maior=notas[cont];
    }
}
//menor
menor=maior;

for(cont=0;cont<juiz;cont++){
    if(notas[cont]<menor){
        menor=notas[cont];
    }
}

 cout << "\nA sua menor nota foi: " << menor << " e a sua maior nota foi: " << maior;

 //repetidos

 int rep=0;
 int cont2=notas[0];

 for(cont=0;cont<juiz;cont++){
    if(notas[cont] == cont2){
      rep++;
    }
}       

}

Sei que poderia colocar um outro FOR dentro do primeiro para resolver, mas não estou sabendo montar a lógica correta. Alguma sugestão?

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
4 horas atrás, Leoveira disse:

e a a percentagem de pontuações iguais ou superiores a 8 valores.

Não há muita lógica nesta pergunta. Não será a porcentagem de pontuações igual ou superior a 8 pontos? Se for assim é só contar quantas vezes o atleta tirou 8 ou mais e fazer a regra do três.

  • Curtir 3

Compartilhar este post


Link para o post
Compartilhar em outros sites

@vangodp E isso mesmo, eu que digitei errado.

 

Em 08/02/2018 às 22:10, vangodp disse:

Não há muita lógica nesta pergunta. Não será a porcentagem de pontuações igual ou superior a 8 pontos? Se for assim é só contar quantas vezes o atleta tirou 8 ou mais e fazer a regra do três.

 

E isso que eu não to entendendo muito bem, pode me dar um exemplo se não for incomodo?

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá.

 

Vou tentar complementar:

 

1) NOMENCLATURA DE VARIÁVEIS

Apenas uma sugestão.....

 

É recomendado usar nomenclaturas de variáveis sugestíveis ao seu uso. Ex.:

Em 08/02/2018 às 17:00, Leoveira disse:

#define juiz 5

O que seria "juiz"? pelo contexto do enunciado, temos:

 

Em 08/02/2018 às 17:00, Leoveira disse:

5 notas de juízes

Ou seja, seria "mais adequado" utilizar "juizes" ou "qtd_juizes" etc. Entende?

 

Parace besta, mas veja por exemplo esse trecho:

Em 08/02/2018 às 17:00, Leoveira disse:

    for(cont=0;cont<juiz;cont++){
        cin >> notas[cont];
    }

 

Olha a diferença:

    for (contNotas=0;cont<qtdJuizes;cont++) {
        cin >> notas[contNotas];
    }

Ficaria implícito, algo como: "para 'contador de notas' iniciando em 0, até 'contador de notas' menor que a 'quantidade de juízes', sendo que 'contador de notas' será incrementado de 'um em um'" , ou seja, a linha de código fala por si só... percebe?

 

ou

    for(posNota=0;cont<qtdJuizes;cont++){
        cin >> notas[contNotas];
    }

Etc.

 

Resumindo:

Acho que apenas mudando de juiz para juizes, já seria um bom caminho. :thumbsup:

 

obs.: como dito, é apenas uma sugestão.

 

 

 

2) ENTENDER O QUE SE PEDE

Vamos lá, o que foi pedido:

Em 08/02/2018 às 17:00, Leoveira disse:

[...]um exercício que pede para armazenar 5 notas de juízes (de 0 a 9) a um atleta em um vetor e depois exiba a media, a maior nota, a menor nota, e a percentagem de pontuações iguais ou superiores a 8 valores. E essa ultima me pegou de jeito, por que não estou conseguindo montar o trecho de código para identificar repetidos em um vetor. Meu código até então está assim:

- media;

- maior nota;

- menor nota;

- percentagem de pontuações iguais ou superiores a 8 valores.

 

Sua dúvida é sobre é última, correto? Em relação as anteriores, me parece que estão ok. Então temos pelo menos 2 pontos em relação ao último:

 

1- o que seria "uma percentagem de 'algo'"?

2- o que seria o 'algo'?

 

Primeiro, dê uma pesquisada sobre como calcular "percentagens". Entre nesse mundo... aprenda um pouco (ou mais) sobre o tema. Feito isso, entenderá o que seria o 'algo', e por consequência tentará encontrar o que se pede.... a partir daí que entrará a parte da "implementação", ou seja, onde tem dúvidas em fazer isso em C/C++. Entende? O nível da sua dúvida está no âmbito da matemática, não da programação. Imagine esse exercício como uma questão do Enem... a programação entra apenas para automatizar o processo...

 

Veja por exemplo o itens anteriores... teoricamente você já sabia o que é cada uma das coisas anteriores... e já conseguiu também implementar, ou seja, primeiro você já teve que saber o que é que tá fazendo.

 

Resumindo:

Revise o conhecimento sobre percentagem, e tente resolver no papel. Entendendo percentagem, o resto vem.

 

 

No aguardo.

  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Simon Viegas  sobre primeira parte eu costumo fazer isso, mas quando fico perdido eu ignoro isso até resolver e depois volto e arrumo(se eu fizesse desde de o inicio evitava perda de tempo). Mas obrigado de todo jeito, vou tentar ter esse costume em mente.

 

Sobre a segunda parte eu realmente não entendi o que você quis dizer ou insinuar, minha duvida era sobre isso:

 

Em 08/02/2018 às 18:00, Leoveira disse:

não estou conseguindo montar o trecho de código para identificar repetidos em um vetor

 

E minha dificuldade era na lógica, eu estava colocando mais complicação do que havia.

Em 08/02/2018 às 18:00, Leoveira disse:

Sei que poderia colocar um outro FOR dentro do primeiro para resolver, mas não estou sabendo montar a lógica correta. Alguma sugestão?

 

Mas agradeço a colaboração de todos, me ajudaram bastante.

adicionado 2 minutos depois

O código ficou assim:

#include <iostream>
#include <math.h>

using namespace std;

#define juizes 5

int main(){

int notas[juizes],cont,media=0,maior=0,menor=0;

cout << "\n\t Prova de Atletismo\n";
cout << "Digite 5 notas entre 0 a 9 para o atleta: \n";

//armazenar valores
for(cont=0;cont<juizes;cont++){
    //if(notas[cont]>10){
    cin >> notas[cont];
}
//media
for(cont=0;cont<juizes;cont++){
    media+=notas[cont];
}
    media=media/juizes;

    cout << "\nA media do atleta foi de: " << media;

//maior
for(cont=0;cont<juizes;cont++){
    if(notas[cont]>maior){
        maior=notas[cont];
    }
}
//menor
menor=maior;

for(cont=0;cont<juizes;cont++){
    if(notas[cont]<menor){
        menor=notas[cont];
    }
}

 cout << "\nA sua menor nota foi: " << menor << " e a sua maior nota foi: " << maior;

 //porcentagem de repetidos

 int nota_alta=8,repet=0,porcen=0;

for(cont=0;cont<juizes;cont++){
    if(notas[cont]>=nota_alta){
        repet++;
    }

porcen=repet*20; //5 notas e igual a 100%, então cada nota e 20%

}
    cout << "\nA porcentagem de notas iguais ou superiores a 8 e:  " << porcen<< "%";

//atribuição de notas
for(cont=0;cont<juizes;cont++){
    if(notas[cont]>=nota_alta){
        cout << "\nO juiz numero " << cont << " deu a nota: " << notas[cont];
}

}
}

 

 

  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá.

 

Bacana. Ficou muito bom.

 

 

Vamos lá:

19 minutos atrás, Leoveira disse:

Sobre a segunda parte eu realmente não entendi o que você quis dizer ou insinuar, minha duvida era sobre isso:
 

Em 08/02/2018 às 17:00, Leoveira disse:

não estou conseguindo montar o trecho de código para identificar repetidos em um vetor

 

Eu tinha entendido a dúvida, só não a correlação com o contexto... ou seja, eu sei o que você queria, só não porquê queria...

 

 

20 minutos atrás, Leoveira disse:

E minha dificuldade era na lógica, eu estava colocando mais complicação do que havia.
 

Em 08/02/2018 às 17:00, Leoveira disse:

Sei que poderia colocar um outro FOR dentro do primeiro para resolver, mas não estou sabendo montar a lógica correta. Alguma sugestão?

 

Perfeito. Em relação a dúvida que você teve, estaria no caminho correto. Mas, essa dúvida não tinha relação com o que foi pedido. Fazendo uma analogia mais forçada, seria como:

 

Necessidade: encontre a raiz quadrada da média aritmética dos números lidos;

Dúvida: eu não estou conseguindo fazer um bolo. Será que eu posso usar manteiga no lugar de margarina?

 

Entende? Claro que estou fazendo um exageeeeero na comparação... até porque o seu raciocínio já tinha chegado perto do que precisava... mas mesmo assim estava falho. Estou apenas enfatizando que são coisas distintas. Para encontrar «a percentagem de pontuações iguais ou superiores a 8 valores», não precisará verificar a "repetição de algo". Não me fez sentido para o contexto.

 

Daí, para saber o que se precisaria encontrar, precisaria primeiro saber como calcular a percentagem.

 

 

 

 

RESUMINDO:

Tomando seu código atual como base, primeiro você precisaria saber como calcular:

26 minutos atrás, Leoveira disse:
1 hora atrás, Leoveira disse:

porcen=repet*20; //5 notas e igual a 100%, então cada nota e 20%

Com essa fórmula, identificaria que precisaria "encontrar" o valor de repet... O código já está calculando corretamente, apenas que nesse seu contexto, isso não seria repet, seria algo como qtdAcimaIgual8, ou seja, agora o for está procurando o "algo" correto, mas continua sendo "chamado" da forma anterior.

 

Att.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora





Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×