Back to index

wims  3.65+svn20090927
tab2d.c
Go to the documentation of this file.
00001 #include<stdio.h>
00002 #include<string.h>
00003 
00004 
00005 /* Prog C qui fournit les réponses à l'exercice tab2d.oef .
00006 L'executable doit s'appeler tab2d.o et être placé dans 
00007 ~/wims/other/bin/bioinfo 
00008 Ce prog doit etre lancé par le script /wims/public_html/bin/sh_bioinfo
00009 */
00010 
00011 /* Entrées :
00012        argv[1]= nom du programme ()
00013        argv[2]= \niveau
00014        argv[3]= \TAILLE
00015        argv[4]= \var_boucle1
00016        argv[5]= \val_ligne
00017        argv[6]= \diago
00018        argv[7]= \val_diago
00019        argv[8]= \boucle4_1
00020        argv[9]= \boucle4_2
00021        argv[10]= \max
00022        argv[11]= \l1
00023        argv[12]= \c1
00024        argv[13]=\ligne
00025        argv[14]=\sens_boucle1_1
00026        argv[15]=\sens_boucle1_2
00027 */
00028 
00029 int main(argc,argv) 
00030        int argc; 
00031        char *argv[];
00032 {
00033        int tab[16][16];
00034        int i,j,k;
00035        int niveau,TAILLE,var_boucle1,val_ligne,diago,val_diago,max,ligne;
00036        int l1,c1;
00037        char boucle4_1[8];
00038        char boucle4_2[8];
00039        char sens_boucle1_1[12];
00040        char sens_boucle1_2[12];
00041        
00042        sscanf(argv[2],"%d",&niveau);
00043        sscanf(argv[3],"%d",&TAILLE);
00044        sscanf(argv[4],"%d",&var_boucle1);
00045        sscanf(argv[5],"%d",&val_ligne);
00046        sscanf(argv[6],"%d",&diago);
00047        sscanf(argv[7],"%d",&val_diago);
00048        strcpy(boucle4_1,argv[8]);
00049        strcpy(boucle4_2,argv[9]);
00050        sscanf(argv[10],"%d",&max);
00051        sscanf(argv[11],"%d",&l1);
00052        sscanf(argv[12],"%d",&c1);
00053        sscanf(argv[13],"%d",&ligne);
00054        strcpy(sens_boucle1_1,argv[14]);
00055        strcpy(sens_boucle1_2,argv[15]);
00056 
00057 
00058        /* BOUCLE 1 */
00059        
00060        if ((strcmp(sens_boucle1_1,"croissant")==0) &&  (strcmp(sens_boucle1_2,"croissant")==0) )
00061        {
00062               if (var_boucle1<3) {
00063                      for(i=0; i<TAILLE; i++){
00064                             for(j=0; j<TAILLE; j++) {
00065                                    if (var_boucle1==1)
00066                                           tab[i][j]=i;
00067                                    else 
00068                                           tab[i][j]=j;
00069                             }
00070                      }
00071               }
00072               else {
00073                      k=0;
00074                      for(i=0; i<TAILLE; i++) {
00075                             for(j=0; j<TAILLE; j++) {
00076                                    tab[i][j]=k;
00077                                    k++;
00078                             }
00079                      }
00080               }
00081        }
00082        
00083        else if ((strcmp(sens_boucle1_1,"croissant")==0) && ( strcmp(sens_boucle1_2,"decroissant"))==0) 
00084        {
00085               if (var_boucle1<3) {
00086                      for(i=0; i<TAILLE; i++){
00087                             for(j=TAILLE-1; j>=0; j--) {
00088                                    if (var_boucle1==1)
00089                                           tab[i][j]=i;
00090                                    else 
00091                                           tab[i][j]=j;
00092                             }
00093                      }
00094               }
00095               else {
00096                      k=0;
00097                      for(i=0; i<TAILLE; i++) {
00098                             for(j=TAILLE-1; j>=0; j--) {
00099                                    tab[i][j]=k;
00100                                    k++;
00101                             }
00102                      }
00103               }
00104        }
00105        
00106        else if ((strcmp(sens_boucle1_1,"decroissant")==0 &&  strcmp(sens_boucle1_2,"croissant"))==0) 
00107        {
00108               if (var_boucle1<3) {
00109                      for(i=TAILLE-1; i>=0; i--){
00110                             for(j=0; j<TAILLE; j++) {
00111                                    if (var_boucle1==1)
00112                                           tab[i][j]=i;
00113                                    else 
00114                                           tab[i][j]=j;
00115                             }
00116                      }
00117               }
00118               else {
00119                      k=0;
00120                      for(i=TAILLE-1; i>=0; i--){
00121                             for(j=0; j<TAILLE; j++) {
00122                                    tab[i][j]=k;
00123                                    k++;
00124                             }
00125                      }
00126               }
00127        }
00128        
00129        else
00130        {
00131               if (var_boucle1<3) {
00132                      for(i=TAILLE-1; i>=0; i--){
00133                             for(j=TAILLE-1; j>=0; j--) {
00134                                    if (var_boucle1==1)
00135                                           tab[i][j]=i;
00136                                    else 
00137                                           tab[i][j]=j;
00138                             }
00139                      }
00140               }
00141               else {
00142                      k=0;
00143                      for(i=TAILLE-1; i>=0; i--){
00144                             for(j=TAILLE-1; j>=0; j--) {
00145                                    tab[i][j]=k;
00146                                    k++;
00147                             }
00148                      }
00149               }
00150        }
00151               
00152        
00153        /* BOUCLE 2 */
00154        if (niveau>1) 
00155        {
00156               for(i=0; i<TAILLE; i++) {
00157                      tab[ligne][i]=val_ligne;
00158                      tab[i][ligne+1]=val_ligne+1;
00159               }
00160        }
00161        
00162        /* BOUCLE 3*/
00163        if (niveau>2)
00164        {
00165               if (diago==1) 
00166               {
00167                      for(i=0; i<TAILLE; i++) {
00168                             tab[i][i]=val_diago;
00169                      }
00170               }
00171               else
00172               {
00173                      for(i=0; i<TAILLE; i++) {
00174                             tab[i][TAILLE-1-i]=val_diago;
00175                      }
00176               }
00177        }
00178        
00179        /* BOUCLE 4*/
00180        if (niveau>3)
00181        {
00182               if(strcmp(boucle4_1,"pair")==0 && strcmp(boucle4_2,"pair")==0)
00183               {
00184                      for(i=0; 2*i<TAILLE; i++) {
00185                             for(j=0; 2*j<TAILLE ; j++) {
00186                                    tab[2*i][2*j]=0;
00187                             }
00188                      }
00189 
00190               }
00191               else if(strcmp(boucle4_1,"impair")==0 && strcmp(boucle4_2,"pair")==0)
00192               {
00193                      for(i=0; 2*i+1<TAILLE; i++) {
00194                             for(j=0; 2*j<TAILLE ; j++) {
00195                                    tab[2*i+1][2*j]=0;
00196                             }
00197                      }
00198 
00199               }
00200               else if(strcmp(boucle4_1,"impair")==0 && strcmp(boucle4_2,"impair")==0)
00201               {
00202                      for(i=0; 2*i+1<TAILLE; i++) {
00203                             for(j=0; 2*j<TAILLE ; j++) {
00204                                    tab[2*i+1][2*j+1]=0;
00205                             }
00206                      }
00207 
00208               }
00209               else if(strcmp(boucle4_1,"pair")==0 && strcmp(boucle4_2,"impair")==0)
00210               {
00211                      for(i=0; 2*i<TAILLE; i++) {
00212                             for(j=0; 2*j<TAILLE ; j++) {
00213                                    tab[2*i][2*j+1]=0;
00214                             }
00215                      }
00216 
00217               }
00218        }
00219 
00220        /* BOUCLE 5*/
00221        if (niveau>4)
00222        {
00223               for(i=0;i<TAILLE;i++)
00224               {
00225                      for(j=0;j<TAILLE;j++) {
00226                             if(i+j>max)
00227                                    tab[i][j]=tab[i][j]-1;
00228                      
00229                      }
00230               }
00231        }
00232        
00233        printf("%d,%d,%d,%d\n",tab[l1][c1],tab[l1+1][c1+1],tab[l1+1][c1+2],tab[l1+2][c1]);
00234        return 0;
00235 
00236 
00237 
00238 
00239 }