0% ont trouvé ce document utile (0 vote)
328 vues5 pages

Examen d'Algorithmique L1 2018/2019

Transféré par

maguelahnadia609
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
328 vues5 pages

Examen d'Algorithmique L1 2018/2019

Transféré par

maguelahnadia609
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Université de BATNA 2 Faculté de MI Département SCMI 1ère Année Licence (L1) 2018/2019

Examen en Algorithmique 1 -Session normale-


(Durée : 1h 30min)

Remarque : un point pour la lisibilité et la clarté des réponses

Exercice 1 : (5 points 3+2)


1. Corriger le programme en C suivant :

#include<stdio.h>
main
{
int x ,z, i
scanf ( "%c", x) ;
z = x*x*x ;
if z < 100
x = 10 ;
else
x=0;
printf ("x=", x);

2. Donner les traces d’exécution pour x=2 et x=5


Exercice 2 : (5 points 2+3)
Soit l’algorithme suivant :
Algorithme exo2
Variable n, x , i : entier
Début
Lire(n), x ← 1
Pour i de 1 à 10 faire
x ← x*n
Fin pour
Ecrire(x)
Fin

1. Que fait cet algorithme ?


2. Réécrire l’algorithme en remplaçant la boucle pour par :
a. La boucle tant que
b. La boucle répéter

Exercice 3 : (5 points)
Ecrire un algorithme qui affiche le nombre d’occurrence (répétition) d’un entier x dans un tableau de 100
entiers.
Exercice 4 : (4 points)
Ecrire un algorithme qui lit au clavier une suite de nombres réels (correspondant à des notes). Les notes
sont supérieures ou égales à 0 et inférieures ou égales à 20. La lecture se termine par la valeur -1.
Puis l’algorithme :
1 Calcule et affiche la moyenne de ces valeurs.
2 Affiche la note la plus élevée et la note la moins élevée.
BON COURAGE
Université de BATNA 2 Faculté de MI Département SCMI 1ère Année Licence (L1) 2018/2019

Corrigé type du module Algorithmique 1

Un point pour la lisibilité et la clarté des réponses

Exercice 1 (5 points)

#include<stdio.h> Pour x=2 :


main() 0,5 x z sortie
{
2 8 x=10
int x ,z ; 0,5 10 1
scanf ("%d", &x) ; 0,5
z = x*x*x ;
if (z<100) 0,5 Pour x=5 :
x = 10 ; x z sortie
else 5 125 x=0
x=0; 0 1
printf ("x=%d", x); 0,5
} 0,5

Exercice 2 (5 points)

1) L’algorithme calcule 𝒏𝟏𝟎 2

2)
Algorithme exo2 Algorithme exo2
Variable n, x,i : entier Variable n, x,i : entier
Début Début
Lire(n), x←1, i←1 0,5 Lire(n), x←1, i←1 0,5
Tq (i<=10) faire 0,5 Répéter
x← x*n , i←i+1 0,5 x← x*n , i←i+1 0,5
Fin Tq Jusqu’à (i>10) 0,5
Ecrire(x) Ecrire(x)
Fin Fin
Université de BATNA 2 Faculté de MI Département SCMI 1ère Année Licence (L1) 2018/2019

Exercice 3 (5 points)

Algorithme exo3 Algorithme exo3


Variable 0,5 Variable 0,5
i,x,r : entier i , x , r, t : entier
t : tableau de 100 entier Début
Début ecrire(‘Taper une valeur entière’)
ecrire(‘Tapez les valeurs du tableau’) lire(x) 0,5
Pour i de 1 à 100 faire r ← 0 0,5
lire(t[i]) 0,5 ecrire(‘Tapez les valeurs de la suite’)
FinPour Pour i de 1 à 100 faire 0,5
ecrire(‘Taper une valeur entière’) lire(t) 0,5
lire(x) 0,5 Si ( x = t) alors 1
r ← 0 0,5 r←r+1 0,5
Pour i de 1 à 100 faire 0,5 Finsi
Si ( x = t[i]) alors 1 FinPour
r←r+1 0,5 ecrire( ‘Nombre d’occurrence de’, x , ‘est ’, r ) 1
Finsi Fin
FinPour
ecrire(’Nombre d’occurrence de ’, x , ‘est ’, r ) 1
Fin

Exercice 4 (4 points)

Algorithme Exo4
variable
note , notemin , notemax , som : réel
i : entier
Début
ecrire(‘introduire les notes dans l’intervalle [0 .. 20] et -1 quand vous voulez arrêter’)
lire(note), som  0, notemin  20, notemax  0, i  0 1
Tq (note ≠ -1) faire 0,5
Si ( ( note >= 0 ) et ( note <=20 ) alors
i  i+1 0,25
som  som + note 0,25
Si ( notemax < note) alors 0,25
notemax  note 0,25
FSi
Si (notemin > note) alors 0,25
notemin  note 0,25
FSi
Fsi
Lire (note) 0,25
FTq
Si ( i = 0) alors
ecrire(‘Erreur pas de note valide ’)
sinon
ecrire(‘La moyenne de’ , i , ‘notes est :’ , som /i) 0,25
ecrire(‘La note la plus élevée est :’ , notemax) 0,25
ecrire (‘La note la moins élevée est :’, notemin) 0,25
Fsi
Fin
Université de BATNA 2 Faculté de MI Département SCMI
Examen en Algorithmique 1 -Session normale- « Progression 2018/2019» Durée : 1h 30min
Nom : ……………………………………..Prénom : ……………………………………Note : /20

Exercice 1 : (5 points) (Question de cours)

1- Les trois parties d’un algorithme sont : …………………………………………………………………..


2- Si le nombre d’itération est connu on utilise la boucle : …………………………………………………
3- La boucle qui s’exécute au moins une fois est la boucle : …………………………………………...…..

Exercice 2 : (5 points 3+1+1) On donne le programme PASCAL suivant :

Program Exam ; 1) Donner les nouvelles valeurs prises par n1 et n2


var n1,n2,tmp : integer ; N1 125
begin
write(‘introduisez deux valeurs :’) ;
readln(n1, n2) ; N2 55
while (n2<>0) do
begin
tmp :=n1 ; 2) Donner le résultat final du programme :
n1 :=n2 ;
n2 :=tmp mod n2 ;
end ; 3) Que fait ce programme ?
if n1=0 then writeln(‘erreur de données’)
else writeln(‘résultat = ‘, n1) ;
end. …………………………………………………..

Exercice 3 : (6 points 4,5+1,5) : 1) Réécrire le programme correct correspondant au code suivant :

Program Ex 02 ;
var n,x,i,s : integer ;
write(introduisez deux nombres :) ;
readln(‘n,x’) ;
s :=1
for i :=1 to n do ;
s =s*x
writeln(‘résultat = ‘ s) ;
end ;

2) Si on donne : n=5, x=4 qu’affiche le programme comme résultat ? …………………………………


Exercice 4 : (4 points) :
Ecrire un programme Pascal qui lit au clavier une suite de nombres réels (correspondant à des notes)
supérieur ou égale à 0 et inférieur ou égale à 20, terminée par la valeur -1, et calculer la moyenne olympique
de ces valeurs, c-à-d la moyenne des notes sans prendre en compte ni la note la plus élevée ni la note la
moins élevée.
(NB : écrire le programme au verso). Bonne Chance
Université de BATNA 2 Faculté de MI Département SCMI
Examen en Algorithmique 1 -Session normale- « Progression 2018/2019» Durée : 1h 30min

Corrigé type
Exercice 1 : (5 points) (Question de cours)

4- Les trois parties d’un algorithme sont : En-tête, Déclaration, Traitement


5- Si le nombre d’itération est connu on utilise la boucle : POUR (for)
6- La boucle qui s’exécute au moins une fois est la boucle : REPETER (repeat)

Exercice 2 : (5 points 3+1+1) On donne le programme PASCAL suivant :

Program Exam ; 4) Donner les nouvelles valeurs prises par n1 et n2


var n1,n2,tmp : integer ; N1 125 55 15 10 5
begin
write(‘introduisez deux valeurs :’) ;
readln(n1, n2) ; N2 55 15 10 5 0
while (n2<>0) do
begin
tmp :=n1 ;
5) Donner le résultat final du programme :
n1 :=n2 ;
n2 :=tmp mod n2 ; 5
end ;
if n1=0 then writeln(‘erreur de données’) 6) Que fait ce programme ?
else writeln(‘résultat = ‘, n1) ;
PGCD(n1,n2)
end.

Exercice 3 : (6 points 4,5+1,5) : 1) Réécrire le programme correct correspondant au code suivant :

Program Ex 02 ; Program Ex_02 ;


var n,x,i,s : integer ; var n,x,i,s : integer ;
write(introduisez deux nombres :) ; begin
readln(‘n,x’) ; write(‘introduisez deux nombres :’) ;
s :=1 readln(n,x) ;
for i :=1 to n do ; s :=1 ;
s =s*x for i :=1 to n do
writeln(‘résultat = ‘ s) ; s =s*x ;
end ; writeln(‘résultat = ‘ , s) ;
end .
2) Si on donne : n=5, x=4 le programme affiche comme résultat : 1024
Exercice 4 : (4 points) :
Program Exo4 ; Repeat If (n<>-1) then
Var write(‘Donner une note’) ; Begin
n,min,max,som :real ; readln(n) ; If n<min then min :=n ;
i :integer ; while(n<0)or(n>20) and (n<>-1) do If n>max then max :=n ;
begin begin i :=i+1 ;
i :=0 ; min :=21 ; writeln(‘une note superieur ou som :=som+n ;
max :=0 ; som :=0 ; egale a 0 et inferieur ou egale a Until (n=-1) ;
20’) ; Writeln(‘la moyenne olympique
Readln(n) ; =’, (som-max-min)/(i-2)) ;
End ; End.

Vous aimerez peut-être aussi