Exercícios de vetor e matriz

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

Exercícios de vetor e matriz

Mensagem  BinaryRoad em 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
avatar
BinaryRoad
Admin

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

Ver perfil do usuário http://binaryroad.forumais.com

Voltar ao Topo Ir em baixo

Re: Exercícios de vetor e matriz

Mensagem  Renancr em 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)
avatar
Renancr

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

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Exercícios de vetor e matriz

Mensagem  C++MasTeR em 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
avatar
C++MasTeR

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

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Exercícios de vetor e matriz

Mensagem  Renancr em 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
[Você precisa estar registrado e conectado para ver esta imagem.]
avatar
Renancr

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

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Re: Exercícios de vetor e matriz

Mensagem  Conteúdo patrocinado


Conteúdo patrocinado


Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum