Back to index

wims  3.65+svn20090927
tab1d.c
Go to the documentation of this file.
00001 #include<stdio.h>
00002 #include<string.h>
00003 
00004 
00005 /* Prog C qui fournit les reponses a l'exercice .oef .
00006 L'executable doit s'appeler tab1d.o et etre place dans 
00007 ~/wims/other/bin 
00008 Ce prog doit etre lance par le script /wims/public_html/bin/sh_bioinfo
00009 */
00010 
00011 /* Entrees :
00012        argv[1]= nom du programme ()
00013        argv[2]= \niveau
00014        argv[3]= \TAILLE
00015        argv[4]= \sens_boucle1
00016        argv[5]= \valeur_boucle1
00017        argv[6]= \parite
00018        argv[7]= \val
00019        argv[8]= \max
00020        argv[9]= \q1
00021 
00022 */
00023 
00024 int main(argc,argv) 
00025        int argc; 
00026        char *argv[];
00027 {
00028        
00029        int tab[51];
00030        
00031        int i,q1,niveau, TAILLE, val, max, compteur;
00032        char sens_boucle1[10];
00033        char valeur_boucle1[10];
00034        char parite[10];
00035        
00036        sscanf(argv[2],"%d",&niveau);
00037        sscanf(argv[3],"%d",&TAILLE);
00038        strcpy(sens_boucle1,argv[4]);
00039        strcpy(valeur_boucle1,argv[5]);
00040        strcpy(parite,argv[6]);
00041        sscanf(argv[7],"%d",&val);
00042        sscanf(argv[8],"%d",&max);
00043        sscanf(argv[9],"%d",&q1);
00044        compteur =0;
00045        
00046        if (strcmp(sens_boucle1,valeur_boucle1)==0)
00047        {
00048               for (i=0;i<TAILLE ; i++) 
00049               { 
00050                      tab[i] = i;
00051                      compteur++;
00052               }
00053        }
00054        else
00055        {
00056               for (i=0;i<TAILLE ; i++) 
00057               { 
00058                      tab[i] = TAILLE-i-1;
00059                      compteur++;
00060               }
00061        }
00062        
00063        if(niveau>2) 
00064        {
00065               for (i=1;i<TAILLE ; i++)
00066               {
00067                      if (tab[i] > max) 
00068                      { 
00069                             tab[i]=tab[i-1];
00070                      }
00071                      else if (i> max)
00072                      {
00073                             tab[i]=tab[i]+1;
00074                      }
00075                      compteur++;
00076                      
00077               }
00078        }
00079        
00080        if(niveau>1) 
00081        {
00082               if (strcmp(parite,"pair")==0)
00083               {
00084                      for (i=0; 2*i<TAILLE ;i=i+1)
00085                      {
00086                             tab[2*i]=tab[2*i]+val;
00087                             compteur++;
00088                      }
00089               }
00090               else
00091               {
00092                      for (i=0; 2*i+1<TAILLE ;i=i+1)
00093                      {
00094                             tab[2*i+1]=tab[2*i+1]+val;
00095                             compteur++;
00096                      }
00097               }
00098        }
00099        
00100        if (niveau<4)
00101               compteur=0;
00102        printf("%d,%d,%d\n",tab[q1], tab[q1+1], compteur);
00103               
00104               
00105        return 0;
00106        
00107 }
00108 
00109