This commit is contained in:
Geoffrey Frogeye 2016-03-16 09:51:20 +01:00
parent 230f4f417c
commit 178291f9f0
8 changed files with 321 additions and 0 deletions

23
DS1/E1-1.c Normal file
View file

@ -0,0 +1,23 @@
/* Nombre triangulaire */
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
int main(int argc, char *argv[]) {
int n, i, j, T = 0;
printf("Saisissez n : ");
scanf("%d", &n);
for (i = 1; i <= n; i++) {
for (j = 1; j <= i; j++) {
printf("*");
T += 1;
}
printf("\n");
}
// printf("T_%d = %d\n", n, n*(n+1)/2);
printf("T_%d = %d\n", n, T);
return 0;
}

29
DS1/E1-2.c Normal file
View file

@ -0,0 +1,29 @@
/* Triangle de Floyd */
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
int main(int argc, char *argv[]) {
int n, i, j, t = 1, S, Sa;
printf("Saisissez n : ");
scanf("%d", &n);
for (i = 1; i <= n; i++) {
S = 0;
for (j = 1; j <= i; j++) {
printf("%11d ", t);
S += t;
t++;
}
printf("\n");
Sa = i*(pow(i, 2) + 1)/2;
if (S != Sa) {
printf("Somme incorrecte, %d attendu, %d obtenu.\n", Sa, S);
exit(EXIT_FAILURE);
}
}
return 0;
}

29
DS1/E1-3.c Normal file
View file

@ -0,0 +1,29 @@
/* Séquence de Caterer */
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
int main(int argc, char *argv[]) {
int n, C, i;
printf("Saisissez n : ");
scanf("%d", &n);
// Réccurence
C = 1;
printf("Par réccurence :\n");
printf("C_0 = 1\n");
for (i = 1; i <= n; i++) {
C = i + C;
printf("C_%d = %d\n", i, C);
}
// Formule
printf("Par formule :\n");
for (i = 0; i <= n; i++) {
C = (pow(i, 2) + i + 2)/2;
printf("C_%d = %d\n", i, C);
}
return 0;
}

73
DS1/E2.c Normal file
View file

@ -0,0 +1,73 @@
/* Capitalisation */
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
int main(int argc, char *argv[]) {
// 1)
// Saisie
double C_0, C, tTot = 0, tMoy;
int m, k, i, nTot = 0;
printf("Saisissez C_0 le capital placé : ");
scanf("%lf", &C_0);
printf("Saisissez m le nombre d'années de placement : ");
scanf("%d", &m);
printf("Saisissez k le nombre de changements de taux : ");
scanf("%d", &k);
int n[k];
double t[k];
for (i = 1; i <= k; i++) {
printf("Saisissez n_%d le nombre d'années que dure le taux : ", i);
scanf("%d", &n[i-1]);
printf("Saisissez t_%d le taux : ", i);
scanf("%lf", &t[i-1]);
nTot += n[i-1];
tTot += t[i-1] * n[i-1];
}
if (nTot != m) {
printf("Somme des années de changements de captaux incorrecte, %d attendu, %d obtenu.\n", m, nTot);
exit(EXIT_FAILURE);
}
tMoy = tTot / nTot;
printf("Taux moyen = %f\n", tMoy);
// Calcul
printf("Par réccurence : \n");
C = C_0;
for (i = 1; i <= k; i++) {
C *= pow(1 + t[i-1], n[i-1]);
}
printf("C = %f\n", C);
// 3)
printf("Avec le taux moyen : \n");
C = C_0*pow(1 + tMoy, nTot);
printf("C = %f\n", C);
// On constate que le C calculé est proche, mais des erreurs liées à la précision
// des nombres en virgule flottantes ont eu lieu
return 0;
}
// 2)
//
// Saisissez C_0 le capital placé : 10000
// Saisissez m le nombre d'années de placement : 7
// Saisissez k le nombre de changements de taux : 4
// Saisissez n_1 le nombre d'années que dure le taux : 2
// Saisissez t_1 le taux : 0.0225
// Saisissez n_2 le nombre d'années que dure le taux : 3
// Saisissez t_2 le taux : 0.015
// Saisissez n_3 le nombre d'années que dure le taux : 1
// Saisissez t_3 le taux : 0.0175
// Saisissez n_4 le nombre d'années que dure le taux : 1
// Saisissez t_4 le taux : 0.02
// C = 11346.432916

11
DS1/E2.in Normal file
View file

@ -0,0 +1,11 @@
10000
7
4
2
0.0225
3
0.015
1
0.0175
1
0.02

110
DS1/E3.c Normal file
View file

@ -0,0 +1,110 @@
/* Stockage de matrice symétrique */
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
int main(int argc, char *argv[]) {
// 1)
// Saisie de la matrice
int n, i, j;
printf("Saisissez n : ");
scanf("%d", &n);
double A[n][n];
for (j = 1; j <= n; j++) {
for (i = 1; i <= n; i++) {
printf("Saisissez l'élément aux coordonnées (%d ; %d) : ", i, j);
scanf("%lf", &A[i-1][j-1]);
}
}
// Affichage de la matrice
for (j = 1; j <= n; j++) {
for (i = 1; i <= n; i++) {
printf("%11f ", A[i-1][j-1]);
}
printf("\n");
}
// Verification de la symétrie
for (j = 1; j <= n; j++) {
for (i = j+1; i <= n; i++) {
if (A[i-1][j-1] != A[j-1][i-1]) {
printf("La matrice n'est pas symétrique.\n");
exit(EXIT_FAILURE);
}
}
}
// Création du vecteur U
int k, m, M, K = n*(n+1)/2;
double U[K];
for (i = 1; i <= n; i++) {
for (j = i; j <= n; j++) {
M = 0;
for (m = 1; m <= i - 2; m++) {
M += m;
}
k = (i - 1) * (n - 1) + j - M;
U[k-1] = A[i-1][j-1];
}
}
// Affichage du vecteur U
printf("U = {");
for (k = 1; k <= K; k++) {
printf("%f ", U[k-1]);
}
printf("}\n");
return 0;
}
// 2)
//
// Saisissez n : 6
// Saisissez l'élément aux coordonnées (1 ; 1) : -2
// Saisissez l'élément aux coordonnées (2 ; 1) : 1
// Saisissez l'élément aux coordonnées (3 ; 1) : 3
// Saisissez l'élément aux coordonnées (4 ; 1) : -1
// Saisissez l'élément aux coordonnées (5 ; 1) : 4
// Saisissez l'élément aux coordonnées (6 ; 1) : 1
// Saisissez l'élément aux coordonnées (1 ; 2) : 1
// Saisissez l'élément aux coordonnées (2 ; 2) : -1
// Saisissez l'élément aux coordonnées (3 ; 2) : 5
// Saisissez l'élément aux coordonnées (4 ; 2) : 2
// Saisissez l'élément aux coordonnées (5 ; 2) : 0
// Saisissez l'élément aux coordonnées (6 ; 2) : 7
// Saisissez l'élément aux coordonnées (1 ; 3) : 3
// Saisissez l'élément aux coordonnées (2 ; 3) : 5
// Saisissez l'élément aux coordonnées (3 ; 3) : -3
// Saisissez l'élément aux coordonnées (4 ; 3) : 6
// Saisissez l'élément aux coordonnées (5 ; 3) : -2
// Saisissez l'élément aux coordonnées (6 ; 3) : 8
// Saisissez l'élément aux coordonnées (1 ; 4) : -1
// Saisissez l'élément aux coordonnées (2 ; 4) : 2
// Saisissez l'élément aux coordonnées (3 ; 4) : 6
// Saisissez l'élément aux coordonnées (4 ; 4) : -4
// Saisissez l'élément aux coordonnées (5 ; 4) : 8
// Saisissez l'élément aux coordonnées (6 ; 4) : -2
// Saisissez l'élément aux coordonnées (1 ; 5) : 4
// Saisissez l'élément aux coordonnées (2 ; 5) : 0
// Saisissez l'élément aux coordonnées (3 ; 5) : -2
// Saisissez l'élément aux coordonnées (4 ; 5) : 8
// Saisissez l'élément aux coordonnées (5 ; 5) : 1
// Saisissez l'élément aux coordonnées (6 ; 5) : -5
// Saisissez l'élément aux coordonnées (1 ; 6) : 1
// Saisissez l'élément aux coordonnées (2 ; 6) : 7
// Saisissez l'élément aux coordonnées (3 ; 6) : 9
// Saisissez l'élément aux coordonnées (4 ; 6) : -2
// Saisissez l'élément aux coordonnées (5 ; 6) : -5
// Saisissez l'élément aux coordonnées (6 ; 6) : -6
// -2.000000 1.000000 3.000000 -1.000000 4.000000 1.000000
// 1.000000 -1.000000 5.000000 2.000000 0.000000 7.000000
// 3.000000 5.000000 -3.000000 6.000000 -2.000000 9.000000
// -1.000000 2.000000 6.000000 -4.000000 8.000000 -2.000000
// 4.000000 0.000000 -2.000000 8.000000 1.000000 -5.000000
// 1.000000 7.000000 9.000000 -2.000000 -5.000000 -6.000000
// U = {-2.000000 1.000000 3.000000 -1.000000 4.000000 1.000000 -1.000000 5.000000 2.000000 0.000000 7.000000 -3.000000 6.000000 -2.000000 9.000000 -4.000000 8.000000 -2.000000 1.000000 -5.000000 -6.000000 }

37
DS1/E3.in Normal file
View file

@ -0,0 +1,37 @@
6
-2
1
3
-1
4
1
1
-1
5
2
0
7
3
5
-3
6
-2
9
-1
2
6
-4
8
-2
4
0
-2
8
1
-5
1
7
9
-2
-5
-6

9
DS1/Makefile Normal file
View file

@ -0,0 +1,9 @@
all: $(patsubst %.c,%.exe,$(shell ls *.c))
%.exe: %.c
gcc $< -g -o $@ -lm
.PHONY: all clean
clean:
rm *.exe