DS1
This commit is contained in:
parent
230f4f417c
commit
178291f9f0
23
DS1/E1-1.c
Normal file
23
DS1/E1-1.c
Normal 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
29
DS1/E1-2.c
Normal 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
29
DS1/E1-3.c
Normal 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
73
DS1/E2.c
Normal 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
|
110
DS1/E3.c
Normal file
110
DS1/E3.c
Normal 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
37
DS1/E3.in
Normal 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
9
DS1/Makefile
Normal file
|
@ -0,0 +1,9 @@
|
|||
all: $(patsubst %.c,%.exe,$(shell ls *.c))
|
||||
|
||||
%.exe: %.c
|
||||
gcc $< -g -o $@ -lm
|
||||
|
||||
.PHONY: all clean
|
||||
|
||||
clean:
|
||||
rm *.exe
|
Reference in a new issue