• Aucun résultat trouvé

Examen du baccalauréat 2014 : Session Principale Corrigé de l’épreuve d’Algorithmique et de Programmation - SI

N/A
N/A
Protected

Academic year: 2022

Partager "Examen du baccalauréat 2014 : Session Principale Corrigé de l’épreuve d’Algorithmique et de Programmation - SI"

Copied!
4
0
0

Texte intégral

(1)

Corrigé Algorithmique et Programmation – SI – Bac 2014 -Session Principale Page 1 / 4

Examen du baccalauréat 2014 : Session Principale

Corrigé de l’épreuve d’Algorithmique et de Programmation - SI

Exercice 1 :( 2,25 pts = 0.25 x 9)

Valider chacune des propositions suivantes en mettant dans la case correspondante la lettre V si elle est correcte ou la lettre F sinon.

1- Après exécution du programme Jeux ci-dessus pour N=1, le message affiché sera :

F "Balle sous gobelet 1" V

"Balle sous gobelet 2" F "Balle sous gobelet 3"

2- Soit f un fichier de booléens.

a- Pour remplir un champ de la variable g3, on peut utiliser l’instruction :

F Lire (g3.balle) V Lire (g3.couleur) V Lire (f, g3.balle)

b- Pour afficher le contenu de la variable g1, on peut utiliser l’instruction :

F Ecrire (g1) V

Ecrire (g1.balle, g1.couleur) F Ecrire (f, g1.balle)

Exercice 2 : (2,75 points)

0) DEF FN Rech_cycle (h, rang : entier ) : entier 1) Si (h = 4) Alors Rech_cycle ← rang

Sinon Si (h mod 2 = 0) Alors

Rech_cycle ← FN Rech_cycle(h div 2, rang+1) Sinon Rech_cycle ← FN Rech_cycle(3*h+1, rang+1) FinSi

2) Fin FN Rech_cycle

Exercice 3 : (4 points)

0) DEF FN calcul_pgcd (M : Mat ; N : entier): entier 1) Pour i de 2 à N faire

Pour j de 1 à N-i+1 faire

M[i, j] FN pgcd (M[i-1, j], M[i-1, j+1]) Fin Pour

Fin Pour

2) calcul_pgcd M[N, 1]

3) Fin calcul_pgcd

(2)

Corrigé Algorithmique et Programmation – SI – Bac 2014 -Session Principale Page 2 / 4 0) DEF FN pgcd (a, b: entier) : entier

1) Si (a = b) alors pgcd  a

Sinon si (a > b) alors pgcd FN pgcd (a-b, b) Sinon pgcd FN pgcd (a, b-a)

FinSi 2) Fin pgcd

Problème : (11 points)

Analyse du programme principal : Nom : Calcul_M_Molaire

Résultat = fr

fr = [Assigner(fr, "C:\Resultats.dat")] PROC Stocker (fa, fr, fm) fa = [Assigner(fa , "C:\Atomes.dat") ] PROC Remplir (fa) fm= [Assigner( fm , "C:\Molecules.txt")]

Fin Calcul_M_Molaire T.D.N.T

Types

Atome_mol = Enregistrement Nom : Chaîne

Masse : réel Fin Atome_mol

Masse_atome_mol = Ficher d’Atome_mol

T.D.O.G.

Objet Type/Nature fa,fr

fm Stocker Remplir

Masse_atome_mol Text

Procédure Procédure

Analyse de la procédure Stocker :

DEF PROC Stocker (var fma, R: Masse_atome_mol; var f:texte) Resultat =R

R= [Ouvrir (fma), Ouvrir (f), Recréer (R)]

Tant que non(fin_fichier (f)) faire Lire_nl(f , ch)

mm.nomSous chaine(ch,1,pos("*",ch)-1) Efface (ch,1,pos("*",ch))

mm.masse FN Calcul( ch , fma ) Ecrire(R,mm)

FinTantque Fermer(f) Fermer(R) Fermer(fma) Fin Stocker

(3)

Corrigé Algorithmique et Programmation – SI – Bac 2014 -Session Principale Page 3 / 4 T.D.O.L.

Objet Type/Nature Ch

mm Calcul

Chaîne Atome_mol Fonction

Analyse de la fonction Calcul :

Def Fn Calcul (ch : chaîne ; var fa : masse_atome_mol) : Réel Resultat = Calcul M

M = [M0] Répéter Atome ch[1]

Efface(ch,1,1)

Si(ch[1] dans ["a".."z"]) ET (ch<>"") Alors atomeatome + ch[1]

Efface(ch,1,1) Fin Si

[nb 0] Tant que (ch[1] dans ["0".."9"]) et (ch<>"") Faire Valeur (ch[1], x, e)

nbnb*10 + x Efface (ch,1,1) Fin tant que

Si (nb=0) Alors nb1 Fin Si

m m + nb * FN masse_at(fa,atome) Jusqu’à (ch = "")

Fin Calcul T.D.O.L.

Objet Type/Nature m

nb ,x, e atome masse_at

Réel Entier Chaîne[2]

Fonction

Analyse de la fonction masse_at :

DEF FN masse_at (var f : Masse_atome_mol ; nomAt : Chaîne) : réel Résultat = masse_at M

M = [Ouvrir(f) , Trouve faux ]

Tant que (NON (Fin_fichier(f) )) et ( NON (Trouve)) Faire Lire (f, At)

Si (At.nom = nomAt) Alors Trouve vrai

M At.masse FinSi

FinTantque Fermer (f) Fin masse_at

(4)

Corrigé Algorithmique et Programmation – SI – Bac 2014 -Session Principale Page 4 / 4 TDOL

Objet Type/Nature M

Trouve At

Réel Booléen Atome_mol

Analyse de la procédure Remplir :

DEF PROC Remplir (var fma: Masse_atome_mol) Resultat =fma

fma= [Recréer (fma)]

Pour i de 1 à N faire Avec atome faire Répéter

nom = Donnée ("Nom atome : ")

Jusqu'à ((Long(nom) =1) ET (nom[1] dans ["A".."Z"])) ou

((Long (nom)=2) ET (nom[1] DANS ["A".."Z"]) ET(nom[2] DANS ["a".."z"])) Répéter

Masse = donnée ("Masse atome : ") Jusqu’à (Masse >0)

Fin Avec

Ecrire (fma,atome) Fin pour

Fermer(fma) N = Répéter

N=donnée ("Nombre d'atomes : ") Jusqu'à N dans [1..50]

Fin Remplir T.D.O.L.

Objet Type/Nature N

atome

Octet Atome_mol

Références

Documents relatifs

In what follows, we consider Braginskii’s closure for the stress tensor in order to derive a model with FLR terms and compare it with the above model given by Eqs.. DERIVATION

2) a) On sait que [OA] est la hauteur issue de A dans le triangle ABD.. On en déduit que D’ est l’orthocentre du

[r]

On se propose de créer deux fichiers textes "Div13.txt" et "Div7.txt" contenant respectivement les valeurs, de "Nombre.txt", qui sont divisibles par 13 et par 7 à raison d’un entier

commandes avec la formule de Wilson. -prévoir une solution pour réduire les coûts de stockage. du nombre optimal de commandes. Suite à un investissement deux solutions de

On peut remarquer que cette droite coupe la courbe en deux points... Cela correspond à la fabrication et vente de

 Soit le code 38 du sujet de la question ne figure pas dans la table SUJET, Dans ce cas, il faut l’insérer avec le libellé ‘Sport’ dans la table SUJET. Liste des

Le tableau suivant donne (en milliards) le nombre d’abonnements au téléphone mobile dans le monde.. b) La forme allongée du nuage des points permet d’envisager un ajustement