Ir ao conteúdo
  • Cadastre-se
thalesqueiroz

C++ Aplicação de Arrays e Funções em matrizes

Recommended Posts

Alguém poderia me ajudar a resolver  esse problema utilizando funções e arrays. 

#include <iostream>
#include <stdlib.h>
#include <iomanip>

using namespace std;

main()
{
    int i= 0;
    int j=0;
    float S[12][4] = {
        {5, 5, 5, 5},
        {0, 0, 0, 0},
        {0, 0, 0, 0},
        {0, 0, 0, 0},
        {0, 0, 0, 0},
        {0, 0, 0, 0},
        {0, 0, 0, 0},
        {0, 0, 0, 0},
        {0, 0, 0, 0},
        {0, 0, 0, 0},
        {0, 0, 0, 0},
        {0, 0, 0, 0}
       
    };

    float I[12][4] = {
        {0.5,   0.4,     0,    0},
        {1,     0.7,     0,    0},
        {2,     2,       0,    0},
        {3,     2,       0,    0},
        {3.5,   4,       0,    0},
        {2.5,   3.5,     0,    0},
        {2,     3,       0,    0},
        {1.25,  2.5,     0,    0},
        {1.25,  1.3,     0,    0},
        {0.75,  1.2,     0,    0},
        {1.75,  1,       0,    0},
        {1,     0.7,     0,    0}
    };

    float Q[12][4] = {
        {0.9,   4,      0,       0},
        {0,     0,      0,       0},
        {0,     0,      1.1,     7},
        {3,     0,      4,       7},
        {3,     0.1,    4,       7},
        {3,     4,      4,       7},
        {3,     4,      4,       7},
        {3,     4,      4,       7},
        {3,     4,      4,       7},
        {3,     4,      4,       7},
        {2.6,   2.5,    2.5,     5.1},
        {1,     0.7,    0.7,     1.7}
    };

    float M[4][4] = {
        {-1, 0, 0,  0},
        {0, -1, 0,  0},
        {0, 1,  -1, 0},
        {1, 0,  1,  -1}
    };
    float soma;
    
    for(int j = 0;  j <= 11; j++)
        { // iterações de meses
           
        for(int i = 0; i <=3; i++)
            { // iterações de reservatórios
             soma = 0;

            for(int k = 0; k <=3; k++) // multiplicação M * Q[j]
                
                {
                soma +=  Q[j][k]  * M[k];
                }
            
            S[j+1] = S[j] + I[j] + soma;
            
            }
                
        }

    cout << "Reservatorios " << setw(15) << "1" << setw(15)  << "2" << setw(15) << "3" << setw(15) << "4" << endl;
    for(int i = 0; i < 12; i++)
        cout << "mes " << i << setw(25) << S[0] << setw(15)  << S[1] << setw(15) << S[2] << setw(15) << S[3] << endl;


    return 0;
}

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@thalesqueiroz     o que você quer que o programa faça ?   parece tudo em ordem , mas para postar seu código é melhor usar o botão   <>   que está lá na barra de ferramentas da janela de responder, pois sem ele seu código fica faltando alguns caracteres como os [ i ], no mais funcionou normal .

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

O código está normal, só que eu tenho que refaze-lo utilizando funções e arrays em conjunto, e eu não estou conseguido.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

:rezando:

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@thalesqueiroz    ha quem diga que um array seja igual a uma matriz com apenas uma dimensão,  sendo que a matriz  contenha mais de uma dimensão ( coluna ) ,  então no seu código você já tem 4 matriz e se você quiser usar array ( vetor ) então precisa usar 4 vetor para substituir cada matriz, e não precisa usar função , só se for para você treinar ,  então você colocaria uma função lá no inicio para fazer os cálculos , usando esse mesmo código que faz os cálculos , apenas que dentro de uma função .

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites
46 minutos atrás, devair1010 disse:

@thalesqueiroz    ha quem diga que um array seja igual a uma matriz com apenas uma dimensão,  sendo que a matriz  contenha mais de uma dimensão ( coluna ) ,  então no seu código você já tem 4 matriz e se você quiser usar array ( vetor ) então precisa usar 4 vetor para substituir cada matriz, e não precisa usar função , só se for para você treinar ,  então você colocaria uma função lá no inicio para fazer os cálculos , usando esse mesmo código que faz os cálculos , apenas que dentro de uma função .

voce teria algum código ou exemplo de como é realizada essa operação?

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@thalesqueiroz    para substituir as matriz por vetor você pode fazer assim :

float vetor_S1[12]={
  5,
  0, 
  0, 
  0,
  0, 
  0, 
  0,
  0, 
  0, 
  0,
  0,
  0  }
float vetor_S2[12]={
  5,
  0, 
  0, 
  0,
  0, 
  0, 
  0,
  0, 
  0, 
  0,
  0,
  0  }
float vetor_S3[12]={
  5,
  0, 
  0, 
  0,
  0, 
  0, 
  0,
  0, 
  0, 
  0,
  0,
  0  }
float vetor_S4[12]={
  5,
  0, 
  0, 
  0,
  0, 
  0, 
  0,
  0, 
  0, 
  0,
  0,
  0  }

assim cada vetor substitui uma coluna da matriz, e assim para as outras matriz e depois na hora de calcular precisa adaptar para que funcione com esses vetores

  • 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

×