Subversion Repositories wimsdev

Rev

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,argv)
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