Commit 5eb7fe63faf562011ce030645e14bcd3f7797e21
0 parents
TP de C
Showing
26 changed files
with
1041 additions
and
0 deletions
Show diff stats
No preview for this file type
1 | +++ a/Tp1.c | ||
@@ -0,0 +1,42 @@ | @@ -0,0 +1,42 @@ | ||
1 | +#include <stdio.h> | ||
2 | + | ||
3 | +void affichage(float x, float y, float z){ | ||
4 | + printf("%f %f %f\n", x, y ,z); | ||
5 | +} | ||
6 | + | ||
7 | +void lecture( float *a, float *b, float *c){ | ||
8 | + scanf("%f%f%f",a,b,c); | ||
9 | +} | ||
10 | + | ||
11 | +void permuter (float* a, float* b){ | ||
12 | + float tmp; | ||
13 | + tmp = *a; | ||
14 | + *a = *b; | ||
15 | + *b = tmp; | ||
16 | +} | ||
17 | + | ||
18 | +void minMax2(float* a, float* b){ | ||
19 | + if( *b < *a){ | ||
20 | + permuter(a,b); | ||
21 | + } | ||
22 | +} | ||
23 | + | ||
24 | +void tri (float* a, float*b, float*c){ | ||
25 | + minMax2(a,b); | ||
26 | + minMax2(b,c); | ||
27 | + minMax2(a,b); | ||
28 | + | ||
29 | +} | ||
30 | + | ||
31 | + | ||
32 | + | ||
33 | +int main(){ | ||
34 | + float a,b,c; | ||
35 | + lecture(&a,&b,&c); | ||
36 | + affichage(a,b,c); | ||
37 | + | ||
38 | + tri(&a,&b,&c); | ||
39 | + affichage(a,b,c); | ||
40 | + | ||
41 | + return 0; | ||
42 | +} |
No preview for this file type
1 | +++ a/Tp1_1.c | ||
@@ -0,0 +1,58 @@ | @@ -0,0 +1,58 @@ | ||
1 | +#include <stdio.h> | ||
2 | + | ||
3 | + | ||
4 | +int chiffre(char ch){ | ||
5 | + if ((ch >= '0') && (ch <= '9')){ | ||
6 | + return 1; | ||
7 | + }else{ | ||
8 | + return 0; | ||
9 | + } | ||
10 | +} | ||
11 | + | ||
12 | +int minuscule(char ch){ | ||
13 | + if ((ch >= 'a') && (ch <= 'z')){ | ||
14 | + return 1; | ||
15 | + }else{ | ||
16 | + return 0; | ||
17 | + } | ||
18 | +} | ||
19 | + | ||
20 | + | ||
21 | +int majuscule(char ch){ | ||
22 | + if ((ch >= 'A') && (ch <= 'Z')){ | ||
23 | + return 1; | ||
24 | + }else{ | ||
25 | + return 0; | ||
26 | + } | ||
27 | +} | ||
28 | + | ||
29 | + | ||
30 | +void analysePhrase(int* nbChar, int* nbChiffre, int* nbMin, int * nbMaj){ | ||
31 | + | ||
32 | + char c; | ||
33 | + scanf("%c",&c); | ||
34 | + | ||
35 | + | ||
36 | + while(c!='.'){ | ||
37 | + if(chiffre(c)==1){ | ||
38 | + *nbChiffre = *nbChiffre+1; | ||
39 | + }else if(minuscule(c)==1){ | ||
40 | + *nbMin=*nbMin+1; | ||
41 | + }else if(majuscule(c)==1){ | ||
42 | + *nbMaj=*nbMaj+1; | ||
43 | + } | ||
44 | + scanf("%c",&c); | ||
45 | + *nbChar=*nbChar+1; | ||
46 | + } | ||
47 | + | ||
48 | +} | ||
49 | + | ||
50 | + | ||
51 | + | ||
52 | +int main(){ | ||
53 | + int nbChar=0,nbChiffre=0,nbMin=0, nbMaj =0; | ||
54 | + printf("Char: %d Chiffre: %d nbMin: %d nbMaj: %d\n",nbChar,nbChiffre,nbMin, nbMaj); | ||
55 | + analysePhrase(&nbChar,&nbChiffre,&nbMin,&nbMaj); | ||
56 | + printf("Char: %d Chiffre: %d nbMin: %d nbMaj: %d\n",nbChar,nbChiffre,nbMin, nbMaj); | ||
57 | + return 0; | ||
58 | +} |
No preview for this file type
1 | +++ a/Tp1_2.c | ||
@@ -0,0 +1,61 @@ | @@ -0,0 +1,61 @@ | ||
1 | +#include <stdio.h> | ||
2 | + | ||
3 | +void lireDate(int* jour, int* mois, int* annee){ | ||
4 | + int i=0; | ||
5 | + scanf("%d",&i); | ||
6 | + while(i < 1 || i > 32){ | ||
7 | + scanf("%d",&i); | ||
8 | + } | ||
9 | + *jour = i; | ||
10 | + scanf("%d",&i); | ||
11 | + while(i < 1 || i > 12){ | ||
12 | + scanf("%d",&i); | ||
13 | + } | ||
14 | + *mois = i; | ||
15 | + scanf("%d",&i); //do while | ||
16 | + while(i < 0000 || i > 9999){ | ||
17 | + scanf("%d",&i); | ||
18 | + } | ||
19 | + *annee = i; | ||
20 | +} | ||
21 | + | ||
22 | +void lire2Dates(int* jour1,int* jour2, int* mois1, int* mois2, int* annee1,int* annee2){ | ||
23 | + lireDate(jour1,mois1,annee1); | ||
24 | + lireDate(jour2,mois2,annee2); | ||
25 | +} | ||
26 | + | ||
27 | +int compareDate (int jour1,int jour2, int mois1, int mois2, int annee1,int annee2){ | ||
28 | + if(annee1 > annee2){ | ||
29 | + return 1; | ||
30 | + }else if (annee1 < annee2){ | ||
31 | + return -1; | ||
32 | + }else if (mois1 > mois2){ | ||
33 | + return 1; | ||
34 | + }else if (mois1 < mois2){ | ||
35 | + return -1; | ||
36 | + }else if (jour1 > jour2){ | ||
37 | + return 1; | ||
38 | + }else if (jour1 < jour2){ | ||
39 | + return -1; | ||
40 | + }else { | ||
41 | + return 0; | ||
42 | + } | ||
43 | +} | ||
44 | + | ||
45 | +int main(){ | ||
46 | + int jour=0,mois=0,annee=0; | ||
47 | + int jour2=0,mois2=0,annee2=0; | ||
48 | + int valCmp; | ||
49 | + lire2Dates(&jour, &jour2, &mois, &mois2, &annee, &annee2); | ||
50 | + printf("Date 1 Jour: %d Mois: %d Annee: %d \n",jour, mois, annee); | ||
51 | + printf("Date 2 Jour: %d Mois: %d Annee: %d \n",jour2, mois2, annee2); | ||
52 | + valCmp = compareDate(jour, jour2, mois, mois2, annee, annee2); | ||
53 | + if (valCmp == 1){ | ||
54 | + printf("Date1 > Date2\n"); | ||
55 | + }else if(valCmp == -1){ | ||
56 | + printf("Date2 > Date1\n"); | ||
57 | + }else{ | ||
58 | + printf("Date égales\n"); | ||
59 | + } | ||
60 | + return 0; | ||
61 | +} |
No preview for this file type
1 | +++ a/Tp1_3.c | ||
@@ -0,0 +1,76 @@ | @@ -0,0 +1,76 @@ | ||
1 | +#include <stdio.h> | ||
2 | + | ||
3 | +float somme(float v1, float v2){ | ||
4 | + return (v1+v2); | ||
5 | +} | ||
6 | + | ||
7 | +void minMax(float *min, float* max, float a, float b, float c){ | ||
8 | + if( a>b && a>c){ | ||
9 | + *max = a; | ||
10 | + }else if (b>a && b>c){ | ||
11 | + *max = b; | ||
12 | + }else { | ||
13 | + *max =c; | ||
14 | + } | ||
15 | + | ||
16 | + if( a<b && a<c){ | ||
17 | + *min = a; | ||
18 | + }else if (b<a && b<c){ | ||
19 | + *min = b; | ||
20 | + }else { | ||
21 | + *min =c; | ||
22 | + } | ||
23 | + | ||
24 | +} | ||
25 | + | ||
26 | +void permuter (float* a, float* b){ | ||
27 | + float tmp; | ||
28 | + tmp = *a; | ||
29 | + *a = *b; | ||
30 | + *b = tmp; | ||
31 | +} | ||
32 | + | ||
33 | +void minMax2v(float* v1,float* v2){ | ||
34 | + if(*v2>*v1){ | ||
35 | + permuter(v1,v2); | ||
36 | + } | ||
37 | +} | ||
38 | + | ||
39 | +void traitementSuite( float* min, float* max, float* moyenne, int* existe){ | ||
40 | + float tmp=0; | ||
41 | + float res=0; | ||
42 | + int i=0; | ||
43 | + scanf("%f",&tmp); | ||
44 | + | ||
45 | + if(tmp==0){ | ||
46 | + *existe =0; | ||
47 | + }else{ | ||
48 | + | ||
49 | + *min = *max = tmp; | ||
50 | + res = res + tmp; | ||
51 | + i=1; | ||
52 | + scanf("%f",&tmp); | ||
53 | + res = res + tmp; | ||
54 | + minMax2v(min,&tmp); | ||
55 | + minMax2v(&tmp,max); | ||
56 | + | ||
57 | + while(tmp!=0){ | ||
58 | + i++; | ||
59 | + scanf("%f",&tmp); | ||
60 | + res = res + tmp; | ||
61 | + minMax(min,max,*min, tmp,*max); | ||
62 | + } | ||
63 | + | ||
64 | + *moyenne= (res/i); | ||
65 | + *existe=1; | ||
66 | + } | ||
67 | + //printf("somme %f i: %d",res,i); | ||
68 | +} | ||
69 | + | ||
70 | +int main(){ | ||
71 | + float min,max,moyenne; | ||
72 | + int existe; | ||
73 | + traitementSuite(&min,&max,&moyenne,&existe); | ||
74 | + printf("min: %f max: %f moyenne: %f, existe: %d",min,max,moyenne,existe); | ||
75 | + return 0; | ||
76 | +} |
No preview for this file type
1 | +++ a/Tp1_soundex.c | ||
@@ -0,0 +1,50 @@ | @@ -0,0 +1,50 @@ | ||
1 | +#include <stdio.h> | ||
2 | + | ||
3 | +int minuscule(char ch){ | ||
4 | + if ((ch >= 'a') && (ch <= 'z')){ | ||
5 | + return 1; | ||
6 | + }else{ | ||
7 | + return 0; | ||
8 | + } | ||
9 | +} | ||
10 | + | ||
11 | + | ||
12 | +int majuscule(char ch){ | ||
13 | + if ((ch >= 'A') && (ch <= 'Z')){ | ||
14 | + return 1; | ||
15 | + }else{ | ||
16 | + return 0; | ||
17 | + } | ||
18 | +} | ||
19 | + | ||
20 | +int estVoyelle(char ch){ | ||
21 | + if(ch == 'a' || ch=='e' || ch=='i'|| ch=='o' || ch=='u' || ch=='y' ||ch== 'A' || ch=='E' ||ch== 'I' ||ch== 'O' || ch=='U' || ch=='Y'){ | ||
22 | + return 1; | ||
23 | + } | ||
24 | + return 0; | ||
25 | +} | ||
26 | + | ||
27 | +void soundexcode(){ | ||
28 | + char ch; | ||
29 | + char savech; | ||
30 | + int nblettre = 4; | ||
31 | + scanf("%c",&ch); | ||
32 | + savech=ch; | ||
33 | + printf("==> %c",ch); | ||
34 | + | ||
35 | + while(nblettre!=1 && (minuscule(ch) || majuscule(ch))){ | ||
36 | + scanf("%c",&ch); | ||
37 | + if (ch != savech && !estVoyelle(ch)){ | ||
38 | + savech=ch; | ||
39 | + printf("%c",ch); | ||
40 | + | ||
41 | + nblettre--; | ||
42 | + } | ||
43 | + savech=ch; | ||
44 | + } | ||
45 | + | ||
46 | +} | ||
47 | + | ||
48 | +int main(){ | ||
49 | + soundexcode(); | ||
50 | +} |
No preview for this file type
1 | +++ a/Tp2/Tp2_Kaprekar.c | ||
@@ -0,0 +1,95 @@ | @@ -0,0 +1,95 @@ | ||
1 | +#include <stdio.h> | ||
2 | + | ||
3 | +void decomp3(int val, int* centaine, int* dizaine,int* unite){ | ||
4 | + *centaine = val/100; | ||
5 | + val = val - ((*centaine)*100); | ||
6 | + *dizaine = val/10; | ||
7 | + val = val - ((*dizaine)*10); | ||
8 | + *unite = val; | ||
9 | +} | ||
10 | + | ||
11 | +int recomp3( int centaine, int dizaine,int unite){ | ||
12 | + return centaine*100+dizaine*10+unite; | ||
13 | +} | ||
14 | + | ||
15 | +void permuter (int* a, int* b){ | ||
16 | + int tmp; | ||
17 | + tmp = *a; | ||
18 | + *a = *b; | ||
19 | + *b = tmp; | ||
20 | +} | ||
21 | + | ||
22 | +void MaxMin(int* v1,int* v2){ | ||
23 | + if(*v2>*v1){ | ||
24 | + permuter(v1,v2); | ||
25 | + } | ||
26 | +} | ||
27 | + | ||
28 | +void ordonne3 (int*a, int*b, int*c){ | ||
29 | + MaxMin(a,b); | ||
30 | + MaxMin(b,c); | ||
31 | + MaxMin(a,b); | ||
32 | +} | ||
33 | + | ||
34 | +void ordonne3croissant (int*a, int*b, int*c){ | ||
35 | + MaxMin(a,b); | ||
36 | + MaxMin(b,c); | ||
37 | + MaxMin(a,b); | ||
38 | + permuter(a,c); | ||
39 | +} | ||
40 | + | ||
41 | +int calcNbr(int val){ | ||
42 | + | ||
43 | + int centaine, dizaine, unite; | ||
44 | + int N1, N2, NBR; | ||
45 | + | ||
46 | + decomp3(val,¢aine,&dizaine,&unite); | ||
47 | + | ||
48 | + ordonne3(¢aine,&dizaine,&unite); | ||
49 | + N1=recomp3(centaine, dizaine, unite); | ||
50 | + | ||
51 | + ordonne3croissant(¢aine,&dizaine,&unite); | ||
52 | + N2=recomp3(centaine, dizaine, unite); | ||
53 | + | ||
54 | + NBR=N1-N2; | ||
55 | + return NBR; | ||
56 | +} | ||
57 | + | ||
58 | + | ||
59 | +int convergence(int val){ | ||
60 | + int valSave=val; | ||
61 | + int NBR; | ||
62 | + NBR = calcNbr(val); | ||
63 | + | ||
64 | + while(valSave != NBR){ | ||
65 | + valSave = NBR; | ||
66 | + NBR = calcNbr(NBR); | ||
67 | + | ||
68 | + | ||
69 | + //printf("%d\n",NBR); | ||
70 | + } | ||
71 | + return NBR; | ||
72 | +} | ||
73 | + | ||
74 | + | ||
75 | +int main(){ | ||
76 | + int val,NBR; | ||
77 | + scanf("%d",&val); | ||
78 | + NBR = convergence(val); | ||
79 | + printf("Nombre: %d Convergence: %d \n",val, NBR); | ||
80 | + | ||
81 | + /*int N1, N2, NBR; | ||
82 | + decomp3(val,¢aine,&dizaine,&unite); | ||
83 | + | ||
84 | + ordonne3(¢aine,&dizaine,&unite); | ||
85 | + N1=recomp3(centaine, dizaine, unite); | ||
86 | + | ||
87 | + ordonne3croissant(¢aine,&dizaine,&unite); | ||
88 | + N2=recomp3(centaine, dizaine, unite); | ||
89 | + | ||
90 | + NBR=N1-N2; | ||
91 | + | ||
92 | + //printf("Valeur initiale: %d \n N1: %d \n N2: %d \n NBR: %d\n",val,N1,N2,NBR); | ||
93 | + */ | ||
94 | + return 0; | ||
95 | +} |
No preview for this file type
1 | +++ a/Tp3/Tp3_JeuNbSecret.c | ||
@@ -0,0 +1,116 @@ | @@ -0,0 +1,116 @@ | ||
1 | +#include <stdio.h> | ||
2 | + | ||
3 | +float somme(float v1, float v2){ | ||
4 | + return v1+v2; | ||
5 | +} | ||
6 | + | ||
7 | +float soustraction(float v1, float v2){ | ||
8 | + return v1-v2; | ||
9 | +} | ||
10 | + | ||
11 | +float produit(float v1, float v2){ | ||
12 | + return v1*v2; | ||
13 | +} | ||
14 | + | ||
15 | +float division(float v1, float v2){ | ||
16 | + if(v2 != 0){ | ||
17 | + return v1/v2; | ||
18 | + } | ||
19 | + return -404; | ||
20 | +} | ||
21 | + | ||
22 | +int chiffre(char ch){ | ||
23 | + if ((ch >= '0') && (ch <= '9')){ | ||
24 | + return 1; | ||
25 | + }else{ | ||
26 | + return 0; | ||
27 | + } | ||
28 | +} | ||
29 | + | ||
30 | + int estOperateur(char c){ | ||
31 | + if( c == '+' || c == '-' || c == '*' ){ | ||
32 | + return 1; | ||
33 | + } | ||
34 | + return 0; | ||
35 | +} | ||
36 | + | ||
37 | + | ||
38 | +void lireCar( char * car){ | ||
39 | + *car = ' '; | ||
40 | + while( *car == ' ' || *car == '\n'){ | ||
41 | + scanf("%c",car); | ||
42 | + } | ||
43 | +} | ||
44 | + | ||
45 | + | ||
46 | +int estEgal(char c){ | ||
47 | + if( c == '='){ | ||
48 | + return 1; | ||
49 | + } | ||
50 | + return 0; | ||
51 | +} | ||
52 | + | ||
53 | + | ||
54 | + | ||
55 | + | ||
56 | +float faireCalc ( float a, char signe, float b){ | ||
57 | + if(signe == '*'){ | ||
58 | + return produit(a,b); | ||
59 | + } else if(signe == '-'){ | ||
60 | + return soustraction(a,b); | ||
61 | + } else if(signe == '+'){ | ||
62 | + return somme(a,b); | ||
63 | + } | ||
64 | + return -1; | ||
65 | + | ||
66 | +} | ||
67 | + | ||
68 | +int main(){ | ||
69 | + char c, signe, v2; | ||
70 | + float f1=0, f2=0; | ||
71 | + int cpt = 0; | ||
72 | + lireCar(&c); | ||
73 | + while(chiffre(c)!=1){ | ||
74 | + lireCar(&c); | ||
75 | + } | ||
76 | + f1 = c - '0'; | ||
77 | + printf("%f\n\n",f1); | ||
78 | + | ||
79 | + lireCar(&c); | ||
80 | + while(estEgal(c)!=1){ | ||
81 | + cpt++; | ||
82 | + if(estOperateur(c)){ | ||
83 | + signe = c; | ||
84 | + } else if (chiffre(c)){ | ||
85 | + v2 = c; | ||
86 | + f2 = v2 - '0'; | ||
87 | + } | ||
88 | + if( cpt % 2 == 1 && cpt !=1){ | ||
89 | + f1 = faireCalc(f1,signe,f2); | ||
90 | + | ||
91 | + printf("f1:%f signe: %c f2: %f = %f\n",f1,signe,f2, faireCalc(f1,signe,f2)); | ||
92 | + | ||
93 | + } | ||
94 | + | ||
95 | + | ||
96 | + lireCar (&c); | ||
97 | + | ||
98 | + | ||
99 | + /* | ||
100 | + while(estOperateur(signe)!=1 ){ | ||
101 | + lireCar(&signe); | ||
102 | + } | ||
103 | + lireCar(&v2); | ||
104 | + while(chiffre(v2)!=1){ | ||
105 | + lireCar(&v2); | ||
106 | + } | ||
107 | + f2 = v2 - '0'; | ||
108 | + | ||
109 | + f1 = faireCalc(f1,signe,f2); | ||
110 | + printf("%f %c %f = %f",f1,signe,f2, faireCalc(f1,signe,f2));*/ | ||
111 | + } | ||
112 | + | ||
113 | + | ||
114 | + return 0; | ||
115 | + | ||
116 | +} |
No preview for this file type
1 | +++ a/Tp4/tp4.c | ||
@@ -0,0 +1,125 @@ | @@ -0,0 +1,125 @@ | ||
1 | +#include <stdio.h> | ||
2 | +#include <string.h> | ||
3 | + | ||
4 | +#define N 4 | ||
5 | + | ||
6 | +void printVector (float vect[], int n){ | ||
7 | + int i ; | ||
8 | + for(i=0; i <= n-1; i++){ | ||
9 | + printf("V[%d]:%f ",i, vect[i]); | ||
10 | + | ||
11 | + } | ||
12 | + printf("\n\n"); | ||
13 | +} | ||
14 | + | ||
15 | +void setVector (float vect[], int n){ | ||
16 | + int i ; | ||
17 | + scanf("%f", &vect[0]); | ||
18 | + | ||
19 | + for(i=1; i <= n-1; i++){ | ||
20 | + scanf("%f", &vect[i]); | ||
21 | + while (vect[i] < vect[i-1]){ | ||
22 | + printf("001- Suite non croissante \nVecteurActuel:"); | ||
23 | + printVector(vect, i); | ||
24 | + | ||
25 | + scanf("%f", &vect[i]); | ||
26 | + } | ||
27 | + } | ||
28 | +} | ||
29 | + | ||
30 | + | ||
31 | +void calcSommeFloat (float* sommeFloatNeg, float* sommeFloatPos, float vect[], int n){ | ||
32 | + int i ; | ||
33 | + float resNeg=0; | ||
34 | + float resPos=0; | ||
35 | + | ||
36 | + for(i=0; i <= n-1; i++){ | ||
37 | + if(vect[i]>=0){ | ||
38 | + resPos += vect[i]; | ||
39 | + }else { | ||
40 | + resNeg += vect[i]; | ||
41 | + } | ||
42 | + } | ||
43 | + | ||
44 | + *sommeFloatPos = resPos; | ||
45 | + *sommeFloatNeg = resNeg; | ||
46 | +} | ||
47 | + | ||
48 | +void fusion ( float vect1[],float vect2[],float vectres[], int n){ | ||
49 | + int indV1=0; | ||
50 | + int indV2=0; | ||
51 | + int i; | ||
52 | + while( indV1 <= n-1 && indV2 <= n-1){ | ||
53 | + if( vect1[indV1] <= vect2[indV2]){ | ||
54 | + vectres[indV1+indV2] = vect1[indV1] ; | ||
55 | + indV1++; | ||
56 | + }else { | ||
57 | + vectres[indV1+indV2] = vect2[indV2] ; | ||
58 | + indV2++; | ||
59 | + } | ||
60 | + | ||
61 | + } | ||
62 | + | ||
63 | + if( indV1 == n ){ | ||
64 | + for( i = indV2; i <= n-1; i++){ | ||
65 | + vectres[indV1+i] = vect2[i]; | ||
66 | + } | ||
67 | + }else { | ||
68 | + for( i = indV1; i <= n-1; i++){ | ||
69 | + vectres[indV2+i] = vect1[i]; | ||
70 | + } | ||
71 | + } | ||
72 | +} | ||
73 | + | ||
74 | +void intersection ( float vect1[],float vect2[],float vectres[], int n, int * nbValV3){ | ||
75 | + | ||
76 | + int indV1=0; | ||
77 | + int indV2=0; | ||
78 | + | ||
79 | + *nbValV3 = 0; | ||
80 | + while( indV1 <= n-1 && indV2 <= n-1){ | ||
81 | + if( vect1[indV1] < vect2[indV2]){ | ||
82 | + | ||
83 | + indV1++; | ||
84 | + } else if(vect1[indV1] == vect2[indV2]){ | ||
85 | + vectres[*nbValV3]= vect1[indV1]; | ||
86 | + (*nbValV3)++; | ||
87 | + indV1++; | ||
88 | + indV2++; | ||
89 | + } else { | ||
90 | + indV2++; | ||
91 | + } | ||
92 | + | ||
93 | + } | ||
94 | + | ||
95 | +} | ||
96 | + | ||
97 | + | ||
98 | + | ||
99 | +int main (){ | ||
100 | + /*float vector[N]; | ||
101 | + float sommeFloatNeg; | ||
102 | + float sommeFloatPos; | ||
103 | + | ||
104 | + setVector(vector, N); | ||
105 | + printVector(vector, N); | ||
106 | + | ||
107 | + calcSommeFloat ( &sommeFloatNeg, & sommeFloatPos, vector, N); | ||
108 | + printf("Pos %f ; Neg %f", sommeFloatPos, sommeFloatNeg); | ||
109 | + | ||
110 | + */ | ||
111 | + float vector1[N]; | ||
112 | + float vector2[N]; | ||
113 | + setVector(vector1, N); | ||
114 | + setVector(vector2, N); | ||
115 | + float vector3[N*2]; | ||
116 | + fusion( vector1, vector2, vector3, N); | ||
117 | + printVector( vector3, 2*N); | ||
118 | + float vector4[N]; | ||
119 | + int nbVal=0; | ||
120 | + intersection(vector1, vector2, vector4, N, &nbVal); | ||
121 | + printVector( vector4, nbVal); | ||
122 | + | ||
123 | + | ||
124 | + return 1; | ||
125 | +} |
No preview for this file type
1 | +++ a/Tp5_Chaines/tp5.c | ||
@@ -0,0 +1,128 @@ | @@ -0,0 +1,128 @@ | ||
1 | +#include <stdio.h> | ||
2 | +#include <string.h> | ||
3 | + | ||
4 | +#define N 50 | ||
5 | + | ||
6 | + | ||
7 | +void setChaine (char *vect){ | ||
8 | + scanf("%s", vect); | ||
9 | +} | ||
10 | + | ||
11 | +void afficheCar (char car, char nb){ | ||
12 | + | ||
13 | + int nba; | ||
14 | + nba = nb - '0'; | ||
15 | + int i ; | ||
16 | + for(i=1; i <= nba; i++){ | ||
17 | + printf("%c", car); | ||
18 | + } | ||
19 | +} | ||
20 | + | ||
21 | +void insererCar (char * ch, char car, int* ind, char nb){ | ||
22 | + int i ; | ||
23 | + int nba; | ||
24 | + nba = nb - '0'; | ||
25 | + for(i=(*ind); i < (*ind)+nba; i++){ | ||
26 | + ch[i] = car; | ||
27 | + } | ||
28 | + *ind = *ind + nba; | ||
29 | +} | ||
30 | + | ||
31 | + | ||
32 | + | ||
33 | +int chiffre(char ch){ | ||
34 | + if ((ch >= '0') && (ch <= '9')){ | ||
35 | + return 1; | ||
36 | + }else{ | ||
37 | + return 0; | ||
38 | + } | ||
39 | +} | ||
40 | + | ||
41 | +int minuscule(char ch){ | ||
42 | + if ((ch >= 'a') && (ch <= 'z')){ | ||
43 | + return 1; | ||
44 | + }else{ | ||
45 | + return 0; | ||
46 | + } | ||
47 | +} | ||
48 | + | ||
49 | + | ||
50 | +int majuscule(char ch){ | ||
51 | + if ((ch >= 'A') && (ch <= 'Z')){ | ||
52 | + return 1; | ||
53 | + }else{ | ||
54 | + return 0; | ||
55 | + } | ||
56 | +} | ||
57 | + | ||
58 | +void traiterChain ( char v[], char res[]){ | ||
59 | + int i; | ||
60 | + | ||
61 | + i = 0; | ||
62 | + int ind = 0; | ||
63 | + while(v[i] != '\0'){ | ||
64 | + if(v[i+1]=='\0'){ | ||
65 | + afficheCar(v[i],'1'); | ||
66 | + insererCar(res,v[i],&ind,'1'); | ||
67 | + i +=1; | ||
68 | + }else if(chiffre(v[i])){ | ||
69 | + afficheCar(v[i+1],((v[i])+1)); | ||
70 | + insererCar(res,v[i+1],&ind,((v[i])+1)); | ||
71 | + i += 2; | ||
72 | + } else if(minuscule(v[i]) || majuscule(v[i])){ | ||
73 | + | ||
74 | + afficheCar(v[i],'1'); | ||
75 | + insererCar(res,v[i],&ind,'1'); | ||
76 | + i += 1; | ||
77 | + } | ||
78 | + | ||
79 | + } | ||
80 | + res[ind] = '\0'; | ||
81 | + printf("---->%s",res); | ||
82 | +} | ||
83 | + | ||
84 | +/*void traiterChaine ( char v[]){ | ||
85 | + int i; | ||
86 | + | ||
87 | + i = 0; | ||
88 | + while(v[i] != '\0'){ | ||
89 | + if(v[i+1]=='\0'){ | ||
90 | + afficheCar(v[i],'1'); | ||
91 | + i +=1; | ||
92 | + }else if(chiffre(v[i])){ | ||
93 | + afficheCar(v[i+1],((v[i])+1)); | ||
94 | + i += 2; | ||
95 | + } else if(minuscule(v[i]) || majuscule(v[i])){ | ||
96 | + | ||
97 | + afficheCar(v[i],'1'); | ||
98 | + i += 1; | ||
99 | + } | ||
100 | + } | ||
101 | +}*/ | ||
102 | + | ||
103 | + | ||
104 | +void EncodChain ( char v[], char encode[]){ | ||
105 | + int i; | ||
106 | + i = 0; | ||
107 | + char cCourant; | ||
108 | + | ||
109 | + while(v[i] != '\0'){ | ||
110 | + if(v[i+1]=='\0'){ | ||
111 | + insererCar(encode,v[i+1],&i,1); | ||
112 | + i +=1; | ||
113 | + | ||
114 | + | ||
115 | + } | ||
116 | + } | ||
117 | +} | ||
118 | + | ||
119 | + | ||
120 | + | ||
121 | +int main (){ | ||
122 | + char vect[N]; | ||
123 | + char decode[N]; | ||
124 | + setChaine(vect); | ||
125 | + traiterChain(vect,decode); | ||
126 | + | ||
127 | + return 1; | ||
128 | +} |
No preview for this file type
1 | +++ a/Tp6_Matrices/Tp6_1.c | ||
@@ -0,0 +1,108 @@ | @@ -0,0 +1,108 @@ | ||
1 | +#include <stdio.h> | ||
2 | +#include <string.h> | ||
3 | + | ||
4 | +#define N 3 | ||
5 | + | ||
6 | +//lecture mat taille N*N | ||
7 | +void lireMatrice (int mat[][N], int n){ | ||
8 | + | ||
9 | + int i,j; | ||
10 | + for(i=0; i <= n-1 ; i++){ | ||
11 | + | ||
12 | + for(j=0; j <= n-1; j++){ | ||
13 | + scanf("%d", &mat[i][j]); | ||
14 | + } | ||
15 | + } | ||
16 | +} | ||
17 | + | ||
18 | +// affiche matrice carre | ||
19 | +void afficheMat (int mat[][N], int n){ | ||
20 | + int i,j; | ||
21 | + for(i=0; i <= n-1 ; i++){ | ||
22 | + | ||
23 | + for(j=0; j <= n-1; j++){ | ||
24 | + printf(" %d ", mat[i][j]); | ||
25 | + } | ||
26 | + printf("\n"); | ||
27 | + } | ||
28 | +} | ||
29 | + | ||
30 | +//calcul somme ligne donnee | ||
31 | +int calcSommeLigne (int mat[][N], int n, int ligne){ | ||
32 | + int j; | ||
33 | + int somme = mat [ligne][0]; | ||
34 | + | ||
35 | + for(j=1; j <= n-1; j++){ | ||
36 | + somme += mat[ligne][j]; | ||
37 | + } | ||
38 | + //printf("%d",somme); | ||
39 | + return somme; | ||
40 | +} | ||
41 | + | ||
42 | +//calcul somme col donnee | ||
43 | +int calcSommeCol (int mat[][N], int n, int col){ | ||
44 | + int i; | ||
45 | + int somme = mat [0][col]; | ||
46 | + | ||
47 | + for(i=1; i <= n-1; i++){ | ||
48 | + somme += mat[i][col]; | ||
49 | + } | ||
50 | + //printf("%d",somme); | ||
51 | + return somme; | ||
52 | +} | ||
53 | + | ||
54 | +//calcul somme col donnee | ||
55 | +void calcSommeDiag (int mat[][N], int n, int * sommeHB, int * sommeBH){ | ||
56 | + int i; | ||
57 | + *sommeHB = mat [0][0]; | ||
58 | + *sommeBH = mat [n-1][0]; | ||
59 | + for(i=1; i <= n-1; i++){ | ||
60 | + *sommeHB += mat[i][i]; | ||
61 | + *sommeBH += mat[n-1-i][i]; | ||
62 | + | ||
63 | + } | ||
64 | + //printf("%d et %d",*sommeHB, *sommeBH); | ||
65 | + | ||
66 | +} | ||
67 | + | ||
68 | +int estMagique(int mat[][N], int n){ | ||
69 | + int i=0; | ||
70 | + int estMagique=1; | ||
71 | + | ||
72 | + int sommeHB, sommeBH; | ||
73 | + calcSommeDiag(mat, N, &sommeHB, &sommeBH); | ||
74 | + | ||
75 | + if(sommeHB != sommeBH){ | ||
76 | + estMagique = 1; | ||
77 | + } | ||
78 | + | ||
79 | + while (i < n && estMagique ==1){ | ||
80 | + if((calcSommeLigne(mat, N,i) != calcSommeCol(mat, N,i)) || (calcSommeLigne(mat, N,i) != sommeHB)){ | ||
81 | + estMagique = 0; | ||
82 | + } | ||
83 | + | ||
84 | + i++; | ||
85 | + } | ||
86 | + return estMagique; | ||
87 | +} | ||
88 | + | ||
89 | +int main (){ | ||
90 | + | ||
91 | + int mat [N][N]; | ||
92 | + lireMatrice(mat, N); | ||
93 | + afficheMat(mat, N); | ||
94 | + calcSommeLigne(mat, N,1); | ||
95 | + calcSommeCol(mat, N,1); | ||
96 | + | ||
97 | + int sommeHB, sommeBH; | ||
98 | + calcSommeDiag(mat, N, &sommeHB, &sommeBH); | ||
99 | + | ||
100 | + if( estMagique(mat,N) == 1){ | ||
101 | + printf("MAGIQUE"); | ||
102 | + }else{ | ||
103 | + printf("Non"); | ||
104 | + | ||
105 | + } | ||
106 | + return 1; | ||
107 | + | ||
108 | +} |
No preview for this file type
1 | +++ a/Tp6_Matrices/Tp6_2.c | ||
@@ -0,0 +1,176 @@ | @@ -0,0 +1,176 @@ | ||
1 | +#include <stdio.h> | ||
2 | +#include <string.h> | ||
3 | + | ||
4 | +#define N 3 | ||
5 | + | ||
6 | +//lecture mat taille N*N | ||
7 | +void lireMatrice (int mat[][N], int n){ | ||
8 | + | ||
9 | + int i,j; | ||
10 | + for(i=0; i <= n-1 ; i++){ | ||
11 | + | ||
12 | + for(j=0; j <= n-1; j++){ | ||
13 | + scanf("%d", &mat[i][j]); | ||
14 | + } | ||
15 | + } | ||
16 | +} | ||
17 | + | ||
18 | +// affiche matrice carre | ||
19 | +void afficheMat (int mat[][N], int n){ | ||
20 | + int i,j; | ||
21 | + for(i=0; i <= n-1 ; i++){ | ||
22 | + | ||
23 | + for(j=0; j <= n-1; j++){ | ||
24 | + printf(" %d ", mat[i][j]); | ||
25 | + } | ||
26 | + printf("\n"); | ||
27 | + } | ||
28 | +} | ||
29 | +// affiche vecteur | ||
30 | +void afficheVect (int mat[], int n){ | ||
31 | + int i; | ||
32 | + for(i=0; i <= n-1 ; i++){ | ||
33 | + | ||
34 | + | ||
35 | + printf(" %d ", mat[i]); | ||
36 | + | ||
37 | + | ||
38 | + } | ||
39 | + printf("\n"); | ||
40 | +} | ||
41 | + | ||
42 | + | ||
43 | + | ||
44 | +void setMatriceVals (int mat[], int n){ | ||
45 | + | ||
46 | + int i; | ||
47 | + | ||
48 | + for(i=0; i <= n-1 ; i++){ | ||
49 | + mat[i]=0; | ||
50 | + | ||
51 | + } | ||
52 | + afficheVect(mat,n); | ||
53 | +} | ||
54 | + | ||
55 | +//calcul somme ligne donnee | ||
56 | +int calcSommeLigne (int mat[][N], int n, int ligne){ | ||
57 | + int j; | ||
58 | + int somme = mat [ligne][0]; | ||
59 | + | ||
60 | + for(j=1; j <= n-1; j++){ | ||
61 | + somme += mat[ligne][j]; | ||
62 | + } | ||
63 | + //printf("%d",somme); | ||
64 | + return somme; | ||
65 | +} | ||
66 | + | ||
67 | + | ||
68 | +void sommeLigneEtVerifNormal(int mat[][N], int val[], int * estNormal, int * sommeLigne, int n){ | ||
69 | + *sommeLigne = calcSommeLigne(mat, n, 0); | ||
70 | + int sommeTempo; | ||
71 | + int i =0; | ||
72 | + int j=0; | ||
73 | + while (*estNormal == 1 && i<n){ | ||
74 | + sommeTempo = 0; | ||
75 | + while (*estNormal == 1 && j<n ){ | ||
76 | + if(val[((mat[i][j])-1)] == 0){ | ||
77 | + | ||
78 | + sommeTempo+= mat[i][j]; | ||
79 | + val[((mat[i][j])-1)]=1; | ||
80 | + | ||
81 | + | ||
82 | + afficheVect(val,2*n); | ||
83 | + | ||
84 | + } else { | ||
85 | + *estNormal = 0; | ||
86 | + } | ||
87 | + j++; | ||
88 | + | ||
89 | + } | ||
90 | + if(sommeTempo != *sommeLigne){ | ||
91 | + *estNormal =0; | ||
92 | + } | ||
93 | + i++; | ||
94 | + } | ||
95 | +} | ||
96 | + | ||
97 | + | ||
98 | + | ||
99 | + | ||
100 | +//calcul somme col donnee | ||
101 | +int calcSommeCol (int mat[][N], int n, int col){ | ||
102 | + int i; | ||
103 | + int somme = mat [0][col]; | ||
104 | + | ||
105 | + for(i=1; i <= n-1; i++){ | ||
106 | + somme += mat[i][col]; | ||
107 | + } | ||
108 | + //printf("%d",somme); | ||
109 | + return somme; | ||
110 | +} | ||
111 | + | ||
112 | +//calcul somme col donnee | ||
113 | +void calcSommeDiag (int mat[][N], int n, int * sommeHB, int * sommeBH){ | ||
114 | + int i; | ||
115 | + *sommeHB = mat [0][0]; | ||
116 | + *sommeBH = mat [n-1][0]; | ||
117 | + for(i=1; i <= n-1; i++){ | ||
118 | + *sommeHB += mat[i][i]; | ||
119 | + *sommeBH += mat[n-1-i][i]; | ||
120 | + | ||
121 | + } | ||
122 | + //printf("%d et %d",*sommeHB, *sommeBH); | ||
123 | + | ||
124 | +} | ||
125 | + | ||
126 | +int estMagiqueNormal(int mat[][N], int n){ | ||
127 | + int matVals [2*n]; | ||
128 | + setMatriceVals(matVals, 2*n); | ||
129 | + | ||
130 | + | ||
131 | + | ||
132 | + int i=0; | ||
133 | + int estMagique=1; | ||
134 | + int sumLigne; | ||
135 | + sommeLigneEtVerifNormal(mat,matVals, &estMagique, &sumLigne,n); | ||
136 | + printf("%d",sumLigne); | ||
137 | + int sommeHB, sommeBH; | ||
138 | + calcSommeDiag(mat, N, &sommeHB, &sommeBH); | ||
139 | + | ||
140 | + if(sommeHB != sommeBH){ | ||
141 | + estMagique = 1; | ||
142 | + } | ||
143 | + | ||
144 | + while (i < n && estMagique ==1){ | ||
145 | + | ||
146 | + | ||
147 | + if((sumLigne != calcSommeCol(mat, N,i)) || (sumLigne != sommeHB)){ | ||
148 | + estMagique = 0; | ||
149 | + } | ||
150 | + | ||
151 | + i++; | ||
152 | + } | ||
153 | + return estMagique; | ||
154 | +} | ||
155 | + | ||
156 | +int main (){ | ||
157 | + | ||
158 | + int mat [N][N]; | ||
159 | + lireMatrice(mat, N); | ||
160 | + | ||
161 | + afficheMat(mat, N); | ||
162 | + calcSommeLigne(mat, N,1); | ||
163 | + calcSommeCol(mat, N,1); | ||
164 | + | ||
165 | + int sommeHB, sommeBH; | ||
166 | + calcSommeDiag(mat, N, &sommeHB, &sommeBH); | ||
167 | + | ||
168 | + if( estMagiqueNormal(mat,N) == 1){ | ||
169 | + printf("MAGIQUE NORMAL"); | ||
170 | + }else{ | ||
171 | + printf("Non"); | ||
172 | + | ||
173 | + } | ||
174 | + return 1; | ||
175 | + | ||
176 | +} |