Subversion Repositories wimsdev

Rev

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