Ir ao conteúdo
  • Cadastre-se
Berus-kun

C++ Vector valor números inteiros

Posts recomendados

Olá amigos programadores, voltei agora, pois não estava conseguindo entrar, e teve um novo professor de c++, e o novo conteúdo, eu entendi mais ou menos, mas estou com uma duvida neste exercicio:

 

1. Implemente um algoritmo que possibilite a apenas a digitação de valores inteiros em um vetor: o usuário
deve decidir quando parar de inserir.
2. Com o vetor preenchido, implemente uma função que exiba uma lista de opções ao usuário:
3. CASO o usuário digite 1: Imprimir o somatório de seus elementos;
4. CASO o usuário digite 2: Imprimir a média de seus elementos;
5. CASO o usuário digite 3: Imprimir a média e o somatório
6. CASO o usuário digite 4: Substituir por zero todos os valores negativos e imprimir a média;
7. CASO o usuário digite 5: Substituir por zero todos os valores repetidos e imprimir a média e o
somatório;
8. CASO o usuário digite 6: mostrar o vetor ordenado;
9. CASO o usuário digite 0 : Sair da aplicação
Ao final de cada opção, a aplicação deve voltar a exibir a lista de opção (exceto a opção sair)

 

 

fiz o seguinte:

 

#include<iostream>
#include<vector>

using namespace std;

int main(){

int x;
string continuar;

vector<int> numeros;

    numeros.size();

    do{
            cout << "Digite um numero: ";
            cin >> x;

            numeros.push_back(x);

            cout << "Deseja continuar? (s/n)";
            cin >> continuar;

    }while(continuar == "s");

        cout << "Saiu";




return 0;
}

 

 

 

o que tem de errado e o que tem que acrescentar para eu fazer?

(isso eh um pequeno codigos fiz pelo que entendi)

  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

tem que fazer o case switch para cada opção, tipo:

 int opcao;
  cin >> opcao;
  switch (opcao)
  {
      case 1:
      break;
      case 2:
      break;
      case 3:
      break;
      case 4:
      break;
      case 5:
      break;
      case 6:
      break;
 	  case 7:
      break;
	  case 8:
      break;	
      case 9:
      break;
      case 0:
      break;
  }
 

 

  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

antes ou depois do ( do while)

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
27 minutos atrás, Berus-kun disse:

antes ou depois do ( do while)

Depois

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Flávio Pedroza olha eu fiz, mas fiz como se fosse cout e cin, pois não aprendi esse negocio ainda,  case  e break é quase a mesma coisa que cin e cout, certo?

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
2 horas atrás, Berus-kun disse:

@Flávio Pedroza olha eu fiz, mas fiz como se fosse cout e cin, pois não aprendi esse negocio ainda,  case  e break é quase a mesma coisa que cin e cout, certo?

Não, são coisas completamente diferentes. switch/case é equivalente a condicionais if/else.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Flávio Pedroza assim oh:  

 

 

#include<iostream>
#include<vector>

using namespace std;

int main(){

int x;
string continuar;

vector<int> numeros;

    numeros.size();

    do{
            cout << "Digite um numero: ";
            cin >> x;

            numeros.push_back(x);

            cout << "Deseja continuar? (s/n)";
            cin >> continuar;

    }while(continuar == "s");

        cout << "Saiu";
        
        
        
   int opcao;
  cin >> opcao;
  switch (opcao) {
      case 1:
      cout <<"Se digitar 1  1: Imprimir o somatório de seus elementos" << endl;
      break;
      cout <<"Se digitar 2: Imprimir a média de seus elementos" << endl;
      case 2:
     cout << "Se digitar 2: Imprimir a média de seus elementos" << endl;
     break;
      case 3:
      cout <<"Se digitar 3: Imprimir a média e o somatório" << endl;
      break;
      case 4:
      cout <<"Se digitar 4: Substituir por zero todos os valores negativos e imprimir a média" << endl;
      break;
      case 5:
    cout <<"Se digitar 5: Substituir por zero todos os valores repetidos e imprimir a média e o somatório" << endl;
    break;
      case 6:
     cout <<"Se digitar 6:  mostrar o vetor ordenado" << endl;
      break;
       case 0:
       cout <<"Se digitar 0: Sair da aplicação" << endl;
      break;
  }
 
 

 

 

 

return 0;
}
 

  • Curtir 2

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Flávio Pedroza tá certo assim né, ou tem que adicionar mais alguma coisa?

adicionado 36 minutos depois

@Flávio Pedroza não deu certo, então fiz isso aqui:

 

#include<iostream>
#include<vector>

using namespace std;

int main(){
int x;
string continuar;
 int opcao;
 cout << "Selecione uma opcao: " << endl;
 cout <<"Se digitar [1]  : Imprimir o somatório de seus elementos,      " << endl;
 cout <<"Se digitar [2]: Imprimir a média de seus elementos" << endl;
 cout <<"Se digitar [3]: Imprimir a média e o somatório" << endl;
 cout <<"Se digitar [4]: Substituir por zero todos os valores negativos e imprimir a média" << endl;
 cout <<"Se digitar [5]: Substituir por zero todos os valores repetidos e imprimir a média e o somatório" << endl;
 cout <<"Se digitar [6]:  mostrar o vetor ordenado" << endl;
 cout <<"Se digitar [0]: Sair da aplicação" << endl;

  
  cin >> opcao;
  switch (opcao) {

vector<int> numeros;

    numeros.size();

    do{
            cout << "Digite um numero: ";
            cin >> x;

            numeros.push_back(x);

            cout << "Deseja continuar? (s/n)";
            cin >> continuar;

    }while(continuar == "s");

        cout << "Saiu";
        
        
    
      case 1:
      break;
      case 2:
     break;
      case 3:
      break;
      case 4:
      break;
      case 5:
     break;
      case 6:
      break;
       case 0:
      break;
  }
 
 

 

 

 

return 0;
}
 

 

 

(não aprendemos switch, mas nada como vídeo aula pra ajudar um pouco) então desse jeito ficar melhor?

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Acredito que a forma abaixo esteja mais próxima do pedido no exercício.

#include <vector>
#include <iostream>

using namespace std;

int main(){

int x;
string continuar;

vector<int> numeros;

    numeros.size();

    do{
            cout << "Digite um numero: ";
            cin >> x;

            numeros.push_back(x);

            cout << "Deseja continuar? (s/n)";
            cin >> continuar;

    }while(continuar == "s");

        cout << "Saiu" << endl;
        
        
        
   int opcao;
   int soma;
   vector<int>::iterator it;
   do
   {
        cout << "Escolha a opção" << endl;
        cout <<"1: Imprimir o somatório de seus elementos" << endl;
        cout <<"2: Imprimir a média de seus elementos" << endl;
        cout <<"3: Imprimir a média e o somatório" << endl;
        cout <<"4: Substituir por zero todos os valores negativos e imprimir a média" << endl;
        cout <<"5: Substituir por zero todos os valores repetidos e imprimir a média e o somatório" << endl;
        cout<<"6:  mostrar o vetor ordenado" << endl;
        cout <<"0: Sair da aplicação" << endl;
        cin >> opcao;
        cin.ignore();
        switch (opcao) {
            case 1: // SOMA
            soma = 0;
            for (it = numeros.begin(); it != numeros.end(); it++)
            {
               soma += *it; 
            }
            cout << "A soma é: " << soma << endl;
            cout << "Pressione enter para continuar" << endl;
            cin.get();
           
            break;
            
            case 2:
            break;
           
            case 3:
            break;
            
            case 4:
            break;
            
            case 5:
            break;
            
            case 6:
            break;
     
           case 0:
           break;
        } 
   }
   while (opcao != 0);
   cout << "Tchau!";
 
 return 0;
}

Veja se consegue fazer o resto (média, ordenar, etc.).

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você também pode usar um segundo loop para validar as opções

 

#include <iostream>
#include <tchar.h>

using namespace std;

int main()
{
    _tsetlocale(LC_ALL, "portuguese");
    bool fim = false;

    while ( !fim )
    {
        cout << endl << "------------------" << endl;
        cout << "Escolha a opção" << endl;
        cout << "1: Imprimir o somatório de seus elementos" << endl;
        cout << "2: Imprimir a média de seus elementos" << endl;
        cout << "3: Imprimir a média e o somatório" << endl;
        cout << "4: Substituir por zero todos os valores negativos e imprimir a média" << endl;
        cout << "5: Substituir por zero todos os valores repetidos e imprimir a média e o somatório" << endl;
        cout << "6: mostrar o vetor ordenado" << endl;
        cout << "0: Sair da aplicação" << endl;

        int opc;
        cin >> opc;

        while ( opc != 1 && opc != 2 && opc != 3 && opc != 4 && opc != 5 && opc != 6 && opc != 0 )
        {
            cout << "Opcao invalida! Escolha a opcao: ";
            cin >> opc;
        }

        if ( opc == 1 )
        {
            cout << "opcao 1";
        }
        else if ( opc == 2 )
        {
            cout << "opcao 2";
        }
        else if ( opc == 3 )
        {
            cout << "opcao 3";
        }
        else if ( opc == 4 )
        {
            cout << "opcao 4";
        }
        else if ( opc == 5 )
        {
            cout << "opcao 5";
        }
        else if ( opc == 6 )
        {
            cout << "opcao 6";
        }
        else if ( opc == 0 )
        {
            fim = true;
        }
    }

    return 0;
}

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

_

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Flávio Pedrozafiz a dois assim olha:

 int media;
 


            case 2:
            media = 0
            for(it = numeros.begin(); it != numeros.end(), it++)                              
          {
              media %= *it;
          }
           
           cout << "A media é: " << media << enl;
           cout << "Pressione enter para continuar" << endl;
           cin.get();
            break;

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não está certo. Para calcular a média você soma os elementos e divide pela quantidade de elementos:

case 2:
            media = 0
            for(it = numeros.begin(); it != numeros.end(), it++)                              
          {
              media += *it;
          }
           media = media / numeros.size();
           cout << "A media é: " << media << enl;
           cout << "Pressione enter para continuar" << endl;
           cin.get();
            break;
  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Flávio Pedroza isso:

 

#include <vector>
#include <iostream>

using namespace std;

int main(){

int x;
string continuar;

vector<int> numeros;

    numeros.size();

    do{
            cout << "Digite um numero: ";
            cin >> x;

            numeros.push_back(x);

            cout << "Deseja continuar? (s/n)";
            cin >> continuar;

    }while(continuar == "s");

        cout << "Saiu" << endl;
        
        
        
   int opcao;
   int soma;
   int media;
   vector<int>::iterator it;
   do
   {
        cout << "Escolha a opção" << endl;
        cout <<"1: Imprimir o somatório de seus elementos" << endl;
        cout <<"2: Imprimir a média de seus elementos" << endl;
        cout <<"3: Imprimir a média e o somatório" << endl;
        cout <<"4: Substituir por zero todos os valores negativos e imprimir a média" << endl;
        cout <<"5: Substituir por zero todos os valores repetidos e imprimir a média e o somatório" << endl;
        cout<<"6:  mostrar o vetor ordenado" << endl;
        cout <<"0: Sair da aplicação" << endl;
        cin >> opcao;
        cin.ignore();
        switch (opcao) {
            case 1: // SOMA
            soma = 0;
            for (it = numeros.begin(); it != numeros.end(); it++)
            {
               soma += *it; 
            }
            cout << "A soma é: " << soma << endl;
            cout << "Pressione enter para continuar" << endl;
            cin.get();
           
            break;
            cin >> media;
        cin.ignore();
        switch (media)
            case 2:
            media = 0
            for(it = numeros.begin(); it != numeros.end(), it++)                              
          {
              media += *it;
          }
           media = media / numeros.size();
           cout << "A media é: " << media << enl;
           cout << "Pressione enter para continuar" << endl;
           cin.get();
            break;
            break;
           
            case 3:
            break;
            
            case 4:
            break;
            
            case 5:
            break;
            
            case 6:
            break;
     
           case 0:
           break;
        } 
   }
   while (opcao != 0);
   cout << "Tchau!";
 
 return 0;
}

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Berus-kun    ficou bom , apenas que não precisa desse segundo switch , então seu código com algumas modificações poderia ser assim  :

#include <vector>
#include <locale.h>
#include <iostream>
using namespace std;
int main(){
    system("color ec");
    setlocale(LC_ALL,"portuguese");
    int x;
    string continuar;
    vector<int> numeros;
    numeros.size();
    do{
        cout<<"Digite um numero: ";
        cin>>x;
        numeros.push_back(x);
        cout<<"Deseja continuar? (s/n)";
        cin>>continuar;
    }while(continuar == "s");
    cout<<"\nSaiu\n"<<endl;
    int opcao,soma,media;
    vector<int>::iterator it;
    do{
        cout<<"   Escolha a opção"                           <<endl;
        cout<<"1: Imprimir o somatório de seus elementos"    <<endl;
        cout<<"2: Imprimir a média de seus elementos"        <<endl;
        cout<<"3: Imprimir a média e o somatório"            <<endl;
        cout<<"4: Substituir por zero todos os valores negativos\n";
        cout<<"   e imprimir a média"                        <<endl;
        cout<<"5: Substituir por zero todos os valores repetidos\n";
        cout<<"   e imprimir a média e o somatório"          <<endl;
        cout<<"6: mostrar o vetor ordenado"                  <<endl;
        cout<<"0: Sair da aplicação"                         <<endl;
        cin >> opcao;
        cin.ignore();
        switch (opcao){
        case 1: // SOMA
            soma = 0;
            for (it = numeros.begin(); it != numeros.end(); it++){
                soma += *it;
            }
            cout<<"A soma é: "<<soma<<endl;
            cout<<"Pressione enter para continuar"<<endl;
            cin.get();
            break;
            //switch (media){/* não precisa desse switch */
        case 2:
            soma = 0;/* faltou um ponto e vírgula */
            for(it = numeros.begin(); it != numeros.end(); it++){/* vírgula no lugar de ponto e vírgula */
                soma += *it;
            }
            media = soma / numeros.size();
            cout<<"A media é: "<<media<<endl;/* faltou o d de endl */
            cout<<"Pressione enter para continuar"<<endl;
            cin.get();
            break;
        case 3:
            break;
        case 4:
            break;
        case 5:
            break;
        case 6:
            break;
        case 0:
            break;
        }
    }while(opcao != 0);
    cout<<"\n\nTchau !\n\n\n";
    return 0;
}

 

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 15/09/2019 às 22:44, devair1010 disse:

@Berus-kun    ficou bom , apenas que não precisa desse segundo switch , então seu código com algumas modificações poderia ser assim  :


#include <vector>
#include <locale.h>
#include <iostream>
using namespace std;
int main(){
    system("color ec");
    setlocale(LC_ALL,"portuguese");
    int x;
    string continuar;
    vector<int> numeros;
    numeros.size();
    do{
        cout<<"Digite um numero: ";
        cin>>x;
        numeros.push_back(x);
        cout<<"Deseja continuar? (s/n)";
        cin>>continuar;
    }while(continuar == "s");
    cout<<"\nSaiu\n"<<endl;
    int opcao,soma,media;
    vector<int>::iterator it;
    do{
        cout<<"   Escolha a opção"                           <<endl;
        cout<<"1: Imprimir o somatório de seus elementos"    <<endl;
        cout<<"2: Imprimir a média de seus elementos"        <<endl;
        cout<<"3: Imprimir a média e o somatório"            <<endl;
        cout<<"4: Substituir por zero todos os valores negativos\n";
        cout<<"   e imprimir a média"                        <<endl;
        cout<<"5: Substituir por zero todos os valores repetidos\n";
        cout<<"   e imprimir a média e o somatório"          <<endl;
        cout<<"6: mostrar o vetor ordenado"                  <<endl;
        cout<<"0: Sair da aplicação"                         <<endl;
        cin >> opcao;
        cin.ignore();
        switch (opcao){
        case 1: // SOMA
            soma = 0;
            for (it = numeros.begin(); it != numeros.end(); it++){
                soma += *it;
            }
            cout<<"A soma é: "<<soma<<endl;
            cout<<"Pressione enter para continuar"<<endl;
            cin.get();
            break;
            //switch (media){/* não precisa desse switch */
        case 2:
            soma = 0;/* faltou um ponto e vírgula */
            for(it = numeros.begin(); it != numeros.end(); it++){/* vírgula no lugar de ponto e vírgula */
                soma += *it;
            }
            media = soma / numeros.size();
            cout<<"A media é: "<<media<<endl;/* faltou o d de endl */
            cout<<"Pressione enter para continuar"<<endl;
            cin.get();
            break;
        case 3:
            break;
        case 4:
            break;
        case 5:
            break;
        case 6:
            break;
        case 0:
            break;
        }
    }while(opcao != 0);
    cout<<"\n\nTchau !\n\n\n";
    return 0;
}

opa desculpa a demora ai, valeu

 

  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 22/09/2019 às 11:23, Berus-kun disse:

 

eu fiz o jeto...dai um colega meu fe quase a mesma coisa e eu meio que entendi. obrigado pela ajuda...estou entendo vetores e agr estou entrando em funçoes

  • Curtir 1

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

×
×
  • Criar novo...