Exemplo n.º 1
0
int main(int argc, char** argv)
{

    /*var locales*/
    int taille_m, taille_v, i;
    double ** mat;
    double * vect;
    char nomVect[TAILLE_NOM];
    char nomMat[TAILLE_NOM];
    double * prod;

    /*demande de saisi du fichier de matrice*/
    printf("Saisissez le fichier de la matrice : ");
    fflush(stdout);
    scanf("%s%*c", nomMat);

    /*demande de saisi du fichier de vecteur*/
    printf("Saisissez le fichier du vecteur : ");
    fflush(stdout);
    scanf("%s%*c", nomVect);

    /*lecteur et affichage de la matrice*/
    mat = lectureMat(&taille_m, nomMat);
    afficheMat(taille_m, mat, nomMat);

    /*lecture et affichage du vecteur*/
    vect = lectureVect(&taille_v, nomVect);
    afficheVect(taille_v, vect, nomVect);

    /*Calcul et affichage du produit matriciel*/
    prod = prodMatVect(taille_v,taille_m,vect,mat);
    afficheVect(taille_m, prod, "produit");

    /*libération de la mémoire*/
    for(i = 0; i < taille_m; i++)
    {
        free(mat[i]);
    }

    free(mat);
    free(vect);
    free(prod);

    return 0;
}
Exemplo n.º 2
0
int main(){

	
	srand(time(NULL));
	
	int encore=0;
	int choixmodif=2;
	int choixaffich=0;
	int affichH=0;
	int action=0;
	
	int nbCell=0;
	int iteration=0, iMax=0;
	int ageMature=0, ageMax=0;
	float beta=0, delta=0;
	CELLULE* P[taille][taille];
	initMat(P);
	bordure(P);
	H* matH=Allouematrice();
	
	printf("Ce programme permet de modéliser l'évolution d'une culture cellulaire.\nIl prend en compte l'âge de maturité des cellules, c'est à dire l'âge à partir duquel les cellules peuvent se diviser.\nLe programme gère également l'espérance de vie des cellules et le nombre initial de cellules en culture.\nLe nombre d'itérations est à relier au temps nécessaire à une cellule pour se diviser.\nLors d'une itération, la cellule peut également se transformer en cellule cancéreuse, mourir.\n\n");
	
	do{
		printf("Souhaitez vous utiliser les paramètres par défaut:\nAge de maturité=3\nAge maximum=1001\nNombre de cellules initiales=100\nNombre maximal d'itérations=1000\nbeta=0.5\ndelta=0.8\n\n[1]Oui [2]Non\n");
		do{
			scanf("%d", &choixmodif);
			if(choixmodif==1){
				ageMature=3;
				ageMax= 1001;
				nbCell= 100;
				iMax= 1000;
				beta= 0.5;
				delta= 0.8;
			}else if(choixmodif==2){
				printf("Age de maturité (par défaut 3): "); scanf("%d", &ageMature);
				printf("Age maximum (par défaut 1001): "); scanf("%d", &ageMax);
				printf("Nombre de cellules initiales (par défaut 100): "); scanf("%d", &nbCell);
				printf("Nombre maximal d'itérations (par défaut 1000): "); scanf("%d", &iMax);
				printf("beta (par défaut 0.5): "); scanf("%f", &beta);
				printf("delta (par défaut 0.8): "); scanf("%f", &delta);
	 		 }else printf("Erreur de saisie...\nLes choix sont:\n[1]paramètres par défault\n[2]Modifier les paramètres\n");
	 	}while(choixmodif!=1 && choixmodif!=2);
		do{
			initPosition(nbCell, P, matH, iteration);
			chgmtType(beta, ageMax, P, matH, iteration);
			comptVoisines(P);
			printf("\nVoici la disposition des cellules à l'état initial (avant la première itération)\n");
			afficheMat(P, iteration);
			printf("\n");
			
			do{
				printf("Souhaitez-vous afficher l'état de la matrice à chaque itération? [1]Oui [2]Non\n");
				scanf("%d", &choixaffich);
				if(choixaffich!=1 && choixaffich!=2) printf("Erreur de saisie...\n");
			}while(choixaffich!=1 && choixaffich!=2);
		
			while(iteration<iMax)
			{
				iteration++;
				incrementeAge(ageMax, P, matH, iteration);
				
				tuer_f_nbVoisines(P, matH, iteration);
				tuer_f_Cancer(delta, P, matH, iteration);
				chgmtType(beta, ageMax, P, matH, iteration);
			
				divisions(ageMature, P, matH, iteration);

				comptVoisines(P);
				if(choixaffich==1){
					afficheMat(P, iteration);
					printf("\n");
				}
			 
			}			
			sauvegarde(matH);
			printf("Un fichier contenant l'historique de la matrice vient d'être créé.\nIl se trouve dans le répertertoire du programme principal.\n");
		
			printf("\nVoici l'état de la culture cellulaire à la fin de toutes les itérations.\n");
			afficheMat(P, iteration);
			printf("\n");
	
			do{
				printf("Souhaitez-vous afficher l'histoire d'une cellule? [1]Oui [2]Non\n");
				scanf("%d", &affichH);
				if(affichH!=1 && affichH!=2) printf("Erreur de saisie...\n");
			}while(affichH!=1 && affichH!=2);
			if(affichH==1) affichelistHCase(matH);
			
			do{
				printf("Souhaitez-vous relancer la modélisation en concervant ces paramètres? [1]Oui [2]Non\n");
				scanf("%d", &encore);
				if(encore!=1 && encore!=2) printf("Erreur de saisie...\n");
			}while(encore!=1 && encore!=2);
		}while(encore==1);
		
		do{
			printf("Souhaitez-vous [1]relancer une modélisation [2]quitter le programme ?\n");
			scanf("%d", &action);
			if(action!=1 && action!=2) printf("Erreur de saisie...\n");
		}while(action!=1 && action!=2);
	 }while(action==1);

printf("Au revoir.\n");
return 0;
}