RÉPUBLIQUE TUNISIENNE — MINISTÈRE DE L’ÉDUCATION

EXAMEN DU BACCALAURÉAT — Session Principale 2026

Section : Sciences de l’informatique | Épreuve : Algorithmique et Programmation | Durée : 3h

Exercice 1 (3,25 points)

Soit l’algorithme de la fonction Inconnue suivant :

Fonction Inconnue (a, b: Entier): Entier
DEBUT
  Si b = 0 Alors
    Retourner 0
  Sinon
    Si b Mod 2 = 0 Alors
      Retourner Inconnue (2*a, b Div 2)
    Sinon
      Retourner a + Inconnue (a, b - 1)
    FinSi
  FinSi
FIN

NB : a et b sont deux entiers positifs.

Travail demandé :

  1. Pour chacun des deux cas suivants, donner le résultat retourné par la fonction Inconnue :
  2. En déduire le rôle de la fonction Inconnue.
  3. Soit Ft un fichier texte déjà rempli, contenant dans chaque ligne deux entiers positifs A et B séparés par un espace. À partir du fichier Ft, on se propose de créer et de remplir un fichier d’enregistrements Fb où chaque enregistrement est composé des champs A, B et R (le résultat de Inconnue(A, B)).
    On donne l’algorithme de la procédure Remplir comportant des erreurs :
    Procédure Remplir (ch1, ch2: Chaine de caractères)
    DEBUT
      Ouvrir (ch1, Ft, "r")
      Ouvrir (ch2, Fb, "rb")
      Tant que Fin_fichier (Ft) Faire
        Lire (Ft, ch)
        p ← Pos(" ", ch)
        V.A ← Valeur(Sous_chaine (ch, 0, p))
        V.B ← Valeur(Effacer (ch, 0, p+1))
        V.R ← Inconnue (A, B)
        Ecrire (V, Fb)
      Fin Tant que
      Fermer (Ft)
      Fermer (Fb)
    FIN
    a- Reproduire et corriger les lignes erronées dans un tableau.
    b- Dresser le tableau de déclaration des objets locaux (TDOL) et des nouveaux types (TDNT).

Corrigé & Barème — Exercice 1 (Total : 6,5 pts)

1) Résultats (2 pts) :
– Cas 1 (a=8, b=7) : 56
– Cas 2 (a=10, b=6) : 60

2) Rôle (1 pt) : La fonction Inconnue retourne le résultat de la multiplication de deux entiers.

3) Correction de la procédure Remplir (2,5 pts) :

Ligne erronéeCorrection
Ouvrir (ch2, Fb, "rb")Ouvrir (ch2, Fb, "wb")
Tant que Fin_fichier (Ft) FaireTant que Non (Fin_fichier (Ft)) Faire
Lire (Ft, ch)Lire_ligne (Ft, ch)
V.R ← Inconnue (A, B)V.R ← Inconnue (V.A, V.B)
Ecrire (V, Fb)Ecrire (Fb, V)

TDNT & TDOL (1 pt) :

Nouveau type
Enreg = Enregistrement
  A: Entier
  B: Entier
  R: Entier
Fin
Fiche = Fichier d'Enreg

Objet | Type/Nature
Ft | Fichier texte
Fb | Fiche
ch | Chaine de caractères
p | Entier
V | Enreg