Série 2 : Sous-Programmes
Exercice 1
Deux nombres sont dits amis si la somme des diviseurs de l'un sauf lui même est égale à l'autre nombre.
Ecrire un programme qui détermine tous les nombres amis de quatre chiffres.
Exemple : 220 et 284 sont deux nombres amis car :
220 = 1 + 2 + 4 + 71 + 142, Ces valeurs sont les diviseurs de 284 sauf lui même
284 = 1 + 2 + 4 + 5 + 10 + 11 + 20 + 22 + 44 + 55 + 110, Ces valeurs sont les diviseurs de 220 sauf lui même
Exercice 2
La multiplication russe permet de calculer le produit de deux entiers a et b en utilisant uniquement la multiplication par 2, la division par 2 et l'addition
Exemple : A est divisé à chaque fois par 2 et B est, lui, multiplié à chaque fois par deux.
A=17 | 8 | 4 | 2 | 1 |
B=19 | 38 | 76 | 152 | 304 |
Impair | Impair |
On fait la somme des valeurs de la deuxième ligne qui sont en face d'un nombre impair, ainsi : 19 * 17 = 19 + 304 = 323
Ecrire un programme qui saisit deux nombres a et b compris entre 0 et 200 puis affiche le produit des deux entiers en utilisant la méthode de multiplication russe.
Exercice 3
Un texte est dit tautogramme si tous ses mots commencent par la même lettre.
Exemple : "Tiens toi toujours très tranquille"
Ecrire un programme qui saisit une phrase composée au moins de trois mots puis détermine si elle est tautogramme.
Exercice 4
Ecrire un programme qui remplit un tableau T par n mots (2 ≤ n ≤ 10) où chaque mot doit avoir un nombre de lettres supèrieur égal à son indice dans le tableau. Et d'afficher pour chaque élément t[i] du tableau, les i premiers caractères.
Exemple : Pour n = 6 et t contenant les éléments suivants :
bit | pouce | modem | memoire | souris | processeur |
1 | 2 | 3 | 4 | 5 | 6 |
Le programme affiche :
B
PO
MOD
MEMO
SOURI
PROCES
Exercice 5
Soit un tableau T de n caractères (5 ≤ n ≤ 15) qui ne peuvent être que "A", "B" et "C" et tel que deux éléments successifs du tableau ne sont pas égaux.
On se propose d'insérer un caractère car dans la 1ère position possible dans le tableau T tout en respectant la règle ci-dessus.
car ne peut être que les lettres "A", "B" ou "C" et ne peut être inséré ni à la première, ni à la dernière position du tableau.
Exemple :
B | A | B | C | A | C | B | A | |
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
B | A | B | C | B | A | C | B | A |
1 | 2 | 3 | 4 | 6 | 7 | 8 | 9 |
On donne l'algorithme du programme principal :
0. Début Insertion
1. Ecrire("Donner n [5..15] : ")
Lire(n)
2. Pour i de 1 à n Faire
Ecrire("Donner une lettre A, B et C : ")
Lire(t[i])
Fin Pour
3. Proc InsertCar(car, t, n)
4. Proc Afficher(t, n)
5. Fin Insertion
Travail demandé
- Transformer l'étape (1) en une procédure Saisie, ajouter le contrôle de saisie.
- Transformer l'étape (2) en une procédure Remplir tout en ajoutant le contrôle de saisie pour respecter les conditions mentionnées précédemment.
- Ecrire la procédure InsertCar qui permet d'insérer un caractère car dans le tableau T de telle manière que deux éléments consécutifs soient différents.
- Ecrire une procédure Afficher qui affiche les éléments du tableau T.
Exercice 6
Ecrire un programme qui saisit n entiers (5 ≤ n ≤ 20) dans un tableau t, puis affiche les nombres symétriques. Les éléments du tableaux peuvent être positifs ou négatifs et doivent être d'au minimum deux chiffres.
Exemple :
424 | 715 | 133 | -121 | 454 | 616 | -566 |
1 | 2 | 3 | 4 | 5 | 6 | 7 |
Le programme doit afficher :
Les membres symétriques sont : 424, -121, 454 et 616.