Vous êtes sur la page 1sur 4

Algorithmique et structure de données I A.U.

2021/2022
Algorithmique et structure de données I Section : 1ère IAG
TD N°5

Les sous-programmes et les chaines de caractères

Exercice 1
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.
(En utilisant la notion pointeur)

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 2 (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
2201 + 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.
1. É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.
2. Écrire l'algorithme principal qui permet de saisir deux entiers naturels strictement positifs et
afficher s'ils sont amis ou pas.

1
Algorithmique et structure de données I A.U. 2021/2022
Algorithmique et structure de données I Section : 1ère IAG
TD N°5

Exercice 3 (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

2 13 24 55 76 87 90

T2
12 13 90

T3

13 90

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.

Exercice 4
Ecrire un programme C qui permet de déterminer si deux entiers donnés sont des nombres premiers
jumeaux.
Sachant que, deux nombres premiers jumeaux sont deux nombres premiers dont la différence est
égale à 2.
Rappelons qu’un nombre premier est un nombre naturel supérieur à 1 qui a deux diviseurs 1 et lui-
même.
Exemples : (3, 5), (7, 5), (11, 13) sont des nombres premiers jumeaux.
(3, 7), (11, 17), (5, 31) sont des nombres premiers mais pas jumeaux
. (2, 5), (1, 8), (4, 12) ne sont pas des nombres premiers jumeaux.
2
Algorithmique et structure de données I A.U. 2021/2022
Algorithmique et structure de données I Section : 1ère IAG
TD N°5

Pour ce faire, le programme va être décomposé en sous-programme comme suit :


1. Ecrire un sous-programme Saisi qui permet de saisir un entier.
2. Ecrire un sous-programme Premier qui permet de retourner 1 si un nombre est premier et 0 sinon.
3. Ecrire un sous-programme Jumeaux qui permet de renvoyer 1 si deux entiers donnés sont jumeaux,
0 sinon.
4. Ecrire un programme principal qui fait appel aux sous-programmes définis précédemment.

Exercice 5 (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 :
14 5 17 8 11 4 8 6 4 7

Tableau trié :
14 4 6 8 8 4 11 17 5 7

1. Ecrire un sous-programme Saisie permettant de saisir les éléments du tableau.


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.
3. Ecrire un sous-programme Affiche permettant d'afficher le tableau trié.
Ecrire le programme principal ( en C)qui fait appel aux sous programmes décrits.

Exercice 6
Un "tautogramme" est une chaîne dont tous les mots commencent par la même lettre.
Ecrire un algorithme qui permet de saisir une chaîne de caractères, de taille maximale 255, et
d'afficher par la suite un message indiquant si cette chaîne est "tautogramme" ou non.
On suppose que la phrase est écrite correctement et que deux mots consécutifs sont séparés par un
seul espace.

3
Algorithmique et structure de données I A.U. 2021/2022
Algorithmique et structure de données I Section : 1ère IAG
TD N°5

Remarque: La fonction prédéfinie Longueur peut être utilisée.


Exemple:
Tautogramme en S : Sa souris soutient son sapin.
Tautogramme en J : Juliette jardinait joyeusement jeudi.
N’est pas tautogramme en L : Le lapin lit le livre de lecture

Exercice 7
Une chaîne de caractères est dite "distincte", si elle est composée de caractères différents. Ecrire un
algorithme qui permet de saisir une chaine, de taille maximale 200, non vide, puis de vérifier et
d’afficher si cette chaine est distincte ou non. - La fonction prédéfinie Longueur (strlen en C) peut
être utilisée.

Exercice 8

Ecrire un programme qui lit une chaîne de caractères CH et détermine le nombre de mots contenus
dans la chaîne. Utiliser un pointeur P, une variable logique, la fonction isspace et une variable
numérique N qui contiendra le nombre des mots.

Exercice 9

Ecrire un programme qui lit deux chaînes de caractères CH1 et CH2 au clavier et élimine toutes les
lettres de CH1 qui apparaissent aussi dans CH2. Utiliser deux pointeurs P1 et P2, une variable logique
TROUVE et la fonction strcpy.

Exemples: Bonjour Bravo ==> Njou


Bonjour bravo ==> Bnjou
abacab aa ==> Bcab

Vous aimerez peut-être aussi