Subversion Repositories wimsdev

Rev

Rev 5505 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
795 bpr 1
#include<stdio.h>
2
#include<string.h>
3
 
4
 
5505 bpr 5
/* Prog C qui fournit les reponses à l'exercice tab2d.oef .
17893 bpr 6
L'executable doit s'appeler tab2d.o et être place dans
7
~/wims/other/bin/bioinfo
795 bpr 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
 
17893 bpr 29
int main(int argc, char *argv[])
795 bpr 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];
17893 bpr 39
 
795 bpr 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 */
17893 bpr 57
 
795 bpr 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;
17893 bpr 65
                                        else
795 bpr 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
        }
17893 bpr 80
 
81
        else if ((strcmp(sens_boucle1_1,"croissant")==0) && ( strcmp(sens_boucle1_2,"decroissant"))==0)
795 bpr 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;
17893 bpr 88
                                        else
795 bpr 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
        }
17893 bpr 103
 
104
        else if ((strcmp(sens_boucle1_1,"decroissant")==0 &&  strcmp(sens_boucle1_2,"croissant"))==0)
795 bpr 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;
17893 bpr 111
                                        else
795 bpr 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
        }
17893 bpr 126
 
795 bpr 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;
17893 bpr 134
                                        else
795 bpr 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
        }
17893 bpr 149
 
150
 
795 bpr 151
        /* BOUCLE 2 */
17893 bpr 152
        if (niveau>1)
795 bpr 153
        {
154
                for(i=0; i<TAILLE; i++) {
155
                        tab[ligne][i]=val_ligne;
156
                        tab[i][ligne+1]=val_ligne+1;
157
                }
158
        }
17893 bpr 159
 
795 bpr 160
        /* BOUCLE 3*/
161
        if (niveau>2)
162
        {
17893 bpr 163
                if (diago==1)
795 bpr 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
        }
17893 bpr 176
 
795 bpr 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;
17893 bpr 226
 
795 bpr 227
                        }
228
                }
229
        }
17893 bpr 230
 
795 bpr 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
}