Subversion Repositories wimsdev

Rev

Rev 5505 | 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(int argc, char *argv[])
  30. {
  31.         int tab[16][16];
  32.         int i,j,k;
  33.         int niveau,TAILLE,var_boucle1,val_ligne,diago,val_diago,max,ligne;
  34.         int l1,c1;
  35.         char boucle4_1[8];
  36.         char boucle4_2[8];
  37.         char sens_boucle1_1[12];
  38.         char sens_boucle1_2[12];
  39.  
  40.         sscanf(argv[2],"%d",&niveau);
  41.         sscanf(argv[3],"%d",&TAILLE);
  42.         sscanf(argv[4],"%d",&var_boucle1);
  43.         sscanf(argv[5],"%d",&val_ligne);
  44.         sscanf(argv[6],"%d",&diago);
  45.         sscanf(argv[7],"%d",&val_diago);
  46.         strcpy(boucle4_1,argv[8]);
  47.         strcpy(boucle4_2,argv[9]);
  48.         sscanf(argv[10],"%d",&max);
  49.         sscanf(argv[11],"%d",&l1);
  50.         sscanf(argv[12],"%d",&c1);
  51.         sscanf(argv[13],"%d",&ligne);
  52.         strcpy(sens_boucle1_1,argv[14]);
  53.         strcpy(sens_boucle1_2,argv[15]);
  54.  
  55.  
  56.         /* BOUCLE 1 */
  57.  
  58.         if ((strcmp(sens_boucle1_1,"croissant")==0) &&  (strcmp(sens_boucle1_2,"croissant")==0) )
  59.         {
  60.                 if (var_boucle1<3) {
  61.                         for(i=0; i<TAILLE; i++){
  62.                                 for(j=0; j<TAILLE; j++) {
  63.                                         if (var_boucle1==1)
  64.                                                 tab[i][j]=i;
  65.                                         else
  66.                                                 tab[i][j]=j;
  67.                                 }
  68.                         }
  69.                 }
  70.                 else {
  71.                         k=0;
  72.                         for(i=0; i<TAILLE; i++) {
  73.                                 for(j=0; j<TAILLE; j++) {
  74.                                         tab[i][j]=k;
  75.                                         k++;
  76.                                 }
  77.                         }
  78.                 }
  79.         }
  80.  
  81.         else if ((strcmp(sens_boucle1_1,"croissant")==0) && ( strcmp(sens_boucle1_2,"decroissant"))==0)
  82.         {
  83.                 if (var_boucle1<3) {
  84.                         for(i=0; i<TAILLE; i++){
  85.                                 for(j=TAILLE-1; j>=0; j--) {
  86.                                         if (var_boucle1==1)
  87.                                                 tab[i][j]=i;
  88.                                         else
  89.                                                 tab[i][j]=j;
  90.                                 }
  91.                         }
  92.                 }
  93.                 else {
  94.                         k=0;
  95.                         for(i=0; i<TAILLE; i++) {
  96.                                 for(j=TAILLE-1; j>=0; j--) {
  97.                                         tab[i][j]=k;
  98.                                         k++;
  99.                                 }
  100.                         }
  101.                 }
  102.         }
  103.  
  104.         else if ((strcmp(sens_boucle1_1,"decroissant")==0 &&  strcmp(sens_boucle1_2,"croissant"))==0)
  105.         {
  106.                 if (var_boucle1<3) {
  107.                         for(i=TAILLE-1; i>=0; i--){
  108.                                 for(j=0; j<TAILLE; j++) {
  109.                                         if (var_boucle1==1)
  110.                                                 tab[i][j]=i;
  111.                                         else
  112.                                                 tab[i][j]=j;
  113.                                 }
  114.                         }
  115.                 }
  116.                 else {
  117.                         k=0;
  118.                         for(i=TAILLE-1; i>=0; i--){
  119.                                 for(j=0; j<TAILLE; j++) {
  120.                                         tab[i][j]=k;
  121.                                         k++;
  122.                                 }
  123.                         }
  124.                 }
  125.         }
  126.  
  127.         else
  128.         {
  129.                 if (var_boucle1<3) {
  130.                         for(i=TAILLE-1; i>=0; i--){
  131.                                 for(j=TAILLE-1; j>=0; j--) {
  132.                                         if (var_boucle1==1)
  133.                                                 tab[i][j]=i;
  134.                                         else
  135.                                                 tab[i][j]=j;
  136.                                 }
  137.                         }
  138.                 }
  139.                 else {
  140.                         k=0;
  141.                         for(i=TAILLE-1; i>=0; i--){
  142.                                 for(j=TAILLE-1; j>=0; j--) {
  143.                                         tab[i][j]=k;
  144.                                         k++;
  145.                                 }
  146.                         }
  147.                 }
  148.         }
  149.  
  150.  
  151.         /* BOUCLE 2 */
  152.         if (niveau>1)
  153.         {
  154.                 for(i=0; i<TAILLE; i++) {
  155.                         tab[ligne][i]=val_ligne;
  156.                         tab[i][ligne+1]=val_ligne+1;
  157.                 }
  158.         }
  159.  
  160.         /* BOUCLE 3*/
  161.         if (niveau>2)
  162.         {
  163.                 if (diago==1)
  164.                 {
  165.                         for(i=0; i<TAILLE; i++) {
  166.                                 tab[i][i]=val_diago;
  167.                         }
  168.                 }
  169.                 else
  170.                 {
  171.                         for(i=0; i<TAILLE; i++) {
  172.                                 tab[i][TAILLE-1-i]=val_diago;
  173.                         }
  174.                 }
  175.         }
  176.  
  177.         /* BOUCLE 4*/
  178.         if (niveau>3)
  179.         {
  180.                 if(strcmp(boucle4_1,"pair")==0 && strcmp(boucle4_2,"pair")==0)
  181.                 {
  182.                         for(i=0; 2*i<TAILLE; i++) {
  183.                                 for(j=0; 2*j<TAILLE ; j++) {
  184.                                         tab[2*i][2*j]=0;
  185.                                 }
  186.                         }
  187.  
  188.                 }
  189.                 else if(strcmp(boucle4_1,"impair")==0 && strcmp(boucle4_2,"pair")==0)
  190.                 {
  191.                         for(i=0; 2*i+1<TAILLE; i++) {
  192.                                 for(j=0; 2*j<TAILLE ; j++) {
  193.                                         tab[2*i+1][2*j]=0;
  194.                                 }
  195.                         }
  196.  
  197.                 }
  198.                 else if(strcmp(boucle4_1,"impair")==0 && strcmp(boucle4_2,"impair")==0)
  199.                 {
  200.                         for(i=0; 2*i+1<TAILLE; i++) {
  201.                                 for(j=0; 2*j<TAILLE ; j++) {
  202.                                         tab[2*i+1][2*j+1]=0;
  203.                                 }
  204.                         }
  205.  
  206.                 }
  207.                 else if(strcmp(boucle4_1,"pair")==0 && strcmp(boucle4_2,"impair")==0)
  208.                 {
  209.                         for(i=0; 2*i<TAILLE; i++) {
  210.                                 for(j=0; 2*j<TAILLE ; j++) {
  211.                                         tab[2*i][2*j+1]=0;
  212.                                 }
  213.                         }
  214.  
  215.                 }
  216.         }
  217.  
  218.         /* BOUCLE 5*/
  219.         if (niveau>4)
  220.         {
  221.                 for(i=0;i<TAILLE;i++)
  222.                 {
  223.                         for(j=0;j<TAILLE;j++) {
  224.                                 if(i+j>max)
  225.                                         tab[i][j]=tab[i][j]-1;
  226.  
  227.                         }
  228.                 }
  229.         }
  230.  
  231.         printf("%d,%d,%d,%d\n",tab[l1][c1],tab[l1+1][c1+1],tab[l1+1][c1+2],tab[l1+2][c1]);
  232.         return 0;
  233.  
  234.  
  235.  
  236.  
  237. }
  238.