Vous êtes sur la page 1sur 6

CORRECTION BAC 2013 (SESSION PRINCIPALE)

Réalisée par : Badreddine MZOUGHI


(Professeur d'Informatique)

EXERCICE 1
1) Entier
2) Inconnue (" 5+3+14+7") = 5 + Inconnue (" 3+14+7")
= 5 + 3 + Inconnue (" 4+7 ")
= 5 + 3 + 14 + Inconnue (" 7 ")
= 5 + 3 + 14 + 7 + Inconnue (" ")
= 5 + 3 + 14 + 7 + 0
= 29
3) Cette fonction permet de calculer le résultat de l'expression se trouvant dans une chaîne CH.

EXERCICE 2
1)

Virus Jeunes Adultes


Heures
h=7 5 8
h=8 8 13
h=9 13 21

2)

0) DEF FN Heure_Dep (k : Entier) : Entier


1) [h  1 ; U  1 ; U2  0]
Tant que (U <= k) Faire
hh+1
U1  U2
U2  U
U  U1 + U2
Fin Tant que
2) Heure_Dep  h
3) Fin Heure_Dep

EXERCICE 3

0) DEF FN Vol_Sable (N : Entier ; Long, Larg : Réel) : Réel


1) [S  0 ; X  0 ; h  Larg / N ]
Pour i de 1 à N Faire
S  S – 3 * sin (X)
XX+h
Fin Pour
2) Vol_Sable  S * h * Long
3) Fin Vol_Sable

Page 1 / 6
PROBLEME
 Analyse de la procédure Creation :
DEF PROC Creation (var F:Fich)
Résultat = F
F= Associer (F,"C:\F_IPV6.dat")
Recréer (F)
Fin Creation

 Analyse de la Fonction Verif_Adresse:


DEF FN Verif_Adresse (Adr: Chaîne): Booléen
Résultat = Verif_Adresse
Verif_Adresse  V
V = [V  Vrai] Répéter
p  pos (".", Adr)
Si p=0 Alors
Valeur (Adr, d, e)
Si (d>=0) ET (d<=255) Alors
Efface (Adr, 1, long (Adr))
Sinon V  Faux
Fin Si
Sinon
ch  Sous_Chaîne (Adr, 1, p-1)
Valeur (ch, d, e);
Si (d>=0) ET (d<=255) Alors
Efface (Adr, 1, p)
Sinon
V Faux
Jusqu'à (V=Faux) OU (Adr=" ")
Fin Verif_Adresse

T.D.O Locaux

Objet Type / Nature Rôle

p Entier Position du caractère "." dans l'adresse IPV4

d Entier La valeur équivalente à la chaîne Adr.


La position de l'erreur lors de la transformation en
e Entier
Valeur de la chaîne Adr
ch Chaîne Permet de distinguer W, X, Y et Z

 Analyse de la Fonction Conv10_2:


DEF FN Conv10_2 (N : Entier) : Chaîne
Résultat = Bin

{Ajout des zéros à gauche pour terminer les 8 bits}


Bin = [] Tant que (long (Bin) < 8) Faire
Bin  "0" + Bin
Fin Tant que

Page 2 / 6
[Bin  '' "] Répéter
R  N mod 2
Convch (R, ch)
Bin  ch + Bin
N  N Div 2
Jusqu'à (N=0)
Fin Conv10_2

T.D.O Locaux

Objet Type / Nature Rôle

R Entier Reste de la division de N par 2

Bin Chaîne Résultat de la conversion de N de la base10 à la base 2

Ch Chaîne Résultat de la conversion de R en Chaîne

 Analyse de la Fonction Det_Classe:


{Fonction qui détermine la classe d'une adresse IPV4}
DEF FN Det_Classe (Adr : Chaîne) : Caractère
Résultat = Det_Classe
Det_Classe = [] Si Bin[1] ="0" Alors
Det_Classe  "A"
Sinon Si Sous_Chaîne (Bin, 1, 2) ="10" Alors
Det_Classe  "B"
Sinon Si Sous_Chaîne (Bin, 1, 3) ="110" Alors
Det_Classe  "C"
Sinon Si Sous_Chaîne (Bin, 1, 4) ="1110" Alors
Det_Classe  "D"
Sinon Det_Classe  "E"
Fin Si
Bin  FN Conv10_2 (X)
X = Valeur (ch, X, e)
ch  Sous_Chaîne (Adr, 1, 3)
Fin Det_Classe

T.D.O Locaux
Objet Type / Nature Rôle

Bin Chaîne Résultat de la conversion de X de la base10 à la base 2

Ch Chaîne Extraction de la chaîne représentant le nombre W.

X Entier La valeur équivalente à la chaîne Adr.

La position de l'erreur lors de la transformation en Valeur


e Entier
de la chaîne Adr

Conv10_2 Fonction Convertir un nombre de la base 10 à la base 2

Page 3 / 6
 Analyse de la Fonction Conv10_16:
DEF FN Conv10_16 (N : Entier) : Chaîne
Résultat = Hex
Hex = [] Tant que (long (Hex) < 2) Faire
Hex  "0" + Hex
Fin Tant que

[Hex  '' "] Répéter


R  N mod 16
Si R Dans [0..9] Alors
Convch (R, ch)
Sinon
ch  CHR (R+55)
Hex  ch + Hex
N  N Div 16
Fin Si
Jusqu'à (N=0)
Fin Conv10_16

T.D.O Locaux

Objet Type / Nature Rôle

R Entier Reste de la division de N par 16

Hex Chaîne Résultat de la conversion de N de la base10 à la base 16

ch Chaîne Résultat de la conversion de R en Chaîne

 Analyse de la Fonction ConvIPV4_IPV6:


{Détermination du bloc de 32 bits de l'adresse IPV6}
DEF FN ConvIPV4_IPV6 (Adr : Chaîne) : Chaîne
Résultat = ConvIPV4_IPV6
ConvIPV4_IPV6  Res
Res = Insérer (":", Res, 5)
[Res  '' "] Répéter
p  pos (".", Adr)
Si p=0 Alors
ch  Adr
Efface (Adr, 1, long (Adr))
Sinon
ch  Sous_Chaîne (Adr, 1, p-1)
Efface (Adr, 1, p)
Fin Si
Valeur (ch, d, e)
Hex  FN Conv10_16 (d)
Res  Res + Hex
Jusqu'à (Adr = '' ")
Fin ConvIPV4_IPV6

Page 4 / 6
T.D.O Locaux

Objet Type / Nature Rôle

Hex Chaîne Résultat de la conversion de X de la base10 à la base 2

Res Chaîne Extraction de la chaîne représentant le nombre W.

ch Chaîne Permet de distinguer W, X, Y et Z

p Entier Position du caractère "." dans l'adresse IPV4

d Entier La valeur équivalente à la chaîne Adr.

La position de l'erreur lors de la transformation en Valeur


e Entier
de la chaîne Adr

Conv10_16 Fonction Convertir un nombre de la base 10 à la base 16

 Analyse de la procédure Remplir_F:


DEF PROC Remplir_F (var FT: texte ; var F:Fich)
Résultat = F
F = [Ouvrir (F) ; Ouvrir (FT)] Tant que NON (Fin_Fichier (FT)) Faire
Lire_nl (FT, Adr)
Si FN Verif_Adresse (Adr) Alors
E.IPV4  Adr
E.Classe  FN Det_Classe (Adr)
E.IPV6  FN ConvIPV4_IPV6 (Adr)
Ecrire (F, E)
Fin Si
Fin Tant que
Fin Remplir_F

T.D.O Locaux

Objet Type / Nature Rôle

E ADR_IP Reste de la division de N par 16

Adr Chaîne Contient une adresse IPV4

Verif_Adresse Fonction Vérifier la validité d'une adresse IPV4

Det_Classe Fonction Déterminer la classe d'une adresse IPV4

ConvIPV4_IPV6 Fonction Convertir une adresse de IPV4 à IPV6

Page 5 / 6
 Analyse du Programme principal:
Nom : BAC
Résultat = PROC Remplir_F (FT, F)
F = PROC Creation (F)
FT = Associer (FT,"C:\F_IPV4.txt")
Fermer (F)
Fermer (FT)
Fin BAC

T.D.N.T

Types

ADR_IP = Enregistrement
IPV4, IPV6 : Chaîne
Classe : Caractère
Fin ADR_IP

Fich = Fichier de ADR_IP

T.D.O Globaux

Objet Type / Nature Rôle

Contient les adresses IPV4 valides, leurs classes et leurs


F Fich
équivalents en IPV6

FT Texte Contient les adresses IPV4

Remplir_F Procédure Permet de remplir le fichier d'enregistrements "IPV6.dat"

Creation Procédure Permet de créer le fichier "IPV6.dat"

Page 6 / 6

Vous aimerez peut-être aussi