Compare commits
No commits in common. "0c9e48cc41fe9ee7049c8a7076ce8090ce27601a" and "bc44b44f2995ab3617edacf69a2301defe836414" have entirely different histories.
0c9e48cc41
...
bc44b44f29
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -1,3 +1,2 @@
|
||||||
infos
|
infos
|
||||||
*.exe
|
*.exe
|
||||||
*.pdf
|
|
||||||
|
|
|
@ -1,18 +0,0 @@
|
||||||
/* Calcul de la mensualité d'emprunt */
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <math.h>
|
|
||||||
|
|
||||||
int main() {
|
|
||||||
|
|
||||||
double S = 10000;
|
|
||||||
double t = 0.036;
|
|
||||||
double x = t / 12;
|
|
||||||
int n = 30;
|
|
||||||
double R;
|
|
||||||
|
|
||||||
R = (S*x)/(1-pow(1+x, -n));
|
|
||||||
|
|
||||||
printf("2) %lf\n", R);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
|
@ -1,40 +0,0 @@
|
||||||
/* Triangle de Pascal */
|
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
|
|
||||||
int main() {
|
|
||||||
|
|
||||||
int N;
|
|
||||||
int x, y;
|
|
||||||
printf("Saisir N : ");
|
|
||||||
scanf("%d", &N);
|
|
||||||
|
|
||||||
// On crée un tableau, et on le remplit de 0
|
|
||||||
int T[N+1][N+1];
|
|
||||||
for (y = 0; y <= N; y++) {
|
|
||||||
for (x = 1; x < N; x++) {
|
|
||||||
T[x][y] = 0;
|
|
||||||
}
|
|
||||||
T[0][y] = 1; // On met des 1 sur la première colonne
|
|
||||||
}
|
|
||||||
|
|
||||||
// On calcule les sommes
|
|
||||||
for (y = 0; y <= N; y++) {
|
|
||||||
for (x = 1; x <= y; x++) {
|
|
||||||
T[x][y] = T[x-1][y-1] + T[x][y-1];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// On affiche le tableau
|
|
||||||
for (y = 0; y <= N; y++) {
|
|
||||||
for (x = 0; x < N; x++) {
|
|
||||||
if (x <= y) {
|
|
||||||
printf("%11d", T[x][y]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
printf("\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
118
DS1-2015/E3.c
118
DS1-2015/E3.c
|
@ -1,118 +0,0 @@
|
||||||
/* Nombres hypercomplexes */
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <math.h>
|
|
||||||
|
|
||||||
// 1)
|
|
||||||
|
|
||||||
typedef struct complexe {
|
|
||||||
double a, b;
|
|
||||||
} complexe;
|
|
||||||
|
|
||||||
// 2)
|
|
||||||
|
|
||||||
complexe Csom(complexe z1, complexe z2) {
|
|
||||||
complexe Z;
|
|
||||||
Z.a = z1.a + z2.a;
|
|
||||||
Z.b = z1.b + z2.b;
|
|
||||||
return Z;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 3)
|
|
||||||
|
|
||||||
complexe Cprod(complexe z1, complexe z2) {
|
|
||||||
complexe Z;
|
|
||||||
Z.a = z1.a * z2.a - z1.b * z2.b;
|
|
||||||
Z.b = z1.a * z2.b + z1.b * z2.a;
|
|
||||||
return Z;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 4)
|
|
||||||
|
|
||||||
int main4() {
|
|
||||||
complexe z1, z2;
|
|
||||||
|
|
||||||
|
|
||||||
printf("Saisissez la partie réelle de z1 : ");
|
|
||||||
scanf("%lf", &z1.a);
|
|
||||||
printf("Saisissez la partie immaginaire de z1 : ");
|
|
||||||
scanf("%lf", &z1.b);
|
|
||||||
|
|
||||||
printf("Saisissez la partie réelle de z2 : ");
|
|
||||||
scanf("%lf", &z2.a);
|
|
||||||
printf("Saisissez la partie immaginaire de z2 :");
|
|
||||||
scanf("%lf", &z2.b);
|
|
||||||
|
|
||||||
complexe som = Csom(z1, z2);
|
|
||||||
complexe prod = Cprod(z1, z2);
|
|
||||||
printf("z1 + z2 = %lf + %lfi\n", som.a, som.b);
|
|
||||||
printf("z1 × z2 = %lf + %lfi\n", prod.a, prod.b);
|
|
||||||
|
|
||||||
|
|
||||||
// Pour z1 = -3 + 4i et z2 = 6 - 8i
|
|
||||||
// z1 + z2 = 3.000000 + -4.000000i
|
|
||||||
// z1 × z2 = 14.000000 + 12.000000i
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
// 5)
|
|
||||||
|
|
||||||
typedef struct qnion {
|
|
||||||
complexe z1, z2;
|
|
||||||
} qnion;
|
|
||||||
|
|
||||||
// 6)
|
|
||||||
|
|
||||||
float Qmod(qnion q) {
|
|
||||||
return sqrt(pow(q.z1.a, 2) + pow(q.z1.b, 2) + pow(q.z2.a, 2) + pow(q.z2.b, 2));
|
|
||||||
}
|
|
||||||
|
|
||||||
complexe Cinv(complexe z) {
|
|
||||||
complexe Z;
|
|
||||||
Z.a = -z.a;
|
|
||||||
Z.b = -z.b;
|
|
||||||
return Z;
|
|
||||||
}
|
|
||||||
|
|
||||||
int main6() {
|
|
||||||
qnion q1, q2;
|
|
||||||
|
|
||||||
printf("Quaternion q1\n");
|
|
||||||
printf("Saisissez la partie réelle de z11 : ");
|
|
||||||
scanf("%lf", &q1.z1.a);
|
|
||||||
printf("Saisissez la partie immaginaire de z11 : ");
|
|
||||||
scanf("%lf", &q1.z1.b);
|
|
||||||
printf("Saisissez la partie réelle de z21 : ");
|
|
||||||
scanf("%lf", &q1.z2.a);
|
|
||||||
printf("Saisissez la partie immaginaire de z21 :");
|
|
||||||
scanf("%lf", &q1.z2.b);
|
|
||||||
|
|
||||||
printf("Quaternion q2\n");
|
|
||||||
printf("Saisissez la partie réelle de z12 : ");
|
|
||||||
scanf("%lf", &q2.z1.a);
|
|
||||||
printf("Saisissez la partie immaginaire de z12 : ");
|
|
||||||
scanf("%lf", &q2.z1.b);
|
|
||||||
printf("Saisissez la partie réelle de z22 : ");
|
|
||||||
scanf("%lf", &q2.z2.a);
|
|
||||||
printf("Saisissez la partie immaginaire de z22 :");
|
|
||||||
scanf("%lf", &q2.z2.b);
|
|
||||||
|
|
||||||
printf("\n");
|
|
||||||
printf("Module de q1 : %lf\n", Qmod(q1));
|
|
||||||
printf("Module de q2 : %lf\n", Qmod(q2));
|
|
||||||
|
|
||||||
qnion P;
|
|
||||||
P.z1 = Csom(q1.z1, q2.z1);
|
|
||||||
P.z2 = Csom(q1.z2, q2.z2);
|
|
||||||
printf("q1 + q2 = (%lf, %lf, %lf, %lf)\n", P.z1.a, P.z1.b, P.z2.a, P.z2.b);
|
|
||||||
|
|
||||||
qnion Q;
|
|
||||||
Q.z1 = Csom(Cprod(q1.z1, q2.z1), Cinv(Cprod(q1.z2, q2.z2)));
|
|
||||||
Q.z2 = Csom(Cprod(q1.z1, q2.z2), Cprod(q2.z1, q1.z2));
|
|
||||||
printf("q1 × q2 = (%lf, %lf, %lf, %lf)\n", Q.z1.a, Q.z1.b, Q.z2.a, Q.z2.b);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
int main() {
|
|
||||||
main6();
|
|
||||||
}
|
|
|
@ -1,83 +0,0 @@
|
||||||
/* Algorithme de Thomas */
|
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
|
|
||||||
// Pas testé
|
|
||||||
|
|
||||||
// 1)
|
|
||||||
|
|
||||||
double D3diag(int n, double* a, double* b, double* c) {
|
|
||||||
double D[n];
|
|
||||||
int i;
|
|
||||||
D[0] = b[0];
|
|
||||||
D[1] = b[0] * b[1] - a[1] * c[0];
|
|
||||||
for (i = 2; i < n; i++) {
|
|
||||||
D[i] = b[i] * D[i-1] - a[i] * c[i-1] * D[i-2];
|
|
||||||
}
|
|
||||||
return D[i];
|
|
||||||
}
|
|
||||||
|
|
||||||
// 2)
|
|
||||||
|
|
||||||
#define N_MAX 100
|
|
||||||
|
|
||||||
int main() {
|
|
||||||
// -
|
|
||||||
int n;
|
|
||||||
printf("Saisir la dimension n du système : ");
|
|
||||||
scanf("%d", &n);
|
|
||||||
|
|
||||||
if (n < 3 || n > N_MAX) {
|
|
||||||
printf("N doit doit être compris entre 3 et %d", N_MAX);
|
|
||||||
}
|
|
||||||
|
|
||||||
// -
|
|
||||||
double a[n], b[n], c[n], y[n];
|
|
||||||
|
|
||||||
int i;
|
|
||||||
for (i = 1; i < n; i++) {
|
|
||||||
printf("Saisissez l'élément %d de la diagonale A : ", i);
|
|
||||||
scanf("%lf", &a[i]);
|
|
||||||
}
|
|
||||||
for (i = 0; i < n; i++) {
|
|
||||||
printf("Saisissez l'élément %d de la diagonale B : ", i);
|
|
||||||
scanf("%lf", &b[i]);
|
|
||||||
}
|
|
||||||
for (i = 0; i < n-1; i++) {
|
|
||||||
printf("Saisissez l'élément %d de la diagonale C : ", i);
|
|
||||||
scanf("%lf", &c[i]);
|
|
||||||
}
|
|
||||||
for (i = 0; i < n; i++) {
|
|
||||||
printf("Saisissez l'élément %d du second membre y : ", i);
|
|
||||||
scanf("%lf", &y[i]);
|
|
||||||
}
|
|
||||||
|
|
||||||
// -
|
|
||||||
double G[n], B[n], x[n];
|
|
||||||
|
|
||||||
G[0] = c[0] / b[0];
|
|
||||||
B[0] = y[0] / b[0];
|
|
||||||
|
|
||||||
for (i = 1; i < n-1; i++) {
|
|
||||||
G[i] = c[i] / (b[i] - a[i] * G[i-1]);
|
|
||||||
}
|
|
||||||
|
|
||||||
for (i = 1; i < n; i++) {
|
|
||||||
B[i] = (y[i] - a[i] * B[i-1]) / (b[i] - a[i] * G[i-1]);
|
|
||||||
}
|
|
||||||
|
|
||||||
x[n-1] = B[n-1];
|
|
||||||
for (i = n-2; i >= 0; i--) {
|
|
||||||
x[i] = B[i] - G[i] * x[i+1];
|
|
||||||
}
|
|
||||||
|
|
||||||
// -
|
|
||||||
printf("Déterminant de T : %lf\n", D3diag(n, a, b, c));
|
|
||||||
|
|
||||||
printf("X = ");
|
|
||||||
for (i = 1; i < n; i++) {
|
|
||||||
printf("%11lf ", x[i]);
|
|
||||||
}
|
|
||||||
printf("\n");
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,9 +0,0 @@
|
||||||
all: $(patsubst %.c,%.exe,$(shell ls *.c))
|
|
||||||
|
|
||||||
%.exe: %.c
|
|
||||||
gcc $< -o $@ -lm
|
|
||||||
|
|
||||||
.PHONY: all clean
|
|
||||||
|
|
||||||
clean:
|
|
||||||
rm *.exe
|
|
|
@ -1,9 +0,0 @@
|
||||||
all: $(patsubst %.c,%.exe,$(shell ls *.c))
|
|
||||||
|
|
||||||
%.exe: %.c
|
|
||||||
gcc $< -o $@
|
|
||||||
|
|
||||||
.PHONY: all clean
|
|
||||||
|
|
||||||
clean:
|
|
||||||
rm *.exe
|
|
2
Makefile
2
Makefile
|
@ -1,4 +1,4 @@
|
||||||
all: $(patsubst %.c,%.exe,$(shell ls *.c))
|
all: $(subst c,exe,$(shell ls *.c))
|
||||||
|
|
||||||
%.exe: %.c
|
%.exe: %.c
|
||||||
gcc $< -o $@
|
gcc $< -o $@
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
all: $(patsubst %.c,%.exe,$(shell ls *.c))
|
all: $(subst c,exe,$(shell ls *.c))
|
||||||
|
|
||||||
E1-1.exe: E1-1.c
|
E1-1.exe: E1-1.c
|
||||||
gcc E1-1.c -o E1-1.exe
|
gcc E1-1.c -o E1-1.exe
|
||||||
|
|
114
TP2/E3.c
114
TP2/E3.c
|
@ -1,114 +0,0 @@
|
||||||
/* Résolution d'un système à matrice triangulaire */
|
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdbool.h>
|
|
||||||
|
|
||||||
#define N 10 // Ordre maximal
|
|
||||||
|
|
||||||
void afficherMatrice(float A[N][N], int n) {
|
|
||||||
int i, j;
|
|
||||||
for (j = 0; j < n; j++) {
|
|
||||||
for (i = 0; i < n; i++) {
|
|
||||||
printf("%10f ", A[i][j]);
|
|
||||||
}
|
|
||||||
printf("\n");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
void afficherVecteur(float Y[N], int n) {
|
|
||||||
int i;
|
|
||||||
for (i = 0; i < n; i++) {
|
|
||||||
printf("%10f ", Y[i]);
|
|
||||||
}
|
|
||||||
printf("\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
bool estTriangulaireSuperieure(float A[N][N], int n) {
|
|
||||||
int i, j;
|
|
||||||
for (j = 0; j < n; j++) {
|
|
||||||
for (i = 0; i < n; i++) {
|
|
||||||
if (i > j && A[j][i] != 0) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool estTriangulaireInferieure(float A[N][N], int n) {
|
|
||||||
int i, j;
|
|
||||||
for (j = 0; j < n; j++) {
|
|
||||||
for (i = 0; i < n; i++) {
|
|
||||||
if (i < j && A[j][i] != 0) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
int main() {
|
|
||||||
|
|
||||||
int n;
|
|
||||||
printf("Saisir l'ordre du système : ");
|
|
||||||
scanf("%i", &n);
|
|
||||||
if (n < 1 || n > N) {
|
|
||||||
printf("L'ordre doit être compris entre 1 et %i", N);
|
|
||||||
}
|
|
||||||
|
|
||||||
float A[N][N];
|
|
||||||
float X[N], Y[N];
|
|
||||||
int i, j;
|
|
||||||
|
|
||||||
printf("-- Saisie de la matrice A\n");
|
|
||||||
for (i = 0; i < n; i++) {
|
|
||||||
for (j = 0; j < n; j++) {
|
|
||||||
printf("Élément de la matrice en (%i, %i) : ", i, j);
|
|
||||||
scanf("%f", &A[j][i]);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
printf("-- Saisie du vecteur Y\n");
|
|
||||||
for (i = 0; i < n; i++) {
|
|
||||||
printf("Élément du vecteur en (%i) : ", i);
|
|
||||||
scanf("%f", &Y[i]);
|
|
||||||
}
|
|
||||||
printf("\n");
|
|
||||||
|
|
||||||
|
|
||||||
printf("-- Affichage de la matrice A\n");
|
|
||||||
afficherMatrice(A, n);
|
|
||||||
printf("-- Affichage du vecteur Y\n");
|
|
||||||
afficherVecteur(Y, n);
|
|
||||||
|
|
||||||
if (estTriangulaireSuperieure(A, n)) {
|
|
||||||
printf("-- Matrice triangulaire supérieure\n");
|
|
||||||
X[n-1] = Y[n-1] / A[n-1][n-1];
|
|
||||||
for (i = n - 2; i >= 0; i--) {
|
|
||||||
float s = 0;
|
|
||||||
for (j = i + 1; j < n; j++) {
|
|
||||||
s += A[j][i] * X[j];
|
|
||||||
}
|
|
||||||
X[i] = (Y[i] - s) / A[i][i];
|
|
||||||
}
|
|
||||||
|
|
||||||
} else if (estTriangulaireInferieure(A, n)) {
|
|
||||||
printf("-- Matrice triangulaire inférieure\n");
|
|
||||||
X[0] = Y[0] / A[0][0];
|
|
||||||
for (i = 1; i < n; i++) {
|
|
||||||
float s = 0;
|
|
||||||
for (j = 0; j < i; j++) {
|
|
||||||
s += A[j][i] * X[j];
|
|
||||||
}
|
|
||||||
X[i] = (Y[i] - s) / A[i][i];
|
|
||||||
}
|
|
||||||
|
|
||||||
} else {
|
|
||||||
printf("La matrice doit être triangulaire (supérieure ou inférieure).\n");
|
|
||||||
return 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
printf("\n");
|
|
||||||
printf("-- Affichage du vecteur X\n");
|
|
||||||
afficherVecteur(X, n);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
39
TP2/E4.c
39
TP2/E4.c
|
@ -1,39 +0,0 @@
|
||||||
/* Tableau des différences */
|
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
|
|
||||||
#define N 10
|
|
||||||
|
|
||||||
void soustraire(int A[N], int R[N], int n) {
|
|
||||||
int i;
|
|
||||||
for (i = 0; i < n-1; i++) {
|
|
||||||
R[i] = A[i+1] - A[i];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void afficherTableau(int A[N], int n) {
|
|
||||||
int i;
|
|
||||||
for (i = 0; i < n; i++) {
|
|
||||||
printf("%11i ", A[i]);
|
|
||||||
}
|
|
||||||
printf("\n");
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
int main() {
|
|
||||||
|
|
||||||
int X[N] = {2,8,-3,5,9,-4,-2,0,1,16};
|
|
||||||
int DX[N][N];
|
|
||||||
int i;
|
|
||||||
printf("-- X ");
|
|
||||||
afficherTableau(X, N);
|
|
||||||
soustraire(X, DX[0], N);
|
|
||||||
printf("-- D1X");
|
|
||||||
afficherTableau(DX[0], N-1);
|
|
||||||
for (i = 0; i < N-1; i++) {
|
|
||||||
soustraire(DX[i], DX[i+1], N-i);
|
|
||||||
printf("-- D%dX", i+1);
|
|
||||||
afficherTableau(DX[i], N-i-1);
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
|
@ -1,4 +1,4 @@
|
||||||
all: $(patsubst %.c,%.exe,$(shell ls *.c))
|
all: $(subst c,exe,$(shell ls *.c))
|
||||||
|
|
||||||
E1-1.exe: E1-1.c
|
E1-1.exe: E1-1.c
|
||||||
gcc E1-1.c -o E1-1.exe
|
gcc E1-1.c -o E1-1.exe
|
||||||
|
@ -9,12 +9,6 @@ E1-3.exe: E1-3.c
|
||||||
E2.exe: E2.c
|
E2.exe: E2.c
|
||||||
gcc E2.c -o E2.exe
|
gcc E2.c -o E2.exe
|
||||||
|
|
||||||
E3.exe: E3.c
|
|
||||||
gcc E3.c -o E3.exe
|
|
||||||
|
|
||||||
E4.exe: E4.c
|
|
||||||
gcc E4.c -o E4.exe
|
|
||||||
|
|
||||||
E5.exe: E5.c
|
E5.exe: E5.c
|
||||||
gcc E5.c -o E5.exe
|
gcc E5.c -o E5.exe
|
||||||
|
|
||||||
|
|
10
TP3/E1.c
10
TP3/E1.c
|
@ -1,10 +0,0 @@
|
||||||
/* Matrice de données statistiques */
|
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
|
|
||||||
int main() {
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
59
TP3/E2.c
59
TP3/E2.c
|
@ -1,59 +0,0 @@
|
||||||
/* Suites entières */
|
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
|
|
||||||
int fibonacci(int n) {
|
|
||||||
if (n == 0 || n == 1) {
|
|
||||||
return 1;
|
|
||||||
} else {
|
|
||||||
return fibonacci(n-2) + fibonacci(n-1);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
int u(int n);
|
|
||||||
int v(int n);
|
|
||||||
|
|
||||||
int u(int n) {
|
|
||||||
if (n == 0) {
|
|
||||||
return 1;
|
|
||||||
} else {
|
|
||||||
return v(n-1)+1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
int v(int n) {
|
|
||||||
if (n == 0) {
|
|
||||||
return 0;
|
|
||||||
} else {
|
|
||||||
return 2*u(n-1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
int main() {
|
|
||||||
|
|
||||||
int choix, n, res;
|
|
||||||
printf("Quelle fonction voulez-vous utiliser ?\n 1 : fibonacci\n 2 : u\n 3 : v\nChoix : ");
|
|
||||||
scanf("%d", &choix);
|
|
||||||
printf("n = ");
|
|
||||||
scanf("%d", &n);
|
|
||||||
|
|
||||||
switch (choix) {
|
|
||||||
case 1:
|
|
||||||
res = fibonacci(n);
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
res = u(n);
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
res = v(n);
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
printf("Lisez un peu ce qu'on vous dit...\n");
|
|
||||||
return 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
printf("Résultat : %d\n", res);
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
37
TP3/E3.c
37
TP3/E3.c
|
@ -1,37 +0,0 @@
|
||||||
/* Moyenne */
|
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
|
|
||||||
double moyenne(int n, double T[n]) {
|
|
||||||
int i;
|
|
||||||
double tot = 0;
|
|
||||||
for (i = 0; i < n; i++) {
|
|
||||||
tot += T[i];
|
|
||||||
}
|
|
||||||
return tot/n;
|
|
||||||
}
|
|
||||||
|
|
||||||
double maximum(int n, double T[n]) {
|
|
||||||
int i;
|
|
||||||
double max = T[0];
|
|
||||||
for (i = 0; i < n; i++) {
|
|
||||||
if (T[i] > max) {
|
|
||||||
max = T[i];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return max;
|
|
||||||
}
|
|
||||||
|
|
||||||
int main() {
|
|
||||||
int n, i;
|
|
||||||
printf("Nombre de nombres ? ");
|
|
||||||
scanf("%d", &n);
|
|
||||||
double T[n];
|
|
||||||
for (i = 0; i < n; i++) {
|
|
||||||
printf("Saisir le nombre %d : ", i+1);
|
|
||||||
scanf("%lf", &T[i]);
|
|
||||||
}
|
|
||||||
printf("Moyenne : %lf\n", moyenne(n, T));
|
|
||||||
printf("Maximum : %lf\n", maximum(n, T));
|
|
||||||
return 0;
|
|
||||||
}
|
|
26
TP3/E4.c
26
TP3/E4.c
|
@ -1,26 +0,0 @@
|
||||||
/* Recherche d'éléments sur critère */
|
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
|
|
||||||
int recherche(int n, double T[n]) {
|
|
||||||
int i;
|
|
||||||
for (i = 0; i < n; i++) {
|
|
||||||
if (T[i] < 0) {
|
|
||||||
return i;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
int main() {
|
|
||||||
int n, i;
|
|
||||||
printf("Nombre de nombres ? ");
|
|
||||||
scanf("%d", &n);
|
|
||||||
double T[n];
|
|
||||||
for (i = 0; i < n; i++) {
|
|
||||||
printf("Saisir le nombre %d : ", i+1);
|
|
||||||
scanf("%lf", &T[i]);
|
|
||||||
}
|
|
||||||
printf("Recherche : %lf\n", recherche(n, T)+1);
|
|
||||||
return 0;
|
|
||||||
}
|
|
48
TP3/E5.c
48
TP3/E5.c
|
@ -1,48 +0,0 @@
|
||||||
/* Maximum et position */
|
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
|
|
||||||
double maximum(int n, double T[n]) {
|
|
||||||
// Même si n est inferieur à la dimension du tableau, ça marche quand même
|
|
||||||
int i;
|
|
||||||
double max = T[0];
|
|
||||||
for (i = 0; i < n; i++) {
|
|
||||||
if (T[i] > max) {
|
|
||||||
max = T[i];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return max;
|
|
||||||
}
|
|
||||||
int maximumIndice(int n, double T[n]) {
|
|
||||||
// Même si n est inferieur à la dimension du tableau, ça marche quand même
|
|
||||||
int i, maxIndice = 0;
|
|
||||||
double max = T[0];
|
|
||||||
for (i = n-1; i > 0; i--) {
|
|
||||||
if (T[i] > max) {
|
|
||||||
max = T[i];
|
|
||||||
maxIndice = i;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return maxIndice;
|
|
||||||
}
|
|
||||||
|
|
||||||
int main() {
|
|
||||||
int n, i, t;
|
|
||||||
printf("Nombre de nombres ? ");
|
|
||||||
scanf("%d", &n);
|
|
||||||
double T[n];
|
|
||||||
for (i = 0; i < n; i++) {
|
|
||||||
printf("Saisir le nombre %d : ", i+1);
|
|
||||||
scanf("%lf", &T[i]);
|
|
||||||
}
|
|
||||||
|
|
||||||
printf("Sur combien de valeurs travailler ? ");
|
|
||||||
scanf("%d", &t);
|
|
||||||
if (t > n) {
|
|
||||||
printf("Le nombre de valeurs sur lesquelles travailler doit être inférieur à la taille du tableau\n");
|
|
||||||
return 2;
|
|
||||||
}
|
|
||||||
|
|
||||||
printf("Maximum : %lf (à l'indice %d)\n", maximum(t, T), maximumIndice(t, T)+1);
|
|
||||||
return 0;
|
|
||||||
}
|
|
37
TP3/E6.c
37
TP3/E6.c
|
@ -1,37 +0,0 @@
|
||||||
/* Conversion chaîne de caractères en entier */
|
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <math.h>
|
|
||||||
|
|
||||||
#define N 20
|
|
||||||
|
|
||||||
int length(char* c) {
|
|
||||||
int i, len = -1;
|
|
||||||
for (i = 0; i < N; i++) {
|
|
||||||
if (c[i] == '\0') {
|
|
||||||
len = i;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return len;
|
|
||||||
}
|
|
||||||
|
|
||||||
int number(char c) {
|
|
||||||
return c - '0';
|
|
||||||
}
|
|
||||||
|
|
||||||
int atoiMaison(char* c) {
|
|
||||||
int i, len = length(c), n = 0;
|
|
||||||
for (i = 0; i < len; i++) {
|
|
||||||
n += number(c[i]) * (int) pow(10, len - i - 1);
|
|
||||||
}
|
|
||||||
return n;
|
|
||||||
}
|
|
||||||
|
|
||||||
int main() {
|
|
||||||
char c[N];
|
|
||||||
printf("Entrez un nombre entier : ");
|
|
||||||
scanf("%s", &c);
|
|
||||||
printf("Vous avez entré : %d\n", atoiMaison(c));
|
|
||||||
return 0;
|
|
||||||
}
|
|
36
TP3/E7.c
36
TP3/E7.c
|
@ -1,36 +0,0 @@
|
||||||
/* Miroir */
|
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
|
|
||||||
#define N 255
|
|
||||||
|
|
||||||
int length(char* c) {
|
|
||||||
int i, len = -1;
|
|
||||||
for (i = 0; i < N; i++) {
|
|
||||||
if (c[i] == '\0') {
|
|
||||||
len = i;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return len;
|
|
||||||
}
|
|
||||||
|
|
||||||
char* miroir(char* c) {
|
|
||||||
int i, len = length(c);
|
|
||||||
static char mir[N];
|
|
||||||
for (i = 0; i < len; i++) {
|
|
||||||
mir[i] = c[len-i-1];
|
|
||||||
}
|
|
||||||
return mir;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
int main() {
|
|
||||||
char c[N];
|
|
||||||
printf("Entrez du texte : ");
|
|
||||||
scanf("%s", &c);
|
|
||||||
char* m = miroir(c);
|
|
||||||
printf("Miroir : %s (addresse : 0x%x)\n", m, &m);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
47
TP3/E8.c
47
TP3/E8.c
|
@ -1,47 +0,0 @@
|
||||||
/* Mise en majuscules / minuscules */
|
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
|
|
||||||
#define N 255
|
|
||||||
|
|
||||||
int length(char* c) {
|
|
||||||
int i, len = -1;
|
|
||||||
for (i = 0; i < N; i++) {
|
|
||||||
if (c[i] == '\0') {
|
|
||||||
len = i;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return len;
|
|
||||||
}
|
|
||||||
|
|
||||||
void majuscule(char* c) {
|
|
||||||
int i, len = length(c);
|
|
||||||
for (i = 0; i < len; i++) {
|
|
||||||
if ('a' <= c[i] && c[i] <= 'z') {
|
|
||||||
c[i] += 'A' - 'a';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
void minuscule(char* c) {
|
|
||||||
int i, len = length(c);
|
|
||||||
for (i = 0; i < len; i++) {
|
|
||||||
if ('A' <= c[i] && c[i] <= 'Z') {
|
|
||||||
c[i] += 'a' - 'A';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
int main() {
|
|
||||||
char c[N];
|
|
||||||
printf("Entrez du texte : ");
|
|
||||||
scanf("%s", &c);
|
|
||||||
majuscule(c);
|
|
||||||
printf("Majuscules : %s (addresse : 0x%x)\n", c, &c);
|
|
||||||
minuscule(c);
|
|
||||||
printf("Minuscules : %s (addresse : 0x%x)\n", c, &c);
|
|
||||||
return 0;
|
|
||||||
}
|
|
|
@ -1,9 +0,0 @@
|
||||||
all: $(patsubst %.c,%.exe,$(shell ls *.c))
|
|
||||||
|
|
||||||
%.exe: %.c
|
|
||||||
gcc $< -o $@ -lm
|
|
||||||
|
|
||||||
.PHONY: all clean
|
|
||||||
|
|
||||||
clean:
|
|
||||||
rm *.exe
|
|
Reference in a new issue