[go: up one dir, main page]

0% ont trouvé ce document utile (0 vote)
65 vues64 pages

Programmation Structurée I

Transféré par

منير بعكة
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)
65 vues64 pages

Programmation Structurée I

Transféré par

منير بعكة
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
Vous êtes sur la page 1/ 64

Programmation Structurée 1- L1 GE

Chapitre 1 : Introduction au langage C

1. Historique et Caractéristiques du Langage C

 Origine : Créé par Dennis Ritchie en 1972 pour développer le système d'exploitation
UNIX.
 Caractéristiques :
o Langage de bas niveau, proche du matériel (hardware).
o Portable : peut être compilé et exécuté sur presque n'importe quel type de
machine.
o Efficace et performant : utilisé pour des systèmes d'exploitation, des pilotes de
périphériques, des jeux vidéo, etc.

2. Structure de Base d’un Programme en C

Un programme en C commence avec la fonction principale main() et peut inclure plusieurs


fonctions définies par l'utilisateur.

Exemple simple :

 #include <stdio.h> : Inclut la bibliothèque standard d’entrée/sortie.


 int main() : Déclaration de la fonction principale du programme, point d'entrée.
 printf() : Fonction pour afficher un message.
 return 0; : Renvoie une valeur à l'OS, indiquant que le programme s’est terminé
correctement.

Mme. Imen AZZOUZ 1


Programmation Structurée 1- L1 GE

3. Opérateurs

 Opérateurs arithmétiques : +, -, *, /, % (modulo).


 Opérateurs de comparaison : ==, !=, <, >, <=, >=.
 Opérateurs logiques : && (ET logique), || (OU logique), ! (NON logique).

4. Mots-clés

Les mots-clés (ou keywords) sont des termes réservés qui ont une signification particulière et
sont utilisés pour effectuer des tâches spécifiques dans le programme. Ces mots ne peuvent
pas être utilisés comme noms de variables, de fonctions ou d'autres identificateurs. Voici une
liste des principaux mots-clés du langage C :

4.1. Types de données

 int : Déclare une variable de type entier.


 float : Déclare une variable de type nombre à virgule flottante (précision simple).
 double : Déclare une variable de type nombre à virgule flottante (précision double).
 char : Déclare une variable de type caractère.
 void : Spécifie qu’une fonction ne retourne pas de valeur ou qu’une fonction n’a pas
de paramètre.
 long : Modifie le type de données pour augmenter la capacité des entiers.
 short : Modifie le type de données pour réduire la capacité des entiers.
 signed : Indique qu'un entier ou un caractère peut être négatif ou positif.
 unsigned : Indique qu'un entier ou un caractère ne peut être que positif (ou nul).

Exemple de déclaration de variables

4.2. Contrôle de flux

 if : Introduit une condition dans un programme.

Mme. Imen AZZOUZ 2


Programmation Structurée 1- L1 GE

 else : Fournit une alternative si la condition if est fausse.


 switch : Permet de choisir entre plusieurs blocs de code en fonction de la valeur d’une
variable.
 case : Marque un cas spécifique dans une instruction switch.
 default : Définit le cas par défaut dans une instruction switch.
 for : Boucle qui répète un bloc de code un nombre défini de fois.
 while : Boucle qui répète un bloc de code tant qu’une condition est vraie.
 do : Boucle similaire à while mais la condition est vérifiée après l'exécution du bloc
de code.
 break : Interrompt immédiatement une boucle ou un switch.
 continue : Saute directement à l'itération suivante dans une boucle.
 return : Quitte une fonction et retourne une valeur.

4.3. Fonctions et blocs

 void : Spécifie qu’une fonction ne renvoie pas de valeur.


 return : Indique la valeur qu’une fonction renvoie.

4.4. Opérateurs logiques et relationnels

 sizeof : Renvoie la taille en octets d'une variable ou d'un type de données.


 typedef : Donne un nouveau nom à un type de données.
 const : Définit une variable dont la valeur ne peut pas être modifiée après
l'initialisation.
 volatile : Indique au compilateur qu'une variable peut changer de manière
imprévisible (ex. à cause d'interruptions matérielles).

5. Les variables en langage C

Les variables en langage C sont des emplacements en mémoire permettant de stocker des
données. Chaque variable a un type spécifique qui détermine la nature des données qu'elle
peut contenir, ainsi que la taille de mémoire qu'elle occupe. Voici un guide détaillé sur le

Avant d'utiliser une variable, il faut la déclarer, c'est-à-dire lui attribuer un type et un nom

Mme. Imen AZZOUZ 3


Programmation Structurée 1- L1 GE

 Syntaxe

type nom_de_variable;

Exemple :

int nombre; // Déclare une variable de type entier

float pi; // Déclare une variable de type flottant

 Règles de nommage des variables

En C, les noms de variables doivent suivre certaines règles :

 Ils doivent commencer par une lettre ou un trait de soulignement ( _).


 Ils ne doivent contenir que des lettres, des chiffres ou des traits de soulignement.
 Ils ne peuvent pas être des mots réservés du langage C (comme int, return, etc.).
 Ils sont sensibles à la casse (majuscule/minuscule).

Exemples de noms valides :

int age; // Valide

float _taille; // Valide

char lettre_A; // Valide

6. Types de données principales

Les types simples sont les suivants :

 int : Entier standard


 long : entier long
 float : réel
 double : réel long
 char: caractère

Mme. Imen AZZOUZ 4


Programmation Structurée 1- L1 GE

 void: Absence de type

Exemples :

int age = 20; // Entier

float temperature = 36.6; // Décimal

double pi = 3.14159; // Double précision

char lettre = 'A'; // Caractère

 Modificateurs de type

Il existe deux modificateurs de type :

 signé
 non signé

Exemples :

unsigned int positif = 100; // Entier non signé, uniquement positif

long int grand_nombre = 100000; // Entier long

7. Définition de constantes

En C, les variables peuvent être déclarées comme constantes en utilisant le mot-clé const.
Une constante ne peut pas être modifiée après avoir été initialisée.

Exemple :

const int jours_dans_semaine = 7; // Constante, ne peut pas être modifiée

En C, les constantes peuvent aussi définis grace à la directive #define

Mme. Imen AZZOUZ 5


Programmation Structurée 1- L1 GE

Exemple :

#define Pi 3.1415927

8. Conversion de type (Casting)

Parfois, vous aurez besoin de convertir une variable d'un type en un autre. Cela peut se faire
avec le casting en C.

Exemple :

int a = 5;

float b = (float) a; // Convertit l'entier a en float

En C, lire et écrire des données se fait principalement à l'aide des fonctions d'entrée/sortie.
Voici un aperçu des concepts et des fonctions clés pour la lecture et l'écriture

9. Fonctions d'écriture (affichage) et de lecture en C

La bibliothèque <stdio> contient un ensemble de fonctions qui assure la communication de la


machine avec le monde extérieur.
 Fonction d'écriture :

La fonction printf en C est utilisée pour afficher du texte ou des données à l'écran. Elle fait
partie de la bibliothèque standard d'entrée/sortie (bibliothèque stdio.h).

Syntaxe :

printf(<format>, <expr1>,<expr2>,…)

Spécificateurs de format courants :

 %d : Entier (int)
 %f : Nombre flottant (float, double)
 %c : Caractère (char)
 %s : Chaîne de caractères (string)

Mme. Imen AZZOUZ 6


Programmation Structurée 1- L1 GE

 %x : Nombre en hexadécimal
 %% : Pour afficher un pourcentage littéral %

Exemple :

#include <stdio.h>

int main() {

int age = 25;

float taille = 1.75;

printf("J'ai %d ans et je mesure %.2f mètres.\n", age, taille);

return 0;

Sortie :

J'ai 25 ans et je mesure 1.75 mètres.

Dans cet exemple, %d est utilisé pour afficher l'âge (entier), et %.2f est utilisé pour afficher la
taille (nombre flottant avec 2 décimales).

 Fonction de lecture :

La fonction scanf en C est utilisée pour lire des données depuis l'entrée standard
(généralement le clavier) et les stocker dans des variables. Elle fait partie de la bibliothèque
standard d'entrée/sortie <stdio.h>, tout comme printf.

Exemple :

#include <stdio.h>

int main() {

int age;

Mme. Imen AZZOUZ 7


Programmation Structurée 1- L1 GE

float taille;

printf("Entrez votre âge : ");

scanf("%d", &age); // Lire un entier et le stocker dans 'age'

printf("Entrez votre taille (en mètres) : ");

scanf("%f", &taille); // Lire un nombre flottant et le stocker dans 'taille'

printf("Vous avez %d ans et vous mesurez %.2f mètres.\n", age, taille);

return 0;

Explication :

1. scanf("%d", &age); : Ici, %d spécifie que la fonction attend un entier, et &age est
l'adresse de la variable où cet entier sera stocké.
2. scanf("%f", &taille); : %f indique que la fonction attend un nombre flottant, et
&taille est l'adresse de la variable qui stockera la taille.

Important : Lorsque vous utilisez scanf, assurez-vous d'utiliser le bon spécificateur de format
et de passer l'adresse des variables, sinon vous risquez d'obtenir des résultats incorrects ou un
comportement indéfini.

Mme. Imen AZZOUZ 8


Programmation Structurée 1- L1 GE

Chapitre 2 : Les structures conditionnelles

1. Introduction

En C, les structures conditionnelles permettent de contrôler le flux d'exécution du programme


en fonction de certaines conditions. Les instructions conditionnelles les plus couramment
utilisées sont if, else, else if, et switch.

2. Instruction if

L'instruction if permet d'exécuter un bloc de code uniquement si une condition donnée est
vraie.

Syntaxe :

if (condition) {

// Bloc de code exécuté si la condition est vraie

Exemple :

#include <stdio.h>

int main() {

int age = 20;

if (age >= 18) {

printf("Vous êtes majeur.\n");

return 0;

3. Instruction if...else

L'instruction if...else permet d'exécuter un bloc de code si la condition est vraie, et un

Mme. Imen AZZOUZ 1


Programmation Structurée 1- L1 GE

autre bloc de code si la condition est fausse.

Syntaxe :

if (condition) {

// Bloc de code exécuté si la condition est vraie

} else {

// Bloc de code exécuté si la condition est fausse

Exemple :

#include <stdio.h>

int main() {

int age = 16;

if (age >= 18) {

printf("Vous êtes majeur.\n");

} else {

printf("Vous êtes mineur.\n");

return 0;

4. Instruction if...else if...else

Cette structure permet d'évaluer plusieurs conditions successives. Si une des conditions est
vraie, le bloc correspondant est exécuté. Si aucune condition n'est vraie, le bloc else est
exécuté.

Mme. Imen AZZOUZ 2


Programmation Structurée 1- L1 GE

Syntaxe :

if (condition1) {
// Bloc de code exécuté si la condition1 est vraie
} else if (condition2) {
// Bloc de code exécuté si la condition2 est vraie
} else {
// Bloc de code exécuté si aucune des conditions n'est
vraie
}
Exemple :

#include <stdio.h>

int main() {

int note = 75;

if (note >= 90) {

printf("Note excellente.\n");

} else if (note >= 75) {

printf("Bonne note.\n");

} else if (note >= 50) {

printf("Note passable.\n");

} else {

printf("Échec.\n");

return 0;

Mme. Imen AZZOUZ 3


Programmation Structurée 1- L1 GE

5. Instruction switch

L'instruction switch est utilisée lorsque vous voulez comparer une même variable à plusieurs
valeurs possibles. Cela permet une alternative plus lisible à plusieurs blocs if...else if.

Syntaxe :
switch (expression) {

case valeur1:

// Bloc de code exécuté si expression == valeur1

break; // Sortir du switch

case valeur2:

// Bloc de code exécuté si expression == valeur2

break; // Sortir du switch

default:

// Bloc de code exécuté si aucune des valeurs n'est


égale à l'expression

Exemple :

#include <stdio.h>

int main() {

int jour = 3;

switch (jour) {

case 1:

printf("Lundi\n");

break;

Mme. Imen AZZOUZ 4


Programmation Structurée 1- L1 GE

case 2:

printf("Mardi\n");

break;

case 3:

printf("Mercredi\n");

break;

case 4:

printf("Jeudi\n");

break;

case 5:

printf("Vendredi\n");

break;

case 6:

printf("Samedi\n");

break;

case 7:

printf("Dimanche\n");

break;

default:

printf("Jour invalide\n");

return 0; }

Mme. Imen AZZOUZ 5


Programmation Structurée 1- L1 GE

5. Opérateur ternaire

L'opérateur ternaire est une structure conditionnelle courte qui permet de remplacer un
if...else simple.

Syntaxe :
condition ? expression_si_vrai : expression_si_faux;

Exemple :

#include <stdio.h>

int main() {

int age = 20;

age >= 18 ? printf("Vous êtes majeur.\n") : printf("Vous êtes mineur.\n");

return 0;

6. Priorité des opérateurs relationnels et logiques

Les conditions sont souvent basées sur des opérateurs relationnels et logiques. Voici les
principaux :

 Opérateurs relationnels :
o == : Égal à
o != : Différent de
o < : Inférieur à
o > : Supérieur à
o <= : Inférieur ou égal à
o >= : Supérieur ou égal à
 Opérateurs logiques :
o && : ET logique (vrai si les deux conditions sont vraies)
o || : OU logique (vrai si au moins une des conditions est vraie)
o ! : NON logique (inverse le résultat de la condition)

Mme. Imen AZZOUZ 6


Programmation Structurée 1- L1 GE

 Exemple :

#include <stdio.h>

int main() {

int a = 5, b = 10, c = 15;

if (a < b && b < c) {

printf("a est plus petit que b et b est plus petit que c\n");

return 0;

Conclusion

Les structures conditionnelles en C sont essentielles pour créer des programmes interactifs
capables de prendre des décisions. Elles permettent de modifier l'exécution du programme en
fonction de conditions spécifiques et sont utilisées pour résoudre de nombreux types de
problèmes dans la programmation.

Mme. Imen AZZOUZ 7


Programmation Structurée 1- L1 GE

Chapitre 3 : Les structures itératives

1. Introduction

Les structures itératives (ou boucles) en C permettent de répéter l'exécution d'un bloc de
code plusieurs fois. Il existe trois structures principales de boucles en C : la boucle for, la
boucle while et la boucle do...while.

1. Boucle for

La boucle for est utilisée lorsque vous savez à l'avance combien de fois vous souhaitez
exécuter un bloc de code. Elle est souvent utilisée lorsque l'on doit parcourir une plage de
valeurs.

Syntaxe :

for (initialisation; condition; incrémentation) {

// Bloc de code à exécuter

 initialisation : La variable de contrôle de boucle est initialisée ici. Cette étape est exécutée
une seule fois au début de la boucle.
 condition : La boucle continue de s'exécuter tant que cette condition est vraie. Si la
condition est fausse, la boucle s'arrête.
 incrémentation : C'est ici que la variable de contrôle est modifiée après chaque itération
(incrémentée ou décrémentée).

Exemple :

#include <stdio.h>

int main() {

// Afficher les nombres de 1 à 5

for (int i = 1; i <= 5; i++) {

Mme. Imen AZZOUZ 1


Programmation Structurée 1- L1 GE

printf("%d\n", i);

return 0;

Explication :

 La variable i est initialisée à 1.


 Tant que i est inférieur ou égal à 5, le bloc de code est exécuté.
 Après chaque itération, i est incrémenté de 1.

2. Boucle while

La boucle while est utilisée lorsqu'on ne sait pas à l'avance combien de fois le bloc de code
doit être exécuté. La condition est vérifiée avant chaque itération.

Syntaxe :

while (condition) {

// Bloc de code à exécuter

La condition est évaluée avant chaque itération. Si elle est vraie, le bloc de code est exécuté,
sinon la boucle s'arrête.

Exemple :

#include <stdio.h>

int main() {

int i = 1;

// Afficher les nombres de 1 à 5

while (i <= 5) {

printf("%d\n", i);

Mme. Imen AZZOUZ 2


Programmation Structurée 1- L1 GE

i++; // Incrémentation de i

return 0;

Explication :

 La variable i est initialisée à 1.


 Tant que i est inférieur ou égal à 5, le bloc de code s'exécute et i est incrémenté à
chaque tour.
3. Boucle do...while

La boucle do...while est similaire à la boucle while, à la différence près que la condition
est vérifiée après l'exécution du bloc de code. Cela garantit que le bloc de code est exécuté au
moins une fois.

Syntaxe :

do {

// Bloc de code à exécuter

} while (condition);

Le bloc de code est exécuté au moins une fois, puis la condition est vérifiée.

Exemple :

#include <stdio.h>

int main() {

int i = 1;

// Afficher les nombres de 1 à 5

do {

printf("%d\n", i);

Mme. Imen AZZOUZ 3


Programmation Structurée 1- L1 GE

i++; // Incrémentation de i

} while (i <= 5);

return 0;

Explication :

 La variable i est initialisée à 1.


 Le bloc de code est exécuté une première fois, puis i est incrémenté et la condition est
vérifiée à chaque tour.
 La boucle continue tant que i est inférieur ou égal à 5.

4. Instruction break

L'instruction break permet de sortir immédiatement d'une boucle, même si la condition n'est
pas remplie. Elle est souvent utilisée dans des situations où une condition particulière est
rencontrée à l'intérieur de la boucle.

Exemple :

#include <stdio.h>

int main() {

for (int i = 1; i <= 10; i++) {

if (i == 5) {

break; // Sortir de la boucle si i est égal à 5

printf("%d\n", i);

Mme. Imen AZZOUZ 4


Programmation Structurée 1- L1 GE

return 0;

5. Instruction continue

L'instruction continue permet de passer immédiatement à l'itération suivante d'une boucle,


sans exécuter le reste du code dans le bloc de la boucle.

Exemple :

#include <stdio.h>

int main() {

for (int i = 1; i <= 5; i++) {

if (i == 3) {

continue; // Passer cette itération si i est égal à 3

printf("%d\n", i);

return 0;

Conclusion

Les structures itératives en C permettent de répéter des blocs de code de manière contrôlée.
Les boucles for, while, et do...while sont adaptées à différentes situations : quand vous
connaissez le nombre d'itérations (for), quand la condition est dépendante d'un événement
(while), ou quand une action doit être effectuée au moins une fois (do...while).

Mme. Imen AZZOUZ 5


Programmation Structurée 1- L1 GE

Chapitre 4 : Les tableaux

1. Introduction

Les tableaux en C sont des structures de données qui permettent de stocker plusieurs éléments
du même type (par exemple, des entiers, des flottants, des caractères) en utilisant une seule
variable.

2. Déclaration d'un tableau

Pour déclarer un tableau, on spécifie le type des éléments, le nom du tableau et sa taille entre
crochets [ ].

Exemple :

int tableau[5]; // Déclare un tableau de 5 entiers

3. Initialisation d'un tableau

Un tableau peut être initialisé lors de sa déclaration.

Exemple :

int tableau[5] = {1, 2, 3, 4, 5}; // Déclare et initialise un tableau d'entiers

Si on ne spécifie pas tous les éléments, les valeurs restantes seront initialisées à 0.

int tableau[5] = {1, 2}; // Les éléments non spécifiés seront initialisés à 0

// tableau[0] = 1, tableau[1] = 2, tableau[2] = 0, tableau[3] = 0, tableau[4] = 0

4. Accès aux éléments du tableau

Les éléments d'un tableau sont indexés à partir de 0. On accède à un élément en spécifiant son
index entre crochets [ ].

Exemple :

int val = tableau[2]; // Accède au troisième élément du tableau (index 2)

Mme. Imen AZZOUZ 1


Programmation Structurée 1- L1 GE

5. Modifier un élément du tableau

On peut modifier un élément du tableau en l'assignant directement.

Exemple :

tableau[1] = 10; // Modifie le deuxième élément du tableau (index 1) à 10

6. Boucles avec des tableaux

Il est courant d'utiliser des boucles pour parcourir un tableau, que ce soit pour afficher ses
éléments ou les modifier.

Exemple :

for (int i = 0; i < 5; i++) {

printf("%d\n", tableau[i]); // Affiche chaque élément du tableau

7. Tableaux multi-dimensionnels

On peut aussi déclarer des tableaux avec plus d'une dimension, comme des tableaux à deux
dimensions (souvent utilisés pour représenter des matrices).

Exemple :

int matrice[3][3] = {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}}; // Déclare une matrice 3x3

Pour accéder à un élément dans un tableau à deux dimensions :

int val = matrice[1][2]; // Accède à l'élément de la deuxième ligne, troisième colonne

Remarque :

doit être spécifiée à la déclaration.

Mme. Imen AZZOUZ 2


Programmation Structurée 1- L1 GE

8. Remplissage et affichage d’un tableau unidimensionnel (vecteur)

8.1. Remplissage manuel

On peut assigner des valeurs directement à chaque élément du tableau.

Exemple :

#include <stdio.h>

int main() {

int tableau[5];

// Remplissage manuel

tableau[0] = 10;

tableau[1] = 20;

tableau[2] = 30;

tableau[3] = 40;

tableau[4] = 50;

// Affichage des éléments

for(int i = 0; i < 5; i++) {

printf("tableau[%d] = %d\n", i, tableau[i]);

return 0;

8. 2. Remplissage avec une boucle (via l'utilisateur)

On peut aussi remplir un tableau à l'aide d'une boucle et demander à l'utilisateur de saisir les
valeurs.

Exemple :

#include <stdio.h>

Mme. Imen AZZOUZ 3


Programmation Structurée 1- L1 GE

int main() {

int tableau[5];

// Remplissage du tableau par l'utilisateur

for(int i = 0; i < 5; i++) {

printf("Entrez la valeur de tableau[%d]: ", i);

scanf("%d", &tableau[i]);

// Affichage des éléments du tableau

printf("Les valeurs du tableau sont : \n");

for(int i = 0; i < 5; i++) {

printf("tableau[%d] = %d\n", i, tableau[i]);

return 0;

8. 3. Remplissage avec des valeurs calculées

Si on souhaite remplir un tableau avec des valeurs générées par un calcul (par exemple, les
multiples de 2), tu peux utiliser une boucle pour générer et remplir automatiquement le
tableau.

Exemple :

#include <stdio.h>

int main() {

int tableau[5];

// Remplissage avec des valeurs calculées (ici des multiples de 2)

for(int i = 0; i < 5; i++) {

tableau[i] = (i + 1) * 2; // Valeurs : 2, 4, 6, 8, 10

Mme. Imen AZZOUZ 4


Programmation Structurée 1- L1 GE

// Affichage des éléments du tableau

printf("Les valeurs du tableau sont : \n");

for(int i = 0; i < 5; i++) {

printf("tableau[%d] = %d\n", i, tableau[i]);

return 0;

9. Remplissage et affichage d'un tableau bidimensionnel

En C, un tableau bidimensionnel est souvent utilisé pour représenter des matrices ou des
grilles. Pour remplir et afficher un tableau bidimensionnel, on peut utiliser des boucles
imbriquées.

9. 1. Remplissage manuel et affichage d'un tableau bidimensionnel

On peut remplir chaque élément du tableau en lui assignant une valeur spécifique
manuellement.

Exemple :

#include <stdio.h>

int main() {

int matrice[2][3]; // Déclaration d'une matrice 2x3

// Remplissage manuel

matrice[0][0] = 1;

matrice[0][1] = 2;

matrice[0][2] = 3;

matrice[1][0] = 4;

Mme. Imen AZZOUZ 5


Programmation Structurée 1- L1 GE

matrice[1][1] = 5;

matrice[1][2] = 6;

// Affichage de la matrice

printf("Affichage de la matrice :\n");

for(int i = 0; i < 2; i++) {

for(int j = 0; j < 3; j++) {

printf("%d ", matrice[i][j]);

printf("\n"); // Sauter une ligne après chaque ligne du tableau

return 0;

9.2. Remplissage et affichage avec une boucle (via l'utilisateur)

Si on veut remplir le tableau avec des valeurs fournies par l'utilisateur, tu peux utiliser des
boucles imbriquées.

Exemple :

#include <stdio.h>

int main() {

int matrice[2][3]; // Déclaration d'une matrice 2x3

// Remplissage de la matrice par l'utilisateur

for(int i = 0; i < 2; i++) {

for(int j = 0; j < 3; j++) {

printf("Entrez la valeur pour matrice[%d][%d] : ", i, j);

scanf("%d", &matrice[i][j]);

Mme. Imen AZZOUZ 6


Programmation Structurée 1- L1 GE

// Affichage de la matrice

printf("Affichage de la matrice :\n");

for(int i = 0; i < 2; i++) {

for(int j = 0; j < 3; j++) {

printf("%d ", matrice[i][j]);

printf("\n"); // Sauter une ligne après chaque ligne du tableau

return 0;

9.3. Remplissage avec des valeurs calculées

Il est possible de remplir un tableau bidimensionnel en générant les valeurs à partir d'un
calcul. Par exemple, tu peux remplir la matrice avec des multiples de 3.

Exemple :

#include <stdio.h>

int main() {

int matrice[2][3]; // Déclaration d'une matrice 2x3

int valeur = 1; // Initialisation d'une variable de départ

// Remplissage automatique avec des valeurs calculées

for(int i = 0; i < 2; i++) {

for(int j = 0; j < 3; j++) {

matrice[i][j] = valeur * 3; // Remplissage avec des multiples de 3

Mme. Imen AZZOUZ 7


Programmation Structurée 1- L1 GE

valeur++;

// Affichage de la matrice

printf("Affichage de la matrice :\n");

for(int i = 0; i < 2; i++) {

for(int j = 0; j < 3; j++) {

printf("%d ", matrice[i][j]);

printf("\n");

return 0;

Mme. Imen AZZOUZ 8


TD Programmation Structurée 1- L1 GE

Travail Dirigé N° 1
Exercice 1 : Calcul de la moyenne de trois nombres

Écrire un programme en C qui permet de lire trois nombres, puis de calculer et d'afficher leur
moyenne.

Exercice 2 : Inverser deux variables

Écrire un programme en C qui permet d'échanger les valeurs de deux variables entières.

Exercice 3 : Calcul du périmètre d'un rectangle

Écrire un programme en C qui permet de calculer et d'afficher le périmètre d’un rectangle à


partir de sa longueur et de sa largeur. La formule du périmètre est :

Périmètre=2×(longueur+largeur)

Exercice 4 : Conversion d'unités (Kilomètres en Miles)

Écrire un programme en C qui permet de convertir une distance donnée en kilomètres en


miles. La formule de conversion est la suivante :

Miles=Kilomètres×0.621371

Exercice 5 : Calcul du salaire net

Écrire un programme en C qui calcule le salaire net d'un employé. Le programme doit
demander à l'utilisateur le salaire brut et le pourcentage des taxes. La formule est :

Salaire net=Salaire brut−(Salaire brut×(Taxe/100))

Exercice 6 : Calcul de l'IMC (Indice de Masse Corporelle)

Écrire un programme en C qui permet de calculer l'IMC d'une personne. L'utilisateur doit
entrer la taille en mètres et le poids en kilogrammes.

La formule est : IMC=Poids/Taille2

Mme. Imen AZZOUZ 1


TD Programmation Structurée 1- L1 GE

Travail Dirigé N° 2
Exercice 1 : Trouver le maximum entre deux nombres

Écrire un programme en C qui permet de lire deux nombres entiers, puis d'afficher le plus
grand des deux.

Exercice 2 : Pair ou impair

Écrire un programme en C qui permet de vérifier si un nombre entier donné est pair ou
impair.

Exercice 3 : Vérifier la majorité

Écrire un programme en C qui vérifie si une personne est majeure ou mineure, sachant que
l'âge de la majorité est 18 ans.

Exercice 4 : Calculatrice simple avec switch

Écrire un programme en C qui agit comme une calculatrice simple. L'utilisateur doit entrer
deux nombres et une opération (+, -, *, /). Le programme affiche ensuite le résultat.

Exercice 5 : Vérification d'un caractère voyelle ou consonne

Écrire un programme en C qui lit un caractère et vérifie s'il s'agit d'une voyelle ou d'une
consonne.

Exercice 6 : Classer un nombre

Écrire un programme en C qui vérifie si un nombre entier est positif, négatif ou nul.

Exercice 7 : Vérification de la validité d'un triangle

Écrire un programme en C qui permet de vérifier si trois longueurs données peuvent former
un triangle. Pour qu'un triangle soit valide, la somme de deux côtés doit toujours être
supérieure au troisième côté.

Mme. Imen AZZOUZ 1


TD Programmation Structurée 1- L1 GE

Mme. Imen AZZOUZ 2


TD Programmation Structurée 1- L1 GE

Travail Dirigé N° 3
Exercice 1 : Calcul du maximum de trois nombres

Écrire un programme en C qui permet de lire trois nombres entiers, puis d'afficher le plus
grand.

Exercice 2 : Calcul de la factorielle

Écrire un programme en C qui calcule la factorielle d'un nombre entier donné par l'utilisateur.

Exercice 3 : Somme des N premiers nombres entiers

Écrire un programme en C qui calcule la somme des N premiers nombres entiers.

Exercice 4 : Trouver la somme des chiffres d'un nombre

Écrire un programme en C qui trouve la somme des chiffres d'un nombre donné.

Exercice 5 : Afficher les multiples de 3 et 5 entre 1 et 100

Écrire un programme en C qui affiche tous les nombres entre 1 et 100 qui sont des multiples
de 3 ou de 5.

Exercice 6 : Trouver le plus grand commun diviseur (PGCD)

Écrire un programme en C qui calcule le plus grand commun diviseur (PGCD) de deux
nombres.

Exercice 7 : Vérifier si un nombre est un nombre premier

Écrire un programme en C qui vérifie si un nombre donné est un nombre premier.

Exercice 8 : Affichage d'une table de multiplication

Écrire un programme en C qui affiche la table de multiplication d'un nombre donné.

Mme. Imen AZZOUZ 1


TD Programmation Structurée 1- L1 GE

Travail Dirigé N° 4
Exercice 1 : Recherche d'un élément dans un tableau

Écrire un programme en C qui permet de rechercher un élément dans un tableau


unidimensionnel de 10 entiers.

Exercice 2 : Somme des éléments d'une matrice

Écrire un programme en C qui permet de remplir une matrice 2x2, puis d'afficher la somme
de tous les éléments de cette matrice.

Exercice 3 : Inversion d'un tableau

Écrire un programme en C qui permet d'inverser les éléments d'un tableau unidimensionnel de
5 entiers.

Exercice 4 : Maximum d'un tableau

Écrire un programme en C qui trouve et affiche le plus grand élément dans un tableau.

Exercice 5 : Tri d'un tableau (Tri par sélection)

Écrire un programme en C qui trie les éléments d'un tableau d'entiers dans l'ordre croissant en
utilisant l'algorithme du tri par sélection.

Exercice 6 : Comptage des éléments pairs et impairs d'un tableau

Écrire un programme en C qui compte le nombre d'éléments pairs et impairs dans un tableau
d'entiers.

Exercice 7 : Somme des diagonales d'une matrice

Énoncé : Écrire un programme en C qui calcule la somme des éléments de la diagonale


principale et de la diagonale secondaire d'une matrice carrée de taille 3x3.

Mme. Imen AZZOUZ 1


TD Programmation Structurée 1- L1 GE

Mme. Imen AZZOUZ 2


Correction TD Programmation Structurée 1- L1 GE

Correction Travail Dirigé N° 1


Exercice 1 : Calcul de la moyenne de trois nombres
Énoncé : Écrire un programme en C qui permet de lire trois nombres, puis de calculer et
d'afficher leur moyenne.

Correction :
#include <stdio.h>

int main() {

float a, b, c, moyenne;

// Saisie des trois nombres

printf("Entrez le premier nombre : ");

scanf("%f", &a);

printf("Entrez le deuxième nombre : ");

scanf("%f", &b);

printf("Entrez le troisième nombre : ");

scanf("%f", &c);

// Calcul de la moyenne

moyenne = (a + b + c) / 3;

// Affichage de la moyenne

printf("La moyenne des trois nombres est : %.2f\n", moyenne);

return 0;

Exercice 2 : Inverser deux variables

Énoncé : Écrire un programme en C qui permet d'échanger les valeurs de deux variables
entières.

Correction :

#include <stdio.h>

Mme. Imen AZZOUZ 1


Correction TD Programmation Structurée 1- L1 GE

int main() {

int a, b, temp;

// Saisie des deux valeurs

printf("Entrez la valeur de a : ");

scanf("%d", &a);

printf("Entrez la valeur de b : ");

scanf("%d", &b);

// Affichage des valeurs avant l'échange

printf("Avant l'échange : a = %d, b = %d\n", a, b);

// Échange des valeurs

temp = a;

a = b;

b = temp;

// Affichage des valeurs après l'échange

printf("Après l'échange : a = %d, b = %d\n", a, b);

return 0;

Exercice 3 : Calcul du périmètre d'un rectangle

Énoncé : Écrire un programme en C qui permet de calculer et d'afficher le périmètre d’un


rectangle à partir de sa longueur et de sa largeur. La formule du périmètre est :

Périmètre=2×(longueur+largeur)

Correction :

#include <stdio.h>

int main() {

Mme. Imen AZZOUZ 2


Correction TD Programmation Structurée 1- L1 GE

float longueur, largeur, perimetre;

// Saisie de la longueur et de la largeur

printf("Entrez la longueur du rectangle : ");

scanf("%f", &longueur);

printf("Entrez la largeur du rectangle : ");

scanf("%f", &largeur);

// Calcul du périmètre

perimetre = 2 * (longueur + largeur);

// Affichage du périmètre

printf("Le périmètre du rectangle est : %.2f\n", perimetre);

return 0;

Exercice 4 : Conversion d'unités (Kilomètres en Miles)

Énoncé : Écrire un programme en C qui permet de convertir une distance donnée en


kilomètres en miles. La formule de conversion est la suivante :

Miles=Kilomètres×0.621371

Correction :

Mme. Imen AZZOUZ 3


Correction TD Programmation Structurée 1- L1 GE

#include <stdio.h>

int main() {

float kilometres, miles;

// Saisie de la distance en kilomètres

printf("Entrez la distance en kilomètres : ");

scanf("%f", &kilometres);

// Conversion en miles

miles = kilometres * 0.621371;

// Affichage du résultat

printf("%.2f kilomètres équivaut à %.2f miles.\n", kilometres, miles);

return 0;

Exercice 5 : Calcul du salaire net

Énoncé : Écrire un programme en C qui calcule le salaire net d'un employé. Le programme
doit demander à l'utilisateur le salaire brut et le pourcentage des taxes. La formule est :

Salaire net=Salaire brut−(Salaire brut×(Taxe/100))

Correction :

#include <stdio.h>

int main() {

float salaire_brut, taxe, salaire_net;

// Saisie du salaire brut et du pourcentage de taxe

printf("Entrez le salaire brut : ");

scanf("%f", &salaire_brut);

Mme. Imen AZZOUZ 4


Correction TD Programmation Structurée 1- L1 GE

printf("Entrez le pourcentage de taxe : ");

scanf("%f", &taxe);

// Calcul du salaire net

salaire_net = salaire_brut - (salaire_brut * taxe / 100);

// Affichage du salaire net

printf("Le salaire net est : %.2f\n", salaire_net);

return 0;

Exercice 6 : Calcul de l'IMC (Indice de Masse Corporelle)

Énoncé : Écrire un programme en C qui permet de calculer l'IMC d'une personne.


L'utilisateur doit entrer la taille en mètres et le poids en kilogrammes.

La formule est : IMC=Poids/Taille2

Correction :

#include <stdio.h>

int main() {

float poids, taille, imc;

// Saisie du poids et de la taille

printf("Entrez votre poids (en kg) : ");

scanf("%f", &poids);

printf("Entrez votre taille (en mètres) : ");

Mme. Imen AZZOUZ 5


Correction TD Programmation Structurée 1- L1 GE

scanf("%f", &taille);

// Calcul de l'IMC

imc = poids / (taille * taille);

// Affichage de l'IMC

printf("Votre IMC est : %.2f\n", imc);

return 0;

Mme. Imen AZZOUZ 6


Correction TD Programmation Structurée 1- L1 GE

Correction Travail Dirigé N° 2

Exercice 1 : Trouver le maximum entre deux nombres

Énoncé : Écrire un programme en C qui permet de lire deux nombres entiers, puis d'afficher
le plus grand des deux.
Correction :

#include <stdio.h>

int main() {

int a, b;

// Saisie des deux nombres

printf("Entrez le premier nombre : ");

scanf("%d", &a);

printf("Entrez le deuxième nombre : ");

scanf("%d", &b);

// Comparaison

if (a > b) {

printf("%d est le plus grand.\n", a);

} else if (a < b) {

printf("%d est le plus grand.\n", b);

} else {

printf("Les deux nombres sont égaux.\n");

return 0;

Exercice 2 : Pair ou impair

Énoncé : Écrire un programme en C qui permet de vérifier si un nombre entier donné est pair

Mme. Imen AZZOUZ 1


Correction TD Programmation Structurée 1- L1 GE

ou impair.

Correction :

#include <stdio.h>

int main() {

int nombre;

// Saisie du nombre

printf("Entrez un nombre entier : ");

scanf("%d", &nombre);

// Vérification pair ou impair

if (nombre % 2 == 0) {

printf("%d est pair.\n", nombre);

} else {

printf("%d est impair.\n", nombre);

return 0;

Exercice 3 : Vérifier la majorité

Énoncé : Écrire un programme en C qui vérifie si une personne est majeure ou mineure,
sachant que l'âge de la majorité est 18 ans.

Mme. Imen AZZOUZ 2


Correction TD Programmation Structurée 1- L1 GE

Correction :

#include <stdio.h>

int main() {

int age;

// Saisie de l'âge

printf("Entrez votre âge : ");

scanf("%d", &age);

// Vérification de la majorité

if (age >= 18) {

printf("Vous êtes majeur.\n");

} else {

printf("Vous êtes mineur.\n");

return 0;

Exercice 4 : Calculatrice simple avec switch

Écrire un programme en C qui agit comme une calculatrice simple. L'utilisateur doit entrer
deux nombres et une opération (+, -, *, /). Le programme affiche ensuite le résultat.

Correction :

#include <stdio.h>

int main() {

float num1, num2, resultat;

char operation;

Mme. Imen AZZOUZ 3


Correction TD Programmation Structurée 1- L1 GE

// Saisie des nombres et de l'opération

printf("Entrez le premier nombre : ");

scanf("%f", &num1);

printf("Entrez le deuxième nombre : ");

scanf("%f", &num2);

printf("Entrez l'opération (+, -, *, /) : ");

scanf(" %c", &operation); // L'espace avant %c est pour éviter un problème de buffer

// Choix de l'opération avec switch

switch (operation) {

case '+':

resultat = num1 + num2;

printf("Résultat : %.2f\n", resultat);

break;

case '-':

resultat = num1 - num2;

printf("Résultat : %.2f\n", resultat);

break;

case '*':

resultat = num1 * num2;

Mme. Imen AZZOUZ 4


Correction TD Programmation Structurée 1- L1 GE

printf("Résultat : %.2f\n", resultat);

break;

case '/':

if (num2 != 0) {

resultat = num1 / num2;

printf("Résultat : %.2f\n", resultat);

} else {

printf("Erreur : Division par zéro.\n");

break;

default:

printf("Opération invalide.\n");

break;

return 0;

Exercice 5 : Vérification d'un caractère voyelle ou consonne

Écrire un programme en C qui lit un caractère et vérifie s'il s'agit d'une voyelle ou d'une
consonne.

Mme. Imen AZZOUZ 5


Correction TD Programmation Structurée 1- L1 GE

Correction :

#include <stdio.h>

int main() {

char caractere;

// Saisie du caractère

printf("Entrez un caractère : ");

scanf("%c", &caractere);

// Vérification de la voyelle ou consonne

if (caractere == 'a' || caractere == 'e' || caractere == 'i' || caractere == 'o' || caractere == 'u' ||
caractere == 'A' || caractere == 'E' || caractere == 'I' || caractere == 'O' || caractere == 'U') {

printf("%c est une voyelle.\n", caractere);

} else {

printf("%c est une consonne.\n", caractere);

return 0;

Exercice 6 : Classer un nombre

Énoncé : Écrire un programme en C qui vérifie si un nombre entier est positif, négatif ou nul.

Correction :

#include <stdio.h>

int main() {

int nombre;

// Saisie du nombre

printf("Entrez un nombre entier : ");

scanf("%d", &nombre);

Mme. Imen AZZOUZ 6


Correction TD Programmation Structurée 1- L1 GE

// Classification du nombre

if (nombre > 0) {

printf("%d est positif.\n", nombre);

} else if (nombre < 0) {

printf("%d est négatif.\n", nombre);

} else {

printf("%d est nul.\n", nombre);

return 0;

Exercice 7 : Vérification de la validité d'un triangle

Énoncé : Écrire un programme en C qui permet de vérifier si trois longueurs données peuvent
former un triangle. Pour qu'un triangle soit valide, la somme de deux côtés doit toujours être
supérieure au troisième côté.

Correction :

#include <stdio.h>

int main() {

int a, b, c;

// Saisie des trois côtés du triangle

printf("Entrez la longueur du premier côté : ");

scanf("%d", &a);

Mme. Imen AZZOUZ 7


Correction TD Programmation Structurée 1- L1 GE

printf("Entrez la longueur du deuxième côté : ");

scanf("%d", &b);

printf("Entrez la longueur du troisième côté : ");

scanf("%d", &c);

// Vérification de la validité du triangle

if (a + b > c && a + c > b && b + c > a) {

printf("Les longueurs peuvent former un triangle.\n");

} else {

printf("Les longueurs ne peuvent pas former un triangle.\n");

return 0;

Mme. Imen AZZOUZ 8


Correction TD Programmation Structurée 1- L1 GE

Correction Travail Dirigé N° 3

Exercice 1 : Somme des nombres impairs

Énoncé : Écrire un programme en C qui calcule la somme des nombres impairs compris entre
1 et 100.

Solution :

#include <stdio.h>

int main() {

int somme = 0;

// Boucle pour calculer la somme des nombres impairs

for (int i = 1; i <= 100; i += 2) {

somme += i;

// Affichage du résultat

printf("La somme des nombres impairs entre 1 et 100 est : %d\n", somme);

return 0;

Exercice 2 : Calcul de la factorielle

Énoncé : Écrire un programme en C qui calcule la factorielle d'un nombre entier donné par
l'utilisateur.

Mme. Imen AZZOUZ 1


Correction TD Programmation Structurée 1- L1 GE

Solution :
#include <stdio.h>

int main() {

int n, fact = 1;

// Saisie du nombre

printf("Entrez un nombre : ");

scanf("%d", &n);

// Calcul de la factorielle

for (int i = 1; i <= n; i++) {

fact *= i;

// Affichage du résultat

printf("La factorielle de %d est : %d\n", n, fact);

return 0;

Exercice 3 : Somme des N premiers nombres entiers

Énoncé : Écrire un programme en C qui calcule la somme des N premiers nombres entiers.

Solution :

#include <stdio.h>

int main() {

int N, i, somme = 0;

// Saisie de la valeur de N

printf("Entrez un nombre entier N : ");

scanf("%d", &N);

Mme. Imen AZZOUZ 2


Correction TD Programmation Structurée 1- L1 GE

// Boucle for pour calculer la somme

for (i = 1; i <= N; i++) {

somme += i;

printf("La somme des %d premiers nombres est : %d\n", N, somme);

return 0;

Exercice 4 : Trouver la somme des chiffres d'un nombre

Énoncé : Écrire un programme en C qui trouve la somme des chiffres d'un nombre donné.

Solution :

#include <stdio.h>

int main() {

int nombre, somme = 0, chiffre;

// Saisie du nombre

printf("Entrez un nombre entier : ");

scanf("%d", &nombre);

// Boucle while pour calculer la somme des chiffres

while (nombre != 0) {

chiffre = nombre % 10; // Extraire le dernier chiffre

somme += chiffre;

Mme. Imen AZZOUZ 3


Correction TD Programmation Structurée 1- L1 GE

nombre /= 10; // Retirer le dernier chiffre

printf("La somme des chiffres est : %d\n", somme);

return 0;

Exercice 5 : Afficher les multiples de 3 et 5 entre 1 et 100

Énoncé : Écrire un programme en C qui affiche tous les nombres entre 1 et 100 qui sont des
multiples de 3 ou de 5.

Solution :

#include <stdio.h>

int main() {

int i;

// Boucle for pour vérifier les multiples de 3 et 5

for (i = 1; i <= 100; i++) {

if (i % 3 == 0 || i % 5 == 0) {

printf("%d\n", i);

return 0;

Mme. Imen AZZOUZ 4


Correction TD Programmation Structurée 1- L1 GE

Exercice 6 : Trouver le plus grand commun diviseur (PGCD)

Énoncé : Écrire un programme en C qui calcule le plus grand commun diviseur (PGCD) de
deux nombres.

Solution :

#include <stdio.h>

int main() {

int a, b;

// Saisie des deux nombres

printf("Entrez deux nombres entiers : ");

scanf("%d %d", &a, &b);

// Utilisation de la méthode d'Euclide pour trouver le PGCD

while (a != b) {

if (a > b) {

a -= b;

} else {

b -= a;

printf("Le PGCD est : %d\n", a);

return 0;}

Mme. Imen AZZOUZ 5


Correction TD Programmation Structurée 1- L1 GE

Exercice 7 : Vérifier si un nombre est un nombre premier

Énoncé : Écrire un programme en C qui vérifie si un nombre donné est un nombre premier.

Solution :

#include <stdio.h>

int main() {

int nombre, i, estPremier = 1;

// Saisie du nombre

printf("Entrez un nombre entier : ");

scanf("%d", &nombre);

// Vérification si le nombre est premier

if (nombre <= 1) {

estPremier = 0;

} else {

for (i = 2; i <= nombre / 2; i++) {

if (nombre % i == 0) {

estPremier = 0;

break;

if (estPremier == 1) {

printf("%d est un nombre premier.\n", nombre);

} else {

printf("%d n'est pas un nombre premier.\n", nombre);

Mme. Imen AZZOUZ 6


Correction TD Programmation Structurée 1- L1 GE

return 0;

Exercice 8 : Affichage d'une table de multiplication

Énoncé : Écrire un programme en C qui affiche la table de multiplication d'un nombre donné.

Correction :

#include <stdio.h>

int main() {

int nombre, i;

// Saisie du nombre

printf("Entrez un nombre entier pour afficher sa table de multiplication : ");

scanf("%d", &nombre);

// Boucle for pour afficher la table de multiplication

for (i = 1; i <= 10; i++) {

printf("%d x %d = %d\n", nombre, i, nombre * i);

return 0;

Mme. Imen AZZOUZ 7


Correction TD Programmation Structurée 1- L1 GE

Correction Travail Dirigé N° 4


Exercice 1 : Recherche d'un élément dans un tableau

Énoncé : Écrire un programme en C qui permet de rechercher un élément dans un


tableau unidimensionnel de 10 entiers.

Solution :

#include <stdio.h>

int main() {

int tableau[10], element, trouve = 0;

// Remplissage du tableau

printf("Entrez 10 entiers :\n");

for (int i = 0; i < 10; i++) {

scanf("%d", &tableau[i]);

// Saisie de l'élément à rechercher

printf("Entrez l'élément à rechercher : ");

scanf("%d", &element);

// Recherche de l'élément

for (int i = 0; i < 10; i++) {

if (tableau[i] == element) {

printf("L'élément %d a été trouvé à l'indice %d.\n", element, i);

Mme. Imen AZZOUZ 1


Correction TD Programmation Structurée 1- L1 GE

trouve = 1;

break;

// Si l'élément n'est pas trouvé

if (!trouve) {

printf("L'élément %d n'a pas été trouvé dans le tableau.\n", element);

return 0;

Exercice 2 : Somme des éléments d'une matrice

Énoncé : Écrire un programme en C qui permet de remplir une matrice 2x2, puis d'afficher la
somme de tous les éléments de cette matrice.

Solution :

#include <stdio.h>

int main() {

int matrice[2][2], somme = 0;

// Remplissage de la matrice

printf("Entrez les éléments de la matrice 2x2 :\n");

for (int i = 0; i < 2; i++) {

Mme. Imen AZZOUZ 2


Correction TD Programmation Structurée 1- L1 GE

for (int j = 0; j < 2; j++) {

printf("M[%d][%d] : ", i, j);

scanf("%d", &matrice[i][j]);

somme += matrice[i][j]; // Ajout de l'élément à la somme

// Affichage de la somme des éléments

printf("La somme des éléments de la matrice est : %d\n", somme);

return 0;

Exercice 3 : Inversion d'un tableau

Énoncé : Écrire un programme en C qui permet d'inverser les éléments d'un tableau
unidimensionnel de 5 entiers.

Solution :

#include <stdio.h>

int main() {

int tableau[5], temp;

// Remplissage du tableau

printf("Entrez 5 entiers :\n");

for (int i = 0; i < 5; i++) {

Mme. Imen AZZOUZ 3


Correction TD Programmation Structurée 1- L1 GE

scanf("%d", &tableau[i]);

// Inversion du tableau

for (int i = 0; i < 5 / 2; i++) {

temp = tableau[i];

tableau[i] = tableau[5 - 1 - i];

tableau[5 - 1 - i] = temp;

// Affichage du tableau inversé

printf("Le tableau inversé est : ");

for (int i = 0; i < 5; i++) {

printf("%d ", tableau[i]);

printf("\n");

return 0;

Exercice 4 : Maximum d'un tableau

Énoncé : Écrire un programme en C qui trouve et affiche le plus grand élément dans un
tableau.

Mme. Imen AZZOUZ 4


Correction TD Programmation Structurée 1- L1 GE

Solution :

#include <stdio.h>

int main() {

int tableau[5], max, i;

// Remplissage du tableau

printf("Entrez 5 entiers : \n");

for (i = 0; i < 5; i++) {

scanf("%d", &tableau[i]);

// Initialisation du maximum au premier élément du tableau

max = tableau[0];

// Recherche du maximum

for (i = 1; i < 5; i++) {

if (tableau[i] > max) {

max = tableau[i];

printf("Le maximum du tableau est : %d\n", max);

return 0;}

Mme. Imen AZZOUZ 5


Correction TD Programmation Structurée 1- L1 GE

Exercice 5 : Tri d'un tableau (Tri par sélection)

Énoncé : Écrire un programme en C qui trie les éléments d'un tableau d'entiers dans l'ordre
croissant.

Correction :

#include <stdio.h>

int main() {

int tableau[5], i, j, min, temp;

// Remplissage du tableau

printf("Entrez 5 entiers : \n");

for (i = 0; i < 5; i++) {

scanf("%d", &tableau[i]);

// Tri par sélection

for (i = 0; i < 4; i++) {

min = i;

for (j = i + 1; j < 5; j++) {

if (tableau[j] < tableau[min]) {

min = j;

// Échange des éléments

if (min != i) {

temp = tableau[i];

tableau[i] = tableau[min];

Mme. Imen AZZOUZ 6


Correction TD Programmation Structurée 1- L1 GE

tableau[min] = temp;

// Affichage du tableau trié

printf("Tableau trié : ");

for (i = 0; i < 5; i++) {

printf("%d ", tableau[i]);

printf("\n");

return 0;

Exercice 6 : Comptage des éléments pairs et impairs d'un tableau

Énoncé : Écrire un programme en C qui compte le nombre d'éléments pairs et impairs dans
un tableau d'entiers.

Correction :

#include <stdio.h>

int main() {

int tableau[5], i, pairs = 0, impairs = 0;

// Remplissage du tableau

printf("Entrez 5 entiers : \n");

for (i = 0; i < 5; i++) {

scanf("%d", &tableau[i]);

Mme. Imen AZZOUZ 7


Correction TD Programmation Structurée 1- L1 GE

// Comptage des éléments pairs et impairs

for (i = 0; i < 5; i++) {

if (tableau[i] % 2 == 0) {

pairs++;

} else {

impairs++;

printf("Nombre de nombres pairs : %d\n", pairs);

printf("Nombre de nombres impairs : %d\n", impairs);

return 0;

Exercice 7 : Somme des diagonales d'une matrice

Énoncé : Écrire un programme en C qui calcule la somme des éléments de la diagonale


principale et de la diagonale secondaire d'une matrice carrée de taille 3x3.

Correction :

#include <stdio.h>

int main() {

int matrice[3][3], i, sommeDiagPrincipale = 0, sommeDiagSecondaire = 0;

Mme. Imen AZZOUZ 8


Correction TD Programmation Structurée 1- L1 GE

// Remplissage de la matrice

printf("Entrez les éléments de la matrice 3x3 : \n");

for (i = 0; i < 3; i++) {

for (int j = 0; j < 3; j++) {

scanf("%d", &matrice[i][j]);

// Calcul des sommes des diagonales

for (i = 0; i < 3; i++) {

sommeDiagPrincipale += matrice[i][i];

sommeDiagSecondaire += matrice[i][2 - i];

printf("Somme de la diagonale principale : %d\n", sommeDiagPrincipale);

printf("Somme de la diagonale secondaire : %d\n", sommeDiagSecondaire);

return 0;

Mme. Imen AZZOUZ 9

Vous aimerez peut-être aussi