Resolucao Do Grupo 4
/*
Vetor aleatório com 50 posições de números inteiros que:
- Localiza o maior elemento;
- Divide os elementos pelo maior valor; e
- Mostra o vetor resultante após os cálculos.
 
Programadores: José Carlos, Kíssila e Marcelo. -GRUPO 4-
Professora: Msc: Cláudia Akemi Izeki.
maio de 2010
*/
#include <iostream>
using namespace std;
 
int main()
{
    system ("title VETOR");
 
    int Opcao1, Opcao2, Posicao, Vetor[50], Maior;   
    // Opcao do menu, Opcao do do-while, indice, Vetor incial, vetor de resultado, maior valor
    float Calculo[50];
    bool Marca1, Marca2;
 
    do{ //laço que calcula  opcoes sobre novo  vetor.
 
          cout << "\nMENU:\n1- Para localizar o maior elemento.\n2- Para dividir os elementos do vetor pelo maior valor." ;
          cout << "\n0- Para Sair."; // menu feito para facilitar a intereçao com o usuario
          cin  >> Opcao1;    
 
          while (Opcao1 != 1 && Opcao1 != 2 && Opcao1 != 0)// Verifica a entrada 
            {
                cout << "\nO numero " << Opcao1 << " nao e uma entrada valida " << " \n\nPor favor digite uma entrada valida! ";
                cin  >> Opcao1;
            }
 
          for ( Posicao = 0; Posicao < 50; Posicao++)
               Vetor[Posicao] = rand()%100;
 
          Marca1 = false;
          Marca2 = false; 
 
          do{ //laço que calcula outras opcoes sobre o mesmo vetor.            
 
                  if (Opcao1 == 1)
                    {
 
                         Maior = Vetor[0];//calculo do maior elemento
                         for ( Posicao = 1; Posicao <50; Posicao++)
                            {
                                if(Maior < Vetor[Posicao])
                                Maior = Vetor[Posicao];
                            }
                         cout << "\nO maior numero do vetor e " << Maior << "\n";
 
                         if (Marca1 == false &&  Marca2 == false)//MENU
                            {
                                cout << "\nMENU:\n2- Para dividir os elementos do vetor pelo maior valor." ; 
                                cout << "\n3- Para formar outro vetor\n0- Para Sair."; 
                                cin  >> Opcao2;
 
                                while (Opcao2 != 2 && Opcao2 != 3  && Opcao2 != 0)// Verifica a entrada 
                                  {
                                    cout << "\nO numero " << Opcao2 << " nao e uma entrada valida " << " \n\nPor favor digite uma entrada valida! ";
                                    cin  >> Opcao2;                         
                                  }
                                if (Opcao2 == 2)//faz com que ao voltar no laço verifique a outra opcao
                                Opcao1 = 2;
                           }
                           else //MENU
                             {
                                 cout << "\nMENU:\n3- Para formar outro vetor\n0- Para Sair."; 
                                 cin  >> Opcao2;
 
                                 while (Opcao2 != 2 && Opcao2 != 3  && Opcao2 != 0)// Verifica a entrada 
                                  {
                                     cout << "\nO numero " << Opcao2 << " nao e uma entrada valida " << " \n\nPor favor digite uma entrada valida! ";
                                     cin  >> Opcao2;                         
                                  }
 
                             }     
                         Marca1 = true;  
                    }
                    else if (Opcao1 == 2) 
                     {
                         //calculo de divisao de todos os elementos pelo maior
                         cout << "\nApos dividir todos os valores do vetor pelo maior os resultados sao: ";
                         for (Posicao = 0; Posicao < 50 ; Posicao++)
                           {
                              Calculo[Posicao] = Vetor[Posicao] / Maior;
 
                              if (Posicao % 10 == 0)//da quebra de linha de 10 em 10 elementos                                                       
                                cout << "\n"  << Calculo[Posicao] << "  " ;
                                else 
                                cout << Calculo[Posicao] << "  ";
                           }
 
                         if (Marca1 == false &&  Marca2 == false)//MENU
                          {
                              cout << "\nMENU:\n1- Para localizar o maior elemento. " ;
                              cout << "\n3- Para formar outro vetor\n0- Para Sair."; // menu feito para facilitar a intereçao com o usuario
                              cin  >> Opcao2;
 
                              while (Opcao2 != 1 && Opcao2 != 3  && Opcao2 != 0)// Verifica a entrada 
                                {
                                    cout << "\nO numero " << Opcao2 << " nao e uma entrada valida " << " \n\nPor favor digite uma entrada valida! ";
                                    cin  >> Opcao2;
 
                                }
                             if(Opcao2 == 1)//faz com que ao voltar no laço verifique a outra opcao
                             Opcao1 = 1;
                          }
                          else //MENU                         
                            {
                                cout << "\nMENU:\n3- Para formar outro vetor\n0- Para Sair."; 
                                cin  >> Opcao2;
 
                                while (Opcao2 != 1 && Opcao2 != 3  && Opcao2 != 0)// Verifica a entrada 
                                   {
                                      cout << "\nO numero " << Opcao2 << " nao e uma entrada valida " << " \n\nPor favor digite uma entrada valida! ";
                                      cin  >> Opcao2;
                                   }
 
                            }
 
                             Marca2 = true;
                     } 
                     else if (Opcao1 == 0) 
                     Opcao2=0;
 
            } while((Opcao2 == 2 || Opcao2 == 1)&&(Marca1==true || Marca2==true ));
            // fecha o laço "do-while " que calcula outras opcoes sobre o mesmo vetor.
      } while(Opcao2 == 3);
      // fecha o laço "do-while " que calcula  opcoes sobre novo  vetor.
 
      if (Opcao2 == 0)
          cout << "SAINDO......";
 
    system ("pause>0");
    return 0;
}

Correção pela professora

  • O programa era mais simples, mas gostei do empenho do grupo. Não era necessário o uso do menu;
  • O que acontece se eu escolher a opção 2 (dividir os elementos do vetor pelo maior número) antes da 1 (calcular o maior elemento)?
// Código elaborado pela professora
#include<iostream>
using namespace std;
 
int main()
{
    int vet[50], i, maior;
 
    for (i=0; i<50; i++)
        vet[i] = rand()%100; // gera números aleatórios de 0 a 99
 
    // Calculando o maior elemento do vetor
    maior = vet[0];
    for (i=1; i<50; i++)
        if(vet[i] > maior)
             maior = vet[i];
    cout << "Maior elemento do vetor: " << maior;
 
    // Dividindo todos os elementos do vetor pelo maior
    for (i=0; i<50; i++)
        vet[i] = vet[i] / maior;
 
    cout << "Vetor alterado: ";
    // Impressão do vetor alterado
    for (i=1; i<50; i++)
        cout << vet[i] << " ";
 
    system("pause");
    return 0;
}

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License