Série d’exercices Année Scolaire: 2008/2009 ****** Lycée Secondaire Ghardimaou

Marzouki. F Page 1 sur 24
Lycée Secondaire Ghardimaou
3ème Sciences de linformatique
Année Scolaire: 2008/2009
Matière: Algorithmique et programmation
******
******
Série d’exercices
Enseignant: Marzouki Fathi
Exercice n°1 :
Ecrire une analyse, un algorithme et la traduction en Pascal d'un programme
intitulé "SOMME_CHIFFRES", qui permet de lire une chaîne de caractères CH
commençant obligatoirement par une lettre alphabétique majuscule (et supposée
composée par des lettres et des chiffres), détermine et affiche l'entier S formé
par la somme des chiffres qui figurent dans la chaîne CH.
Exemple:
Pour CH='Ali12abc26' la valeur de S est 1+2+2+6 = 11
Le programme SOMME_CHIFFRES affichera le résultat suivant : S = 11.
Exercice n°2 :
Ecrire une analyse, un algorithme et la traduction en Pascal d'un programme
intitulé "CALCUL", qui permet de remplir un tableau T par 100 entiers
strictement positifs, calculer et afficher S1 et S2, sachant que:
- S1 est la somme des éléments pairs de T,
- S2 est al somme des entiers impairs de T.
Exercice n°3 :
Ecrire une analyse, un algorithme et la traduction en Pascal d'un programme
intitulé "PROGRESSION_CROISSNATE", qui permet de lire un entier N
strictement positif et affiche :
- "OUI POUR N" si le chiffres de N forment une progression croissante. On
pourra prendre comme sens : de gauche à droite.
- "NON POUR N" dans le cas contraire.
Exemple:
Le nombre 5789 a des chiffres en progression croissante
Le nombre 166 a des chiffres en progression croissante
Le nombre 187 a des chiffres qui ne forment pas une progression ni croissante
ni décroissante.
Marzouki. F Page 2 sur 24
Exercice N°4 :
Ecrire une analyse, un algorithme et la traduction en Pascal d'un
programme intitulé "NOMBRE VOYELLE", qui permet de lire une chaîne de
caractères CH non vide, détermine et affiche l'entier S formé par le nombre des
voyelles qui figurent dans la chaîne CH.
Exemple:
Pour CH='BASES DE DONNEES" la valeur de S est 6
Le programme NOMBRE_VOYELLE affichera le résultat suivant: S = 6.
Exercice N°5 :
Ecrire une analyse, un algorithme et la traduction en Pascal d'un programme
intitulé "SOMME_CHIFFRES_PAIR", qui permet de lire un entier N strictement
positif, détermine et affiche l'entier S formé par la somme des chiffres pairs qui
figurent dans l'entier N.
Exemple:
Pour N=14276 la valeur de S est 4+2+6 = 12
Le programme SOMME_CHIFFRES_PAIR affichera le résultat suivant: S=12
Exercice N°6 :
Ecrire une analyse, un algorithme et la traduction en Pascal d'un programme
intitulé "NOMBRE_AMIS", qui permet de lire deux entiers X et Y strictement
positifs, affiche "X et Y sont AMIS" ou "X et Y ne sont pas AMIS".
X et Y sont dits nombres AMIS si SX = Y et SY = X, avec:
- SX est la somme des diviseurs de X excepté lui-même,
- SY est la somme des diviseurs de Y excepté lui-même.
Exercice N°7 :
Ecrire une analyse, un algorithme et la traduction en Pascal d'un
programme intitulé "PROGRESSION_DECROISSANTE", qui permet de lire un
entier N strictement positif et pair, et affiche:
- "OUI POUR N" si le chiffres de N forment une progression décroissante.
On pourra prendre comme sens : de gauche à droite.
- "NON POUR N" dans le cas contraire.
Exemple:
Le nombre 9876 a des chiffres en progression décroissante
Le nombre 662a des chiffres en progression décroissante
Le nombre 816 a des chiffres qui ne forment pas une progression ni croissante
ni décroissante.
Marzouki. F Page 3 sur 24
Exercice N°8 :
Ecrire une analyse, un algorithme et la traduction en Pascal d'un programme
intitulé "ADRESSE_EMAIL", qui permet de lire une chaîne de caractères CH non
vide et affiche:
- "CORRECTE", si la chaîne CH correspond bien à une adresse e-mail,
- "N'EST PAS CORRECTE" dans le cas contraire.
Une adresse e-mail est correcte si elle contient un seul caractère "@".
Exemple:
foulen@benguardene.tn est une adresse e-mail correcte,
foulen@fouleni@benguardene.tn n'est pas une adresse e-mail correcte.
Exercice N°9 :
Ecrire une analyse, un algorithme et la traduction en Pascal d'un programme
intitulé "CODAGE", qui permet de lire un mot non vide, le coder caractère par
caractère, an ajoutant 2 à la valeur du code utilisé pour représenter ce
caractère, enfin affiche le mot codé. (Ainsi la lettre a (dont le code SCII est 97)
sera transformée en c (dont le code ASCII est 99).
Exemple :
"INFO2007" sera transformée en "KPHQ4229"
Le programme CODAGE affiche le message suivant: la chaîne codée est :
KPHQ4229
Exercice N°10 :
Ecrire une analyse, un algorithme et la traduction en Pascal d'un programme
intitulé "SOMME", qui lit un entier N (N>10), calcule et affiche la somme S:
21*2
...
²3
5
²2
3
²1
1N
N
S
Exercice N°11:
Transformer la fonction suivante en une procédure:
Function SOM-DIV (X: Integer): Integer;
Var
i, S :integer;
begin
S:=0;
For i:=1 To X div 2 Do
if (X mod i = 0) then S:= S + i;
SOM-DIV:= S;
End;
Marzouki. F Page 4 sur 24
Transformer la procédure suivante en une fonction:
Procedure SOM_TAB (V: Tab; N: Integer; Var X: integer);
Var
i: integer;
Begin
X:= V [1];
For i:=2 To N Do
X:= X + V [i];
End ;
Exercice N°12 :
Un entier strictement positif M à N chiffres est dit nombre de Kaprekar si
lorsqu’on élève M au carré, la somme du nombre composé des N chiffres de
droite et du nombre formé par le reste des chiffres redonne ne nombre
d’origine.
Exemple :
9
2
= 81 et 1 + 8 = 9
45
2
= 2025 et 25 + 20 = 45
297
2
= 88209 et 88 + 209 = 297
1) Analyser le problème en le décomposant en modules.
2) Analyser les modules envisagés dans la réponse à la question n°1.
3) Déduire les algorithmes à partir des analyses faites dans les questions 1) et
Exercice N°13 :
Soit un tableau T de N entiers positifs (5<N<20), on désire écrire un
programme qui permet de remplir un tableau R par les nombres de chiffres
de chaque élément de T, d’afficher les éléments de R ainsi que l’entier qui
admet le plus de chiffres.
NB : Dans le cas plusieurs entiers ont même nombre de chiffres, le
programme affiche celui qui apparaît le premier dans T.
Exemple :
T
54
17654
9
997
R
2
5
1
3
L’entier qui possède le plus de chiffres est 17654
1) Analyser le problème en le décomposant en modules.
2) Analyser les modules envisagés dans la réponse à la question n°1.
3) Déduire les algorithmes à partir des analyses faites dans les questions 1) et
2).
Marzouki. F Page 5 sur 24
Exercice N°14 :
On se propose de saisir N termes informatiques dans un tableau, avec
1<N<35, de trier ce tableau selon l’ordre alphabétique croissant, dinsérer
un nouveau terme dans sa bonne place (sans fausser l’ordre du tableau) et
d’afficher le tableau résultat.
Exemple :
N=5
T : après lecture et avant le tri.
CD-ROM
GRAVEUR
ADSL
DISQUETTE
FLASH-ISQUE
T : après le tri.
ADSL
CD-ROM
DISQUETTE
FLASH-DISQUE
GRAVEUR
MOT : ‘ BUS’
T : après l’insertion du mot ‘BUS’ (qui est le résultat à afficher).
ADSL
BUS
CD-ROM
DISQUETTE
FLASH-DISQUE
GRAVEUR
Questions :
1°/ Analyser ce problème en le décomposant en modules.
2°/ Analyser chacun de ces modules.
3°/ En duire les algorithmes correspondants.
Exercice N°15 :
La « multiplication Russe » est une méthode particulière permettant la
multiplication de deux entiers A et B en utilisant seulement la multiplication
par 2, la division par 2 et l’addition.
Exemple :
Pour A =17 et B = 19, le produit de A par B se fait comme suit :
A B
17 19
Le premier nombre est divisé par 2 (division entière) et le deuxième est
multiplié par 2 : on aura
8 38
Le processus se répète jusqu’à avoir dans la première colonne 1 :
17 19
8 38
4 76
2 152
1 304
Le résultat est la somme des nombres de la deuxième colonne qui sont en face
des nombres impairs de la première colonne (donc les nombres de la deuxième
colonne qui sont en face des nombres pairs de la première colonne seront
1 / 24 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !