axelle3003 | Oui c'est cela que j'ai tapé mais j'ai joins dans mon premier post un mauvais programme.
voici une partie de mon programme correct. Celui -ci fait appel en argument a un fichier-test.txt.
Désolée pour l'erreur
Code :
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <time.h>
- #include "affiche_tableau.h"
- #include "creer_etat.h"
- #include "decroissant.h"
- /* DECLARATION DES VARIABLES GENERALES */
- int main(int argc, char** argv)
- {
- int i, j, k, g, s, K;
- int choixf, choix1, choix2, choix1_b, choix2_a;
- FILE* milieu_marin;
- milieu_marin = fopen (argv[1],"r" );
- EI* etat=(EI*)malloc(sizeof(EI));
- creer_etat(etat, milieu_marin);
- FILE* f_resultat;
- char nom_fichier[30];
- /* Question 2a : simulation avec k itérations */
- int abondances_k[etat->nb_sp+1];
- double Bio_tot_k = 0;
- float Cout_tot_k = 0;
- int nvel_abondances [etat->nb_sp+1];
- float fact;
- double Nvel_bio_tot;
- float Nvel_cout_tot, cout_mini;
- int espece_choisie;
- double Bio_tot_finale = 0;
- float Cout_tot_finale = 0;
- int cpt_sp_disp = 0;
- /* Question 2b : évolution historique */
- HIST* p = NULL;
- HIST* temp =NULL;
- HIST* historique = NULL;
- /* Question 2c : liste décroissante des espèces les plus choisies */
- int tab_sp[etat->nb_sp+1];
- CE* listeSP = NULL;
- /* Question 2d : liste décroissante des espèces les plus choisies avec un modèle aléatoire */
- int abondances_ka[etat->nb_sp+1];
- int tab_sp_a[etat->nb_sp+1];
- CE* listeSP_a = NULL;
- /* Question 2e : simulation avec effet de la sur-pêche */
- int abondances_k6[etat->nb_sp+1];
- int tab_sp_6 [etat->nb_sp+1];
- CE* listeSP_6 = NULL;
- int choix2_6_A, ab_max, ab_min;
- /* Question 3 : 100 simulations puis statistiques */
- int abondances_s[etat->nb_sp];
- float Bio_tot_s = 0;
- float Cout_tot_s = 0;
- double moyenne [etat->nb_sp+1];
- double variance [etat->nb_sp+1];
- double abondances_s_tab[etat->nb_sp+1][100];
- double max [etat->nb_sp+1];
- double min [etat->nb_sp+1];
- /* INITIALISATION */
- initia0_tab_int(tab_sp, etat->nb_sp+1);
- initia0_tab_int(tab_sp_a, etat->nb_sp+1);
- initia0_tab_int(tab_sp_6, etat->nb_sp+1);
- initia0_tab_double(moyenne, etat->nb_sp+1);
- initia0_tab_double(variance, etat->nb_sp+1);
- initia0_tab_double(max, etat->nb_sp+1);
- initia999_tab_double(min, etat->nb_sp+1);
- srand(time(NULL));
- /*CALCULS DES VALEURS TOTALES AVANT DEROULEMENT DU MENU */
- for (i=1; i<=etat->nb_sp; i++)
- {
- etat->Bio_tot = etat->Bio_tot + (etat->abondances[i] * etat->biomasse[i]);
- etat->Cout_tot = etat->Cout_tot + (etat->abondances[i] * etat->cout[i]);
- }
- etat->Bio_tot = (etat->Bio_tot)/1000;
- etat->Cout_tot = (etat->Cout_tot)/1000;
- /* MENU GENERAL */
- printf("-----------------------------------------------------------\n" );
- printf("\nBienvenue dans notre programme de simulations d'abondances.\n\n" );
- printf("-----------------------------------------------------------\n\n" );
- printf("Souhaitez-vous rediriger les résultats dans un fichier, 1 = oui ou 2 = Non\n" );
- scanf("%d", &choixf);
- if (choixf == 1)
- {
- printf("Entrez le nom du fichier à créer:\n" );
- scanf("%s", nom_fichier);
- f_resultat = fopen(nom_fichier, "w" );
- }
- do {
- printf("\n\n-----------------------------------------------------------\n" );
- printf("--------------------------MENU GENERAL---------------------\n" );
- printf("-----------------------------------------------------------\n" );
- printf("1 - Afficher une description du milieu marin.\n" );
- printf("2 - Simuler l'évolution du milieu pour un certain nombre d'itérations.\n" );
- printf("3 - Statistiques pour 100 simulations.\n" );
- printf("4 - Quitter.\n" );
- scanf("%d",&choix1);
- printf("-----------------------------------------------------------\n\n" );
- switch (choix1)
- {
- /* CHOIX = QUESTION 1 */
- case 1 :
- {
- do {
- /* DEFINITION DU MENU de la Question 1 */
- printf("\n-----------------------------------------------------------\n" );
- printf(" DESCRIPTION GENERALE DU MILIEU MARIN\n" );
- printf("-----------------------------------------------------------\n" );
- printf("1 - Afficher la description générale du milieu marin.\n" );
- printf("2 - Afficher la description du milieu relative à une espèce en particulier.\n" );
- printf("3 - Retour au menu.\n" );
- scanf("%d",&choix2);
- printf("-----------------------------------------------------------\n\n" );
- switch (choix2)
- {
- /* Choix 1 = QUESTION 1.a */
- case 1 :
- {
- printf("-----------------------------------------------------------\n" );
- printf(" DESCRIPTION GENERALE DU MILIEU MARIN\n" );
- printf("-----------------------------------------------------------\n\n" );
- /* AFFICHAGE TABLEAU ABONDANCES */
- printf("\nABONDANCES (en nombre d'individus) :\n" );
- aff_tab_entier (etat->abondances, etat->tab_espece, etat->nb_sp);
- /* AFFICHAGE TABLEAU SEUILS */
- printf("\nSEUILS (en nombre d'individus) :\n" );
- aff_tab_entier (etat->seuil, etat->tab_espece, etat->nb_sp);
- /* AFFICHAGE TABLEAU SEUILS CRITIQUES */
- printf("\nSEUILS-CRITIQUES (en nombre d'individus) :\n" );
- aff_tab_entier (etat->seuil_critique, etat->tab_espece, etat->nb_sp);
- /* AFFICHAGE MATRICE INTERACTIONS */
- printf("\nINTERACTIONS :\n" );
- aff_matrice(etat->interactions, etat->tab_espece, etat->nb_sp);
- /* AFFICHAGE TABLEAU BIOMASSES UNITAIRES */
- printf("\nBIOMASSE UNITAIRE (en g) :\n" );
- aff_tab_reel (etat->biomasse, etat->tab_espece, etat->nb_sp);
- /* AFFICHAGE BIOMASSE TOTALE */
- printf("\nBIOMASSE TOTALE DU MILIEU (en kg) : %.2f\n",etat->Bio_tot);
- /* AFFICHAGE TABLEAU COUTS UNITAIRES */
- printf("\nCOUTS UNITAIRES (en g) :\n" );
- aff_tab_reel (etat->cout, etat->tab_espece, etat->nb_sp);
- /* AFFICHAGE COUT TOTAL */
- printf("\nCOUT TOTAL DU MILIEU (en kg) : %.2f\n",etat->Cout_tot);
- };break;
- /*Choix 1 = QUESTION 1.b*/
- case 2 :
- {
- do {
- /*Demande Choix d'une espèce*/
- printf("-----------------------------------------------------------\n" );
- printf(" IMPACT ENTRE LES ESPECES.\n" );
- printf("-----------------------------------------------------------\n\n" );
- printf("Veuillez choisir une espèce:\n" );
- for (i=1;i<=etat->nb_sp;i++)
- {
- printf("%d : %s\n", i, etat->tab_espece[i].nom_espece);
- }
- scanf("%d", &choix1_b);
- printf("\n-----------------------------------------------------------\n" );
- if ((choix1_b<0) || (choix1_b>etat->nb_sp))
- {
- printf("Veuillez saisir un nombre entre 0 et %d.\n", etat->nb_sp);
- }else{
- printf("-----------------------------------------------------------\n" );
- /* POUR CHAQUE ESPECE NOUS AFFICHONS LA LISTE DES ESPECES QUI ONT UN IMPACT SUR CELLE-CI */
- printf("Le(s) %s ont un IMPACT SUR :\n",etat->tab_espece[choix1_b].nom_espece);
- printf("POSITIVEMENT : " );
- for (j=1; j<=etat->nb_sp; j++)
- {
- if (etat->interactions [choix1_b] [j]>0)
- {
- printf("%s (%.1f), ", etat->tab_espece[j].nom_espece, etat->interactions [choix1_b] [j]);
- }
- }
- printf("\nNEGATIVEMENT : " );
- for (j=1; j<=etat->nb_sp; j++)
- {
- if (etat->interactions [choix1_b] [j]<0)
- {
- printf("%s (%.1f), ", etat->tab_espece[j].nom_espece, etat->interactions [choix1_b] [j]);
- }
- }
- /* PUIS NOUS AFFICHONS LA LISTE DES ESPECES IMPACTÉES PAR CELLE-CI */
- printf("\n\nLe(s) %s sont IMPACTE(ES) PAR:\n",etat->tab_espece[choix1_b].nom_espece);
- printf("POSITIVEMENT : " );
- for (i=1; i<=etat->nb_sp; i++)
- {
- if (etat->interactions [i] [choix1_b]>0)
- {
- printf("%s (%.1f), ", etat->tab_espece[i].nom_espece, etat->interactions [i] [choix1_b]);
- }
- }
- printf("\nNEGATIVEMENT : " );
- for (i=1; i<=etat->nb_sp; i++)
- {
- if (etat->interactions [i] [choix1_b]<0)
- {
- printf("%s (%.1f), ", etat->tab_espece[i].nom_espece, etat->interactions [i] [choix1_b]);
- }
- }
- }
- } while ((choix1_b<1) || (choix1_b>=etat->nb_sp));
- printf("\n" );
- }; break;
- case 3 : printf("\n\nRetour au menu.\n\n" );break;
- default : printf ("\n\nVeuillez saisir une valeur entre 1 et 3.\n\n" );
- }
- }while (choix2!=3);
- }break;
- /* QUESTION 2 : SIMULATION AVEC UN CERTAIN NOMBRE D'ITERATIONS */
|
|