Rev 795 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 795 | 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 a l'exercice .oef . |
5 | /* Prog C qui fournit les reponses a l'exercice .oef . |
6 | L'executable doit s'appeler tab1d.o et etre place dans |
6 | L'executable doit s'appeler tab1d.o et etre place dans |
7 | ~/wims/other/bin |
7 | ~/wims/other/bin |
8 | Ce prog doit etre lance par le script /wims/public_html/bin/sh_bioinfo |
8 | Ce prog doit etre lance par le script /wims/public_html/bin/sh_bioinfo |
9 | */ |
9 | */ |
10 | 10 | ||
11 | /* Entrees : |
11 | /* Entrees : |
12 | argv[1]= nom du programme () |
12 | argv[1]= nom du programme () |
Line 19... | Line 19... | ||
19 | argv[8]= \max |
19 | argv[8]= \max |
20 | argv[9]= \q1 |
20 | argv[9]= \q1 |
21 | 21 | ||
22 | */ |
22 | */ |
23 | 23 | ||
24 | int main(argc |
24 | int main(int argc, char *argv[]) |
25 | int argc; |
- | |
26 | char *argv[]; |
- | |
27 | { |
25 | { |
28 | - | ||
29 | int tab[51]; |
26 | int tab[51]; |
30 | 27 | ||
31 | int i,q1,niveau, TAILLE, val, max, compteur; |
28 | int i,q1,niveau, TAILLE, val, max, compteur; |
32 | char sens_boucle1[10]; |
29 | char sens_boucle1[10]; |
33 | char valeur_boucle1[10]; |
30 | char valeur_boucle1[10]; |
34 | char parite[10]; |
31 | char parite[10]; |
35 | 32 | ||
36 | sscanf(argv[2],"%d",&niveau); |
33 | sscanf(argv[2],"%d",&niveau); |
37 | sscanf(argv[3],"%d",&TAILLE); |
34 | sscanf(argv[3],"%d",&TAILLE); |
38 | strcpy(sens_boucle1,argv[4]); |
35 | strcpy(sens_boucle1,argv[4]); |
39 | strcpy(valeur_boucle1,argv[5]); |
36 | strcpy(valeur_boucle1,argv[5]); |
40 | strcpy(parite,argv[6]); |
37 | strcpy(parite,argv[6]); |
41 | sscanf(argv[7],"%d",&val); |
38 | sscanf(argv[7],"%d",&val); |
42 | sscanf(argv[8],"%d",&max); |
39 | sscanf(argv[8],"%d",&max); |
43 | sscanf(argv[9],"%d",&q1); |
40 | sscanf(argv[9],"%d",&q1); |
44 | compteur =0; |
41 | compteur =0; |
45 | 42 | ||
46 | if (strcmp(sens_boucle1,valeur_boucle1)==0) |
43 | if (strcmp(sens_boucle1,valeur_boucle1)==0) |
47 | { |
44 | { |
48 | for (i=0;i<TAILLE ; i++) |
45 | for (i=0;i<TAILLE ; i++) |
49 | { |
46 | { |
50 | tab[i] = i; |
47 | tab[i] = i; |
51 | compteur++; |
48 | compteur++; |
52 | } |
49 | } |
53 | } |
50 | } |
54 | else |
51 | else |
55 | { |
52 | { |
56 | for (i=0;i<TAILLE ; i++) |
53 | for (i=0;i<TAILLE ; i++) |
57 | { |
54 | { |
58 | tab[i] = TAILLE-i-1; |
55 | tab[i] = TAILLE-i-1; |
59 | compteur++; |
56 | compteur++; |
60 | } |
57 | } |
61 | } |
58 | } |
62 | 59 | ||
63 | if(niveau>2) |
60 | if(niveau>2) |
64 | { |
61 | { |
65 | for (i=1;i<TAILLE ; i++) |
62 | for (i=1;i<TAILLE ; i++) |
66 | { |
63 | { |
67 | if (tab[i] > max) |
64 | if (tab[i] > max) |
68 | { |
65 | { |
69 | tab[i]=tab[i-1]; |
66 | tab[i]=tab[i-1]; |
70 | } |
67 | } |
71 | else if (i> max) |
68 | else if (i> max) |
72 | { |
69 | { |
73 | tab[i]=tab[i]+1; |
70 | tab[i]=tab[i]+1; |
74 | } |
71 | } |
75 | compteur++; |
72 | compteur++; |
76 | 73 | ||
77 | } |
74 | } |
78 | } |
75 | } |
79 | 76 | ||
80 | if(niveau>1) |
77 | if(niveau>1) |
81 | { |
78 | { |
82 | if (strcmp(parite,"pair")==0) |
79 | if (strcmp(parite,"pair")==0) |
83 | { |
80 | { |
84 | for (i=0; 2*i<TAILLE ;i=i+1) |
81 | for (i=0; 2*i<TAILLE ;i=i+1) |
85 | { |
82 | { |
86 | tab[2*i]=tab[2*i]+val; |
83 | tab[2*i]=tab[2*i]+val; |
87 | compteur++; |
84 | compteur++; |
88 | } |
85 | } |
89 | } |
86 | } |
90 | else |
87 | else |
91 | { |
88 | { |
92 | for (i=0; 2*i+1<TAILLE ;i=i+1) |
89 | for (i=0; 2*i+1<TAILLE ;i=i+1) |
93 | { |
90 | { |
94 | tab[2*i+1]=tab[2*i+1]+val; |
91 | tab[2*i+1]=tab[2*i+1]+val; |
95 | compteur++; |
92 | compteur++; |
96 | } |
93 | } |
97 | } |
94 | } |
98 | } |
95 | } |
99 | 96 | ||
100 | if (niveau<4) |
97 | if (niveau<4) |
101 | compteur=0; |
98 | compteur=0; |
102 | printf("%d,%d,%d\n",tab[q1], tab[q1+1], compteur); |
99 | printf("%d,%d,%d\n",tab[q1], tab[q1+1], compteur); |
103 | 100 | ||
104 | 101 | ||
105 | return 0; |
102 | return 0; |
106 | 103 | ||
107 | } |
104 | } |
108 | 105 | ||
109 | 106 |