0% ont trouvé ce document utile (0 vote)
53 vues3 pages

TP 2

Transféré par

mehdi benmassoud
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)
53 vues3 pages

TP 2

Transféré par

mehdi benmassoud
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

2024/2025

Département Logistique
Filière : GLT

Manuel des TD/TP 2


Langage C

• Tableaux
Exercice 1
Écrire un programme qui lit la dimension N d'un tableau T du type int (dimension
maximale : 10 composantes), remplit le tableau par des valeurs entrées au clavier
et affiche le tableau.
Calculer et afficher ensuite la somme des éléments du tableau.
Exercice 2
Écrire un programme qui lit la dimension N d'un tableau T du type int (dimension maximale:
10 composantes), remplit le tableau par des valeurs entrées au clavier et affiche le tableau.
Ranger ensuite les éléments du tableau T dans l'ordre inverse sans utiliser de
tableau d'aide. Afficher le tableau résultant.

Idée: Échanger les éléments du tableau à l'aide de deux indices qui parcourent le
tableau en commençant respectivement au début et à la fin du tableau et qui se
rencontrent en son milieu.

Exercice 3
Écrire un programme qui lit la dimension N d'un tableau T du type int (dimension
maximale: 10 composantes), remplit le tableau par des valeurs entrées au clavier et
affiche le tableau.
Copiez ensuite toutes les composantes strictement positives dans un deuxième tableau
TPOS et toutes les valeurs strictement négatives dans un troisième tableau TNEG.
Afficher les tableaux TPOS et TNEG.

Exercice 4
Écrire un programme qui lit la dimension N d'un tableau T du type int (dimension
maximale: 10 composantes), remplit le tableau par des valeurs entrées au clavier
et affiche le tableau.
Effacer ensuite toutes les occurrences de la valeur 0 dans le tableau T et tasser les
éléments restants. Afficher le tableau résultant.
Exercice 5
Écrire un programme qui lit les dimensions L et C d'un tableau T à deux dimensions
du type int (dimensions maximales: 10 lignes et 10 colonnes). Remplir le tableau
par des valeurs entrées au clavier et afficher le tableau ainsi que la somme de tous
ses éléments.
Exercice 6
Écrire un programme qui lit les dimensions L et C d'un tableau T à deux dimensions
du type int (dimensions maximales: 10 lignes et 10 colonnes). Remplir le tableau
par des valeurs entrées au clavier et afficher le tableau ainsi que la somme de
chaque ligne et de chaque colonne en n'utilisant qu'une variable d'aide pour la
somme.

Exercice 7
Écrire un programme qui transfère un tableau M à deux dimensions L et C
(dimensions maximales: 10 lignes et 10 colonnes) dans un tableau V à une
dimension L*C.

Exemple :
a b c d
 
e f g h  → (a b c d e f g h i j k l)
e l 
 j k

Exercices d'application
Exercice 8 : Produit scalaire de deux vecteurs
Écrire un programme qui calcule le produit scalaire de deux vecteurs d'entiers U
et V (de même dimension).
Exercice 9 : Calcul d'un polynôme de degré N
Calculer pour une valeur X donnée du type float la valeur numérique d'un
polynôme de degré n:
P(X) = AnXn + An-1Xn-1 + ... + A1X + A0
Les valeurs des coefficients An, ... , A0 seront entrées au clavier et mémorisées
dans un tableau A de type float et de dimension n+1.
Utilisez la fonction pow() pour le calcul.
Exercice 10 : Maximum et minimum des valeurs d'un tableau
Écrire un programme qui détermine la plus grande et la plus petite valeur dans un
tableau d'entiers A. Afficher ensuite la valeur et la position du maximum et du
minimum. Si le tableau contient plusieurs maxima ou minima, le programme
retiendra la position du premier maximum ou minimum rencontré.
Exercice 11 Tri par sélection du maximum
Problème: Classer les éléments d'un tableau A par ordre décroissant.
Méthode: Parcourir le tableau de gauche à droite à l'aide de l'indice I. Pour chaque
élément A[I] du tableau, déterminer la position PMAX du (premier) maximum à
droite de A[I] et échanger A[I] et A[PMAX].
Exercice 12 Tri par propagation (bulle sort)
Problème: Classer les éléments d'un tableau A par ordre croissant.
Méthode: En recommençant chaque fois au début du tableau, on effectue à
plusieurs reprises le traitement suivant: On propage, par permutations
successives, le plus grand élément du tableau vers la fin du tableau (comme une
bulle qui remonte à la surface d'un liquide).
Exercice 13 : Insérer une valeur dans un tableau trié
Un tableau A de dimension N+1 contient N valeurs entières triées par ordre
croissant; la (N+1)ème valeur est indéfinie. Insérer une valeur VAL donnée au clavier
dans le tableau A de manière à obtenir un tableau de N+1 valeurs triées.
Exercice 14 : Recherche d'une valeur dans un tableau
Problème: Rechercher dans un tableau d'entiers A une valeur VAL entrée au
clavier. Afficher la position de VAL si elle se trouve dans le tableau, sinon afficher
un message correspondant. La valeur POS qui est utilisée pour mémoriser la
position de la valeur dans le tableau, aura la valeur -1 aussi longtemps que VAL n'a
pas été trouvée.
Implanter deux versions:
a) La recherche séquentielle
Comparer successivement les valeurs du tableau avec la valeur donnée.
b) La recherche dichotomique ('recherche binaire', 'binary search')
Condition: Le tableau A doit être trié
Comparer le nombre recherché à la valeur au milieu du tableau,
- s'il y a égalité ou si le tableau est épuisé, arrêter le traitement avec un
message correspondant.
- si la valeur recherchée précède la valeur actuelle du tableau, continuer la
recherche dans le demi-tableau à gauche de la position actuelle.
- si la valeur recherchée suit la valeur actuelle du tableau, continuer la
recherche dans le demi-tableau à droite de la position actuelle.

Écrire le programme pour le cas où le tableau A est trié par ordre croissant.
Question: Quel est l'avantage de la recherche dichotomique? Expliquer
brièvement.
Exercice 15 Fusion de deux tableaux triés
Problème: On dispose de deux tableaux A et B (de dimensions respectives N et
M), triés par ordre croissant. Fusionner les éléments de A et B dans un troisième
tableau FUS trié par ordre croissant.
Méthode: Utiliser trois indices IA, IB et IFUS. Comparer A[IA] et B[IB]; remplacer FUS[IFUS]
par le plus petit des deux éléments; avancer dans le tableau FUS et dans le tableau qui a
contribué son élément. Lorsque l'un des deux tableaux A ou B est épuisé, il suffit de recopier
les éléments restants de l'autre tableau dans le tableau FUS.

Vous aimerez peut-être aussi