infomatique .pdf



Nom original: infomatique.pdf

Ce document au format PDF 1.5 a été généré par , et a été envoyé sur fichier-pdf.fr le 21/02/2018 à 16:46, depuis l'adresse IP 197.28.x.x. La présente page de téléchargement du fichier a été vue 1577 fois.
Taille du document: 5.3 Mo (54 pages).
Confidentialité: fichier public


Aperçu du document


Lycée pilote Sfax

4 Math 2-3

Mme Kharrat Soumaya

Série d'exercices N° 01
Exercice 1
Dans le tableau ci-dessous, Remplissez la deuxième colonne par le résultat de
l'évaluation de l'expression donnée et la troisième colonne par le type du résultat.
Expression
Evaluation
Type
résultat
19 MOD 3 + 19 DIV 3
SQRT(4) + SQR(3)
5 + 2 * 5 DIV 4 / 2
3675 mod 3600 mod 60
SUCC('A') <>PRED('C')
PRED(0) - 3*2
POS('Refaire', 'faire')
('A' <'B') AND ('B'<'d')
Copy(('oiseaux', pos('e',
'oiseaux') ,3)
Not('Amir'>'Amal')
CHR(ORD(UPCASE ('a')) + 1)

Exercice2
1. Traduire en langage Pascal les expressions suivantes:
4x

2

+ 2x − 5
5y
x +
2
2

x
y

…………………………………………………………………………………
…………………………………………………




y

…………………………………………………………………………………

x
2

…………………………………………………

Exercice3
On donne la partie déclaration d’un programme:
CONST
Cc = ‘L’ ;
TYPE
MATERIEL=(SOURIS,CLAVIER,WEBCAM,FLASHDISK,MICROPHONE) ;
VAR
N :MATERIEL
A ,B,E,R : INTEGER ;
Test : BOOLEAN ;
C1 : CHAR;
CH : STRING;

Page 1

Lycée pilote Sfax

4 Math 2-3

Mme Kharrat Soumaya

Donner le résultat de chacune des instructions suivantes :
Instruction
Après instruction
N := MICROPHONE ;
N vaut ……………….
A := ROUND(2.5)+TRUNC(2.5)* 5 MOD
A vaut ……..
3;
B := SUCC(ORD(WEBCAM)) ;
B vaut ………
C1 := CHR(ORD(‘K’)) ;
C vaut …….
VAL(‘2009/2010’ , A , E) ;
Test vaut …………..
Test := (‘Bac’> ‘bac’) AND (E=5) ;
CH:= ‘BIENVENUE-A-SFAX’ ;
CH vaut …………
CH := CONCAT(Cc,COPY(CH,11,2), CH)
R := PRED (SQR ( 6 ) ) - 5 * 7 DIV 3 * 2 ;
R vaut ………..

Exercice 4 :
Compléter les affectations suivantes par une valeur d'opérande ou d'opérateur
permettant d'obtenir dans chacun des cas, la valeur voulue de Y :
Affectation
Valeur de Y
Y:=round (99,51)= ……..;
True
Y:=(upcase('a') in ['A' .. 'Z']) and (……. in [1..10]);
False
Y:=length('PASCAL') mod 4 …… 2;
True
Y:=random(4) ……. 4;
True
Y:=pred('E')= chr(ord ('……..')+1);
True
Y:=copy('concours',4,5) …….. 'cour';
True
Exercice 5 :
Compléter le tableau suivant :
Déclaration Pascal
………………………………………………..
………………………………………………..
……………………………………………….
TYPE
Mesure = 4..25 ;
……………………………………………….
……………………………………………….
………………………………………………..
TYPE
ChT = ARRAY [1..100] OF STRING [25] ;
………………………………………………..
………………………………………………..

Rôle
Un
type
couleur
contenant
les
identificateurs suivants : Blanc, Rouge, Vert
et Bleu
……………………………………………...
……………………………………………...
……………………………………………...
Un type nommé «CH» représentant une
chaîne de 30 caractères maximum
……………………………………………...
……………………………………………...
……………………………………………...
Un type intervalle représentant tous les
caractères alphabétiques majuscules

Page 2

Lycée pilote Sfax

4 Math 2-3

Mme Kharrat Soumaya

Exercice 6
Soit T un tableau de 5 chaînes de caractères, chaque chaîne est de 20
caractères au maximum.
1. Déclarer ce tableau en pascal
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------2. On suppose que T contient déjà des données, Ecrire la séquence permettant
de permuter la valeur du premier élément du tableau avec la valeur du
dernier.
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------…

Exercice 7 :
Soit le tableau T suivant :
'devoir'
'i'
1
2

'Info'
3

'examen.'
4

'a'
5

'51F2'
6

'A'
7

a)- En définissant un nouveau type, déclarer en Pascal le tableau T
………………………………………………………………………………………………………
………………………………………………………………………………………………………
………………………………………………………………………………………...
b)- Compléter le tableau suivant :
Type des résultats
(En Pascal)

Instruction

Valeurs des résultats
(En Pascal)

C1:= T[5] ;
C2 := T[7] ;
S := Upcase (C1[1]) <> C2 [1] ;

S : ………………………

S : ……………………...

Val (T[6] , S , X) ;

S : ………………………
X : ……………………...

S : ……………………...
X : ……………………..

S := Pos (T[2] , T[3]) ;

S : ………………………

S : ……………………...

Delete (T[4] , pos (T[2] , T[1]) , Length (T[3]) div 3) ; T[4] : ……………………

Page 3

T[4] : …………………

Lycée pilote Sfax

4 Math 2-3

Mme Kharrat Soumaya

Exercice 8
Soit la suite d'actions suivantes
0) Début trace
1) A 3
2) B 4
3) C 7
4) X A
5) A B
6) B C
7) C X
8) Fin trace
a) Faire un tournage à la main
b) Quelles seront les valeurs des variables A , B et C après exécution de ces actions?
• La valeur de A = ………………….
• La valeur de B = ………………….
• La valeur de C = ………………….
c) Quel est le rôle de cette suite d'actions:
………………………………………………………………………………………….

EXERCICE 9
Soit l'algorithme suivant:
0) début trace
1) écrire ('donner un nombre:')
2) lire (N)
3) STR (N,CH)
4) Delete (CH, Long(CH),1)
5) VAL (CH,N,E)
6) écrire ('la valeur de N est:',N)
7) Fin trace
a) en faisant un tournage à la main, quel sera la valeur finale de N pour N initiale égale à
15468
……………………………………………………………………………………..
b) que fait cet algorithme:
……………………………………………………………………………………..
……………………………………………………………………………………….
c) proposer un autre algorithme plus simple, équivalent au premier, sans utiliser les chaînes
de caractères:
……………………………………………………………………..

Page 4

Serie2
Exercice 1 :
Le bénéfice B d’un commerçant est calculé selon le chiffre d’affaire CA et le taux T
correspondant. En effet :
B = CA*T
Si CA < 2000 alors T = 1%
Si 2000 ≤ CA ≤ 3000 alors T = 2%
Si CA ≥ 3000 alors T = 3%
Ecrire une analyse, un algorithme et un programme pascal permettant de calculer le
bénéfice B de ce commerçant en fonction de son chiffre d’affaire CA.
Exercice 2 :
Ecrire une analyse, un algorithme et un programme pascal intitulé JOUR qui lit un
entier entre 1 et 7, afficher le jour correspondant, puis afficher le message « c’est un
jour de travail » pour tous les jours ouvrables et le message « c’est un jour férié » pour
tous les jours de repos sachant que les jours de repos sont samedi et dimanche.
Si le jour n'est pas dans [0,7] alors prévoir un bip et afficher le message "je ne sais
pas"
Exercice 3 :
Ecrire une analyse, un algorithme et un programme pascal intitulé TOUCHE qui
affiche selon le cas la nature du caractère (consonne, voyelle, chiffre pair, chiffre
impair) correspondant à une touche saisie.
En autres cas (caractère quelconque) prévoir un bip sonore et afficher le message
"caractère non classé"
Exercice 4:
Ecrire une analyse, un algorithme et un programme pascal intitulé DATE qui lit une
date sous la forme JJ/MM/AAAA (chaîne de 10 caractères) où JJ représente le jour,
MM le mois, AAAA l’année et l’affiche décodée (JJ mois AAAA) et l'insérer comme
date système
Exemple : 06/08/1971 devient 06 Août 1971
Exercice 5:
Soit le programme pascal suivant :
PROGRAM calcul;
USES WINCRT;
VAR
A,B,C,D,E : INTEGER;
BEGIN
READ (A, B, C, D, AND E);

-1/2-

IF A > B THEN
IF B > C THEN
IF B > D THEN
IF D > E THEN
A: = B + 2 *A
ELSE
A: = 2 + A MOD B * 2 + 1 – 4 MOD C
ELSE
A: = 1 – B DIV A + 4 DIV 2
ELSE
A: = A DIV C + 3 * D – 1
ELSE
A: = D MOD E + 4 DIV 2 MOD 2;
A: = 2 * A;
END.
Trouvez la valeur finale de A pour chacun des cas suivants :
A = 27

B=9

C=5

D=8

E=5

A=

A = 30

B = 15 C = 9

D=5

E=8

A=

A = 24

B = 28 C = 3

D=5

E=4

A=

A = 21

B=4

C=7

D = 10

E=3

A=

A = 24

B = 10 C = 9

D = 15

E = 10 A =

Exercice 6:
Soit le programme pascal suivant :
PROGRAM function;
USES WINCRT;
VAR
C: CHAR;
I: INTEGER;
BEGIN
READ (C);
IF UPCASE (C) = C THEN
I: = ORD (C) – ORD (‘A’) + 1
ELSE
I: = ORD (C) – ORD (‘a’) + 1
END.
Trouvez le résultat retourné par ce programme pour les caractères suivants sachant
que ORD (‘A’) = 65 et ORD (‘a’) = 97.
‘D’

‘e’

‘F’

‘b’

-2/2-

‘C’

Lycée pilote Sfax

4 Math 2/ 3

Mme Kharrat Soumaya

Série d’exercices n°2

Pour chaque exercice il faut faire une analyse descendante, un algorithme
et le programme pascal correspondant.
Exercice 1
On désire déterminer quand un père aura le double de l’âge de son fils, sachant que les âges
du père et du fils sont donnés

Exercice 2
Soient A, B et C trois variables numériques
Écrire un programme intitulé « CALCUL» permettant de ranger dans A la valeur de B+C,
dans B celle de A+C et dans C celle de A+B, sans utiliser des variables intermédiaires.
Exercice 3
On désire faire la permutation circulaire vers la droite de trois entiers X, Y et Z
sans utiliser des variables intermédiaires

donnés,

Exercice 4
On désire calculer Le code secret d'une carte de crédit d'un client, sachant que ce code est un
nombre à calculer à partir d'une valeur X donnée, supposée formée de quatre chiffres. La
méthode à utiliser pour calculer le code secret est la suivante:
On inverse les chiffres constituant la valeur de X puis on multiplie le résultat par son
chiffre des dizaines.
Exemple :
Si X = 4321 Alors cod devient (1234 * 3 = 3702)
Exercice 5
Soit l’algorithme suivant :
0) Début quoi
1) Lire(Ch1)
2) Lire(Ch2)
3) D ← long (CH2)
4) CH2← Concat (CH2, CH1)
5) CH1← Sous_chaîne (CH2, 1, D)
6) Efface (CH2, 1, D)
7) Ecrire (CH1)
8) Ecrire (CH2)
9) Fin Quoi
Faire un tournage à la main pour Ch1= “Bon“ et Ch2= “Jour“
Que fait ce programme

2013-2014

Page 1

Lycée pilote Sfax

4 Math 2/ 3

Mme Kharrat Soumaya

Exercice 6
On désire remplacer la lettre du milieu de CH par le code ASCII de cette lettre
Exemple :

Pour CH = "ABAX"

devient CH ="AB65X"

Pour CH= "CABDY"

devient CH ="CA66DY"

Exercice 7
Soit CH une chaîne donnée composée par des caractères numériques (des chiffres de 0 à 9).
On désire :
Insérer dans CH le caractère "+" à une position p donnée entre [2..long(Ch)-1]
Déterminer la valeur de l’entier R qui sera obtenue en évaluant l’expression de calcul obtenue.
Exemple :

Pour CH = "2395681" ; P = 4
Après insertion du caractère "+" dans CH, on obtient CH = "239+5681"
Après avoir évalué l’expression de calcul : R = 5920 (239 + 5681)

NB : On suppose que la chaîne CH et la position p sont correctement saisit sans faire aucun
contrôle.
Exercice 8
CH étant une chaîne de longueur maximale égale à 20 caractères, contenant deux points
supposés éloignés et qui ne sont ni au début ni à la fin de la chaîne
Ecrire un programme permettant de permuter les deux caractères qui encadrent chaque point
Exemple: Si CH contient au début la chaîne "ABCDE.FGHIJKL.MN"
Alors CH devient
"ABCDF.EGHIJKM.LN"

2013-2014

Page 2

4ème scientifique

Série d’exercices n° 3
N.B : Pour tous ces exercices, une solution modulaire est exigée
Exercice 1 :
Ecrire un programme Pascal qui demande une phrase en entrée et qui affiche cette
phrase de façon renversée. La phrase commence par une lettre et les mots sont séparés par un
seul espace.
Exemple:
Votre phrase:
RESOLUTION DE PROBLEMES
Résultat:
PROBLEMES DE RESOLUTION
Exercice 2 :
Ecrire un programme Pascal qui simule le jeu suivant :
- A tour de rôle, l’ordinateur et l’utilisateur choisissent un nombre qui ne peut prendre
que trois valeurs : 0, 1 ou 2 ( l’instruction Pascal N := RANDOM(3) ; déterminera
le choix de l’ordinateur)
- Si la différence entre les deux nombres choisis vaut :
 2, le joueur qui a proposé le plus grand nombre gagne un point.
 1, le joueur qui a proposé le plus petit nombre gagne un point.
 0, aucun point n’est marqué.
- Le jeu se termine quand un des deux joueurs( l’ordinateur ou l’utilisateur) totalise 10
points ou quand l’utilisateur introduit un nombre négatif qui indique sa volonté
d’arrêter de jouer.
N.B :
La solution doit comporter au moins deux modules.
Exercice 3 :
L'algorithme ci-dessous est celui d'un programme permettant de saisir un entier n (1≤n≤100)
et de déterminer combien de fois il est divisible par 2.
0)Début Divisibles
1)Ecrire ("Donner un entier dans [1,100]")
Lire (n)
2)Ecrire (n," est divisible ", Fn Nb_Divis2(n), " par 2")
3)Fin Divisibles
Exemples :
11 est divisible 0 fois par 2
4 est divisible 2 fois par 2
8 est divisible 3 fois par 2
Questions:
l. Traduire cet algorithme en Pascal.
2. Transformer la séquence 1) en une procédure Saisie, ajouter lus contrôles nécessaires sur la
saisie de n et en tenir compte dans le programme principal.
3. Ecrire la fonction Nb_Divis2, permettant de retourner le nombre de fois où n est divisible
Lycée 2 Mars 1934 Ouardia

1/2

Année Scolaire : 2008/2009

4ème scientifique
Exercice 4 :
Soit la somme Sn suivante :
Sn=1+3/22 + 5/33 +7/44 +….. +(2n-1)/nn
Ecrire un programme intitulé SOMME permettant de calculer et d'afficher la somme Sn pour
un entier n positif donné en utilisant la formule ci-dessus.
Exercice 5 :
On veut écrire un programme Pascal permettant de lire deux mots ch1 et ch2 et
d'afficher tous les caractères qui apparaissent dans les deux chaînes sans redondance.
Exemple :
Soit ch1= "Bonjour"
Résultat : B ; o ; n

et

ch2 ="Bonbon"

Exercice 6 :
Ecrire un programme intitulé Predsucc permettant de remplir un tableau T par N
(4<n<30) chiffres aléatoires compris entre 0 et 9 et d’afficher les éléments de T qui sont
encadrés par leurs prédécesseurs et leurs successeurs.
N.B :

- Le premier élément sera affiché s’il est seulement succédé par son successeur.
- Le dernier élément sera affiché s’il est précédé par son prédécesseur
Exercice 7 :
On veut écrire un programme permettant de:


saisir une chaîne de caractères Ch



parcourir la chaîne Ch et afficher l'occurrence de chacun de ses
caractères.

Exercice 8 :
Soit un tableau P de n chaîne de caractères (1<n<100). Tous les éléments de T doivent être
constitués uniquement de chiffres (0 ..9) et non vides.
On se propose de remplir un tableau Q de la façon suivante:
Q[i] contiendra la chaîne de caractère P[i] écrite à l’envers.
Exemple:
Si P[2]="925" Alors Q[2] contiendra la chaîne "529"
Ecrire un programme permettant de saisir les éléments de P, de remplir puis d'afficher les
éléments du tableau Q.
Exercice 9 :
Écrire un programme Pascal permettant de saisie les éléments d’un tableau T de N entiers
(4≤N≤10), déterminer puis afficher tous les éléments distincts de ce tableau.

Lycée 2 Mars 1934 Ouardia

2/2

Année Scolaire : 2008/2009

Lycée pilote Sfax

4 Math/2/3

Mme Kharrat Soumaya

Série d’exercices n°3 ( Les Structures conditionnelles )

Pour chaque exercice( sauf le premier) il faut faire une analyse
descendante, un algorithme et le programme pascal correspondant.
Exercice 1
Ecrire un programme qui permet de saisir le sexe (M/F), la taille (cm), et le poids
(kg) d’une personne et d’afficher :
1. PI, le poids idéal d’une personne, sachant que ce poids théorique est donné
par la formule de Lorenz comme suit :
· Pour un homme : PI = (taille – 100) – (taille – 150) / 4
· Pour une femme : PI = (taille -100) – (taille – 120) /4
2. BMI, l’indicateur d’obésité (Body Mass Index) où BMI = poids / taille² avec taille
en mètre
3. Si une personne est considérée comme : Normale (BMI <= 27), ou obèse (BMI
> 27) ou Malade (BMI >= 32)
Exercice 2
On désire écrire un programme qui permet de calculer la durée d'un trajet
connaissant l'heure de départ et d'arrivée"
On se contente des heures et des minutes, la durée totale ne dépassera jamais 24
heures.
exemple : l’heure de départ : 20h:30mn , l’heure d’arrivée : 05h:20mn , la durée =
8h:50mn
NB :
L’heure de départ et l’heure d’arrivée sont deux chaînes de 8 caractères chacune
(aucun contrôle de saisie n’est demandé)
Exercice 3
On désire écrire un programme qui permet de saisir une date sous forme de jj/mm/aa
puis de calculer et d’afficher la date du lendemain"
NB :
La date donnée est une chaîne de 8 caractères
(aucun contrôle de saisie n’est demandé)
Exercice 4
Soit à saisir une série de trois nombres séparés par le caractère « * »
Les nombres sont dits parentés si la somme du premier et du dernier chiffre de
chacun des nombres est un diviseur du nombre suivant dans la saisie
Exemple :
814564*1212*66 les nombres sont parentés car (8+4=12) est un diviseur de 1212
et (1+2=3) est un diviseur de 66.
Ecrire un programme qui permet de vérifier si les nombres saisis sont parentés ou
non
(Aucun contrôle de saisie n’est demandé).

Série 3

Page 1

Exercice 5
Ecrire un programme qui permet de calculer le coût de la consommation d’eau (en
m3) comme suit :
Les 30 m3 premiers sont facturés à 0,200 D,
Les 10 m3 suivants sont facturés à 0,250 D,
La quantité au-delà de 40 m3 est facturée à 0,320 D.
Exemples :
Consommation = 25 m3 Coût = 25 * 0,2 = 5,000 D
Consommation = 38 m3 Coût = (30 * 0,2) + (8 * 0,25) = 8,000 D
Consommation = 46 m3 Coût = (30 * 0,2) + (10 * 0,25) + (6 * 0,32) = 10,420 D
Exercice 6
Une phrase est dite « totalogramme » si chacun de ses mots commence et se
termine par la même lettre.
Exemple : la phrase « Abdalla emprunte a Daoud ses souliers » est totalogramme.
Ecrire un programme qui permet de saisir une phrase de trois mots (on suppose
que deux mots consécutifs sont séparés par un seul espace) puis d’afficher un
message indiquant si cette chaîne est « totalogramme » ou non.
Aucun contrôle de saisie n’est demandé

Série3

Page 2

Lycée pilote Sfax
4Math1
AS :2013-2014
Chapitre 4 : Les Structures de contrôle itératives complètes
Série N° 4
Nb :
Pour tous les exercices faire une analyse du problème, en déduire
l’algorithme correspondant et traduire le programme en Turbo pascal
Exercice1
Ecrire un programme permettant de calculer le produit de A et de B sans
utiliser l’opérateur de multiplication, sachant que A et B sont deux entiers
naturels donnés
Exercice2
Ecrire un programme permettant de calculer le produit de XN, sachant que X
est un réel et N est un entier positif donnés
Exercice3
Ecrire le programme qui permet d’afficher les N lignes comme suit, pour N
une donnée entre 3 et 20
1
12
12 3
…..
1 2 3 4 5 ….N
Exercice 4
Soit la somme Sn suivante:
Sn= 1 - 3/22 + 5/33 - 7/44 + ……….+- (2n-1)/nn
Ecrire un programme intitulé SOMME qui calcule puis affiche la somme Sn,
sachant que N est un entier naturel différent de zéro, donné.
Exercice 5
Pour N = 5 nous avons le triangle suivant :
*
***
*****
*******
*********

On désire écrire un programme permettant d’afficher sur écran le triangle, pour N
une donnée supérieur à 3.
Exercice 6
Soit V et W deux tableaux de N entiers Positifs donnés chacun. (avec N une
donnée entre 2 et 40)
On désire écrire un programme permettant de calculer dans un tableau R la
somme des éléments des deux tableaux, deux à deux de même indice, puis
d’afficher ses éléments
Exercice 7
Soient T1 et T2 deux tableaux à remplir à partir du clavier, respectivement par n
et m entiers positifs . ( N et M deux entiers donnés entre 4 et 100)
On désire chercher pour chaque élément de T1 tous ses diviseurs dans T2.

Mme Kharrat Soumaya

Page 1

Lycée pilote Sfax
4Math1
AS :2013-2014
Chapitre 4 : Les Structures de contrôle itératives complètes
Exemple :
1
2
3
4
5
T1
23
15
10
41
100
1
2
3
4
T2
3
6
5
15
Nous aurons sur écran :
23 n’a pas de diviseurs dans T2
15 : 3 5
15
10 : 5
41 : n’a pas de diviseurs dans T2
100 : 5
Exercice8
On désire calculer le nombre d'entiers pairs et le nombre d'entiers impairs rangés
dans un tableau T de N Entiers.
Exercice9
On considère la suite (U) définie à partir de :
U1 =1
U2 =2
Ui = Ui-1 + Ui-2 (i>=3)
Ecrire un programme permettant de calculer et d’afficher les n premiers termes
de la suite sachant que N est un entier donné supérieur à 10
Exercice10
Soit un vecteur V de N éléments entiers positifs donnés au hasard par le
processeur entre 0 et 200( avec N une donnée entre 5 et 100)
On désire écrire un programme permettant d'éclater le tableau en deux tableaux
VP et VI contenant respectivement les éléments pairs et les éléments impairs de
V.
Exercice11
On désire vérifier si deux entiers donnés sont amis ou non sachant que m et n
sont amis si la somme des diviseurs de n sauf lui-même est égale à m et la
somme des diviseurs de m sauf lui-même est égale à n.
EXERCICE12
Soit un vecteur V de N éléments entiers donnés au hasard par le processeur
entre 20 et 100( avec N une constante = 20)
On veut écrire un programme qui permet:
o D'afficher les éléments du tableau V
o Insérer dans le tableau V, un entier donné à une position j, donnée.
o D’afficher le nouveau contenu du tableau V
Exercice13
Soit un tableau T1 de n éléments (1 ≤ n ≤ 100) . Les éléments de T1 sont des
entiers naturels distincts.
Mme Kharrat Soumaya

Page 2

Lycée pilote Sfax
4Math1
AS :2013-2014
Chapitre 4 : Les Structures de contrôle itératives complètes
On se propose de remplir un tableau T2 de la façon suivante :
T2[i] est égal à la somme des carrés des chiffres de T1[i].
Exemple :
Si T1[i] = 254 alors T2[i] = 22 + 52 + 42 = 45
Si T1[i] = 31 alors T2[i] = 32 +12 =10
Ecrire un programme Pascal qui permet de saisir les éléments de T1, de remplir
puis d’afficher le tableau T2.
Exercice14
Soit à remplir un tableau T par n caractères (avec 6 ≤n≤ 30). Il s'agit de répartir
ces n caractères sur trois tableaux et les afficher:
• TL : un tableau de lettres
• TC: un tableau de chiffres
• TS:un tableau de symboles

Exercice15
On désire écrire un programme permettant de :
• saisir deux tableaux T1 et T2 à N éléments réels( N est donné dans
l’intervalle 1 ..50),
• Calculer dans un troisième tableau T3 la somme croisée des éléments
de T1 avec les éléments de T2 ( le premier avec le dernier, le
deuxième avec l’avant dernier ….)
• Afficher les éléments du tableau T3
Exercice 16
Soit Ch une chaîne formée uniquement de chiffres, Ecrire un programme qui
range dans Cmax la valeur la plus grande, et dans Cmin la valeur la plus petite
qu’on pourra avoir à partir des chiffres de Ch
On pourra utiliser la méthode suivante :
1. Chercher le chiffre le plus grand dans Ch
2. Le ranger à sa bonne place dans Cmax et Cmin
3. Remplacer ce chiffre par ‘*’
4. Refaire les étapes précédentes pour placer tous les chiffres de Ch dans
Cmax et Cmin
Exercice17
Soit un tableau T de n chaînes de caractères alphabétiques (1<n<100).
Ecrire un programme permettant de déterminer et d'afficher la fréquence de
chaque lettre dans le tableau T.
Exemple :
1
2
3
4
5
T
ALI
KABIL
DALI
HEDI
Khalil
On aura sur écran :
La lettre A : 4 fois
La lettre B : 1 fois
La lettre D : 2 fois
La lettre E : 1 fois
La lettre H : 2 fois
La lettre I : 5 fois
La lettre K : 2 fois
La lettre L : 5 fois
Mme Kharrat Soumaya

Page 3

Lycée pilote Sfax

4 Math2

Mme Kharrat Soumaya

Série d’exercices
( Les sous programmes/ Les chaînes )
Pour chaque exercice, Faire une analyse modulaire ( deux modules au
moins), En déduire les algorithmes puis faire la traduction en turbo
pascal.
Exercice N° 01
On veut écrire un programme permettant de coder un message selon le procédé
suivant : permuter chaque caractère d’indice pair avec le caractère qui le précède.
Exemple : Le codage de la chaîne de caractère : ˝Baccalauréat˝ donne
˝aBcclauaérta˝
Exercice 02:
Ecrire '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
ASCII est 97) sera transformée en ‘’c’’ (dont le code ASCII est 99). Exemple :
"INFO2007" sera transformée en "KPHQ4229"
Exercice N° 03
On désire programmer la commande Rechercher et remplacer du menu Edition d’un
logiciel de traitement de texte, qui, en fournissant le texte, un mot1 et un mot2,
permet de remplacer toute occurrence de mot1 par mot2 dans le texte.
Exemple :
Soit le texte suivant : ˝Les structures conditionnelles sont simples à comprendre.
L’emploi des structures conditionnelles rend la programmation plus intéressante. ˝
Soit mot1 = ˝conditionnelles˝
Soit mot2 = ˝itératives˝
Le programme doit afficher : ˝Les structures itératives sont simples à comprendre.
L’emploi des structures itératives rend la programmation plus intéressante. ˝
Exercice N°04
Ecrire un programme qui permet de saisir une chaîne de chiffres CH, de chercher la
combinaison maximale CMAX et la combinaison minimale CMIN qu’on peut obtenir à
partir des chiffres de CH, et enfin de les afficher.
Exercice N° 05
On veut écrire un programme permettant de supprimer les espaces superflus dans
une chaîne de caractère,
Exemple :
Si la chaîne est "_ _ Travaux _ _ _ pratique _ _"
Alors l’exécution du programme donnera la chaîne = "Travaux _ pratique".

Exercice N°6
On veut écrire un programme permettant de lire deux mots CH1 et CH2, formées
uniquement par des lettres alphabétiques, et d'afficher tous les caractères qui
apparaissent dans les deux chaînes sans redondance
Exemple : Soit Ch1 = "Bonjour" et Ch2 = " Bonbon"
Résultat : B; o; n
Exercice N° 07
Un CODEC est un logiciel compresseur décompresseur de fichiers. En effet, les suite
de bits composant un fichier comportent des similitudes comme 10000111. Plutôt
que de stocker la totalité de cet octet, on gagne de la place en écrivant 14031 (qui se
lit un quatre zéros trois un). Cet octet (huit bits) retrouva ensuite son format original à
la décompression.
Il s’agit alors de saisir une chaîne de huit chiffres formée uniquement 0 et 1 pour
désigner un octet puis la compresser suivant le principe de compression du CODEC
et enfin l’afficher.
Exemple : Si octet = ˝10010111˝ Alors l’octet compressé est : ˝1201031˝
Exercice N° 08
Ecrire un programme qui saisit une phrase et l’affiche renversée. La phrase
commence, obligatoirement, par une lettre et ses mots sont séparés par un seul
espace et ne se termine pas par un espace.
Exemple :
Votre phrase :
"RESOLUTION DE PROBLEMES"
Résultat :
"PROBLEMES DE RESOLUTION"
Exercice N° 09
Ecrire un programme Pascal qui permet de saisir deux mots non vides MOT1 et
MOT2 puis de déterminer si MOT2 est une anagramme de MOT1.
Une anagramme est un mot obtenu par transposition des lettres d’un autre mot (par
exemple chien, chine sont des anagrammes du mot niche).
Exercice N° 10
Soit T un tableau de N éléments (2<N<200) de type caractère. On désire écrire un
programme permettant de vérifier l’existence dans le tableau T d’un certain nombre
de mots saisis dans un tableau Tm de P éléments (2<P<20).
Exemple :
Tm : BAC Canne Sujet
T:

L B S u j e t a B A C a n n e d

Remarques :
1. Les caractères de la chaîne recherchée doivent être adjacents dans le tableau T
et non dispersés.
2. on remarque que les mots BAC, Canne et Sujet figurent dans le tableau T.

Lycée pilote Sfax

4 Math/Sc

Mme Kharrat Soumaya

Série d’exercices (Le Tri)
Pour chaque exercice, Faire une analyse modulaire (deux modules au
moins), En déduire les algorithmes puis faire la traduction en turbo
pascal.
Exercice 1
Soit un tableau T contenant n lettres majuscules (de A à Z). n étant un entier compris entre 5
et 20. On désire trier en ordre croissant les éléments de T en utilisant la méthode de comptage
suivante :
1. Compter le nombre d’apparition de chaque élément du tableau T dans un tableau V.
2. Reconstruire T en tenant compte du nombre d’apparition de chaque élément du tableau T
Exemple
Si T contient les 10 lettres majuscules suivantes:
T:
1
B

2
U

3
C

4
A

5
X

6
A

7
D

8
E

9
B

10
X

V :
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
2 2 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 2 0 0
T devient:
1
2
A
A

3
B

4
B

5
C

6
D

7
E

8
U

9
X

Travail à faire
Ecrire un programme qui permet de :
• Saisir les éléments du tableau T.
• Trier les éléments de T en utilisant la méthode de comptage.
• Afficher les éléments de T.

Exercice 2
Ecrire un programme Pascal qui permet de trier par ordre décroissant les éléments d’un
tableau T de N (5<=N<=30) entiers positifs dans un nouveau tableau V.
On utilisera la démarche suivante :
1. chercher le maximum de T
2. placer ce maximum dans V
3. remplacer le maximum par -1 dans T
4. refaire les étapes 1, 2 et 3 jusqu’à ce que le tableau T soit entièrement composé de -1.

10
X

Exercice 3
Soit T un tableau de N( N = 20) noms d’élèves , M un tableau rempli par leurs
moyennes(M[i] et la moyenne de T[i]) .
Ecrire un programme qui permet de :
• Saisir les éléments du tableau T.
• Saisir les éléments du tableau M
• Trier les éléments de T par ordre décroissant des moyennes. Dans le cas de moyennes
égales, trier les éléments par ordre croissant des noms .
• Afficher les noms des élèves et leurs moyennes.
Exemple
Etat initial
1
T : Bilel
M : 17.00

2
Salah
15.00

3
Zied
18.00

4
Iyed
14.30

5
6
Mounir Malek
10.45
13.00

7
Dora
10.45

8
Zina
11.04

9
Amal
18.00

10
Kamel
14.10

Etat final
1
T : Amal
M : 18.00

2
Zied
18.00

3
Bilel
17.00

4
Salah
15.00

5
Iyed
14.30

7
8
Malek Zina
13.00 11.04

9
Dora
10.45

10
Mounir
10.45

6
Kamel
14.10

Exercice 4
Soit Ph une chaîne formée par des mots séparés deux à deux par un espace. On désire
trier la chaîne par ordre décroissant des longueurs des mots.
Ecrire un programme qui permet de
• Saisir une chaîne ph formée par des lettres et des espaces seulement
• Nettoyer la chaîne des espaces superflus
• Trier puis afficher la chaîne comme demandé.
Exercice 5
Soit T un tableau de N (4<N<31) entiers positifs donnés. On désire trier dans l’ordre
décroissant les éléments de T suivant la somme des chiffres des différents éléments.
Pour cela écrire un programme qui permet de résoudre ce problème.
Exercice 6
Soit T un tableau de N (4<N<31) entiers triés dans l’ordre croissant donnés.
Soit V un tableau de M (4<M<31) entiers triés dans l’ordre croissant donnés.
Ecrire un programme qui permet de fusionner les éléments de T et de V dans un tableau
W de façon à garder ses éléments toujours triés au moment de la fusion
1
2
3
4
5
6
7
5
6
7
8
10
20
T: 2

V:

1
4

W:

1
2

2
6
2
4

3
5

3
11
4
6

5
6

4
15
6
7

5
25
7
8

8
10

6
29
9
11

10
15

7
40

8
50

9
80

10
80

11 12 13 14 15 16 17
20 25 29 40 50 80 80

Khmili Meher

Bac Scientifique

Série 1
Exercice1
Ecrire les formules suivantes en Pascal.
F(x) = x4+ 2x2-1
G(x) = l x3l – cos (π/2)
H=

x2  y2

Exercice2
Evaluer par V si vrai F si faux les expressions suivantes pour chaque valeur de couple (x,y) :
Expression
(x<y) ou (x<=2) et (x>=0)
(x<y) ouex (x<=2) ou (x>=0)
Non(x<y) et (x>=1) ouex (x<=0)
(x>y) ou non(x<1) et (y<5)

(1,5)

(-1,0)

(-5,-3)

(1,1)

Exercice2
Donner les déclarations suivantes en Pascal :
 Une chaîne de caractères intitulée ch de taille maximale 30
 Un entier C appartenant à l’intervalle [1, 40]
 Une variable f de type intitulé Feu comportant les valeurs suivantes (Vert, Rouge,
Oranger)
 Une variable B qui peut avoir l’une des deux valeurs 0 ou 1.
 Une variable y de type entier non signé et occupe 1 octet dans la RAM

Exercice3

Remplir le tableau suivant en donnant le résultat fourni par chaque instruction ainsi que son type.
Instructions
Résultat
A :=round(trunc(2.3)) ;
B :=int(ord(chr(67))/10) ;
C :=pred(chr(ord(‘ ?’)+1));
D:= (pos(‘o’,’Turbo’) = length(‘Turbo’)) or
(copy(‘Pascal’,1,3)<copy(‘Ascal’,4,3)) and (random<1)

Exercice4
Soit le programme
pascal suivant

Program inconnu ;
Uses wincrt ;
Var
……………………..
……………………..
Begin
write(‘donner un entier composé de
deux chiffres: ‘);
{1}readln(m);
write(‘donner un entier composé de
deux chiffres: ‘);
{2}Readln(n);
{3}Str(n,ch);
{4}A:= m div 10;
{5}B:= m mod 10;
{6}Str(A,ch1);

Type

Khmili Meher

Bac Scientifique

{4}Insert(ch1,ch,2);
{8}Str(B,ch1) ;
{9}Insert(ch1,ch,3);
{10} val(ch,n,e);
Writeln(n);
End.
1. déclarer les variables utilisées dans le programme présenté ci dessus.
2. exécuter manuellement ce programme pour m = 14 et n = 89 (répondre dans le tableau
suivant).

instruction

m

n

a

b

ch1

ch

3
4
5
6
7
8
9
10
3. Que fait ce programme ?
4. Si on constate le programme précédant, on remarque qu’il y des instructions inutiles.
Proposer une autre solution tout en optimisant le nombre d’instructions.

Exercice 5

Soit l'algorithme suivant:
0/ Début Exercice
1/ Tnom[1]  "programmation"
2/ Tnom[2]  "cadeau"
3/ Tnom[3]  "nouvelle"
4/ Efface (Tnom[2], 1 ,4)
5/ Insere (Tnom[2], Tnom[3], long(Tnom[3]+1)
6/ Efface (Tnom[3], 5 ,3)
7/ Efface (Tnom[1], 10 ,5)
8/ S  concat (Tnom[3], Tnom[1])
9/ Insere ("e", S, (long (S) + 1))
10/ L  long (S)
11/ X  pos ("O", S)
12/ Ecrire (S, L, X)
13/ Fin Exercice

 Déterminer et déclarer au niveau de l'analyse les variables de ce
programme (T.D.O)
 Traduire cet algorithme en Turbo Pascal

Khmili Meher

Bac Scientifique

 Déterminer les valeurs de S, L et X à partir de l'algorithme

********************************************
Les Structures De Données
Les Structures Simples
Les Structures De contrôle conditionnelles

Lycée Pilote Médenine
Enseignant : Hichem Kemali
*********

Math01

A.S : 2013/2014

° 1

é

ème

*******************************************
*

Exercice N°1
Cocher la (les) bonne (s) réponse (s)
A.

Pascal est un
1. Langage Compilé
2. Langage Interprété
3. Langage Machine
B. Valider chacune de ces instructions
1. VAR Tab: ARRAY [‘Z’..’A’] of Char ;
TYPE Weekend=(Lundi, Mardi,jeudi) ;
2. CONST C=’F’ ;
TYPE VECT=Array [‘A’..C] of real;
VAR tab : vect ;
3. TYPE T=ARRAY[5..10.5] of char
C.

D.

E.

Quelle est l’égalité juste si a := true et b :=false ?
1. NOT(a XOR(a AND b))=true
2. (a XOR NOT(b)) AND b =true
3. B OR a = a XOR (NOT (b OR a))
4. (a AND (NOT b)) OR (a XOR b)= a AND (( NOT b)
XOR ( a OR b))

Qui dire de faux à propos de constantes ?
1. Une constante ne varie pas au cours du
programme
2. Une constante peut ne pas être d’un type de
base du Pascal
3. Une constante peut être le résultat d’une
expression
Pour remplir au hasard une variable de type
réel appartient à [10..100[ :
1. 10+Aléa(91)
2. Aléa*90+10
3. Aléa (90) +10
4. Aléa*90+100

Exercice N°2
Compléter le tableau suivant sachant que : Ch1 :=’Novembre’ Ch2 :=’200’ x:=16 c:='d' y:=3
Fonctions / Procédures

Résultat

Type résultat en Pascal

Ch3:=Copy (Ch1, 3, 2);

Ch3 contient ……………………………………………………………

……………………………………

Delete (Ch1, 3, 2);

Ch1 contient ……………………………………………………………

……………………………………

P:=Pos ( ‘0’, Ch2);

P contient …………………………………………………………………

……………………………………

Insert (Ch2, 3,'1');

Ch2 contient ……………………………………………………………

……………………………………

Val (Ch2, n, e)

N contient………………… ; e contient ………………………

……………………………………

x1:=trunc(x/y);

x1 contient ………………………………………………………………

……………………………………

x2:=round(x/y);

x2 contient ………………………………………………………………

……………………………………

C1:=chr(ord(c));

C1 contient ………………………………………………………………

……………………………………

Page |1

Exercice N°3
1° On vous donne les déclarations suivantes :
Tableau de déclarations des nouveaux types :
types
Mois_31= (janvier, mars, mai, juillet, out, octobre, décembre)
Tab1= tableau de 7 entier
Tab2= tableau de 10 chaîne
Tableau de déclaration des objets :
objets
Type/nature
X
entier
Y
Mois_31
Z
Tab1
T
Tab2
En se basant sur les déclarations précédentes, cocher la case correspondante dans le tableau suivant
en donnant dans la 4ième colonne la justification dans le cas ou la proposition de la première
colonne est fausse :
proposition
vrai
faux
justification
Z [1] x / 4
………………………………………………………………………………
X  succ(y)
………………………………………………………………………………
Lire(y)
………………………………………………………………………………
T[1] concat(″bon″,″jour″)
………………………………………………………………………………
2° Compléter le tableau suivant en déclarant l’objet décrit dans la première colonne :
Description
Un objet marque_voiture contenant Peugeot,
Golf, Fiat, Ford.
Un vecteur contenant 20 chaînes de 10
caractères chacune.
Un nombre positif codé sur un octet
Un intervalle contenant les entiers de 10 à 50

Déclaration en Pascal
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………
………………………………………………………………………………

Exercice N°5
Ecrire une analyse et algorithme d’un programme qui permet de saisir une adresse E-mail sous la
forme ‘’ Nom.prénom@serveur.extension’’ d’une personne et d’afficher son nom, son prénom, le
serveur et l’extension.
Exemple : Adresse : ‘’Tounsi.samir@yahoo.fr’
Le programme affiche : Nom : Tounsi Prénom : Samir Serveur : Yahoo Extension : fr

Exercice N°6
Soit H un hydrocarbure dont la formule brute est une chacune qui s’écrit sous la forme ‘’CxHyOz’’.
Etablir un algorithme d’un programme qui permet de calculer la masse molaire M de l’hydrocarbure
donné. Sachant que la masse molaire du carbone=12 g.mol-1, de l’hydrogène =1 g.mol-1 et de
l’oxygène=16 g.mol-1..
Exemple : H= C15H32O7 alors la masse molaire M=15*6+32*1+7*16=234

Page |2

Exercice N°7
Pour chaque opération de lecture ou d'écriture, mettre V si l'opération est possible et F dans le cas
contraire.
[ ] Lire (A)
[ ] Lire (45)
[ ] Lire (A+B)
[ ] Lire ("A")
[ ] Lire ("A =", A)
[ ] Ecrire (X+2*Y)
[ ] Ecrire ("A =", A)
[ ] Ecrire (A, " ", B)
[ ] Ecrire (A:6:2)
[ ] Ecrire (5 mod 7 div 2) [ ] Ecrire ("Saisir un réel")
[ ] Ecrire (45)

Exercice N°8
Compléter ce tableau

Instruction

Résultat de l’exécution

WRITELN(‘2+5’ = ‘2+7’);
WRITELN(‘2+5 = ‘.2+7’);
WRITELN(‘2+5’ < ‘2+7’);
WRITELN(2+5, ‘=’,2+7);
A=4 et B=8
WRITELN(A=B,‘123’+’345’,123+345);
Nom := ‘Toto’ ;
WRITELN(‘Salut, ’,’ ‘,Nom,’ !’);

Exercice N°9
Pour traduire un mot français en latin, on place la première lettre du mot français à la fin et on ajoute
"us", exemple le mot homme

Et on ajoute "us", on aura ommehus Écrire une analyse, un algorithme et un programme Pascal
réalisant cette traduction.

Exercice N°13
Ecrire une analyse puis en déduire l'algorithme qui permet de saisir un entier naturel de trois
chiffres puis d'affiche la somme cubique des ces chiffres Exemple : Si l'entier est = 120
afficher 13 + 23 + 03 = 9

Exercice N°14
1- Etablir l'analyse puis en déduire l'algorithme qui permet de :
Saisir 2 chaînes de caractères CH1 et CH2 (de longueur maximale 10)
Extraire le premier caractère de CH1 et afficher sa position d'apparition p dans CH2 (On
suppose que le caractère existe obligatoirement dans CH2)

Page |3

Insérer la chaîne CH1 dans CH2 à partir de la position p puis afficher la nouvelle chaîne
apparue CH
2- Traduire l'algorithme obtenu en TURBO PASCAL
Exemple : CH1 := 'ALI' et CH2 := 'SALAH' La nouvelle chaîne apparue est CH := 'SALIALAH'
et p:=2

Exercice N°15
Ecrire l'analyse, l'algorithme et le programme Pascal d'une application qui permet de saisir une
date de naissance sous la forme jj/mm/aaaa puis d'afficher l'age (on suppose que la date d’au
jour d’huit est la date d’anniversaire). Exemple : si la date est "22/02/1981" et la date
d’aujourd’hui est égale à ’’22/02/2008’’ alors l'age affichée est 2008-1981 = 25 ans

Exercice N°16
Ecrire un algorithme qui permet de lire un entier (N) formé exactement de 4 chiffres et d'affecter
chacun de ses chiffres dans un tableau T (T étant un tableau de 6 éléments de type chaîne de
caractères) de façon suivante :
1- Le chiffre des milliers occupera la 1ére case du tableau T
2- Le chiffre des centaines occupera la 2éme case du tableau T
3- Le chiffre des dizaines occupera la 3éme case du tableau T
4- Le chiffre des unités occupera la 4éme case du tableau T
5- Dans le 5éme case de T, on met le caractère '='
6- La dernière case du tableau T contiendra la somme des chiffres qui constituent l'entier N.

Exercice N°16
On désire écrire l’algorithme d’un programme nommé « Multiple » qui permet de simuler une
opération de multiplication de deux entiers a et b (avec a et b dans [10..99]).

Exemple1 : Si on multiplie 12 par 31,
l’affichage sera :

Page |4

Exemple2 : Si on multiplie 55 par 32,
l’affichage sera :

Exercice N°17
A) Soit la séquence suivante :
1) Ch1  Concat (ch1,ch2,ch3)
2) Ch2 sous_chaine (ch1, 1, long(ch1) – long(ch2)- long(ch3))
3) Ch3 sous_chaine (ch1, long(ch2)+1, long(ch1) – long(ch2)- long(ch3))
4) Efface (ch1, 1, long( ch2+ch3))
1- Quelle est la valeur de ch1, ch2 et ch3 après l’exécution de ces instructions.

Valeurs
Instructions

Ch1

Ch2

Ch3

‘’Samir’’

‘’Ali’’

‘’Mohamed’’

1
2
3
4

Ch1 vaut …………….. ; Ch2 vaut ……………………… ; Ch3 vaut …………………

Valeurs
Instructions

Ch1

Ch2

Ch3

‘’2010’’

‘’2011’’

‘’2009’’

1
2
3
4

Ch1 vaut …………….. ; Ch2 vaut ……………………… ; Ch3 vaut …………………
2- Quel est le rôle de cette séquence ?
……………………………………………………………………………………………………………………………………………………

Page |5

Série n° 1

4 Maths

Série n° 1 : Les structures de contrôle conditionnelles
Exercice 1
Soit l’algorithme suivant :
0- début inconnu
1-ecrire (“Donner 4 entiers : ”),
lire (a,b,c,d)
2- x 1
3- Écrire (a)
4- Si ab alors
xx+1
Écrire (",", b)
Fini
5- Si (ac) et (bc) alors
xx+1
ecrire(",",c)
Finsi
6- Si (ad) et (bd) et (c  d) alors
xx+1
Écrire (",", d)
Finsi
7- écrire(x)
8- fin inconnu

QUESTIONS :
1. Remplir le tableau suivant avec le contenu de la
variable x et l’écran suite à chaque instruction de
l’algorithme ci-contre
Pour a=10, b=15, c=7, d=7
Int N° x écran
1
- Donner 4 entiers : 10 15 7 7
2
3
4
5
6
7
Pour a=1, b=1, c=1, d=1
Int N° x écran
1
- Donner 4 entiers : 1 1 1 1
2
3
4
5
6
7
2. Déduire la fonction de cet algorithme.
3. traduire cet algorithme en Turbo Pascal.

Exercice 2
Ecrire un programme qui permet de saisir un entier puis d’afficher s’il est divisible par 6 et 7.
Exemples :
84 est divisible par 6 et par 7
50 est non divisible par 6 et 7

Exercice 3
Ecrire un programme qui permet de saisir une lettre alphabétique puis d’afficher si elle est majuscule
ou minuscule.
Exemples :
"A" : est une lettre majuscule
"b" : est une lettre minuscule
"?" : Autre.

Exercice 4
Ecrire un programme qui permet de lire une lettre puis d’afficher s’il s’agit d’une voyelle ou d’une
consonne.

Exercice 5
Ecrivez un programme qui demande trois nombres à l'utilisateur et qui affiche le texte "Le plus petit
est : ", suivi de la valeur du plus petit des trois nombres.

1

Série n° 1

4 Maths

Exercice 6
Ecrire un algorithme et un programme Pascal qui permet de résoudre l’équation ax+b = 0 dans
l’ensemble des réels : distinguer les différents cas.

Exercice 7
Ecrire un programme (analyse et algorithme) qui permet de résoudre l’équation ax2 + bx + c = 0

Exercice 8
Ecrire un programme (analyse et algorithme) qui permet de calculer la moyenne d’un élève ayant
passé un concours de 3 matières à coefficients égaux (coef = 1). En fin il affichera « refusé » si sa
moyenne < 10 ou « admis avec mention bien » si sa moyenne >= 14 ou « admis avec mention assez
bien » si sa moyenne >= 12 ou « admis avec mention passable » si sa moyenne < 12

Exercice 9
Ecrire un programme Pascal qui permet de saisir les coordonnées des trois sommets A, B et C d’un
triangle puis détermine et affiche la nature du triangle (isocèle, équilatéral ou quelconque).

Exercice 10
Ecrire un programme qui simule le fonctionnement d’une calculatrice ayant les opération suivantes :
(+, -, /, *)

Exercice 11
Traduire cet algorithme en turbo pascal :
0. début exercice11
1. écrire ("donner un caractère :"), lire (c)
2. Selon Majus(c) faire
"A","E","I","O","U","Y" : nat  "voyelle"
"B".."D","F".."H","J".."N","P".."T","V".."X“, "Z" : nat  "consone"
"0".. "9" : nat  "chiffre"
sinon
nat  "autre"
Finselon
3. écrire (c," est ", nat)
4. fin exercice11

2

Lycée secondaire de Grombalia

Année scolaire : 2009/2010

SERIE N° 1

Matière : Informatique

Exercice1
Ecrire les formules suivantes en Pascal.
F(x) = x4+ 2x2-1
G(x) = l x3l – cos (π/2)
H=

x2  y2

Exercice2
Evaluer par V si vrai F si faux les expressions suivantes pour chaque valeur de couple (x,y) :
Expression
(x<y) ou (x<=2) et (x>=0)
(x<y) ouex (x<=2) ou (x>=0)
Non(x<y) et (x>=1) ouex (x<=0)
(x>y) ou non(x<1) et (y<5)

(1,5)

(-1,0)

(-5,-3)

(1,1)

Exercice2
Donner les déclarations suivantes en Pascal :
 Une chaîne de caractères intitulée ch de taille maximale 30
 Un entier C appartenant à l’intervalle [1, 40]
 Une variable f de type intitulé Feu comportant les valeurs suivantes (Vert, Rouge, Oranger)
 Une variable B qui peut avoir l’une des deux valeurs 0 ou 1.
 Une variable y de type entier non signé et occupe 1 octet dans la RAM

Exercice3

Remplir le tableau suivant en donnant le résultat fourni par chaque instruction ainsi que son type.
Instructions
Résultat
A :=round(trunc(2.3)) ;
B :=int(ord(chr(67))/10) ;
C :=pred(chr(ord(‘ ?’)+1));
D:= (pos(‘o’,’Turbo’) = length(‘Turbo’)) or
(copy(‘Pascal’,1,3)<copy(‘Ascal’,4,3)) and (random<1)

Type

Exercice4
Soit le programme
pascal suivant

Program inconnu ;
Uses wincrt ;
Var
……………………..
……………………..
Begin
write(‘donner un entier composé de deux chiffres: ‘);
{1}readln(m);
write(‘donner un entier composé de deux chiffres: ‘);
{2}Readln(n);
{3}Str(n,ch);
{4}A:= m div 10;
{5}B:= m mod 10;
{6}Str(A,ch1);
{4}Insert(ch1,ch,2);
{8}Str(B,ch1) ;
{9}Insert(ch1,ch,3);
{10} val(ch,n,e);
Writeln(n);
End.

 Voir page 2

1. déclarer les variables utilisées dans le programme présenté ci dessus.
2. exécuter manuellement ce programme pour m = 14 et n = 89 (répondre dans le tableau suivant).

instruction

m

n

a

b

ch1

ch

3
4
5
6
7
8
9
10
3. Que fait ce programme ?
4. Si on constate le programme précédant, on remarque qu’il y des instructions inutiles. Proposer une
autre solution tout en optimisant le nombre d’instructions.

Exercice5

Donner en Pascal les instructions qui permettent de :
convertir une lettre miniscule stockée dans la variable L en majuscule sans utiliser la fonction prédéfinie
upcase. NB : ord(‘A’) = 65 et ord(‘a’) = 97
transformer la chaîne suivante ch de valeur "12+345+6789" en une expression arithmétique et calculer le
résultat. (utiliser des fonctions et des procédures prédéfinies)
Déterminer l’avant dernier caractère d’une chaîne CH
insérer la première moitié d’une chaîne ch1 de longueur paire à la fin de cette même chaîne.
Concaténer les deux chaînes de caractère ch1, ch2 et mettre le résultat dans ch1 sans faire appel à la
fonction concat, ni à l’opérateur +

Exercice n°6: (4points)

Soit le tableau Tab suivant:
1
2
3
Bani
Bel Khir
Sassi

4
Hassine

5
Essid

1) Donner en Pascal la déclaration du tableau tab
Donner en pascal:

 les affectations permettant de remplir le tableau tab par les données précédentes,
 l'instruction qui permet de modifier la valeur du dernier élément par "Hammami",
 l'instruction qui permet d'afficher le troisième élément.
 l’instruction qui permet d’accéder au 3ème caractère du 2ème élément du tableau tab
Exercice7
Soit trois tableaux T1, T2, T3 et soit les affectations suivantes :
T1[1]  " Mohammed "
T2[3]  sous_chaine (T2[2],1,3)
T1[2]  " Ben Ali "
T2[4]  concat (T2[3], "i")
T1[3]  concat (T1[1] ,T1[2] )
T3[1]  pos (T2[2], T2[1])
T2[1]  sous-chaine (T1[1],3,2)
Valeur (T1[3], T3[2],erreur)
T1[4]  " nen "
T3[3]  long (T1[1])
Insère (T1[4], T2[2],3)
T3[4]  pos (T1[3],T1[2])
1) Quel est le contenu de chaque élément des trois tableaux.
2) Déclarer en algorithme et en pascal les tableaux T1, T2 et T3

2

 Les structures des données& les structures simples 
L. BECHRI
A.S. 2013-2014

Série d’exercices N°2
Les structures simples

Niveau
4 ème Scientifiques

Exercice 1 :
Soit la séquence d‟affectation suivante avec x, y, z sont trois entiers donnés :
1)
2)
3)
4)
5)
6)

x5
y9
x  tronc (x + y)
z  carré ( x –y)
xy
y  racine carré (z)

a) Quelles sont les valeurs finales de x, y et z ( utiliser le tableau de trace des séquences) ?
b) Exécuter cette séquence pour x=2 et y=3 ?
c) Quel est le rôle de cette séquence ?
Exercice 2:
On se propose d’écrire les instructions permettant de réaliser les traitements suivants :
- lire deux mots mot1 et mot2.
- Afficher la longueur du mot1.
- Afficher la longueur du mot 2.
- Afficher les deux premiers caractères du mot1.
- Insérer la chaîne de caractères „AB‟ dans mot2 à la troisième position.
- Afficher mot2 après suppression de deux derniers caractères.
- Afficher le cinquième caractère du mot2.
- Concaténer les deux chaînes de caractères mot1 et mot2 dans mot3.
- Afficher mot3.
- Afficher la première occurrence du chaîne ‟‟CD‟‟ dans mot3.
Exercice 3 :
On se propose de résoudre le problème Nbre_chiffre permettant de saisir un entier a
puis calculer et afficher son nombre de chiffre n.
Exemple :
 a=10000
n=5
 a= 400
n=3
1- Analyser le probleme nbre_chiffre .
2- Ecrire l‟algorithme nbre_chiffre.
3- Coder l‟algorithme en Turbo Pascal.
Exercice 4 :
Ecrire un algorithme concaténation permettant de saisir deux entiers X et Y, calculer et
afficher la valeur de Z qui est la concaténation du X et Y.
Exemple:




X= 190
Y= 584
X= -190
Y= 584
X= 190

Z= 190584
Z=190584
Z=190584
1

Prof: MSADDEK.S

 Les structures des données& les structures simples 
Y= -584
X= -190
Z= 190584
Y= -584
1- Analyser le problème concaténation.
2- Ecrire l‟algorithme concaténation.
3- Traduire l‟algorithme concatenation.


Exercice 5 :
Trouver et corriger les erreurs du programme suivant :
Programme exemple 1 ;
Uses wincrt ;
Const pi :=3.14 ;
Var
x,y :integer ;
p : reel ;
Begin
Writln(“donner un entire”);
Readln(x);
P = x*pi ;
Rc := sqrt(x)
y := x + rc;
writeln(p);
writeln(rc);
writeln(y);
end ;
Exercice 6 : (Bac pratique 2002)
Ecrire une application qui permet de former puis d‟afficher un entier r de quatre chiffres à
partir de deux entiers m et n strictement positifs et formés chacun de deux chiffres et ceci en
intercalant le nombre n entre les deux chiffres de m.
Exemple :
Si m=56 et n=21 alors l‟entier r sera égal à 5216
1- Analyser le problème.
2- Ecrire l‟algorithme
3- Traduire l‟algorithme.
Exercice 7 :**
Rédiger une marche à suivre et en déduire un algorithme qui permet de saisir un entier à deux
chiffres puis d'afficher la somme de ces chiffres et le produit.
Exercice 8 :**
Rédiger une marche à suivre et en déduire un algorithme qui permet de saisir un entier naturel
de trois chiffres puis affiche la somme cubique de ces chiffres
Exemple : Si l'entier est = 120 afficher : 13+23+03= 9
Exercice 9 :**
Rédiger une marche à suivre et en déduire un algorithme qui permet de saisir un entier
naturel de 4 chiffres puis extraire les chiffres et les mettre dans un tableau.

2
Prof: MSADDEK.S

********************************************

Lycée Pilote Médenine

La Structure De Contrôle
Itératives Complète

Enseignant : Hichem Kemali
*********

********************************************

A.S : 2013/2014

° 3

é

Partie I (Question Du cours &Tournage à la main)
Exercice N°1
type
type1=(a,b,c,d,e,f) ;
tab1=array[a..e] of char ;
tab2=array[‘a’..’e’] of type1 ;

var
ci :type1 ;
cj :char ;
t :tab1 ;t1 :tab2 ;x :integer ;

Valider les instructions suivantes, en justifiant votre réponse
Valide

invalide

X :=97 ;
For ci :=b to e do
t[ci] :=t1[chr(x)]
For cj :=’e’ downto ‘b’ do
t1[cj] :=Succ(t[f]) ;
For cj :=’d’ to ‘x’ do
t1[cj] :=t[succ(‘c’)] ;

Donner nombre d’itérations de ces boucles
For x :=0 to 11 do
write(x) ;
For x :=19 to 11 do
write(x) ;
For cj :=’A’ to ‘z’ do ;
writeln(cj);

Donner résultats d’exécution de ces boucles
For ci :=a to f do
write(chr(ord(a) + 97)) ;
for cj:='a' to 'e' do;
write(cj);
X :=0 ;
For cj :=’a’ to ‘e’ do
writeln(x) ;
x :=x+1 ;
Passer à l’exercice N°5

Page |1

justification

ème
Math01

Exercice N°2 :

Passer à l’ex 4

On donne le fragment d’un programme suivant
Pour i de 0 à 50 faire
Pour j de 0 à 50 faire
Si (j > i) et (i+j=50) alors
écrire (i,’’|’’,j)
FinSi
FinPour
FinPour
Questions
1- Ce fragment affiche tous les couples (i,j) de nombres dont la somme fait 50.Le premier couple
affiché par ce fragment est ‘1 | 49’.
Quel est le troisième couple à être affiché ? . . . . . . . . . . . . . . . . . .
Quel est l’avant-dernier couple à être affiché ? . . . . . . . . . . . . . . . .
2- Réécrivez le programme de façon à éviter le test i<j mais de façon à ce que le programme
résultant affiche toujours les mêmes couples, dans le même ordre.
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
3- Réécrivez le programme de façon à éviter une instruction Si et à n’avoir que une boucle pour
au lieu de deux boucles imbriques . Les mêmes couples doivent toujours être affichés, dans le
même ordre.
......................................................................................
......................................................................................
......................................................................................
......................................................................................
......................................................................................
Exercice N°3 :
Soit le programme pascal suivant
Questions
1. Exécuter ce programme à la main en donnant le résultat final
uses wincrt;
si n = 6 , n=10
var
........................................................
i,n,s:integer;
2. En déduire le rôle de ce programme
begin
........................................................
readln(n);
3.Un entier est dit parfait si la somme de ces diviseurs égal à lui-même
s:=0;
exemple les diviseurs de 6 sont 1, 2 et 3 donc la somme égal à 6 ajouter
for i:=1 to n div 2 do
une instruction conditionnelle simples réduite a ce programme pour
if n mod i =0 then s:=s+i;
afficher si n est parfait ou non
writeln(s);
...............................................................
...............................................................
end.
...............................................................
...............................................................
3. Ajouter une structure itérative complète pour afficher tous les entiers parfaits inférieur à
n (exemple n = 500)
.................................................................................
.................................................................................
.................................................................................
Page |2

Exercice N°4 :
uses wincrt;
Var a, b: . . . . . . . . . . . . . . . . . . . . . . . . . . . . ;
begin
Writeln (‘a’:10, 'b':10, 'a OR b ‘: 10, ' a AND b':10 );
For a: = True downto False do
begin
for b: = True downto False do
begin
Writeln (a: 10, b: 10, a OR b: 10, a AND b: 10);
end;
end;
end.

Questions
1) Quel est le type de chacune des
deux variables a et b?
2) Tourner a la main ce programme
en indiquant l’affichage qu’il va
produire a l’écran.

Exercice N°5 :
Soit le programme pascal suivant :

Questions:
1. Tourner à la main ce programme
avec ch ‘’TDO’’ puis ch ‘‘TDNT’’
puis ch’’B2014’’
.....................................
.....................................
.....................................
2. En déduire le rôle de ce programme
.....................................
.....................................
.....................................
3. Réécrire le programme sans l’utilisation
de la fonction prédéfinie POS

Passer à l’ex 6

uses wincrt ;
var
i : byte ;
ch,ch1 :string ;
ok :boolean ;
begin
ch1:='BCDFGHJKLMNPQRSTVWXZ' ;
ok :=random(20)<20;
readln(ch);
for i:=1 to length(ch) do
if pos(upcase(ch[i]),ch1)=0 then
ok:=trunc(19.23)=20;
writeln(ok);
end.

Passer à l’ex 2

Exercice N°6:
On donne le fragment d’un programme
suivant avec t tableau de n entiers

Page |3

T = 6|3|0|12|5|6|12

.....................................
.....................................
.....................................
3- Donner le rôle de ce programme
.....................................
.....................................

Passer à l’ex 3

FOR i := 1 To (n div 2) Do
Begin
aux := T[i] ;
T[i] := T[n-i+1] ;
T[n-i+1] := aux ;
End ;

Questions :
1 - Quel est le type de variables i et aux
.....................................
2- tourner à la main cette boucle avec

Partie II (Analyse et Algorithme)
Exercice N°1

 Ecrire un programme qui permet d’inverser une chaine de caractères et l’afficher.
 Ecrire un programme qui permet de remplir un tableau de n caractères et compter
nombres de lettres alphabétiques (nombre de voyelles et nombre de consonnes) et
nombre de chiffres et le nombre de symboles
 Ecrire un programme qui permet de remplir un tableau T avec n chiffres positives
impairs , puis afficher l’éléments l’occurrence de chaque chiffre
 Ecrire un programme qui permet de saisir une chaine de caractères et d’extraire les
caractères non alphabétiques
 Ecrire un programme qui permet d’afficher les entiers de 4 chiffres qui vérifient cette
propriétés abcd a+b = c+d exemple 7263 (7+2=6+3)
Exercice N°2

Ecrire un programme qui permet d’afficher les formes suivantes ( de taille de n )
exemple1 ( n = 5)

Exemple2
**************
**************
**************
**************

La=4, Lo=14
Exemple3
ch  ‘’tunis ‘’

Exemple 4
n=6

Page |4

**************
*
*
*
*
*
*
**************

La=5, Lo=14

Exercice N°3

On considère une suite V définie par:
U0 = 1
Un=Un-1+5
1- Quel est l'ordre de récurrence de cette suite? Justifiez votre réponse.
2- Afficher le N

ième

terme de la suite

3- Afficher la somme de 10 premiers termes de la suite .
Exercice N°4

On remarque que : 12 x 42 = 21 x 24
12 x 63 = 21 x 36
12 x 84 = 21 x 48
Il y a 14 produits qui vérifient cette propriété .Ecrire l’algorithme d’un programme Pascal
qui fait sortir tous ces entiers.

 On peut utiliser la formule mathématique: ab*cd=ba*dc
(10 a + b) (10 c + d) = (10 b + a) (10 d + c)
où a est différent de b et c est différent de d.
 On peut tester tous les entiers qui appartiennent à l’intervalle [10..99] (ne oublier
pas d’éliminer les entiers composés de même chiffres (11, 22,33,….) car 11*22=22*11),
puis on comparer les 2 produits ab*cd =ba*dc
Exercice N°5

En matière de géographie le professeur donne à ces élèves plusieurs tableaux de statistiques
et par la suite, les élèves dessinent les courbes correspondant à ces tableaux
exemple
nombre de dentistes à Médenine selon les Délégations
N° Délégation

Nbre de
dentistes

1

6

2

2

3

0

4

6

5

12

6

18

7

12

8

2

9

0

Page |5

Courbe

*
*
*
*
*
*
1

*
*
2

3

*
*
*
*
*
*
4

*
*
*
*
*
*
*
*
*
*
*
*
5

*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
6

*
*
*
*
*
*
*
*
*
*
*
*
7

*
*
8

9

*
Questions
Ecrire un programme qui permet de remplir un tableau
* la courbe
T avec 9 entiers (max = 18), puis afficher
correspondent aux valeurs de T.
*
*
*
*
*
*

********************************************

ème

Lycée Pilote Médenine

La Structure De Contrôle
Itératives + Tableaux

Enseignant : Hichem Kemali
*********

********************************************

A.S : 2013/2014

Math01

° 4

é

Partie I (Question Du cours &Tournage à la main)
Exercice N°1
Tab est un type utilisateur représentant un tableau d’au plus 100 réels. T est un tableau de
type Tab comportant n éléments et x est un réel donne. On donne l’algorithme suivant:
0) Début Algo1
1) [i←1] Tant Que (x ≠T[i]) ET (i<n) faire
I ←i + 1
FinTantQue
2) F ←( x = T[i] )
3) ecrire (f)
3) Fin Algo1

1. Tracer le tableau de déclaration
d’objets
2. Pour le tableau T ci-dessous, donner
valeur de x le contenu du variable F
x=6 ; x=6.4 ;x=8.3
3.5

5.3

23

3

6

6.5

8.3

Exercice N°2
Soit l'algorithme suivant:
0) Début Algo 2
1) i ← 2
f ← vrai
Répéter
Si T [i-1] > T[i] Alors f ← faux
Sinon i ← i + 1
FinSi
Jusqu'a (NON (f)) ou (i = n + 1)
2) Si f alors écrire (" les valeurs sont correctes")
Sinon écrire (" les valeurs ne sont pas correctes")
FinSi
3) Fin Algo 2
Avec TAB un type utilisateur représentant un tableau de 20 réels et T un tableau de n éléments.

1. Tracer le TDNT et TDO
2. Soit le tableau T suivant:

3.5

7.3

23

….

26

36.5 83.3

Proposer une valeur à mettre dans la 4ème case du tableau T, pour que le programme
appelant affiche le message "les valeurs sont correctes".
3) Quel est le rôle de ce programme?

Exercice N°3

remplir un tableau T par n (5<n<20) entiers, afficher le maximum et le minimum de T ainsi
que la somme de T puis compter les nombres d’entiers positifs et le nombres d’entiers
négatifs.

Page |1

Exercice N°4 
Remplir un tableau T par n (avec 5<n<15) chaines présentant les n dates de naissance de n
élèves sous la forme (j/m/a) (faites le contrôle de saisie pour j et m) puis afficher le tableau
ainsi que les nombres d’élèves nés en été.

Exemple
T (n = 5)

23/12/1994
12/01/1994
12/01/1994
23/07/1994
23/07/1994
03/07/1994
03/07/1994
4
4
4

30/08/1994

Nombre d’élèves nés en été : 3
Exercice N°5 

Remplir un tableau T par n (avec 5<n<15) nombres complexes sous la forme a+bi avec a et b
deux entiers naturels non nuls, puis remplir un 2ème tableau M par les modules des éléments
2
2
de T ,sachant que le module d’un nombre complexe sous la forme a+bi égal de a + b
afficher les nombres ayant le plus petit module.

Exemple
T (n = 5)
M=

2+3i 23/07/19942+15i12/01/1994
23+3i03/07/19943+2i

15+2i

4

3.60

15.13

23.19

3.60

15.13

Les nombres ayant le plus petit module sont : 2+3i, 3+2i

Exercice N°6
Remplir un tableau par n entiers positifs de trois chiffres, d’une façon aléatoire, puis afficher
les entiers palindromes (exemples d’entiers palindromes : 121, 999, 878 (lecture de deux sens
donner le même entier)).

Exercice N°7 
Ecrire un programme qui saisit un entier naturel suivi de n réels à placer dans un tableau A
(avec 2 < n < 25). Ce programme mettra les éléments de A dans un deuxième tableau B
avec une rotation de k éléments, k étant un entier donné et tel que 0 < k < n.

Exemple : T 

12

6

0

-4

23

Si K = 1 T 

6

0

-4

23

12

Si K = 4 T

23

12

6

0

-4

n= 5

Exercice N°8
Remplir un tableau par n chaines de caractères non vides, puis remplir un 2ème tableau M
par les nombres de voyelles et les nombres de consonnes de chaque élément de T ( le
nombre de voyelles et les nombre de consonnes dans M séparent par un slache ‘’/’’ )puis
affiches les nombres de jolis-mots ( un joli mot : si le nombre voyelles >= nombre de
consonnes ) . Exemple
Lycee
Inofs
eleve
math
sport
Nombre de jolis-mots
=2
Page |2

3/2

2/3

3/2

1/3

1/4

Exercice N°9
La segmentation d’un tableau T de N entiers par rapport à l’élément numéro 1 du tableau
consiste à placer les éléments inférieurs ou égaux à T[1] à sa gauche et les éléments
strictement supérieurs à T[1] à sa droite
Exemple
12

6

0

-4

23

12

102

11

89

3

6

0

-4

12

11

3

12

23

102

89

Les éléments inférieurs ou égaux à 12

Les éléments supérieurs à
12 entiers, puis
Ecrire un programme qui permet de remplir un tableau T de n (5<n<25)
segmenter le tableau par rapport à t [1] et affiché le tableau segmenté

Exercice N°10
Ecrire un programme en Pascal intitulé TRIANGLE qui permet:
- de remplir un tableau T de n chaînes de caractères (2 < n< 20). Chaque chaîne doit avoir
un nombre de caractères supérieur ou égal à son indice dans le tableau.
- D'afficher pour chaque élément T [i] du tableau, les i premiers caractères de la chaîne.
Exemple: soit T un tableau de 6 chaînes de caractères.
Bit
Modem
T
Le programme affichera :
B
Mo
Ecr
Sour
Proce
Mémoir

Ecran

Souris Processeur Mémoire

Exercice N°11

Ecrire un programme qui permet d’afficher un graphique à l’aide du contenu d’un tableau T
de 10 entiers aléatoires entre 1 et 20
7
4
6
10 12
9
3
12
2
11

7
7
7
7
7
7
7

Page |3

4
4
4
4

6
6
6
6
6
6

10
10
10
10
10
10
10
10
10
10

12
12
12
12
12
12
12
12
12
12
12
12

9
9
9
9
9
9
9
9
9

3
3
3

12
12
12
12
12
12
12
12
12
12
12
12

2
2

11
11
11
11
11
11
11
11
11
11
11

Exercice N°12
Soit N un entier naturel positif non nul et T un tableau de N entiers positifs . on dit que T est
un dérangement si :
- T contient tous les entiers de 1 à n
- L’entier i n’est pas à la position i (i <> t[i])
Exemple 1 : T avec n = 6
T est un dérangement

6

1

4

2

3

5

6
1
3
2
Exemple 2 : T avec n = 6
T n’est pas un dérangement (le chiffre 3 à la position 3)
6
1
36
2
Exemple 2 : T avec n = 6
T n’est pas un dérangement (36 n’appartient pas [1..6])

4

4

5

5

Ecrire un programme qui permet de remplir un tableau T de n(5<n<25) entiers positifs puis
afficher si T est un dérangement.

Exercice N°13
La multiplication russe est l’une des méthodes permettant la multiplication de deux entiers
A et B en utilisant seulement la division, la multiplication par 2 et l’addition selon le
principe suivant :
-

Le premier nombre est divisé par 2 (division entière) et le deuxième nombre est
multiplié par 2.

-

Ce processus est répété jusqu'à avoir 1 comme valeur du premier nombre.

-

Les deux nombre de départ ainsi que les résultats de calculs seront mis dans deux
tableaux DIVIS et MULT (DIVIS contiendra les différentes valeurs du premier
nombre et MULT contiendra les différentes valeurs du second nombre).

-

Le résultat du produit recherché est la somme des nombres du tableau MULT qui
sont face des nombres impairs du tableau DIVIS
Exemple : Pour a = 11 et b = 13 le produit de a par b se calcule comme suit :
DIVIS 11
5
2
1
MULT 13

26

52

104

Le résultat du produit de 11 par 13 est égal à 13+26+104 = 143
Ecrire un programme qui permet de saisir deux entiers a et b ( 2<=a<=100 ; 2<=b<=100)
,calcule et afficher le produit a*b en utilisant la méthode russe.

« Logique et bon sens : un chef. Bon sens sans logique :
un employé. Logique sans bon sens : une catastrophe. »

Page |4

********************************************

Lycée Pilote Médenine

Les Sous-Programmes

Enseignant : Hichem Kemali
*********

********************************************

Série des exercices

ème
Math01

A.S : 2013/2014

N ° 6

Partie I (Tournage à la main)
Exercice N°1
Soit la fonction Pascal suivante :
Questions :
1) Compléter les vides (les pointillés) de cette fonction.
2) Exécuter cette fonction pour v1 = "bac tp info 2014".
........................ .....................
3) Expliquer le rôle de cette fonction.
........................ ......................
........................ ......................
4) Donner un exemple d’appel de cette fonction
........................ ............. .........

Exercice N°2
Questions :
1. Déterminer et compléter le type de
cette fonction ainsi que la partie
déclaration des variables locales.
2. Quelle est la valeur renvoyée par la
fonction Traitement si d = 2, f = 5 et le
tableau T contient les éléments suivants:
-10|5|0|-6|10|13
3. Quel est le rôle de cette fonction

Exercice N°3
Questions :
1) Exécuter l’algorithme pour les cas
suivants :
a) ch="123+15+4111"
b) ch="34+15+134"
2) Donner le rôle de l’algorithme.
3) Remplacer la structure Répéter …..
Jusqu'à par une autre structure.
Page : ~ 1 ~

0. DEF FN Anonyme (X, Y : Entier) : Entier
1. S0
Tant que Y < > 0 Faire
Si Y Mod 2 < > 0 Alors
SS + X
Fin si
X X * 2
Y Y Div 2
Fin Tant que
2. Anonyme S
3.Fin Anonyme

Exercice N°4
Soit la fonction suivante :

1. Exécuter la fonction pour
les valeurs suivantes de x et y :
a. x=10 et y =2
b. x=6 et y =6
2. Quel est le rôle de cette fonction.

Exercice N°5
Soient les algorithmes suivants
0) Début Programme Principale
1) X6
2) y 5
3) z0

0) Procédure Somcar(x1, x2, s : entier)
1) X1 x1*x2
2) X2 x2*x2
3) Sx1+x2
4) Fin Somcar

4) Proc Somcar(x,y,z)
5) Ecrire (x,y,z)
6) Fin Programme Principale
1. Trouver le résultat fourni par l’algorithme ci-dessus
2. Que faut-il ajouter à la procédure Somcar pour avoir un résultat correct ?
3. Remplacer dans ce programme la procédure par une fonction

Exercice N°6
Soit le programme suivant :
Procedure P1(c: char; ch: string; var p: integer);
var i:integer;
Begin
p:=0;
i:=0;
Repeat
i:=i+1;
iF (ch[i]=c) then P:=I;
Until (p<>0) or (i=length(ch));
End;

Page : ~ 2 ~

1. Transformer cette procédure en une
fonction.
2. Exécuter la fonction F1 pour la valeur
de C=’a’ et la valeur de
ch=’bac blanc’
3. En déduire la fonction prédéfinie
Pascal qui fournit le même le résultat

Partie II
Exercice 1
❶ Ecrire un programme Pascal qui permet de saisir un entier premier
❷ Ecrire un programme Pascal qui permet de saisir une chaine de caractères majuscules
❸ Ecrire un programme Pascal qui permet de saisir une chaine de caractères numérique
❹ Ecrire un programme qui permet de remplir un tableau par 10 entiers distincts deux à deux
❺ Ecrire un programme qui permet de remplir un tableau par 10 entiers distincts
❻ Ecrire un programme qui permet de remplir un tableau par 10 entiers triés dans ordre croissant

Exercice 2
Ecrire un programme qui cherche et affiche les n premiers entiers naturels positifs impairs et
palindromes (n étant un entier naturel tel que 5 < n < 20). Un entier est dit palindrome s’il est lu de la
même façon de gauche à droite et de droite à gauche.
Exemple : 121 est un entier impair et palindrome. N.B.
La solution doit comporter au moins une fonction et une procédure.

Exercice 3
PHRASE est une chaîne comportant un minimum de 5 caractères. On se propose d’écrire un
programme qui saisit Phrase puis affiche sans répétition:
- les caractères de PHRASE qui sont des lettres (minuscules ou majuscules, accentués ou non)
- les autres caractères de PHRASE.

Exercice 4
Deux entiers m et n sont dit amis si et seulement si la somme des diviseurs de m sauf lui-même est
égale à n et la somme des diviseurs de n sauf lui-même est égale à m. Ecrire un programme Pascal
permettant de déterminer et d'afficher tous les nombres amis compris entre 1 et 1000.

Exercice 5
On se On se propose d'écrire un programme permettant de remplir deux tableaux V1 et V2
respectivement par N et M entiers (avec N et M deux entiers de l'intervalle [2..20] et les éléments de
V1 et V2 sont saisis dans un ordre strictement croissant), puis de fusionner les éléments de ces deux
tableaux dans un tableau V3 en éliminant les redondances et en gardant l'ordre croissant des
éléments. Enfin, le programme affichera les éléments du tableau V3. Exemple : Si N =5, M = 7 et les
éléments des deux tableaux V1 et V2 sont:

Exercice 6
Ecrire un programme pascal qui permet de saisir une chaîne non vide de longueur impaire et de
l'afficher sous la forme d'un sablier.

Page : ~ 3 ~

Exercice 7
On désire coder une chaîne de caractères en utilisant la fonction f(x) = 2x – 1, x étant le code ASCII
d’un caractère dans la chaîne. Les caractères susceptibles d’être codés sont les lettres de l’alphabet
(majuscule ou minuscule), les chiffres (de 0 à 9) et le point. Les autres caractères restent inchangés.
Ecrire un programme qui permet de saisir une chaîne de caractères puis d’afficher son code.

Exercice 8
Ecrivez un programme permettant de vérifier si un entier n donne est divisible par 7, en utilisant la
règle de divisibilité suivante :
Nous nous appuyons sur le fait que si le nombre mcdu est divisible par 7 alors : ( mcd –2*u) est
divisible par 7, et réciproquement.
Exemple 7241 :
Nous conservons tous les chiffres sauf le dernier, et nous lui retranchons deux fois le dernier :
724-2*1 = 722. Nous procédons de même avec le résultat, soit 722 : 72-2*2 = 68. Or 68 n’est pas
divisible par 7, donc, 7241 non plus.

Exercice 9
Deux nombres premiers n et p, n > p, sont dits jumeaux si n - p = 2. Par exemple, 3 et 5 sont jumeaux
ainsi que 41 et 43. Ecrire un programme Pascal qui cherche et affiche tous les nombres premiers
jumeaux consécutifs ≤ à 400.

Exercice 10
Un nombre M est dit «Rigolo», si la somme de ses chiffres est égale à la somme de tous les chiffres
de ses facteurs premiers.
Exemple :
• Si M=690, alors M est un nombre rigolo. En effet :
 La somme des chiffres de 690 est : 6+9+0=15
 Les facteurs premiers de 690 sont : 2, 3, 5 et 23
 La somme des chiffres des facteurs premiers de 690 est : 2+3+5+2+3=15
Écrire un programme Pascal qui permet de déterminer tous les nombres rigolos compris dans
l’intervalle [100..1000].

Exercice 11
On appelle nombre de Keith un nombre K de n chiffres ayant la propriété suivante : en partant des
nombres composés chacun d'un des n chiffres de K, on compose une sorte de suite en calculant la
somme des n derniers nombres de la suite pour déterminer le suivant. Si cette suite fournit à un
moment le nombre K, ce nombre est dit nombre de Keith.
Exemple : K=197
1+9+7=17 ; 9+7+17=33 ; 7+17+33=57 ; 17+33+57=107 ; 33+57+107=197 ; 57+107+197=361.
On obtient alors la suite : 1, 9, 7, 17, 33, 57, 107, 197, 361 dans laquelle se trouve le nombre
197, donc 197 est un nombre de Keith.
Ecrire un programme Pascal qui permet de déterminer et d’afficher tous les nombres de Keith dans
l’intervalle [10..200000].

Exercice 12

Ecrire un programme qui permet de convertir un entier n en binaire, exemple
N=5 101
2

5

2

2
1

1
0

0
1

Page : ~ 4 ~

2

+ Exercices tableaux & chaines

********************************************

Lycée Pilote Médenine

Les Sous-programmes & Les
Traitements Avancés

Enseignant : Hichem Kemali
*********

********************************************

A.S : 2013/2014

Série des exercices

ème
Math01

N ° 7

Partie I (Question Du cours &Tournage à la main)
Exercice N°1
Soit la fonction F1 suivante :
(N.B : m un entier de 6 chiffres)
Questions :
1) Compléter les vides (les pointillés) de cette fonction.
2) Exécuter cette fonction pour
* m = 568235 . . . . . . . . . . . . . . . . .
* m = 235689 . . . . . . . . . . . . . . . . .
3) Quel est le rôle de cette fonction ?
...........................................
4) On donne la Procédure P1 suivante
Procedure P1 (n:. . . . . . . . . . . ;. . . . . . . . . . . . . . . . . .)
Var i : . . . . . . . . . . . . .;
Begin
mn:=0;
mx:=0;
FOR i:=1 To n Do
Begin
mn:=10*min + i;
mx:=10*max + (9-m+i);
End;
End;

Function F1 (m:. . . . . . . . . . .) : . . . . . . . . . . . . .;
Var
............
............
Begin
Repeat
c1:= m MOD 10;
m:= m DIV 10;
c2:= m MOD 10;
Valide:= (c1>c2);
Until Not (valide) Or (m<10) ;
. . . . . . . . . . . :=Valide ;
End ;

a) Compléter les vides (les pointillés) de cette
procédure P1.(n un entier [2..8]
b) Exécuter cette fonction pour
n=5 . . . . . . . . . . . . . . . . .
c) Quel est le rôle de cette fonction ?
........................................

5) Ecrire un programme Pascal qui saisit un entier n (1<n<9) et fait sortir tous les entiers
bien ordonnés de n chiffres et le nombre total de ces entiers.

...............................................................................
...............................................................................
...............................................................................
...............................................................................
...............................................................................
...............................................................................
...............................................................................
...............................................................................
....................................................

Exercice N°2(pratique)

On propose ci-dessous l’algorithme d’une procédure de tri à Bulles :
0) Procédure TRI_Bulles (Var T : Tab ; n : entier)
1) Pour i de 1 à n-1 Faire
Pour j de 1 à n-i Faire
Si (T [ j ] <T [ j+1])
Alors Proc Permut (T [ j ] , T [ j+1])
Fin si
Fin Pour
Fin Pour
2) Fin TRI_Bulles

Page |1

Remarque : Le module Permut (a, b) permute le contenu de deux entiers a et b.
 Ecrire un programme permettant de saisir p éléments entiers dans un tableau V et de
faire appel au module TRI_Bulles ci-dessus.
 Déterminer l’ordre du tri (croissant ou décroissant) accompli par le programme.
 Dans le cas ou le tableau V est déjà trie dés la saisie, les parcours effectues par le
module TRI_Bulles s’avèrent inutiles. En effet, aucune permutation n’aura lieu au
sein de ce module dans ce cas. Modifier la procédure TRI_Bulles pour tenir compte
de cette contrainte.

Exercice N°3(application standard sur les tableaux)
 Soit T un tableau contenant N entiers (10≤N≤50). On propose d'écrire un programme
Pascal qui permet de regrouper les éléments pairs au début et les éléments impairs à
la fin de T, sans modifier l'ordre de saisie des valeurs paires et impaires.
 On se propose d'écrire un programme Pascal qui permet de saisir un entier n >1 et
pair. Ensuite remplir un tableau T par n entiers égaux deux par deux. Enfin
transformer T en un tableau symétrique.
 Remplir un tableau t Par n (3<n<20) lettres Majuscules triées puis insérer lettres c
dans T en gardant le tableau trié
 Remplir un tableau T par n entiers puis afficher le tableau sans redondance

Exercice N°4(bac pratique 2006)
Soit un tableau T de n caractères (5≤n<Nmax) qui ne peuvent être que "A", "B" ou "C" et tels
que deux éléments successifs du tableau ne sont pas égaux. (Nmax est une constante de
valeur 15). On se propose d’insérer un caractère donné Car dans la première position
possible dans le tableau T en respectant la règle ci-dessus mentionnée puis d’afficher le
tableau T dans son nouvel état (après insertion).
N. B :
- Car ne peut être que "A", "B" ou "C" et ne peut être inséré ni à la première ni à la dernière
position du tableau.
- On suppose que l’insertion d’un nouveau élément est possible en effet n < Nmax.

Exercice N°5(bac pratique 2006)
Ecrire un programme Pascal intitulé Predsucc permettant de remplir un tableau T par N
chiffres compris entre 0 et 9 et d'afficher les éléments de T qui sont encadrés par leurs
Prédécesseurs et leurs successeurs.
N. B :
• Le premier élément sera affiché s'il est seulement succédé par son successeur.
• Le dernier élément sera affiché s'il est précédé par son prédécesseur.

Page |2

Exercice N°6

Exercice N°7

Exercice N°8
Une anagramme est un mot obtenu par transposition des lettres d’un autre mot (par
exemple chien, chine sont des anagrammes du mot niche).
Ecrire un programme Pascal qui permet de saisir deux mots non vides MOT1 et MOT2 puis
de déterminer si MOT2 est une anagramme de MOT1.

Exercice N°9
 Sans utiliser la fonction prédéfinie POS, écrire un programme Pascal qui
détermine la première position d'une chaîne ch1 dans une autre ch2.
 Sans utiliser la fonction prédéfinie COPY, écrire un programme Pascal qui
copie N caractères d'une chaîne ch1 à partir d'une position p.

Exercice N°10
Le Jeu du PENDU consiste à : Un joueur donne un mot en majuscule. Ce mot sera caché sous
des tirets, conformément à l’exemple : BONJOUR � B-----R.L'autre joueur devra alors deviner
ce mot de la manière suivante : Il propose chaque fois une lettre. Si cette lettre existe dans
le mot caché alors le tiret sera remplacé par la lettre proposée chaque fois où se trouve
cette lettre précédemment sinon "Echec" sera affiché jusqu'à ce que le nombre d'essais sera
égal à la longueur du mot caché ou le mot sera deviné.

Page |3

Exercice N°11
Soit un vecteur V de n (5<n<20) entiers distincts.
Nous cherchons à trier ce vecteur par ordre croissant par une méthode dite du rangement
(création).
Cette méthode est décrite par les étapes suivantes :
1- Trouver le minimum local de la partie restant a trier.
2- Mettre le minimum dans un vecteur résultat.
3- Recommencer jusqu’a avoir range tous les éléments.

Exercice N°12(tri bidirectionnel)
Une version de tri à bulles est le tri bidirectionnel. Elle consiste à parcourir le tableau de
gauche à droite, puis de droite à gauche, le changement de direction ayant lieu chaque fois
que l'une des extrémités est atteinte. Ainsi, les plus petits éléments du tableau descendant
au même rythme que remontent les plus grands éléments.
On se propose d'écrire un programme Pascal permettant de saisir n entiers (10<n<20) dans
un tableau T et de le trier en utilisant le principe mentionné ci-dessus.

Exercice N°13(tri à 2 critères)
On se propose d'écrire un programme Pascal permettant :
1. De saisir les éléments d'un tableau T composé de n chaînes de caractères non vides.
2. De trier le tableau T dans un ordre croissant selon les deux critères suivants :
 Longueur de la chaîne en premier lieu.
 Ordre alphabétique en cas d'égalité pour les longueurs.

Exercice N°14(fusion de deux tableaux triés)
Remplir deux tableaux t1 et t2 par n et m entiers triés lors de remplissage, puis remplir un
troisième tableau t3 par d'entiers croissants à partir de deux tableaux t1 et t2 .
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Ce Série contient :
1- Plusieurs sujets de bac pratiques (2006-2008)
2- Pour bien préparer les bacs pratiques : (cocher le bac réalisé)

Bac 2009

Bac 2012

1ere Journée

2ème Journée

1ere Journée

2ème Journée

Sujet 1

Sujet 1

Sujet 1

Sujet 1

Sujet 2

Sujet 2

Sujet 2

Sujet 2

Sujet 3

Sujet 3

Sujet 3

Sujet 3

Sujet 4

Sujet 4

Sujet 4

Sujet 4

1ere Journée

2ème Journée

1ere Journée

2ème Journée

Sujet 1

Sujet 1

Sujet 1

Sujet 1

Sujet 2

Sujet 2

Sujet 2

Sujet 2

Sujet 3

Sujet 3

Sujet 3

Sujet 3

Sujet 4

Sujet 4

Sujet 4

Sujet 4

Page |4

Bac 2010

Bac 2013


infomatique.pdf - page 1/54
 
infomatique.pdf - page 2/54
infomatique.pdf - page 3/54
infomatique.pdf - page 4/54
infomatique.pdf - page 5/54
infomatique.pdf - page 6/54
 




Télécharger le fichier (PDF)


infomatique.pdf (PDF, 5.3 Mo)

Télécharger
Formats alternatifs: ZIP



Documents similaires


serie2 120824031151 phpapp01
serie revisioncorrection
enonce serie revision
exercices de programmation
serie 1structures de donnees
tps 4 et 5 et tds 1 et 2

Sur le même sujet..