Département
d'Informatique |
Groupe
D2 de L1 |
Algorithmique
&
Programmation |
Contrôle
Continu |
Mercredi
25 avril 2007
|
(durée
: 1h30, tout
document autorisé) |
I
Décomposition d'un entier naturel en paires de 2
facteurs
Écrire
un programme C qui étant
donné un nombre entier naturel
n
non
nul, détermine
toutes les paires (a
,b
) de 2 nombres
entiers telles que a
×
b
= n
. Le
programme devra
afficher une seule fois chaque paire (on considére que la paire
(a
,b
) est la même
que la paire (b
,a
)).
Exemple
d'exécution:
Entrer un entier naturel non nul : 24
1 x 24 = 2 x 12 = 3 x 8 = 4 x 6 = 24
II
Dessine-moi un papillon
Écrire
un programme C qui
dessine un papillon, étant donnée sa taille. La taille
doit être un nombre impair strictement supérieur à
1. Si l'utilisateur donne une taille incorrecte, le
programme doit demander une nouvelle taille.
Exemple
d'exécution:
Entrer la taille du papillon : 6
Entrer la taille du papillon : 8
Entrer la taille du papillon : 7
* *
** **
* * * *
* * *
* * * *
** **
* *
III
Grands
entiers
On
considère les entiers naturels ayant un grand nombre de chiffres
décimales. On choisit de représenter ces entiers par un
tableau à n
éléments dont chaque
élément représente un chiffre décimal : le
chiffre des
unités est placé à l'indice 0, le chiffre des
dizaines, à l'indice 1, le chiffre des centaines, à
l'indice 2, etc. On met des zéros dans le reste du tableau
(lorsqu'il n'y a pas assez de
chiffres). Pour chaque question, on supposera que n
est plus grand
que le nombre de chiffres des entiers que l'on représente.
1) Écrire
une fonction C void
lire_grand_entier(int N[],
int n)
qui lit un grand entier au clavier. L'utilisateur donnera les chiffres
dans l'ordre en terminant par le chiffre des unités suivi par un
caractère qui n'est pas un chiffre (par exemple le
caractère '#') qui
indiquera la fin de la
suite de
chiffres.
2)
On cherche à définir une fonction C int
nb_chiffres_grand_entier(int N[], int n)
qui
retourne le nombre
de chiffres d'un grand entier.
a) Écrire une
version
itérative (en utilisant
une boucle).
b) Écrire une
version récursive (en utilisant un
appel récursif).
3) Écrire une fonction C void
ecrire_grand_entier(int N[], int n)
qui affiche un
grand entier.
4) Écrire
un programme C qui lit au clavier un grand entier, écrit cet
entier et affiche son nombre de chiffres. On utilisera les fonctions
précédentes avec n
=100.
Exemple
d'exécution :
Entrer un grand entier
(terminer par
#) : 191715131197531#
Le nombre de chiffres de l'entier 191715131197531 est 15.