Vous êtes sur la page 1sur 5

Cours programmation : langage C Annexe1 : TDs

TD N°6 : Les Fonctions

Exercice 1 :
Ecrire une fonction qui permet de permuter deux entiers.
Ecrire une fonction qui permet de remplir un tableau.
Ecrire une fonction qui permet d’afficher un tableau.
En utilisant les fonctions précédentes, écrire une fonction qui lit les valeurs d’un tableau et
affiche le tableau trié.

Exercice 2 :
1. Ecrire une fonction qui prend en paramètre un entier et retourne combien de fois il est
divisible par 2.
2. Ecrire un programme C qui lit un entier et affiche le nombre de fois il est divisible par 2.

Exercice 3 :
1. Ecrire une fonction qui permet de remplir un tableau.
2. Ecrire une fonction qui retourne vrai si un tableau est trié et Faux sinon.
3. Ecrire un programme C qui lit les valeurs d’un tableau et affiche si ce tableau est trié ou
non.

Exercice 4 :
1. Ecrire une fonction qui retourne le minimum de deux entiers en utilisant la formule
suivante : Min(x, y) = (x+y - |x-y|)/2
2. Ecrire un programme C qui lit deux entiers et affiche le minimum.

Exercice 5 :
Ecrire une fonction qui prend en paramètre une chaîne et un caractère et retourne la dernière
apparition du caractère dans la chaîne, elle retourne 0 si le caractère n’existe pas.

Exercice 6 :
Une agence de location de voitures propose deux formules tarification :
4. Location au kilomètre :
a. 0.120 DT, par Km, pour les 100 premiers Km
b. 0.150 DT, par Km, pour les 900 Km suivants
c. 0.170 DT, par Km, pour la fraction de kilométrage qui excède 1000 Km
5. Forfait journalier :
a. 75 DT, par jour avec kilométrage illimité
Ecrire un programme C qui :
- lit le nombre de jour de location et le nombre total de kilomètres.
Cours programmation : langage C Annexe1 : TDs

- calcule et affiche les coûts totaux des deux tarifications (coût Location au kilomètre et
coût du Forfait journalier) et indique par un message la solution la plus avantageuse pour
un client.
En utilisant une fonction qui calcule le coût au Km et une fonction qui calcule le coût au forfait
journalier.

Exercice 7 :
Ecrire un programme C qui permet de vérifier si un tableau unidimensionnel d’entiers et de 10
éléments saisis au clavier est bien symétrique ou non.
Exemple :

1 2 3 4 5 5 4 3 2 1 : Tableau symétrique

3 5 6 9 8 8 9 6 5 3 : Tableau symétrique

4 6 8 7 4 2 6 9 6 5 : Tableau non symétrique

Le programme utilisera les sous programmes suivants :


- Une fonction permettant la saisie des éléments du tableau.
- Une fonction « Symétrique » qui pour un tableau donné retourne s’il est symétrique ou
non.
Exercice 8 :
Ecrire un programme C qui permet de vérifier si la différence entre deux éléments successifs
d’un tableau d’entiers et de 10 éléments saisis au clavier est bien constante en valeur absolue ou
non.
Exemple :

1 3 5 7 9 7 5 7 9 1 : Différence constante de 2
1

1 5 6 9 8 5 3 2 1 6 : Différence non constante

Le programme utilisera les sous programmes suivants :


- Une fonction permettant la saisie des éléments du tableau.
- Une fonction « Différence » qui pour un tableau donné retourne si la différence est
constante ou non et la valeur de la différence.

Exercice 9 :
Ecrire un programme C qui calcule la transposé d’une matrice en utilisant les procédures
suivantes :
 Fonction de remplissage de la matrice
Cours programmation : langage C Annexe1 : TDs

 Fonction de calcul de la transposé


 Fonction d’affichage de la transposé

1 5 6 8 1 9 2
9 7 0 3  5 7 4
2 4 1 0 6 0 1
8 3 0
Cours programmation : langage C Annexe1 : TDs

TD N°7 : Les Structures

Exercice 1 :
Soit un stock de 1000 articles dont chacun est caractérisé par sa référence, son nom et son prix.
1- Saisir les données du stock
2- Trouver toutes les références des articles dont le prix est compris entre deux prix donnés.
3- Trouver le prix d’un article dont la référence est données.

Exercice 2 :
Une chambre d’agriculture désire faire des statistiques sur les éleveurs de moutons (100 éleveurs).
Un éleveur est caractérisé par son nom, le nombre de brebis, le nombre de béliers et le nombre
d’agneaux.

1. Proposer une structure de données permettant de représenter les éleveurs (tableaux


d’éleveurs).
2. Saisir les données des éleveurs.
3. Afficher le nom et nombre d’animaux de l’éleveur ayant le plus grand troupeau.

Exercice 3 :
On se propose de gérer les étudiants d’un institut. On suppose que nous avons 100 étudiants et que
chacun est caractérisé par son nom, son prénom, son CIN et suit 3 matières dont chacune possède
un coefficient. Chaque étudiant possède une moyenne.

1. Proposer une structure de données permettant de gérer les étudiants


2. Ecrire une fonction permettant de lire les noms, les prénoms, les CIN et les notes et
initialiser les moyennes à 0.
3. Ecrire une fonction permettant calculer la moyenne de chaque étudiant.
4. Ecrire une procédure permettant de classer les étudiants selon leurs moyennes.
5. Ecrire un programme qui utilise ces sous programmes et affiche les nom et CINs des
étudiants par ordre de mérite

Exercice 4 :
Le but de cet exercice consiste à évaluer le stock d’une entreprise. On dispose d’une centaine
d’articles ; chacun est identifié par sa référence et caractérisé par son prix et sa quantité. On vous
demande de:

a) Proposer une structure de données permettant de gérer les données du stock.


b) Ecrire une procédure qui réalise l’entrée des quantités en stock et les prix.
c) Ecrire une procédure qui majore de 20% les prix des articles dont la quantité dépasse 1000.
d) Ecrire une procédure qui affiche les articles en rupture de stock.
e) Ecrire une fonction qui retourne l’article le plus cher.
f) Ecrire l’algorithme principal qui rassemble tous ces sous programmes

Exercice 5:
Une chambre d’agriculture désire faire des statistiques sur les éleveurs de moutons (100 éleveurs).
Un éleveur est caractérisé par son nom, le nombre de brebis, le nombre de béliers et le nombre
d’agneaux.
Cours programmation : langage C Annexe1 : TDs

1. Proposer une structure de données permettant de représenter les éleveurs (tableaux


d’éleveurs).
Type Eleveur =

Type Tab =

2. Ecrire une procédure qui permet de lire les données des différents éleveurs. Compléter
l’entête des procédures en indiquant le mode de passage des paramètres.
Procédure Remplir (….V : Tab)

3. Ecrire une procédure qui pour un éleveur donné, calcule le nombre total de ses animaux et
le pourcentage d’agneaux par rapport à l’ensemble de ses animaux.
Procédure Stat (.…E :Eleveur, .…Nbtotal : Entier, .…Pourc : Réel)

4. En utilisant la procédure Stat, écrire une procédure qui affiche pour chaque éleveur son
nom, le nombre total de ses animaux et le pourcentage d’agneaux par rapport à l’ensemble
de ses animaux.
Procédure Affiche (….V :Tab)

5. Ecrire une fonction qui retourne le nombre d’animaux que possède en moyenne un éleveur.
Fonction Moyenne (V :Tab)…..

6. Ecrire une Fonction qui retourne l’indice de l’éleveur ayant le plus grand troupeau.
Fonction Maxi (V : Tab) : entier

7. Ecrire un algorithme qui fait appel aux sous-programmes ci-dessus pour :


 lire les données des différents éleveurs,
 afficher pour chaque éleveur son nom, le nombre total de ses animaux et le
pourcentage d’agneaux par rapport à l’ensemble de ses animaux,
 afficher le nombre d’animaux que possède en moyenne un éleveur et
 afficher le nom et nombre d’animaux de l’éleveur ayant le plus grand troupeau.

Exercice 14 :
On se propose de manipuler un tableau de personnes trié selon l’âge.
Une personne est caractérisée par le nom, le prénom, l’âge et le sexe et l’état civil. Selon la valeur
de l’état civil s’il est égal à 1, il faut indiquer si cette personne est fiancée ou non et s’il est égal à
2, on donne le nombre de ses enfants.
On suppose que le tableau est trié dans l’ordre décroissant de l’âge.

1. Proposer une structure de données permettant de représenter les personnes


2. Ecrire les fonctions et les procédures suivantes :
a. Ajout-personne : Cette procédure permet d’ajouter une personne dans le tableau
de façon que le tableau reste trié.
b. Répartition : Cette procédure permet de répartir le tableau en 2 tableaux :
i. Tab-homme qui contient les personnes dont le sexe = « Masculin » et
ii. Tab-femme qui contient les personnes de sexe = « Féminin »
c. Superieure_age : Cette fonction permet de calculer le nombre de personnes ayant
un âge supérieur à l’âge spécifié dans l’argument
d. Moyenne-enfant : Cette fonction calcule la moyenne des enfants pour les
personnes mariées (Etat = 2 si la personne est mariée, 1 sinon)

Vous aimerez peut-être aussi