Autor Tópico: Criando uma função matricial em linguagem C  (Lida 5315 vezes)

Offline LucasUFG

  • Usuário Ubuntu
  • *
  • Mensagens: 1
    • Ver perfil
Criando uma função matricial em linguagem C
« Online: 17 de Outubro de 2013, 15:47 »
 Usuários do Fórum Ubuntu

 Tenho uma grande dúvida em respeito a tal função matricial, o que quero e fazer em linguagem C uma função capaz de criar uma matriz de ordem mxn com m e n inteiros >0, não tenho a minina ideia de como fazer isso, gostaria de algumas dicas e sugestões dos usuários do fórum ubuntu.

 Att

Lucas Xavier

Aguardo respostas

Offline irtigor

  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 4.344
  • Delete, delete, delete!
    • Ver perfil
Re: Criando uma função matricial em linguagem C
« Resposta #1 Online: 17 de Outubro de 2013, 18:57 »
Seria melhor visto, se desse uma olhada no vasto material disponível por ai, e depois aparecesse com duvidas mais especificas. De qualquer forma, que tipo de ajuda - exatamente - você espera?

lucaspittas

  • Visitante
Re: Criando uma função matricial em linguagem C
« Resposta #2 Online: 17 de Outubro de 2013, 19:10 »
Eu já dei uma olhada, um dos problemas seria como definir uma função para se criar uma matriz de ordem mxn, pois para declarar como uma variavel sua dimensão deve ser finita, e logo tenho essa dúvida como criar uma função em c que retorna uma matriz mxn?

Offline irtigor

  • Equipe Ubuntu
  • Usuário Ubuntu
  • *****
  • Mensagens: 4.344
  • Delete, delete, delete!
    • Ver perfil
Re: Criando uma função matricial em linguagem C
« Resposta #3 Online: 18 de Outubro de 2013, 10:59 »
Não ficou muito claro, você pode alocar/realocar¹ dinamicamente o espaço, mas a estrutura vai sempre ter dimensão finita.

----------
*Funções: calloc, malloc, realloc…
« Última modificação: 18 de Outubro de 2013, 11:07 por irtigor »

Offline simon

  • Usuário Ubuntu
  • *
  • Mensagens: 110
    • Ver perfil
Re: Criando uma função matricial em linguagem C
« Resposta #4 Online: 12 de Janeiro de 2014, 19:53 »
Eu acho que o que você precisa é um programa do tipo
Código: [Selecionar]
#include <stdio.h>
#include <stdlib.h>

typedef float ** matriz; //Define um tipo para matrizes

matriz cria_matriz(int m, int n) {
matriz a;
int i;
a = malloc(m*sizeof(float *));
for (i = 0; i < m; i++) a[i] = malloc(n*sizeof(float));
return(a);
}

int main(int argc, char **argv)
{
matriz x = cria_matriz(2, 2);
x[0][0] = 1;
x[0][1] = 0.5;
x[1][0] = -2.5;
x[1][1] = 0.36;
printf("Soma = %f\n", x[0][0] + x[0][1] + x[1][0] + x[1][1]);
return(0);
}

Observe que o que esse código faz é definir um tipo de variável chamado matriz, que nada mais é do que um ponteiro duplo para float, cria uma função para retornar uma matriz já alocada e o programa principal testa essa função.
Espero ter ajudado.

Offline zekkerj

  • Usuário Ubuntu
  • *
  • Mensagens: 19.735
  • Gratidão gera gratidão, lamúria atrai lamúria...
    • Ver perfil
    • Blog do Zekke
Re: Criando uma função matricial em linguagem C
« Resposta #5 Online: 16 de Maio de 2014, 19:49 »
Simon, você chegou a testar esse código? Pq eu tenho a impressão que não vai funcionar como o esperado... vc não está criando uma matriz m x n, e sim um array de m ponteiros para arrays de tamanho n...
Pesquise antes de perguntar, sua dúvida pode já ter sido respondida.
Não respondo dúvidas por MP, coloque sua dúvida no fórum onde ela pode ser pesquisada pelos seus colegas!
Não venha ao fórum apenas para perguntar. Se você sabe a resposta de um problema, porque não ajudar seu colega? ;D