0% ont trouvé ce document utile (0 vote)
17 vues11 pages

Solution Page2 TD4

Le document présente plusieurs algorithmes et leur implémentation en C pour manipuler des tableaux, incluant la saisie, l'affichage, le calcul de la somme des carrés, l'échange d'éléments, l'inversion, le produit des éléments, le produit scalaire de vecteurs, et le comptage des éléments positifs et négatifs. Chaque algorithme est accompagné d'un code source en C qui illustre son fonctionnement. Les algorithmes sont conçus pour une taille maximale de 50 éléments.

Transféré par

hibamahfoudi71
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
17 vues11 pages

Solution Page2 TD4

Le document présente plusieurs algorithmes et leur implémentation en C pour manipuler des tableaux, incluant la saisie, l'affichage, le calcul de la somme des carrés, l'échange d'éléments, l'inversion, le produit des éléments, le produit scalaire de vecteurs, et le comptage des éléments positifs et négatifs. Chaque algorithme est accompagné d'un code source en C qui illustre son fonctionnement. Les algorithmes sont conçus pour une taille maximale de 50 éléments.

Transféré par

hibamahfoudi71
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

La solution de la Partie 2 (Tableaux)

Ex1

/*
Constante MAX_SIZE ← 50

Variables N, i, somme_carres : Entier


tableau T[MAX_SIZE]:Entier

Début
Écrire "Entrez le nombre d'éléments du tableau : "
Lire N

// Saisie des éléments du tableau


Pour i de 0 à N - 1 faire
Écrire ("Entrez l'élément ", i + 1, " : ");
Lire (T[i]);
FinPour

// Affichage des éléments du tableau


Écrire ("Le tableau saisi est :");
Pour i de 0 à N - 1 faire
Écrire (T[i]);
FinPour

// Calcul de la somme des carrés


somme_carres ← 0
Pour i de 0 à N - 1 faire
somme_carres ← somme_carres + T[i] * T[i]
FinPour

Écrire ("La somme des carrés des éléments du tableau est : ", somme_carres);
Fin
*/
#include <stdio.h>

#define MAX_SIZE 50 // Taille maximale du tableau

int main() {
int N, i, somme_carres;
int T[MAX_SIZE]; // Déclaration du tableau

// Demander à l'utilisateur le nombre d'éléments à saisir


printf("Entrez le nombre d'elements du tableau : ");
scanf("%d", &N);
// Saisie des éléments du tableau
for (i = 0; i < N; i++) {
printf("Entrez l'element %d : ", i + 1);
scanf("%d", &T[i]);
}

// Affichage des éléments du tableau


printf("Le tableau saisi est :\n");
for (i = 0; i < N; i++) {
printf("%d ", T[i]);
}
printf("\n");

// Calcul de la somme des carrés des éléments


somme_carres = 0;
for (i = 0; i < N; i++) {
somme_carres += T[i] * T[i];
}

// Affichage du résultat final


printf("La somme des carres des elements du tableau est : %d\n", somme_carres);

return 0;
}

EX2
/*
Algorithme EchangeExtremitesTableau

Constante MAX_SIZE ← 50 // Taille max du tableau

Variables N, i, temp : Entier


Tableau T[MAX_SIZE] : Entier

Début

// Lire le nombre d’éléments


Écrire("Entrez le nombre d'éléments du tableau :");
Lire(N);
// Lire les éléments du tableau
Pour i de 0 à N - 1 faire
Écrire("Entrez l’élément ", i + 1);
Lire(T[i]);
Fin Pour

// Afficher tableau avant échange


Écrire("Le tableau avant l’échange :");
Pour i de 0 à N - 1 faire
Écrire(T[i]);
Fin Pour

// Échanger premier et dernier élément


temp ← T[0]
T[0] ← T[N - 1]
T[N - 1] ← temp

// Afficher tableau après échange


Écrire("Le tableau après l’échange :");
Pour i de 0 à N - 1 faire
Écrire(T[i]);
Fin Pour

Fin
*/
// En C
#include <stdio.h>
#define MAX_SIZE 50

void main() {
int N, i, temp;
int T[MAX_SIZE];

// Saisie du nombre d'éléments


printf("Entrez le nombre d'elements du tableau (max %d) : ", MAX_SIZE);
scanf("%d", &N);

// Saisie des éléments du tableau


for (i = 0; i < N; i++) {
printf("Entrez l'element %d : ", i + 1);
scanf("%d", &T[i]);
}

// Affichage avant échange


printf("Le tableau avant l'echange est :\n");
for (i = 0; i < N; i++) {
printf("%d ", T[i]);
}
printf("\n");
// Échange du premier et du dernier élément
temp = T[0];
T[0] = T[N - 1];
T[N - 1] = temp;

// Affichage après échange


printf("Le tableau après l'echange est :\n");
for (i = 0; i < N; i++) {
printf("%d ", T[i]);
}
printf("\n");
}

EX3
/*

Algorithme InverserTableauCaractères

Constante MAX_SIZE ← 50 // Taille maximale du tableau

Variables N, i : entier
Tableau T[MAX_SIZE]: caractere

Début

// Demander à l'utilisateur de saisir le nombre d'éléments du tableau


Écrire("Entrez le nombre d'éléments du tableau :");
Lire(N);

// Saisie des éléments du tableau


Pour i de 0 à N - 1 faire
Écrire("Entrez l'élément ", i + 1, " :");
Lire(T[i]);
Fin Pour

// Afficher le tableau dans l'ordre inverse


Écrire("Le tableau dans l'ordre inverse est :");
Pour i de N - 1 à 0 par pas=-1 faire
Écrire(T[i]);
Fin Pour
Fin
*/
//En C
#include <stdio.h>
#define MAX_SIZE 50
void main() {
int N, i;
char T[MAX_SIZE];

// Demander à l'utilisateur de saisir le nombre d'éléments du tableau


printf("Entrez le nombre d'éléments du tableau : ");
scanf("%d", &N);

// Saisie des éléments du tableau


for (i = 0; i < N; i++) {
printf("Entrez l'élément %d : ", i + 1);
scanf(" %c", &T[i]);
}

// Afficher le tableau dans l'ordre inverse


printf("Le tableau dans l'ordre inverse est :\n");
for (i = N - 1; i >= 0; i--) {
printf("%c ", T[i]);
}
printf("\n");
}

EX4
/*
Algorithme ProduitElementsTableau

Variables L, C, i, j : Entier // Lignes, colonnes et indices de boucle


produit : Entier // Contiendra le produit final
Tableau T[50][50] :Entier // Tableau à deux dimensions

Début

// Saisir les dimensions du tableau


Écrire("Entrez le nombre de lignes du tableau :") ;
Lire(L) ;
Écrire("Entrez le nombre de colonnes du tableau :") ;
Lire(C) ;

// Remplir le tableau avec les valeurs de l'utilisateur


Pour i allant de 0 à L - 1 faire
Pour j allant de 0 à C - 1 faire
Écrire("Entrez la valeur de T[", i + 1, "][", j + 1, "] :") ;
Lire(T[i][j]) ;
Fin Pour
Fin Pour

// Afficher le tableau
Écrire("Le tableau est :") ;

Pour i allant de 0 à L - 1 faire


Pour j allant de 0 à C - 1 faire
Écrire(T[i][j]) ;
Fin Pour
Fin Pour

// Initialiser le produit
produit ← 1 ;

// Calculer le produit de tous les éléments


Pour i allant de 0 à L - 1 faire
Pour j allant de 0 à C - 1 faire
produit ← produit * T[i][j] ;
Fin Pour
Fin Pour

// Afficher le produit total


Écrire("Le produit de tous les éléments du tableau est : ", produit) ;
Fin

*/
#include <stdio.h>
#define MAX_ROWS 50 // Nombre maximal de lignes
#define MAX_COLS 50 // Nombre maximal de colonnes

void main() {
int L, C, produit = 1, i, j; // Variables pour lignes, colonnes, produit et boucles
int T[MAX_ROWS][MAX_COLS]; // Déclaration du tableau 2D

// Saisie des dimensions


printf("Entrez le nombre de lignes du tableau : ");
scanf("%d", &L);
printf("Entrez le nombre de colonnes du tableau : ");
scanf("%d", &C);

// Saisie des éléments du tableau


for (i = 0; i < L; i++) {
for (j = 0; j < C; j++) {
printf("Entrez la valeur de T[%d][%d] : ", i + 1, j + 1);
scanf("%d", &T[i][j]);
}
}

// Affichage du tableau
printf("Le tableau est :\n");
for (i = 0; i < L; i++) {
for (j = 0; j < C; j++) {
printf("%d ", T[i][j]);
}
printf("\n");
}

// Calcul du produit de tous les éléments


for (i = 0; i < L; i++) {
for (j = 0; j < C; j++) {
produit *= T[i][j];
}
}

// Affichage du résultat
printf("Le produit de tous les elements du tableau est : %d\n", produit);
}

EX5
/*
Algorithme ProduitScalaireVecteurs

Constante :
MAX_TAILLE ← 50 // Taille maximale des vecteurs

Variables Tableau U[MAX_TAILLE], V[MAX_TAILLE] : Entier


dimension, produit_scalaire, i : Entier
Début

// Saisie de la dimension des vecteurs


Écrire("Entrez la dimension des vecteurs U et V :") ;
Lire(dimension) ;

// Saisie des éléments du vecteur U


Écrire("Entrez les éléments du vecteur U :") ;
Pour i allant de 0 à dimension - 1 faire
Écrire("Élément ", i + 1, " :") ;
Lire(U[i]) ;
Fin Pour

// Saisie des éléments du vecteur V


Écrire("Entrez les éléments du vecteur V :") ;
Pour i allant de 0 à dimension - 1 faire
Écrire("Élément ", i + 1, " :") ;
Lire(V[i]) ;
Fin Pour

// Calcul du produit scalaire


produit_scalaire ← 0 ;
Pour i allant de 0 à dimension - 1 faire
produit_scalaire ← produit_scalaire + (U[i] * V[i]) ;
Fin Pour

// Affichage du résultat
Écrire("Le produit scalaire des vecteurs U et V est : ", produit_scalaire) ;
Fin
*/
//En C

#include <stdio.h>
#define MAX_TAILLE 50 // Taille maximale des vecteurs

void main() {
int U[MAX_TAILLE], V[MAX_TAILLE]; // Les deux vecteurs
int dimension, produit_scalaire, i; // Taille et résultat

// Saisie de la dimension des vecteurs


printf("Entrez la dimension des vecteurs U et V : ");
scanf("%d", &dimension);

// Saisie des éléments du vecteur U


printf("Entrez les éléments du vecteur U :\n");
for (i = 0; i < dimension; i++) {
printf("Élément %d : ", i + 1);
scanf("%d", &U[i]);
}
// Saisie des éléments du vecteur V
printf("Entrez les éléments du vecteur V :\n");
for (i = 0; i < dimension; i++) {
printf("Élément %d : ", i + 1);
scanf("%d", &V[i]);
}
// Calcul du produit scalaire
produit_scalaire = 0;
for (i = 0; i < dimension; i++) {
produit_scalaire += U[i] * V[i];
}

// Affichage du résultat
printf("Le produit scalaire des vecteurs U et V est : %d\n", produit_scalaire);
}
EX6
/*
Algorithme CompterPositifsNegatifs

Variables tableau T[50]:Entier // Déclaration du tableau


N, nb_positives, nb_negatives, i : Entier // Taille et compteurs

Début
// Saisie de la taille du tableau
Écrire("Entrez la dimension N du tableau : ") ;
Lire(N) ;

// Saisie des éléments du tableau


Pour i allant de 0 à N - 1 faire
Écrire("Entrez la valeur de la composante ", i + 1, " : ") ;
Lire(T[i]) ;
Fin Pour

// Comptage des positives et négatives


nb_positives ← 0 ;
nb_negatives ← 0 ;
Pour i allant de 0 à N - 1 faire
Si T[i] > 0 Alors
nb_positives ← nb_positives + 1 ;
Sinon Si T[i] < 0 Alors
nb_negatives ← nb_negatives + 1 ;
Fin Si
Fin Pour

// Affichage du tableau
Écrire("Le tableau est :") ;
Pour i allant de 0 à N - 1 faire
Écrire(T[i]) ;
Fin Pour

// Affichage des résultats


Écrire("Nombre de composantes strictement positives : ", nb_positives) ;
Écrire("Nombre de composantes strictement négatives : ", nb_negatives) ;

Fin

*/

// EN C
#include <stdio.h>
#define MAX_TAILLE 50 // Taille maximale du tableau

void main() {
int T[MAX_TAILLE]; // Déclaration du tableau
int N, nb_positives = 0, nb_negatives = 0; // Taille et compteurs
int i;

// Saisie de la taille du tableau


printf("Entrez la dimension N du tableau : ");
scanf("%d", &N);

// Saisie des éléments du tableau


for (i = 0; i < N; i++) {
printf("Entrez la valeur de la composante %d : ", i + 1);
scanf("%d", &T[i]);
}

// Comptage des positives et négatives


for (i = 0; i < N; i++) {
if (T[i] > 0) {
nb_positives++;
}
else if (T[i] < 0) {
nb_negatives++;
}
}

// Affichage du tableau
printf("Le tableau est :\n");
for (i = 0; i < N; i++) {
printf("%d ", T[i]);
}
printf("\n");

// Affichage des résultats


printf("Nombre de composantes strictement positives : %d\n", nb_positives);
printf("Nombre de composantes strictement négatives : %d\n", nb_negatives);
}

Vous aimerez peut-être aussi