Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
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.

Editado por Simon Viegas
  • 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






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

×