Vous êtes sur la page 1sur 4

Année Universitaire : 2022/2023

Module : Algorithmique et structure de données I

TRAVAUX DIRIGES N°1


Les sous-programmes et passage de paramètres

Exercice 1
1- Ecrire un sous programme MIN et un sous programme MAX qui retournent le minimum et le
maximum de deux nombres réels.
2- Ecrire un algorithme se servant des sous programmes MIN et MAX pour déterminer le
minimum et le maximum de quatre nombres réels entrés au clavier.

Exercice 2
Ecrire un sous programme qui à partir d’une chaine de caractère (ne dépassant pas 200
caractères), affiche le nombre de "e" contenus dans la chaine.

Exercice 3
1- Ecrire un sous programme REMPLIR qui permet de remplir un tableau de N réel.
2- Ecrire un sous programme INVERSER qui permet d’inverser les éléments du tableau.
3- Ecrire un sous programme AFFICHER qui permet d’afficher les éléments du tableau inversé.
4- Ecrire l’algorithme du programme principal qui assure le remplissage d’un tableau, l’inversion
de ces éléments et l’affichage de ses éléments inversés.

Exercice 4
Ecrire un algorithme, décomposé en sous-programmes, qui permet de saisir deux entiers n et p,
et calculer la combinaison : Cpn, en se basant sur le factoriel.
Cnp = n!
(n − p )!* p!

Exercice 5
1.Ecrire un sous programme, Table, qui permet d’afficher la table de multiplication d’un entier
donné.
2.Ecrire l’algorithme du programme principal, Calcul, qui permet d’afficher les tables de
multiplication de 1 à N. Le programme demandera la valeur de N à l’utilisateur.

Exercice 6
1. Ecrire un sous programme qui permet de remplir un tableau de N caractères.
2. Ecrire un sous programme qui retourne vrai si un tableau de caractères est trié en ordre croissant
et Faux sinon.
3. Ecrire un algorithme qui lit les valeurs d’un tableau de caractères et affiche si ce tableau est trié
ou non.

Oueslati . 1
Année Universitaire : 2022/2023
Module : Algorithmique et structure de données I

Exercice 7
Ecrire un algorithme qui permet de vérifier si la différence entre deux éléments successifs d’un
tableau de 10 entiers est bien constante en valeur absolue ou non.

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

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

L’algorithme utilisera les sous programmes suivants :


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

Exercice 8 (Janvier 2012)


Soit une matrice carrée M d’entiers de taille N (avec taille maximale égale 10). On désire
identifier si elle constitue un carré magique ou non. Un carré est magique si la somme des entiers
de chaque ligne, chaque colonne et des deux diagonales sont identiques.

Exemple : Carré magique d’ordre 3


M
4 9 2
3 5 7
8 1 6

1. Ecrire un sous programme REMPLIR qui permet de saisir les éléments de la matrice.
2. Ecrire un sous programme SOMME_LIGNE qui retourne la somme des éléments d’une ligne
de la matrice.
3. Ecrire un sous programme SOMME_COLONNE qui renvoie la somme des éléments d’une
colonne de la matrice.
4. Ecrire un sous programme SOMME_DIAG qui calcule les sommes de la 1ère et de la 2ème
diagonale.
5. Ecrire un sous programme VERIF_MAGIC qui retourne vrai si la matrice représente un carré
magique et faux sinon.
6. Ecrire un algorithme principal qui remplit une matrice carrée et affiche si elle est magique ou
non.

Oueslati . 2
Année Universitaire : 2022/2023
Module : Algorithmique et structure de données I

Exercice 9 (Juin 2012)


Soit T un tableau d'entiers de taille N (avec taille maximale égale 100). Une série dans T est une
suite d'éléments consécutifs et égaux.
L'objectif étant de trouver la plus longue série dans T en précisant l’élément qui se répète, l'indice
de la première occurrence de cet élément et la longueur de la série (c'est à dire le nombre de
répétitions de cet élément).
Exemple :
E:
226666999991000
La plus longue série du tableau E est constituée de l’élément 9, elle commence à l'indice 7 et elle
est de longueur 5.
1. Ecrire un sous programme SAISIE permettant de saisir les éléments du tableau. En déduire
sa complexité.
2. Ecrire un sous programme SERIE permettant d’identifier l’élément récurrent de la plus
longue série, l’indice de début de cette série ainsi que sa longueur. Calculer par la suite ma
complexité de ce sous programme.
3. Ecrire un algorithme principal qui fait appel aux sous programmes décrits et affiche un
message identique à celui donné dans l'exemple précédent.

Exercice 10 (Juin 2013)


On se propose de trier un tableau d'entiers de taille n (taille maximale: 50) selon le critère suivant:
tous les entiers pairs doivent être au début du tableau et les entiers impairs à la fin. L'exemple ci-
dessous illustre le principe du trie à effectuer.
Exemple :
Tableau initial : Tableau trié :
14 5 17 8 11 4 8 6 4 7 14 4 6 8 8 4 11 17 5 7

1. Ecrire un sous programme Saisie permettant de saisir les éléments du tableau. En déduire sa
complexité.
2. Ecrire un sous programme Trie permettant de trier le tableau suivant la parité de ses éléments
comme il est décrit ci-dessus. Calculer par la suite la complexité de ce sous programme.
3. Ecrire un sous programme Affiche permettant d'afficher le tableau trié. En déduire sa
complexité.
4. Ecrire un algorithme principal qui fait appel aux sous programmes décrits.

Oueslati . 3
Université de Carthage Année Universitaire : 2014/2015
Module : Algorithmique et structure de données I
Faculté des Sciences Economiques et de Gestion de Nabeul
Niveaux : 1 LF & LA - IAG

Exercice 11 (Janvier 2014)


Deux entiers naturels strictement positifs m et n sont dits nombres amis si et seulement si :
- La somme des diviseurs de m, sauf lui-même, est égale à n, et
- La somme des diviseurs de n, sauf lui-même, est égale à m.
Exemple :
220 et 284 sont deux nombres amis. En effet :
D284 = {1, 2, 4, 71, 142, 284}
D220= {1 , 2 , 4 , 5 , 10 , 11 , 20 , 22, 44 , 55 , 110 , 220 }
D284 et D 220 sont respectivement les ensembles de tous les diviseurs de 284 et de 220.
284 = 1 + 2 + 4 + 5 + 10 + 11 + 20 + 22+ 44 + 55 + 110
220 = 1 + 2 + 4 + 71 + 142
1. Écrire un sous programme Somme_Diviseurs qui, pour un entier donné, retourne la somme
de ses diviseurs sauf lui-même.
2. Écrire un sous programme Nombres_Amis, qui étant donné 2 entiers, retourne s’ils sont des
nombres amis ou pas, en utilisant le sous programme Somme_Diviseurs.
3. Écrire l'algorithme principal qui permet de saisir deux entiers naturels strictement positifs et
afficher s'ils sont amis ou pas.

Exercice 12 (Juin 2014)


Nous voulons déterminer et afficher l'intersection de deux tableaux d'entiers T1 et T2 de tailles
respectives n et m (la taille maximale est 50), sachant que les éléments de T1 et T2 sont ordonnés
dans l'ordre croissant.
Exemple:
T1 T1
2 13 24 55 76 87 90 2 13 24 55 76 87 90

T2 T2
12 13 90 12 14 80

T3 Aucune intersection entre les deux


13 90 tableaux.

Pour ce faire, décomposez le problème en sous programmes, comme suit:

1. Ecrire un sous programme Saisie permettant de saisir les éléments du tableau T1 et T2.
2. Ecrire un sous programme Affiche permettant d'afficher le contenu d'un tableau.
3. Ecrire un sous programme Intersection permettant de déterminer et afficher l'intersection
entre T1 et T2.
4. Ecrire un algorithme principal qui fait appel aux sous programmes décrits.

Oueslati. 4

Vous aimerez peut-être aussi