Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Examen 2 Corrigé

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 7

' ' -. f.

Correction de I' examen 02

Exercice 01 : Questions de cours


1. · Les identificateurs valides sont :
• Prix_acha:t
• calcul_du_prix_total.
2. Difference entre une procedure et une fonction .
• La difference entre une procedure et une fonction, c'est que Ia .
deuxieme . retoume une seule valeur tandis que la premiere retoume
plusieurs valeurs (pas une) ou aucune valeur.
· • Une macro VBA pour Excel est une procedure sans para.metres. l!ne
procedure est une · serie d'instructions effectuant une tache bien
determinee. Une macro sert aautomatiser les taches repetitives.
3. Les instructions erronees
• 4 8 car 4 n'est pas une variable ,
• i + i. L' instruction qui est juste : i i + I
• i f:-2,5. L'instruction qui est j~ste est : i +- 2.5 .
4. Difference entre le OU logique et le OUex (ou exclusif) . ·
Le OU logique est defini de la rtjaniere suivante : a OU b est VRAI si et
seulement si a est VRAI au b est 1/RAL Si a est vrai et que b est vr¥ aussi,
alors a OU best vrai. Le tableau shivant presente la table de verite de OU: .
a b aOUb
0 0 0
0 J 1
1 0 1'
1 .1 I
· Table de verite de OU ·
La. fonction OU exdusif, souverit appeiee XOR (eXciusive OR), -est un
operateur logique .de l'algebre de 'Boole. A. deux opcrandes, qui peuvcnt
nvoir chacun la valeur VRAI au ·FAUX, il associe un resultat qui a Iui-
mcmc la valeur VRAI sculcmcnt si les dcux opcrandcs ant des valcurs
distinctes. Le tableau suivant presente la tablt".de verite de OUex:
a b a OUex b
0 0 0
0 1 1
.1 0 1
1 1 0
Table de verite de OUex
C?m~e on peut le voir, l'operateur.togique OUex (OU exclusif) peut se
defini~ par les deux phrases suivantes qui sont equivalentes : .
Le resultat est VRAI· si un et un seul des operandes a et best VRAI
OU

resultat es·t VRAI si les deux op.erandes a et b ont des valeurs distinctes
Exercice 02: Affichage al'ecran
Instructions
. Affichage al'ccran
I 12
2 la valeur de X est :
3 La" valeur de T[2] est: 8 .
J

Exercice 03 : Service photocopie


Algorithme :
Algorithme Facture .
Variables Nombre: Entier
Prix: Reel .
Debut· · : ")
Ecrire ("Donner le nombre de_ photocopies :
Lire(Nombre)
Si Nombre <= 10 Alors ·
Prix Nombre * 0.50
·~;"'""'~; 'hln~bre <~ 30 A!ors .
U•F;ri;:_:_·10~~ 0.50 + (Nombre - 10) * 0.40 •
Sinon · . . .. 30) * O30
Prix 10 * 0.50 +20 * 0.40 + (Nombre - .
FinSi
Ecrire("Le prix total est: ", Prix, " Dh ") ·
Fin . .
..
Exercice 01 : Fonction Signe
,
•,•' ....
I •

1. · La fonc~ion Signe ..
' Fonction Signe
Fonction Signe(x : reel) : reel
Debut
SI x > 0 alors
Retourner 1
SinonSI x = 0 alors
Retourner0
Sinon
Retourner -1
FinSI .
FinFonct ·
2. Procedure qui appelle la fonction Signe
1
Procedure qui appelle la fonction Signe
Procedure Appel_SigneO
Variable y : reel
Debut
Ecrire("Donner la valeur de y ; ")
Lire(y)
Ecrire( 11 Signe( 11 , y, 11 ) = 11 , Signe(y))
FinProc

Exercice 05 : · Creation et ·affichage d'un tableau a2


dimensions
_Algorithme:
Algorithm~ tableau_2dimensions_creation _affichage
II De9laration dµ tableau t
I
Variables t : tableau[3 ,5] d'entiers •

I i, j, k : entiers
Debut
// Initialisation de -variable k a1
k f-:- 1
// Creation du tableau~t-. -
• - !i;_.' ·· ~ -

Po~r i I jusqu'A 3 faire


Pour j 1 jusqu' a5 faire
t[ij] E- k
k~ k+ 1
FinPour
FinPour
// Affichage du tableau t
Pour i I jusqu' a3 faire
Pour j I jusqu' a5 faire
· Ecrire("t[", i , 11 , 11 , j, "] = 11 , t[i,j])
FinPour
FinPour
I Fin

Exercice 06 : PPCM
Le PPCM de deux entiers strictement ·positifs est defini comme etant
l'entier positif le plus petit qui soit un multiple de ces deux entiers. Par
exemple, PPCM(l5, 20) = 60, PPCM(l4, 14) = 14, PPCM(2, 4) = 4,
PPCM(5, 9) = 45 etc .. Si l'un des deux entiers vaut 0, le PPCM est 0.
Solution 1:
Pour rechercher le PPCM de deux entiers nl et n2 strictement positifs, on
suit les etapes suivantes :
1. soit p le maximum de nl et n2;
2. verifier sip est divis"ible par nl et i:i2 ;
3. si oui, PPCM =pet l'algorithme est termine;
4. sinon, incrementer p et reprendre al'etape 2.
Fonction PPCM :
fonction PPCM(nl : entier, n2: e.ntier) : entier
Variables p: en tier . ..
Trouve: logique
·.'
Debut /
Si ml < n2 alors ,. ...···J'
_.,,.,"
D "'-D2
.'
Sinon
p .- nl
FinSi . ,
Trouv;-·~ faux ..
TantQue Trouve = faux faire
·. Si (p mod n1 = 0) et (p n1od n2 ::= 0) alors
.l Trou ve +- vrai · ~: · ·
FinSi
Si Trouve = faux alors
p~p+ l
FinSi
FinTantQue
Retou~erp
FinFonct·,
Algorithme qui integre la fonctidn .PPCM :
Algorithme calcul_ppcm
Variables ml, m2: entiers
// Declaration de la fonction PPCM ~-
fonction PPCM(n 1 : en tier, n2: ef\tier) : entier
Variables p: entier
Ttouve: logique
Debut
Si ml< n2 alors
p +-n2
Sinon
p +- nl
FinSi
Trouve .._ faux
T~ntQue Trouve = faux faire
Si (p mod nI = 0) et (p mod n2 = 0) alors
-Trouve +- vrai , .
FinSi .
Si Trouve = faux alors
p .-p + 1
FinSi
F1nTantQue
Retou~erp
FinFonct
// Partie principale
Debut
Ecrire("Donnez un_ en tier strictement positifml i:-
Lire(m 1) ·
Ecrire("Donnez·un entier strictement positifm2 : i)
Lire(m2) · ·
Ecrire(" ~e PPCM de· , ml, et , m2, 11 est:: 111.,.ffCM(ml, m2)
11 11 11

Fin. · . ,. \ ·
Solution 2:
Pour chercher un multiple commun de n 1 et rn2 an~ ti 1 > n2, on cherche
parmi les_ mu~tiples du pius grand. Le premier~~ qui est divisible par ·
· n2 est le PPCM de nl et ni · ·
fonction PPCM(n 1 : entier, n2: entier): entier
Variables p : entier
Debut
p ._nl
TantQue p mod n2 if:. 0 faire // n2 ne devisse ·pas P
p -~ p + nl -
FinTanQue
Retournerp
FinFonct

Exercice 07 : Conversion d'uh entier natnrel en base 2 .


Pour obtenir !'expression binaire d'tin nombre eiwprime en decimal. il suffit
de diviser successivem~nt ce norribre par 2 jusqu'a ce que le quotient-
obtenu soit egat aO:Le nombre cherche est domne pnr le~.~stes s111:cessifs
des divisions pris du bas vers le haut. n
. : 'r
Excmplc: conversion du nombrc decimal 223 en i _laire
\,;
:•·, , .

~),o = (11011111)2
. entier long est code sur 32 bits, pour cette raiso~ ·on va utiiiser un
w;teur de 32 elements pour stocker Ies restes successifs des divisons de
~ti~pu2. . . •

~orithme:
!Orithme conversion_en..:.base_2
riables : n, i, j : en tier
·code: tableau[O .. 31] d'entiers
but.
:crire("Donner un entier naturel : 11 )
~ire(n)
?our i .- 0 jusqu'a 31 faire
Code[i] .- n Mod 2
n ·+-
. nDiv2
Sin= 0 alors
j~i
II Sortir de Ia boucle Pour
Quitter Pour •··
FinSI
..
c'inPour
.. .
/_Alfichage du code binaire de l'entier n
>o~r i .- j jusqu'a Opas -1 faire
Ecrire(<;p~e(i)) . · .·· .' . .. .·•
c'inPour · .· · ·
' ,. '"

Vous aimerez peut-être aussi