⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 projet.c

📁 数学解析
💻 C
📖 第 1 页 / 共 2 页
字号:
*                                                                             *
*Remarque:                                                                    *
*         Comme val est un tableau a 2 dimensions dont chaque colone presente *
*         une espece,pour pouvoir calculer une espece choisie une variable    *
*         exportee est servie pour separer les especes differentes "col"      *
*                                                                             *
******************************************************************************/

double moyenne(double **val,int iter,int col)
{
    double averag=0.;
    int i;
    for (i=(iter-1);i>=0;i--)
        averag=averag+val[i][col];
    return (averag/iter);
}

/******************************************************************************
*                                                                             *
*Bloc d'aide                                                                  *
*                                                                             *
*IN:le nom de programme qui est passe dans la liste d'arguments               *
*   un nombre entier a                                                        *
*                                                                             *
*OUT:affichage de text d'aide                                                 *
*                                                                             *
*Remarque:                                                                    *
*         le nombre a est positionne a 1 alors on sait qu'on demande le mode  *
*         d'emploi de ce programme,sinon alors on est dans la boucle de       *
*         commande                                                            *
*                                                                             *
******************************************************************************/

void aide(char *arg,int a)
{
    if (a==1)
    {
        printf ("Mode d'utilisation de %s.\n"
                "les parametres passes sont respectivement les suivants:\n"
                "1.le nombre de petits poissons au depart.\n"
                "2.le nombre de gros poissons au depart.\n"
                "3.le temps du depart.\n"
                "4.le temps final.\n"
                "5.le nombre d'iterations \n"
                "            (un nombre superieur a 5000 est conseille).\n"
                "6.le niveau de precision de l'estimation de la periode.\n"
                "            (un nombre superieur a 3 est conseille).\n"
                "7.le facteur A.\n"
                "8.le facteur B.\n"
                "9.le facteur C.\n"
                "10.le facteur D.\n"
                "11.le facteur de peche.\n"
                "12.le facteur de competion.\n"
                "13.Option de commande:(un nombre entier)\n",arg);
    }
    printf ("       1.pour le modele simplifie de proie-predateur sans"
            "          facteurs de peche et de competion."
            "          (Graphe de nombre de petits poissons et de gros"
            "          poissons,Graphe de nombres de poissons en fonction"
            "          du temps,la periode)\n"
            "       2.pour le modele simplifie de proie-predateur sans"
            "          facteur de competion mais avec le facteur de peche\n"
            "       3.pour le modele simplifie de proie-predateur sans"
            "          facteur de peche mais avec le facteur de competion\n"
            "       4.pour le modele simplifie de proie-predateur avec les"
            "          facteurs de peche et de competion.\n");
}

//programme principal

int main(int argc,char **argv)
{
//declaration de variables
    int nbr_iter,cmd,niv_estim;
    double t0,t1,periode,moyenne_pts,moyenne_gro,ep,cmp;
    double **rung;
    double *v0;
    v0=(double*)malloc(2*sizeof(double));
    if (argc!=14)
    {
        aide (argv[0],1);
        exit (EXIT_FAILURE);
    }
//initialisation des variables
    v0[0]=atof(argv[1]);
    v0[1]=atof(argv[2]);
    t0=atof(argv[3]);
    t1=atof(argv[4]);
    nbr_iter=atoi(argv[5]);
    niv_estim=atoi(argv[6]);
    A=atof(argv[7]);
    B=atof(argv[8]);
    C=atof(argv[9]);
    D=atof(argv[10]);
    ep=atof(argv[11]);
    cmp=atof(argv[12]);
    cmd=atoi(argv[13]);
//dispatch
    while (cmd!=0)
    {
        switch (cmd)
        {
            case 1:
                   EP=0;
                   CMP=0;
                   //tracage de graphe sur le temps[t0,t1]
                   rung=Rung_kutta(&Fonc,v0,nbr_iter,t0,t1);
                   trace(nbr_iter,rung);
                   tracetmps(nbr_iter,rung);
                   free(rung);
                   //calcul de la periode
                   periode=estim_periode(t0,t1,v0,niv_estim);
                   printf ("\nLa periode est %lf\n",periode);
                   //tracage de graphe sur une periode
                   rung=Rung_kutta(&Fonc,v0,1000,t0,periode+t0);
                   trace (1000,rung);
                   //calcul de la moyenne
                   moyenne_pts=moyenne(rung,1000,0);
                   moyenne_gro=moyenne(rung,1000,1);
                   printf ("\nLa moyenne de petits poissons donnee par c/d est %lf.\n",C/D);
                   printf ("\nLa moyenne de petits poissons donnee par les routines qui\n"
                           "permettent de calculer la moyenne reelle est %lf.\n",moyenne_pts);
                   printf ("\nLa moyenne de gros poissons donnee par a/b est %lf.\n",A/B);
                   printf ("\nLa moyenne de gros poissons donnee par les routines qui\n"
                           "permettent de calculer la moyenne reelle est %lf.\n",moyenne_gro);
                   free(rung);break;
            case 2:
                   EP=ep;
                   CMP=0;
                   //tracage de graphe sur le temps[t0,t1]
                   rung=Rung_kutta(&Fonc,v0,nbr_iter,t0,t1);
                   trace(nbr_iter,rung);
                   tracetmps(nbr_iter,rung);
                   free(rung);
                   //calcul de la periode
                   periode=estim_periode(t0,t1,v0,niv_estim);
                   printf ("La periode est %lf\n",periode);
                   //tracage de graphe sur une periode
                   rung=Rung_kutta(&Fonc,v0,1000,t0,periode+t0);
                   trace (1000,rung);
                   //calcul de la moyenne
                   moyenne_pts=moyenne(rung,1000,0);
                   moyenne_gro=moyenne(rung,1000,1);
                   printf ("\nLa moyenne de petits poissons est %lf\n",moyenne_pts);
                   printf ("\nLa moyenne de gros poissons est %lf\n",moyenne_gro);
                   free(rung);break;
            case 3:
                   EP=0;
                   CMP=cmp;
                   //tracage de graphe sur le temps[t0,t1]
                   rung=Rung_kutta(&Fonc,v0,nbr_iter,t0,t1);
                   trace(nbr_iter,rung);
                   tracetmps(nbr_iter,rung);
                   free(rung);break;
            case 4:
                   EP=ep;
                   CMP=cmp;
                   //tracage de graphe sur le temps[t0,t1]
                   rung=Rung_kutta(&Fonc,v0,nbr_iter,t0,t1);
                   trace(nbr_iter,rung);
                   tracetmps(nbr_iter,rung);
                   free(rung);break;
            default:
                    printf ("Commande invalide!!\n");break;
        }
        printf ("\nDonnez une nouvelle commande!Pour terminer le programme tapez'0'.\n");
        scanf ("%d",&cmd);
    }
    printf ("\nFin de programme.Wang haichen 2eme candi info.05.2005.");
    return (EXIT_SUCCESS);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -