Subversion Repositories wimsdev

Rev

Rev 795 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

  1. #include<stdio.h>
  2. #include<string.h>
  3.  
  4.  
  5. /* Prog C qui fournit les reponses à l'exercice tab2d.oef .
  6. L'executable doit s'appeler tab2d.o et être place dans
  7. ~/wims/other/bin/bioinfo
  8. Ce prog doit etre lancé par le script /wims/public_html/bin/sh_bioinfo
  9. */
  10.  
  11. /* Entrées :
  12.         argv[1]= nom du programme ()
  13.         argv[2]= \niveau
  14.         argv[3]= \TAILLE
  15.         argv[4]= \var_boucle1
  16.         argv[5]= \val_ligne
  17.         argv[6]= \diago
  18.         argv[7]= \val_diago
  19.         argv[8]= \boucle4_1
  20.         argv[9]= \boucle4_2
  21.         argv[10]= \max
  22.         argv[11]= \l1
  23.         argv[12]= \c1
  24.         argv[13]=\ligne
  25.         argv[14]=\sens_boucle1_1
  26.         argv[15]=\sens_boucle1_2
  27. */
  28.  
  29. int main(argc,argv)
  30.         int argc;
  31.         char *argv[];
  32. {
  33.         int tab[16][16];
  34.         int i,j,k;
  35.         int niveau,TAILLE,var_boucle1,val_ligne,diago,val_diago,max,ligne;
  36.         int l1,c1;
  37.         char boucle4_1[8];
  38.         char boucle4_2[8];
  39.         char sens_boucle1_1[12];
  40.         char sens_boucle1_2[12];
  41.        
  42.         sscanf(argv[2],"%d",&niveau);
  43.         sscanf(argv[3],"%d",&TAILLE);
  44.         sscanf(argv[4],"%d",&var_boucle1);
  45.         sscanf(argv[5],"%d",&val_ligne);
  46.         sscanf(argv[6],"%d",&diago);
  47.         sscanf(argv[7],"%d",&val_diago);
  48.         strcpy(boucle4_1,argv[8]);
  49.         strcpy(boucle4_2,argv[9]);
  50.         sscanf(argv[10],"%d",&max);
  51.         sscanf(argv[11],"%d",&l1);
  52.         sscanf(argv[12],"%d",&c1);
  53.         sscanf(argv[13],"%d",&ligne);
  54.         strcpy(sens_boucle1_1,argv[14]);
  55.         strcpy(sens_boucle1_2,argv[15]);
  56.  
  57.  
  58.         /* BOUCLE 1 */
  59.        
  60.         if ((strcmp(sens_boucle1_1,"croissant")==0) &&  (strcmp(sens_boucle1_2,"croissant")==0) )
  61.         {
  62.                 if (var_boucle1<3) {
  63.                         for(i=0; i<TAILLE; i++){
  64.                                 for(j=0; j<TAILLE; j++) {
  65.                                         if (var_boucle1==1)
  66.                                                 tab[i][j]=i;
  67.                                         else
  68.                                                 tab[i][j]=j;
  69.                                 }
  70.                         }
  71.                 }
  72.                 else {
  73.                         k=0;
  74.                         for(i=0; i<TAILLE; i++) {
  75.                                 for(j=0; j<TAILLE; j++) {
  76.                                         tab[i][j]=k;
  77.                                         k++;
  78.                                 }
  79.                         }
  80.                 }
  81.         }
  82.        
  83.         else if ((strcmp(sens_boucle1_1,"croissant")==0) && ( strcmp(sens_boucle1_2,"decroissant"))==0)
  84.         {
  85.                 if (var_boucle1<3) {
  86.                         for(i=0; i<TAILLE; i++){
  87.                                 for(j=TAILLE-1; j>=0; j--) {
  88.                                         if (var_boucle1==1)
  89.                                                 tab[i][j]=i;
  90.                                         else
  91.                                                 tab[i][j]=j;
  92.                                 }
  93.                         }
  94.                 }
  95.                 else {
  96.                         k=0;
  97.                         for(i=0; i<TAILLE; i++) {
  98.                                 for(j=TAILLE-1; j>=0; j--) {
  99.                                         tab[i][j]=k;
  100.                                         k++;
  101.                                 }
  102.                         }
  103.                 }
  104.         }
  105.        
  106.         else if ((strcmp(sens_boucle1_1,"decroissant")==0 &&  strcmp(sens_boucle1_2,"croissant"))==0)
  107.         {
  108.                 if (var_boucle1<3) {
  109.                         for(i=TAILLE-1; i>=0; i--){
  110.                                 for(j=0; j<TAILLE; j++) {
  111.                                         if (var_boucle1==1)
  112.                                                 tab[i][j]=i;
  113.                                         else
  114.                                                 tab[i][j]=j;
  115.                                 }
  116.                         }
  117.                 }
  118.                 else {
  119.                         k=0;
  120.                         for(i=TAILLE-1; i>=0; i--){
  121.                                 for(j=0; j<TAILLE; j++) {
  122.                                         tab[i][j]=k;
  123.                                         k++;
  124.                                 }
  125.                         }
  126.                 }
  127.         }
  128.        
  129.         else
  130.         {
  131.                 if (var_boucle1<3) {
  132.                         for(i=TAILLE-1; i>=0; i--){
  133.                                 for(j=TAILLE-1; j>=0; j--) {
  134.                                         if (var_boucle1==1)
  135.                                                 tab[i][j]=i;
  136.                                         else
  137.                                                 tab[i][j]=j;
  138.                                 }
  139.                         }
  140.                 }
  141.                 else {
  142.                         k=0;
  143.                         for(i=TAILLE-1; i>=0; i--){
  144.                                 for(j=TAILLE-1; j>=0; j--) {
  145.                                         tab[i][j]=k;
  146.                                         k++;
  147.                                 }
  148.                         }
  149.                 }
  150.         }
  151.                
  152.        
  153.         /* BOUCLE 2 */
  154.         if (niveau>1)
  155.         {
  156.                 for(i=0; i<TAILLE; i++) {
  157.                         tab[ligne][i]=val_ligne;
  158.                         tab[i][ligne+1]=val_ligne+1;
  159.                 }
  160.         }
  161.        
  162.         /* BOUCLE 3*/
  163.         if (niveau>2)
  164.         {
  165.                 if (diago==1)
  166.                 {
  167.                         for(i=0; i<TAILLE; i++) {
  168.                                 tab[i][i]=val_diago;
  169.                         }
  170.                 }
  171.                 else
  172.                 {
  173.                         for(i=0; i<TAILLE; i++) {
  174.                                 tab[i][TAILLE-1-i]=val_diago;
  175.                         }
  176.                 }
  177.         }
  178.        
  179.         /* BOUCLE 4*/
  180.         if (niveau>3)
  181.         {
  182.                 if(strcmp(boucle4_1,"pair")==0 && strcmp(boucle4_2,"pair")==0)
  183.                 {
  184.                         for(i=0; 2*i<TAILLE; i++) {
  185.                                 for(j=0; 2*j<TAILLE ; j++) {
  186.                                         tab[2*i][2*j]=0;
  187.                                 }
  188.                         }
  189.  
  190.                 }
  191.                 else if(strcmp(boucle4_1,"impair")==0 && strcmp(boucle4_2,"pair")==0)
  192.                 {
  193.                         for(i=0; 2*i+1<TAILLE; i++) {
  194.                                 for(j=0; 2*j<TAILLE ; j++) {
  195.                                         tab[2*i+1][2*j]=0;
  196.                                 }
  197.                         }
  198.  
  199.                 }
  200.                 else if(strcmp(boucle4_1,"impair")==0 && strcmp(boucle4_2,"impair")==0)
  201.                 {
  202.                         for(i=0; 2*i+1<TAILLE; i++) {
  203.                                 for(j=0; 2*j<TAILLE ; j++) {
  204.                                         tab[2*i+1][2*j+1]=0;
  205.                                 }
  206.                         }
  207.  
  208.                 }
  209.                 else if(strcmp(boucle4_1,"pair")==0 && strcmp(boucle4_2,"impair")==0)
  210.                 {
  211.                         for(i=0; 2*i<TAILLE; i++) {
  212.                                 for(j=0; 2*j<TAILLE ; j++) {
  213.                                         tab[2*i][2*j+1]=0;
  214.                                 }
  215.                         }
  216.  
  217.                 }
  218.         }
  219.  
  220.         /* BOUCLE 5*/
  221.         if (niveau>4)
  222.         {
  223.                 for(i=0;i<TAILLE;i++)
  224.                 {
  225.                         for(j=0;j<TAILLE;j++) {
  226.                                 if(i+j>max)
  227.                                         tab[i][j]=tab[i][j]-1;
  228.                        
  229.                         }
  230.                 }
  231.         }
  232.        
  233.         printf("%d,%d,%d,%d\n",tab[l1][c1],tab[l1+1][c1+1],tab[l1+1][c1+2],tab[l1+2][c1]);
  234.         return 0;
  235.  
  236.  
  237.  
  238.  
  239. }
  240.