Binary Road
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Exercícios de vetor e matriz

3 participantes

Ir para baixo

Exercícios de vetor e matriz Empty Exercícios de vetor e matriz

Mensagem  BinaryRoad Qui 29 Abr 2010 - 23:27

1) Implemente um programa que ordene um vetor de 10 posições em ordem decrescente.

2) Implemente um programa que implemente uma matriz 4x4 de números interiros. Verifique se esta matriz forma um quadrado mágico, um quadrado mágico é formado quando a soma dos elementos de casa linha é igual a soma dos elementos de cada coluna e é igual a soma dos elementos da diagonal principal e éigual a soma da diagonal secundaria.
34
16 3 2 13 34
5 1011 8 34
96 7 12 34
415 14 1 34
34 3434 3434
BinaryRoad
BinaryRoad
Admin

Mensagens : 30
Data de inscrição : 06/03/2010

https://binaryroad.forumeiros.com

Ir para o topo Ir para baixo

Exercícios de vetor e matriz Empty Re: Exercícios de vetor e matriz

Mensagem  Renancr Sex 30 Abr 2010 - 14:04

BinaryRoad escreveu:1) Implemente um programa que ordene um vetor de 10 posições em ordem decrescente.

2) Implemente um programa que implemente uma matriz 4x4 de números interiros. Verifique se esta matriz forma um quadrado mágico, um quadrado mágico é formado quando a soma dos elementos de casa linha é igual a soma dos elementos de cada coluna e é igual a soma dos elementos da diagonal principal e éigual a soma da diagonal secundaria.
34
16 3 2 13 34
5 1011 8 34
96 7 12 34
415 14 1 34
34 3434 3434

1) Implemente um programa que ordene um vetor de 10 posições em ordem decrescente.
Código:
#include <iostream>
using namespace std;

void main()
{
   int x[11], i = 0, replace=0, cont = 0;
   for(i = 0; i < 10; i++)
   {
      cout<< "Digite " << i+1 << " numero.\n";
      cin>> x[i];
   }
   cout<< endl << endl;
   while(cont <= 10)
   {
      cont++;
      for(i = 0; i < 11; i++)
         while(x[i] < x[i+1])
         {
            if(i < 10)
            {
               replace = 0;
               replace= x[i];
               x[i]=x[i+1];
               x[i+1]=replace;
            }
            else
               x[i+1]=x[i];
         }
   }
   for(i = 0; i < 10; i++)
      cout<< x[i] << endl;
}

2) Implemente um programa que implemente uma matriz 4x4 de números interiros. Verifique se esta matriz forma um quadrado mágico, um quadrado mágico é formado quando a soma dos elementos de casa linha é igual a soma dos elementos de cada coluna e é igual a soma dos elementos da diagonal principal e éigual a soma da diagonal secundaria.
Código:
#include <iostream>
using namespace std;

void main()
{
   int mat[4][4], vetl[4], vetc[4], vetx[2], l=0, c=0, n=0;
   for(l=0; l<4; l++)
   {
      vetl[l]=0;
      for(c=0; c<4; c++)
      {
         cout<<"Insira um valor para o cubo maico, linha " << l+1 << " coluna " << c+1 << endl;
         cin>>mat[l][c];
         vetl[l]+= mat[l][c];
      }
   }
   for(c=0; c<4; c++)
   {
      vetc[c]=0;
      for(l=0; l<4; l++)
         vetc[c]+= mat[l][c];
   }
   for(c=0; c<1; c++)
   {
      vetx[c]=0;
      for(l=0; l<4; l++)
         vetx[c]+= mat[l][l];
   }
   for(c=1; c<2; c++)
   {
      vetx[c]=0;
      n=4;
      for(l=0; l<4; l++)
      {
         vetx[c]+= mat[l][n-1];
         n--;
      }
   }
   for(l=1; l<2; l++)
      cout<< "\n\n\t\t\t\t" << vetx[l] << endl;
   for(l=0; l<4; l++)
   {
      for(c=0; c<4; c++)
         cout<< mat[l][c] << "\t";
      cout<< vetl[l];
      cout<< endl;
   }
   for(l=0; l<4; l++)
      cout<< vetc[l] << "\t";
   for(l=0; l<1; l++)
      cout<< vetx[l] << endl;
}


Última edição por Renancr em Qua 5 maio 2010 - 0:00, editado 1 vez(es)
Renancr
Renancr

Mensagens : 118
Data de inscrição : 08/03/2010

Ir para o topo Ir para baixo

Exercícios de vetor e matriz Empty Re: Exercícios de vetor e matriz

Mensagem  C++MasTeR Seg 3 maio 2010 - 10:10

Renancr escreveu:

1) Implemente um programa que ordene um vetor de 10 posições em ordem decrescente.
Código:
#include <iostream>
using namespace std;

void main()
{
   int x[11], i = 0, replace=0, cont = 0;
   for(i = 0; i < 10; i++)
   {
      cout<< "Digite " << i+1 << " numero.\n";
      cin>> x[i];
   }
   cout<< endl << endl;
   while(cont <= 10)
   {
      cont++;
      for(i = 0; i < 11; i++)
         while(x[i] < x[i+1])
         {
            if(i < 10)
            {
               replace = 0;
               replace= x[i];
               x[i]=x[i+1];
               x[i+1]=replace;
            }
            else
               x[i+1]=x[i];
         }
   }
   for(i = 0; i < 10; i++)
      cout<< x[i] << endl;
}

tem um erro de logica nesse seu codigo..
voce inicializa o vetor com 11 posiçoes e usa apenas 10.. deixando o ultimo com "LIXO" e na hora de organizar em ordem decrescente esse "LIXO" acaba sendo imprimido no programa
aqui esta o seu codigo corrigido

Código:

#include<iostream>
using namespace std;

void main()
{
    int x[10], i, replace=0,cont = 0;
   for(i = 0; i < 10; i++)
   {
      cout<< "Digite " << i+1 << " numero.\n";
      cin>> x[i];
   }
   cout<< endl << endl;
   while(cont <= 10)
  {
      cont++;
      for(i = 0; i < 9; i++)
         while(x[i] < x[i+1])//Poderia usar o IF que é mais apropriado
         {
               replace= x[i];
               x[i]=x[i+1];
               x[i+1]=replace;
          }
}
   for(i = 0; i < 10; i++)
      cout<< x[i] << endl;
}
existe varias maneiras de fazer ordenação.. irei postar uma que eu gosto pois tem uma melhor visualização

Código:

#include<iostream>
using namespace std;

void main()
{
    int i,x,valor,vet[10];
      for(i=0;i<10;i++)
      {
        cout<<"Entre com o "<<i+1<<"o valor: ";
        cin>>vet[i];
      }

        for(i=0;i<10;i++)
            for(x=0;x<10;x++)
              if(vet[i]<vet[x])
              {
                  valor=vet[i];
                  vet[i]=vet[x];
                  vet[x]=valor;
              }

              for(i=0;i<10;i++)
                cout<<vet[i]<<"  ";
}

issu ai.. continue com o bom trabalho
C++MasTeR
C++MasTeR

Mensagens : 8
Data de inscrição : 20/04/2010
Localização : Microsoft Corporation

Ir para o topo Ir para baixo

Exercícios de vetor e matriz Empty Re: Exercícios de vetor e matriz

Mensagem  Renancr Qua 5 maio 2010 - 0:09

C++MasTeR escreveu:
Renancr escreveu:

1) Implemente um programa que ordene um vetor de 10 posições em ordem decrescente.
Código:
#include <iostream>
using namespace std;

void main()
{
   int x[11], i = 0, replace=0, cont = 0;
   for(i = 0; i < 10; i++)
   {
      cout<< "Digite " << i+1 << " numero.\n";
      cin>> x[i];
   }
   cout<< endl << endl;
   while(cont <= 10)
   {
      cont++;
      for(i = 0; i < 11; i++)
         while(x[i] < x[i+1])
         {
            if(i < 10)
            {
               replace = 0;
               replace= x[i];
               x[i]=x[i+1];
               x[i+1]=replace;
            }
            else
               x[i+1]=x[i];
         }
   }
   for(i = 0; i < 10; i++)
      cout<< x[i] << endl;
}

tem um erro de logica nesse seu codigo..
voce inicializa o vetor com 11 posiçoes e usa apenas 10.. deixando o ultimo com "LIXO" e na hora de organizar em ordem decrescente esse "LIXO" acaba sendo imprimido no programa
aqui esta o seu codigo corrigido

Código:

#include<iostream>
using namespace std;

void main()
{
    int x[10], i, replace=0,cont = 0;
   for(i = 0; i < 10; i++)
   {
      cout<< "Digite " << i+1 << " numero.\n";
      cin>> x[i];
   }
   cout<< endl << endl;
   while(cont <= 10)
  {
      cont++;
      for(i = 0; i < 9; i++)
         while(x[i] < x[i+1])//Poderia usar o IF que é mais apropriado
         {
               replace= x[i];
               x[i]=x[i+1];
               x[i+1]=replace;
          }
}
   for(i = 0; i < 10; i++)
      cout<< x[i] << endl;
}
existe varias maneiras de fazer ordenação.. irei postar uma que eu gosto pois tem uma melhor visualização

Código:

#include<iostream>
using namespace std;

void main()
{
    int i,x,valor,vet[10];
      for(i=0;i<10;i++)
      {
        cout<<"Entre com o "<<i+1<<"o valor: ";
        cin>>vet[i];
      }

        for(i=0;i<10;i++)
            for(x=0;x<10;x++)
              if(vet[i]<vet[x])
              {
                  valor=vet[i];
                  vet[i]=vet[x];
                  vet[x]=valor;
              }

              for(i=0;i<10;i++)
                cout<<vet[i]<<"  ";
}

issu ai.. continue com o bom trabalho

É agora que vc falou da para ver que da para simplificar e melhorar a lógica, mas não vou editar aquele não, vou deichar aquele de exemplo e vou postar um novo repply.
Vlw mestre Yoda!! tongue
[Tens de ter uma conta e sessão iniciada para poderes visualizar esta imagem]
Renancr
Renancr

Mensagens : 118
Data de inscrição : 08/03/2010

Ir para o topo Ir para baixo

Exercícios de vetor e matriz Empty Re: Exercícios de vetor e matriz

Mensagem  Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos