Subversion Repositories wimsdev

Rev

Rev 795 | Go to most recent revision | 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 .
6
L'executable doit s'appeler tab2d.o et être place dans
795 bpr 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
}