Algorithme et programmation A.S : 2008/2009
SERIE 01
Exercice N°1
Ecrire une pré-analyse, une analyse, un algorithme et la traduction en Turbo Pascal d'un programme intitulé "CALCUL", qui saisit un entier M de trois chiffres (M [100..999]),
puis calcule et affiche la s o m m e et le pro d uit des trois chiffres qui composent M. Exemple: Si M=256 Alors S=13=2+5+6 et P=60=2*5*6.
Exercice N°2
Ecrire une pré-analyse, une analyse, un algorithme et la traduction en Pascal d'un
programme intitulé "CARACTERE", qui permet de lire un caractère (C) et d’afficher :
Son prédécesseur,
Son successeur,
Son code ASCII,
Sa majuscule.
Exercice N°3
Soit l'algorithme suivant:
0/ Début Recherche 1/ lire (a, b, c, d) 2/ s a + b
3/ a s + c + d
4/ d 2 * a * b DIV c 5/ k s / c
6/ b b + 1
7/ k a – b * c + d DIV 2 8/ d d + a
9/ Ecrire (a, b, c, d, k, s) 10/ fin Recherche
a) Traduire cet algorithme en Turbo Pascal
b) Trouver pour chacun des cas suivants les valeurs de a, b, c, d, k et s après l'exécution de l'algorithme.
Cas1: a=3, b=2, c=2, d=5 Cas2: a=4, b=-3, c=1, d=2 Cas3: a=-1, b=2, c=0, d=5 Exercice N°4
a)
Soit M := ′Bonjour′
C := CONCAT (..., COPY( M ,... ,...) )
Compléter l’instruction Pascal précédente de façon à obtenir C :=’nour’
b)
Soit CH:= ′To Pascal′
Donner les instructions algorithmiques permettant de modifier la chaîne de caractères CH de
façon à ce que CH :=’Turbo Pascal’
c)
Soit C:= ′PROGRAMMATIONS′
Algorithme et programmation A.S : 2008/2009
Donner la valeur de CH :
* CH := COPY ( C , LENGTH(C) MOD 10 +1 , POS (CH1, ‘O’)) ;
* CH := COPY ( C , LENGTH(C) MOD 10 +1 , POS (CH1, ‘o’)) ;
d)
Soit NB un entier naturel donné;
L YCEE SECON D A I RE DE G ACHE 1 P rof : Mr MA H D H I Ho s ni
L YCEE SECON D A I RE DE G ACHE 2 P rof : Mr MA H D H I Hos ni
Algorithme et programmation A.S : 2008/2009
Donner les instructions Pascal permettant de déterminer le nombre de chiffre de l’entier NB.
Exercice N°5
1/ Soit T1 et T2 deux tableaux de type respectivement chaîne de caractères et booléen. T1 est de type tab1 et de dimension 5 T2 set de type tab2 et de dimension 3
2/ Soit la séquence d'affectation suivantes:
T1[1]
"Mohamed"
T1[2] "Ali"
T1[3] concat (T1[1], T1[2])
T2[1] (T1[1] < T1[2]) AND (T1[1] > T1[3]) T2[2] NOT (T2[1])
T1[4] concat (sous-chaîne (T1[1], 1, 1), sous-chaîne
(T1[1], 6, 2), ".", T1[2])) T1[5] concat (efface (T1[4], 1, 4),
" ", "Salah")
T2[3] ((long (T1[4]) < long (T1[5])) XOR (T1[1] <> T1[2])) OR NOT (T2[1])
a) Déclarer au niveau de l'analyse et en Pascal les deux tableaux T1 et T2
b) Déterminer le contenu de deux tableaux T1 et T2 Exercice N°6
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
Déterminer les valeurs de S, L et X à partir de l'algorithme
L YCEE SECON D A I RE DE G ACHE 3 P rof : Mr MA H D H I Hos ni
Algorithme et programmation A.S : 2008/2009
SERIE 2
Exercice N°1
Soient A=4, B = 6, C = 3, D = 2.5 Remplir le tableau suivant :
Instructi (Pascaon
Type de S (Algorithmi que)
Type de S (Pascal Instruction
(Algorithmique) Valeur (S)
S A = B
S (A<=B) et (D<> B) S A + B * C MOD A S A + B / C * 5 S CARRE (A) + ASCII("A")
Exercice N°2
a) Déclarer ces variables en langage Pascal
Une variable (CH), (CH1), (CH2) de type chaîne de caractère.
Un tableau T de 5 cases de type entier, dont l’indice de la première case est 5.
Une variable (X) de type Entier.
Une variable (Y) de type réel.
Une variable (C) de type caractère.
b) Les affectations suivantes sont elles permises ?
CH := ‘Bonjour’ ; CH2 := C ; X := X – 5 / MOD 2 * X ; T[5] := T[4]
+ T[3] ; CH1 := CH[2] ; Y := 5 / 3 MOD 2 +1 ; C := UPCASE (‘9’) ; T[8] := SQRT (T[6]) ;
INSERT (C, CH) ; CH := DELETE (CH1, 1 ,1) ;
CH1 := UPCASE ( CH ) ; B := (7 < ‘8’) ;
Exercice N°3
Déterminer la valeur de A pour chaque cas:
A 8 – (5 * 4 DIV 3) MOD 4 + (10 – 7) A 8 + 5 MOD 4 * 3 DIV 4 – (10 – 7)
A 10 DIV 2 * 10 MOD 2
L YCEE SECON D A I RE DE G ACHE 4 P rof : Mr MA H D H I Hos ni
Algorithme et programmation A.S : 2008/2009
A (13 DIV 3 * 2 ) < (13 MOD 3 * 2)
A (25 / 2 * 3 – 5) IN [0..32]
L YCEE SECON D A I RE DE G ACHE 5 P rof : Mr MA H D H I Hos ni
Algorithme et programmation A.S : 2008/2009
Problème1
Ecrire une pré-analyse, une analyse, un algorithme et la traduction en Turbo Pascal d'un programme intitulé "ABS_CAR" qui lit un réel A, détermine et affiche sa valeur absolue et son carré.
problème2
Ecrire une pré-analyse, une analyse, un algorithme et la traduction en Pascal d'un programme intitulé "CYLINDRE", qui permet de calculer et d'afficher la surf a ce et le v o lume d'un cylindre (sachant que v=
*
R
2* H et S=2 *
*R * (R + H) ).
problème3
Ecrire une pré-analyse, une analyse, un algorithme et la traduction en Pascal d'un programme intitulé "INSERTION", qui permet de lire à partir du clavier une chaîne de caractères CH
,puis d'insérer 4 espaces au milieu de la chaîne et d'afficher CH.
Problème4
Ecrire une pré-analyse, une analyse, un algorithme et la traduction en Pascal d'un programme intitulé "REMPLISSAGE", qui permet de lire un entier E puis de le décomposer en 3
chiffres représentant unit é , d iz a i n e et c e nt a i n e et de stocker ces chiffres dans un tableau T de 3 cases et d'afficher T
Problème4
Ecrire une pré-analyse, une analyse, un algorithme et la traduction en
Pascal d'un programme intitulé "PERMUTATION", qui permet de
remplir un tableau T par 2 entiers, puis d'effectuer dans le même
tableau T une permutation circulaire et d'afficher T
L YCEE SECON D A I RE DE G ACHE 6 P rof : Mr MA H D H I Hos ni
Algorithme et programmation A.S : 2008/2009
Exempl
e: 20 -250 T : T après
permutation : -250 20
SERIE 2
Exercice N°1
Program p1 ; Uses wincrt ;
Type Tab = Array [1..6] of Integer ; Var
t: Tab;
i: integer;
begin
for i: = 1 to 6 do t [i]: = i*i;
for i: = 1 to 6 do writeln (t[i]);
End.
Program P2 : Uses wincrt ; Var
i : integer ; begin i : = 1 ; while i<10 do begin
i: = 11-2*i;
writeln (i);
end ; end.
Exécuter à la main les deux programmes P1 et P2.
Peut-on simplifier le programme P1 ?
Exercice N°2
L’algorithme suivant permet de calculer et d’afficher les moyennes des trois notes de n élèves : 0) Début Calcul_Moyennes
1) Lire (n)
2) Pour i de 1 à n répéter Lire (Nl, N2, N3 )
Moy ← (N1+2*N2 +2*N3)/5 Ecrire (Moy)
Fin pour
3) Fin Calcul_Moyennes.
1.Traduire cet algorithme en pascal
2.Dans l’action 1, ajouter le contrôle sur la saisie pour assurer la condition suivante (2≤n ≤20).
Problème1
Ecrire une analyse, un algorithme et la traduction en pascal d’un programme intitulé « SOM », qui permet de saisir un entier N, calcule et affiche la somme S1 suivant :
S1= 1+2+3+4+5+………..+N
problème2
Ecrire une analyse, un algorithme et la traduction en pascal d’un programme intitulé « SOMM », qui permet de saisir un entier N non nu l , calcule et affiche la somme S2 suivant :
S2= 1+1/2+1/3+1/4+1/5+………..+1/N
problème3
Ecrire une analyse, un algorithme et la traduction en pascal d’un programme intitulé « SOMME », qui permet de saisir un entier N strict e ment posit i f , calcule et affiche la somme S3 suivant :
S3=1 - 2 + 3 - 4+………..±N
Problème4
Ecrire une analyse, un algorithme et la traduction en pascal d’un programme intitulé
« PALINDROME », qui permet de saisir une chaîne de caractère ch, vérifie si elle est palindrome ou non.
NB : une chaîne est dite palindrome si elle peut être lue dans les deux sens : Exemple : ELLE , AZZA , LAVAL
Problème5
Ecrire une analyse, un algorithme et la traduction en pascal d’un programme intitulé « OCCURENCE »,
qui permet de saisir une chaîne de caractère ch, détermine le nombre d’occurrence (apparition) d’un caractère donnée. Si le caractère choisi n’existe pas, le programme affichera 0 (zéro)
Exemple : Si ch = INTERNET et C=N ; Le programme affichera 2
Problème6
Ecrire une analyse, un algorithme et la traduction en pascal d’un programme intitulé « CONVERSION », qui permet de convertir une chaîne en majuscule
Problème7
Ecrire une analyse, un algorithme et la traduction en Pascal du programme intitulé «INVERSE», permettant de :
- Saisir un tableau A de N entiers, - Ranger dans B le tableau A inversé.
LYCÉE DEGUECH
A/S: 2007-2008 DATE:NOVEMBRE
2007
D
EVOIR DE C ON T ROLE
N°
: 1
M
A T IE R E : INFORMATIQUE N
IV E A U : 4 SCIENTIFIQUES P : MAHDHI HOSNI
E X ERCICE N° : 1 (2 POINTS)
Dire si les affectations suivantes sont valides ou non(x désigne un réel et n un entier)
nm/2(m est un entier pair) ………
xabs (n) ………
nabs(x) ………
x (2*n-1)/5 .…………...
E
X E R CICE N ° : 2 (4 POINTS)
Soit l’algorithme suivant :
0) Début inconnu 1) Lire(x)
2) Lire(y)
3) Z(x + y + abs(x - y))/2 4) W(x + y - abs(x - y))/2 5) Ecrire (z)
6) Ecrire (w) 7) Fin inconnu
Exécuter manuellement l’algorithme inconnu. On suppose que les valeurs saisies par
l’utilisateur au niveau des instructions 1 et 2 sont respectivement 12 et 13.
………
………
………
………
………
………
………
………
………
………
Donner le rôle de cet algorithme.
………
………
………
………
Algorithme et programmation A.S : 2008/2009
EXER CIC E N° : 3 (5 POINTS)
Soient les variables X, Y, Z de type entier dont les valeurs sont les suivantes : X := 2 ; Y := 4 ; Z := 3 ;
Compléter le tableau suivant :
Expression Résultat Type du Résultat T := Z= X + Y + 1 ; ………. ……….
W := Concat (‘X’, ‘Y’, ‘1’) ; ………. ……….
Delete (W, X, X) ; ………. ……….
L := Pos (‘X’, ‘Y MOD X’) ; ………. ……….
P := Round (2.54) + ord(chr(122)) ; ………. ……….
Val (‘-327’ + ‘68’, M, E) ; M=….…E=……. ……….
S := 17 mod 3*2 + abs(-4) div 4 ; ………. ……….
Str (succ(random(1)), A) ;
R := A+ ‘A’> ‘2A’ ; ……….
……….
……….
……….
P
ROBL EME:
(9 POINTS)Ecrire une pré-analyse, une analyse, un algorithme et la traduction en Turbo Pascal d'un programme intitulé "CALCUL", qui saisit un entier M de trois chiffres (M
[100..999]), puiscalcule et affiche la somme et le produit des trois chiffres qui composent M.
Exemple: Si M=256 Alors S=13=2+5+6 et P=60=2*5*6.
S
o l u t io n :
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
………
L YCEE SECON D A I RE DE G ACHE 8
B
P roo
fAlgorithme et programmation A.S : 2008/2009 :
n
Mn
re
Mc
Ah
Ha
Dn
Hc
Ie
Hos niL YCEE SECON D A I RE DE G ACHE 9 P rof : Mr MA H D H I Ho s ni
2
LYCÉE DEGACH
A/S: 2007- 2008 DATE: NOVEMBRE
2007
D
EVOIR DE S YNT HESEN°:1
MA TIE RE : INFORMATIQUE NIV EA U : 4 SCIENTIFIQUES N P : MAHDHI HOSNINom : ……….. Note & Remarques Prénom : ……….
Classe : -- 4 Sc N --
Numéro : ….………...
E
XERCICE N° : 1 (3
POINTS)
Donner la valeur de S pour chacune des expressions arithmétiques suivantes :
* S := 5 + 37 MOD 10 * 2 + 5 / 2 ;
………
………
………
* S := 5 + 37 MOD (10 * 2) + 5 / 2 ;
………
………
………
* S := (13 DIV 3 * 2) < (13 MOD 3 * 2) ;
………
………
………
E
XERCICE N° : 2 (7
POINTS)
e)Soit M := ′Bonjour′
C := CONCAT (..., COPY( M ,... ,...) )
Compléter l’instruction Pascal précédente de façon à obtenir C :=’nour’.
f)
Soit CH:= ′To Pascal′
Donner les instructions algorithmiques permettant de modifier la chaîne de caractères CH de façon à ce que CH :=’Turbo Pascal’.
………..
………..
g)
Soit C:= ′PROGRAMMATIONS′ Donner la valeur de CH :
* CH := COPY ( C , LENGTH(C) MOD 10 +1 , POS ( ‘O’,C)) ;
………..
………..
………..
* CH := COPY ( C , LENGTH(C) MOD 10 +1 , POS (‘o’,C)) ;
………..
………..
L YCEE SECON D A I RE DE G ACHE 10 P rof : Mr MA H D H I Hos ni
………..
h)
Soit NB un entier naturel donné;
Donner les instructions Pascal permettant de déterminer le nombre de chiffre de l’entier NB.
………..
………..
………..e) Ecrire l’expression qui permet de convertir une heure H d’un forme numérique hhmm à la forme suivante hh:mm
Exemple : 130 devient 1:30
……….………...
……
……….……….
……….……….
……….……….
P
R OB LE ME
: (10
POINTS)
Ecrire une pré_analyse, une analyse puis déduit l’algorithme et la traduction Pascal d'un programme intitulé Permutation permettant de saisir une chaîne de caractère Ch (supposé formé d'un nom et d'un prénom séparés par un espace). Puis d’afficher la même chaîne tout en permutant le nom et le prénom.
N.B: Le nom et le prénom doivent être non composés, par conséquent, la chaîne Ch ne comportera qu'un seul espace qui ne figurera pas à son début.
Exemple :
- si CH ="Hammi Mohamed", le programme affichera "Mohamed Hammi".
- si CH ="Khaled SASSI", le programme affichera "SASSI Khaled".
B onne chance
2
LYCEE DEGACH
A/S: 2007- 2008 DATE: 28 JANVIER
2008
D
EVOIR DE C ONT ROLEN°:2
MA TIE RE : INFORMATIQUE CLAS SE : 4 SCIENTIFIQUES N P : MAHDHI HOSNINom : ……….. Note & Remarques Prénom : ……….
Classe : -- 4 Sc A --
Numéro : ….………...
E
XERCICE N° : 1 (10
POINTS)
Partie Théorique
Ecrire une pré-analyse, une analyse et un algorithme puis la traduction en Pascal d’un programme intitulé AFF_NOM qui permet de remplir un tableau T de N noms puis d’afficher les noms qui commencent par un voyelle et de remplacer par ‘*****’, dans les autres cas.
Exemple : T=
Ali Mohamed Ebtissem Olfa Thamer L’affichage sera : Ali ***** Ebtissem Olfa *****
Partie Pratique
E
XERCICE N°1 (10
POINTS)
Soit la séquence algorithmique suivante : 0) Début Devoir
1) Lire (n)
2) P our i de 1 à n f a i r e Lire (T[i])
F
in pour
3) [ Y T[1], Z T[1] ] P our i de 2 à n f a ire S
i (T[i]<=Y) a lors YT[i] ; F
in si S
i (T[i]>=Z) a lors ZT[i] ; F
in si F in pour 4) Ecrire(Y,Z)
5) Fin Devoir
Questions :
1- Traduire cet l’algorithme en turbo pascal et l’enregistrer et enregistrer au fur et à mesure votre programme dans un fichier a comme nom « votre nom » sur la racine C :.
2- Que fait cet algorithme ? (Ecrire la réponse comme commentaire à la fin du programme).
B onne chance
L YCEE SECON D A I RE DE G ACHE 12 P rof : Mr MA H D H I Hos ni
10 28 20 17 29 25 16 11
LYCEE DEGACHE
A/S: 2007- 2008 DATE: 02 MAI
2008
D
EVOIR DE C ON T ROLE
N° : 3 P
RATI
QUE
M
A T IE R E : INFORMATIQUE C
L AS S E : 4 SC EXP N P
R OF : MAHDHI HOSNI
D
U R EE : 1 HEURE
I m p o rt a nt :
1)
Une solution modulaire au problème est exigée2)
Enregistrez au fur et à mesure votre programme dans le dossier Bac2008 en lui donnant comme nom votre nom.3)
Attention, tout fichier que vous enregistrerez en dehors de votre dossier de travail ne sera ni recherché, ni pris en compte et sera systématiquement détruit.Soit T un tableau donné de n entiers (2 n 20). Les éléments du tableau T doivent être compris entre 10 et 40. Pour deux entiers p et q donnés, on se propose d’écrire un programme Pascal qui affichera :
0 si aucun des deux entiers p et q n’existe dans T
1 si un seul des deux entiers p ou q existe dans T
2 si les deux entiers p et q existent dans T N
B :
le remplissage du tableau T se fera automatiquement en utilisant la fonction RANDOM du langage Pascal, sachant que pour un naturel s, RANDOM(s) génère au hasard un entier entre 0 et s-1.
E
x e m p l e : Pour n=8, p=7 et q=25 et pour le tableau T suivant : T
Le programme affichera 1
G
r i l le d’ é val u a t ion :
Questions Nbre de points
Enregistrement dans Bac2008 1
Décomposition en modules utiles à la solution 4
12 23 45 22 16 70 91 42 11 88
LYCÉE DEGACHE
A/S: 2007- 2008 DATE: 25 FEVRIER
2008
D
EVOIR DE S YNT HESEN°:2
MA TIE RE : INFORMATIQUE CLAS SE : 4 SC-EXP N P : MAHDHI HOSNISi exécution et tests réussis Alors 15 Sinon
Compilation 4 Structures de données adéquates au problème posé 4 Traitements avec structures de contrôle adéquates 7
E
XERCICE N° : 1 (6
POINTS)
Soit la séquence algorithmique suivante : 0) Début devoir
1) Ecrire ('CH='), Lire (CH)
2) Tant que (Pos ('/',CH)<>0) Faire Ppos ('/',ch)
Efface (CH, P,1) Fin Tant que
3) Ecrire (CH) 4) Fin devoir Q
UESTIONS:
1) Traduire cet algorithme en PASCAL,
2) Faire le tournage à la main de cet algorithme avec CH = "25/02/2008"
3) Quel est le rôle de cette séquence algorithmique.
P
R OB LE ME
: (14
POINTS)
Ecrire une analyse puis un algorithme d’un programme intitulé « UNITE » qui permet de remplir un tableau T de N entiers compris entre 10 et 99 avec N≥10, puis affiche les éléments du T dont leurs u n i t é s sont paires et '**' dans les autres cas.
Exemples d'exécution : Si N=10 et T=
1 2 3 4 5 6 7 8 9 10
Alors l'affichage sera :
12 ** ** 22 16 70 ** 42 ** 88
B onne chance
REPUBLIQUE TUNISIENNE
MINISTERE DE L'EDUCATION ET DE LA FORMATION
**********
Direction régionale de Tozeur
Sections : Maths, Sciences Exp.
EPREUVE THEORIQUE D'INFORMATIQUE
Examen Bac Blanc (Mai 2008)
Date : Mardi 13 Mai 2008Durée : 1h 30 Coefficient : 1 Le sujet comporte deux parties indépendantes
Feuilles 1 et 2 doivent être remise à la fin de l'épreuve
Nom et Prénom : ………. Classe : ………...
Partie I (8 Points)
Ex
erc ice 1 (3 points)
En utilisant le type intervalle ou le type scalaire énuméré, donner une déclaration en Pascal des objets suivants :
Un type sections contenant les identificateurs suivants : math, scexp, scinfo, tech, ecoges et lettres.
………..
Un type Longueur dont les valeurs sont comprises entre 90 et 200.
………..
Ex
erc ice 2 (5 points)
Soit le programme en Pascal suivant : Program Exercice;
Uses wincrt;
Const Taille=8;
Type Vecteur = array [1..8] of ……….;
Var
………..……….
………..……….
Function Test (T: Vecteur): ……….. ; Var
………..……….
………..……….
Begin m :=0;
n :=0;
For i:=1 to Taille do Begin
If (T[i] mod 2 = 0) then m := m+1 else n := n+1;
38 4 53 20 172 93 15 33 End;
Test := (n=m);
End;
Begin
For i := 1 to Taille do Readln (A[i]);
If Test (A) then Writeln (' Le tableau est équilibré !') else Writeln (' Le tableau est non équilibré !');
End.
Questions : 1/
a- Remplir les pointillés par les déclarations nécessaires.
b- Justifier le choix de type des objets Vecteur et Test.
………
………
………
………
2/ Exécuter ce programme pour le tableau A suivant : A
………
………
………
………
………
………
………
………
3/ Quel est le rôle de ce programme ?
………
………
L YCEE SECON D A I RE DE G ACHE 16 P rof : Mr MA H D H I Ho s ni Mustapha Imen Ali Salah Olfa
253.000 290.300 522.000 400.000 360.000
Ali Salah Olfa Imen Mustapha
522.000 400.000 360.000 290.300 253.000
Partie II : Problème (12 Points)
Pour avoir une idée sur les employés qui reçoivent des salaires les plus élevés que les autres, un directeur d'une entreprise décide de faire un programme.
Il se sert, ainsi, de deux tableaux de n éléments (1<=n<=20) : le premier désigné par TN contient les noms des salariés ; le second désigné par TS contient les salaires de ces employés (TN[i] ET TS[i] sont
respectivement le nom et le salaire de l'employé i).
Ensuite, il classe ces deux tableaux TN et TS en ordre décroissant de TS.
Enfin, il affiche les noms des employés suivis respectivement de leurs salaires dont leurs salaires supérieurs ou égaux à 400.000.
Exemple :
Tableaux de départ :
TN TS Tableaux après tri :
TN TS Le programme affichera :
Ali : 522.000 Salah : 400.000 Travail demandé :
1- Diviser le problème en modules 2- Analyser chaque module
3- Présenter les algorithmes correspondants aux différents modules ainsi que l'algorithme du programme principal.