Subversion Repositories wimsdev

Rev

Rev 5505 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

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