Académique Documents
Professionnel Documents
Culture Documents
http://laure.gonnord.org/pro/teaching/
Objectifs
Cette feuille contient des exercices supplmentaires faire en TD/TP aprs qu'un enseignant
. Les exercices ne sont pas dans l'ordre croissant
de dicult. Les algorithmes seront expliqus et correctement indents.
Exercice 1 (TD) crire un algorithme, qui tant donns nbH , nbM , nbS
dnotant
respectivement un nombre d'heures, minutes, secondes, dcompte cette dure (en achant tous
les couples
(h, m, s))
a par b, en n'eectuant
et
a b) ;
on demande
n2
n1
Exercice 5 (TD/TP) (Syracuse) Soit la suite dnie par u0 = N (entier positif ) et un+1 = u2n
si
un
1.
est pair et
un+1 = 3un + 1
de
min
max.
Exercice 7 (Quick 2010, TD) crire un algorithme qui demande un entier l'utilisateur et
qui lui donne le nombre de chires que contient cet entier (dans la reprsentation dcimale).
Rappel :
153%10 = 3
et
153/10 = 15.
algorithme ?
Indication :
pgcd(a,b) = a si b = 0,
pgcd(a,b) = pgcd(b,reste(a,b)) si b
6=
par b.
res, puiss
res, puiss, k
2. crire la fonction
et k judicieusement, obtenir
respuissk = xn . Comment
puiss_dicho
et
et qui calcule
xk
n
C(n) 2 log n.
3. Donner en fonction de
trouvera
k = 2n .
le nombre de multiplications
On commencera par tablir
ab
en utilisant l'addition.
Tableaux
2.1
Tableaux d'entiers
Exercice 12 (TD) Calculer la somme des lments d'un tableau d'entiers donn.
Exercice 13 (TD) Retourner l'indice du premier lment nul d'un tableau.
Exercice 14 (TD) Compter le nombre d'lments nulls d'un tableau.
Exercice 15 (TD) Calculer simultanment :
La somme des lments positifs d'un tableau ;
La somme des lment ngatifs d'un tableau.
Exercice 16 (TD) crire un algorithme qui calcule le min et le max d'un tableau d'entiers
donn, puis modier cet algorithme pour calculer le nombre d'occurences du minimum et du
maximum.
Exercice 17 (Quick 2010) crire une fonction qui prend un tableau d'entiers en paramtres
et rpond true si ce tableau est tri croissant, false sinon.
Exercice 19 (Quick 2010) crire un algorithme qui calcule le schtroumpf de deux tableaux
(qui ne sont pas de mme taille !) passs en paramtre . Pour calculer le schtroumpf, il faut
multiplier chaque lment du tableau 1 par chaque lment du tableau 2, et additionner le tout.
Par exemple si l'on a :
Tableau 1 : 4 8 7 12
Tableau 2 : 3 6
Le Schtroumpf sera :
3 4 + 3 8 + 3 7 + 3 12 + 6 4 + 6 8 + 6 7 + 6 12 = 279
Deux paramtres pourront tre ajouts : les tailles des deux tableaux d'entre.
Exercice 20 (Source : JF pour GIS) Tester si un tableau est symtrique. Par exemple, les
tableaux suivants sont symtriques :
3,4,1,4,3
1,2,2,1
un entier et
M [n][n]
Exercice 22 (TD) (mme source) Soient n un entier et M [n][n] une matrice de boolens reprsentant une relation
en place.
Exercice 25 (TD) crire un algorithme pour dire si un tableau d'entiers est un palindrme
(c'est--dire que la lecture des cases de gauche droite et de droite gauche donne un rsultat
identique)
N 1
Chanes de caractres
marine
MAX
et
Exercice 29 (TP) Sur le modle du tp4, crire les programmes suivants (en utilisant des
fonctions/actions !) :
1. Dterminer et acher le nombre d'apparitions d'une lettre donne par l'utilisateur dans
un tableau. On utilisera
getchar()
occurrence
tab,
occurrences,
et si le caractre
6. Utiliser le tableau
occurrences
occurrences,
tab
tab
'a.
tab
toto,
le programme
donnera :
fuolp
eludib
curt
Indication : On se demandera comment mmoriser les caractres du chier
2. crire un programme qui dit si un certain mot (un "motif") est prsent dans un chier.
3. crire un programme qui dit si les parenthses d'un chier sont bien imbriques. On ignore
les autres caractres. Dans
((((()(.
(())()
Pointeurs
conversion_hms
main()
Faire le schma d'excution du programme en prenant pour valeur saisie par l'utilisateur
3732.
Les exercices de cette section seront raliss avec l'aide des fonctions de la librairie string.h.
Les chanes de caractres auront une taille statique dclare l'avance : char ch1[N],ch2[N]
lorsque c'est possible. Crez un nouveau .c pour cette section
3 fgets), demander une chane de caractres
la taille de celle-ci (strlen). Remarquer que fgets rcupre aussi
une fonction char* monfgets() qui retourne la chane donne par
Exercice 33 l'aide de
l'utilisateur, et imprimer
le saut de ligne, et crire
fgets
(man
N M AX
constante). Utiliser
Exercice 35 crire une fonction qui dtermine si deux chanes de caractres sont prxes l'une
de l'autre, en utilisant
strcmp.
Tester.
Exercice 36 crire une fonction qui dtermine si une chane de caractres est une sous-chane
d'une deuxime. On utilisera
index