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 :

Pour car ⟵ "B" le tableau devient :

B A B C A C B A
1 2 3 4 5 6 7 8
5
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é

  1. Transformer l'étape (1) en une procédure Saisie, ajouter le contrôle de saisie.
  2. 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.
  3. 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.
  4. 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.