begin process at 2012 05 29 05:15:25
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Débutant(e)

 > 

fonction en c


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

fonction en c

dimanche 15 mai 2011 à 00:10:24 | fonction en c

badsha

j'ai un code qui inverse une matrice et je veux l'appliquer sur plusieurs matrices
je n'arrive pas à mettre à l'entrée de la fonction des matrices, je ne sais pas si il faut mettre des pointeurs doubles que je ne maitrise pas, si vous pouvez me faire un exemple avec la fonction : int MethodeGauss() et le probleme c'est que je dois récupérer la matrice de sortie de cette fonction
je vous remercie bcp pour votre aide


#include <stdio.h>
#include <stdlib.h>

#define t 3

float matId[t][t];
float mat1[t][t] = {{-3,5,6},{-1,2,2},{1,-1,-1}};
float NewMat[t][2*t];


void afficherMatrice()
{
int i,j;
for (i=0;i<t;i++)
{
for (j=0;j<t;j++)
{
printf("%f ",mat1[i][j]);
}
printf("\n" );
}
}

void afficherMatriceIdentite()
{
int i,j;
for (i=0;i<t;i++)
{
for (j=0;j<t;j++)
{
printf("%f ",matId[i][j]);
}
printf("\n" );
}
}


void afficherMatriceInverse()
{
int i,j;
float elem;
for (i=0;i<t;i++)
{
for (j=t;j<2*t;j++)
{
printf("%f ",NewMat[i][j]);
}
printf("\n" );
}
}





void creerMatriceId()
{
int i,j;
for (i=0;i<t;i++)
{
for (j=0;j<t;j++)
{
if (i==j)
{
matId[i][j] = 1;
}
else
{
matId[i][j] = 0;
}
}
}
}


void definirNouvelleMatrice()
{
int i,j;
i=j=0;
for (i=0;i<t;i++)
{
for (j=0;j<2*t;j++)
{
if (j<t)
{
NewMat[i][j] = mat1[i][j];
}
else
{
NewMat[i][j] = matId[i][j-t];
}
}
}
}

int MethodeGauss()
{
int inversible = 1;
int k,i,colonne,colonnebis;
float var,var1;
k=0;
while((inversible == 1)&&(k<t))
{
if (NewMat[k][k] != 0)
{
var = NewMat[k][k];
for (colonne=0;colonne<2*t;colonne++)
{
NewMat[k][colonne] = NewMat[k][colonne]/var; //Normalisation de la ligne contenant l'élément diagonal
}
for (i=0;i<t;i++)
{
if (i != k)
{
var1=NewMat[i][k];
for (colonnebis=0;colonnebis<2*t;colonnebis++)
{
NewMat[i][colonnebis] = NewMat[i][colonnebis] - NewMat[k][colonnebis]*var1;
}
}
}
k++;
}
else
{
inversible = 0;
}
}
return inversible;
}

void modifierMatrice()
{
creerMatriceId();
definirNouvelleMatrice();




}

int main ()
{
printf("debut\n" );
afficherMatrice();
modifierMatrice();
if (MethodeGauss() == 1)
{
printf("Matrice inverse\n" );
afficherMatriceInverse();
}
else
{
printf("La matrice n'est pas inversible\n" );
}

printf("tout c'est bien termine\n" );
system("PAUSE");
return 0;

}



dimanche 15 mai 2011 à 00:38:25 | Re : fonction en c

znb

Réponse acceptée !
pour que ca soit applicable a des matrices de tailless diferentes, faut utiliser un pointeur sur un tableau 2 dimension .
dimanche 15 mai 2011 à 15:47:35 | Re : fonction en c

badsha


pourai-je avoir un exemple?

float **a1; (ou float *a1; je sai pas)
float a2[3][3]={{1,2,3},{4,5,6},{7,8,9}};

je dois faire quoi pour stocker les elements de a2 dans a1.
si je fais a1=a2;
ou
for(i..
for(j..
a1[i][j]=a2[i][j];
ca ne marche pas (erreurs de segmentation)
dimanche 15 mai 2011 à 20:23:53 | Re : fonction en c

patatalo

Membre Club Administrateur CodeS-SourceS
Réponse acceptée !
salut,


Il faut allouer de la memoire pour la matrice a1, ensuite tu pourras travailler dessus.

a1 = malloc(sizeof(float*)*i)
for (i = 0; i < ?; i++) a1[i] = malloc(sizeof(float)*j));

@++
dimanche 15 mai 2011 à 22:29:18 | Re : fonction en c

badsha

merci bien ca marche!!

je peux savoir pkoi ce prog ne marche pas

#include <stdio.h>
#include <stdlib.h>

int i, j;
static void vlaPrint(int taille1, int taille2, int table[taille1][taille2])
{
// Ecriture du tableau sur stdout
for ( i=0; i< taille1; i++)
{
for ( j=0; j< taille2; j++)
{
(void)printf("table[%d][%d] = %d\n", i, j, table[i][j]);
}
}
}

int main() {

int mat[2][2]={{1,2},{3,4}};
vlaPrint(2, 2,mat);

system("PAUSE");
return 0;
}
dimanche 15 mai 2011 à 22:31:11 | Re : fonction en c

badsha

Réponse acceptée !
j'ai ces erreurs :

multiple definition of `main'
first defined here
ld returned 1 exit status
C:\Documents and Settings\brice\Bureau\test c\Makefile.win [Build Error] [Proje.exe] Error 1
lundi 16 mai 2011 à 03:00:03 | Re : fonction en c

badsha

c bon le code marche c juste le logiciel qui merdai


Cette discussion est classée dans : int, printf, for, newmat, colonnebis


Répondre à ce message

Sujets en rapport avec ce message

Problem Affichage de mon Tableau [ par Orezza ] salut à tous, j'ai un blem à l'affichage du tableau. l'utilisateur parametre son tableau, c lui qui l'initilize mais j'arrive pas à afficher apres le affichage de caractere dans une grille [ par anzelus ] bonjour, voila, je suis un debutant en c, je dois faire un programme qui affiche une grille de points sur console, apres afficher un caractere special pb en c urgenttttttttttttttttt [ par natacha86 ] bonjour, j'ai un probleme avec mon programme, il ne veut pas sortir, j'ai fais un menu et apparement ya un bug mais je ne comprend rien.le code est as help une fonction qui a besoin de vous [ par natacha86 ] Re bonjour a tout le monde, voila j'ai mis tout le prog si vous voulez tester, en fait le pb viens de la fonctino tri_shell(), je ne sais pas pkoi ell methode de simplexe en c [ par antttar ] #include #include #include #include #include #include #include </ compilation mai au lancement "erreur la memoire ne peu pas pas etre read" [ par touny23 ] je maitrise pas tro le C.mai comme j ai un projet a faire dessus pour la rentré , je sui obligé de m y mettre .j arrive a compiler sous dev-cpp mai lo execution en DEV C++ [ par lucky31 ] bonsoir, j'ai 1 probleme avec l'execution de mon prg ecrit en c et j'utilise le dev c++voila mon code source alors si vous pouvez m'aider merci d'avan random et printf avec for :( [ par sokotanic ] salutj'ai besoin d'aide#include #include #include //Abdou chez les Almohadesusing namespace std;int main(){    srand(time(NULL));int j,i;i Trie bulle [ par afrikanoo ] #include #include void main(){ clrscr(); int n; <font color="#d3d3d encadre un texte en c/c++ [ par lil_adriano ] Slt tout le monde je debute en C/C++ je voudrai faire cadre  pour un mot mais j'y arrive pas.j'ai essayer de faire un mais on peu pas faire un mot cor


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,983 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales