Axe : Données & Types Sections : Sc. Expérimentales, Mathématiques & Sc. Techniques Conventions 2024-2025

Série N°1 : Les structures de données

Série N°1

Exercice 1 : Identificateurs, Aléa & Tableaux

🟢 Facile Bac 2016 adapté
💡 Rappel de cours : Identificateurs & Fonction Aléa
  • Un identificateur commence par une lettre ou un souligné _ (pas de chiffre initial, pas d'espaces ni de tirets).
  • En Algorithme, Aléa(a, b) génère un entier aléatoire dans l'intervalle fermé [a, b].
  • En Python, un tableau est représenté par un array NumPy dont les indices commencent obligatoirement par 0.

Cocher les bonnes réponses :

Question 1

L’identificateur d’une variable :

  • Ne doit pas commencer par un chiffre
  • Peut contenir un espace
  • Peut contenir le caractère souligné « _ »
Question 2

L’instruction qui permet d’affecter à une variable X, une valeur aléatoire de l’intervalle [2, 10] est :

  • X ← 2 + Aléa(0, 10)
  • X ← 2 + Aléa(0, 8)
  • X ← Aléa(2, 10)
  • X ← Aléa(2, 11)
Question 3

Une structure de données tableau peut :

  • Contenir des éléments de types différents
  • Etre déclarée avec une taille maximale variable
  • Avoir des indices négatifs
  • Avoir des indices commençant par 0

Exercice 2 : Fonctions Standards sur Chaînes & Nombres

🟢 Facile Bac 2013 adapté
💡 Rappel de cours : Fonctions prédéfinies
  • sous_chaine(ch, debut, fin) extrait fin-debut caractères à partir du rang debut. Le résultat est toujours de type chaîne.
  • Arrondi(x) retourne l'entier le plus proche de la valeur réelle x.

Cocher les bonnes réponses :

Question 1

Soit l’instruction C ← sous_chaine("Baccalauréat", 3, 4) :

  • Elle permet d’affecter le caractère "c" à la variable C
  • La variable C doit être déclarée de type caractère
  • La variable C doit être déclarée de type chaîne
Question 2

L’instruction X ← Aléa(0, 6) + 4 permet d’affecter à la variable X une valeur aléatoire de l’intervalle :

  • [4, 6]
  • [4, 10]
  • [4, 9]
Question 3

L’instruction R ← Arrondi(12.4) permet d’affecter à la variable R :

  • L’entier 12
  • L’entier 13
  • Le réel 13.0
  • Le réel 12.0
Question 4

Soit l’affectation C ← Majus("?") :

  • Elle permet d’affecter à la variable C le caractère "?" en gras
  • Elle permet d’affecter à la variable C le caractère "?"
  • La variable C doit être de type caractère
  • La variable C doit être de type chaîne

Exercice 3 : Découpage & Concaténation de Chaînes

🟡 Moyen Bac 2013
💡 Rappel de cours : Tranches de chaînes en Python (Slicing)
  • En Python, ch[debut:fin] extrait les caractères de l'indice debut jusqu'à fin - 1.
  • La fonction len(ch) retourne le nombre total de caractères de la chaîne.
  • La fonction int(ch) convertit une chaîne représentant un nombre en entier.

Soit la partie déclarative suivante d’un programme Pascal / Python :

# Program composer
# Constantes
MOT1 = "Informatique"
MOT2 = "3D"
# Variables
mot3 = ""
mot4 = ""
n = 0
m = 0

Cocher les bonnes réponses :

Question 1

À partir de la constante MOT1, mettre dans la variable mot3 le terme 'format' :

  • mot3 = MOT1[2:8]
  • mot3 = MOT1[2:9]
  • mot3 = MOT1[2:5] + MOT1[5:8]
  • mot3 = MOT1[2]+MOT1[3]+MOT1[4]+MOT1[5]+MOT1[6]+MOT1[7]
Question 2

À partir de mot3 et mot2, mettre dans la variable mot4 le terme 'format 3D' :

  • mot4 = mot3[0:6] + ' ' + MOT2[0] + MOT2[1]
  • mot4 = MOT2 + ' ' + mot3
  • mot4 = mot3 + MOT2
  • mot4 = mot3 + ' ' + MOT2
Question 3

Mettre dans n la longueur de la chaîne mot4 :

  • n ← len(mot4)
  • n = len(mot4)
  • n = len(MOT2) + len(mot3) + 1
Question 4

À partir de la constante MOT2, mettre dans m la valeur 3 :

  • m = val(MOT2[1])
  • int(MOT2[1], m, e)
  • m = int(MOT2[1])
  • m = length(MOT2) + 1

Exercice 4 : Fonctions Prédéfinies Numériques & Chaînes

🟡 Moyen Bac 2012
💡 Rappel de cours : Fonctions prédéfinies sur le numérique & les chaînes
  • Ent(x) retourne la partie entière de la valeur réelle x.
  • Arrondi(x) retourne l'entier le plus proche de la valeur réelle x.
  • Valeur(ch) convertit une chaîne numérique en sa valeur numérique.
  • ConvCh(x) convertit une valeur numérique x en chaîne de caractères.
  • Effacer(ch, debut, fin) efface fin - debut caractères de la chaîne ch à partir de la position debut.
  • Sous_chaine(ch, debut, fin) extrait fin - debut caractères de la chaîne ch à partir de la position debut.

Compléter le tableau suivant en saisissant la valeur finale des variables indiquées :

Instructions Valeurs à saisir
x ← Ent(11.8)
y ← Arrondi(11.8)
x =
y =
n ← Valeur("138.5") n = (partie entière)
ch ← ConvCh(138.25) ch =
ch1 ← "Information"
ch1 ← Effacer(ch1, 2, 8)
ch1 =
ch1 ← "Information"
ch2 ← Sous_chaine(ch1, 2, 5)
ch2 =

Exercice 5 : Concepts Fondamentaux & Types de Données

🟢 Facile Bac 2011

Répondre par Vrai si la proposition est correcte ou par Faux sinon :

Question 1

Un tableau d'entiers peut être rempli de réels.

  • Vrai
  • Faux
Question 2

Un compteur d'une structure répétitive avance uniquement par pas de 1.

  • Vrai
  • Faux
Question 3

Les opérateurs div et mod ne peuvent pas être appliqués sur les nombres réels.

  • Vrai
  • Faux
Question 4

ch ← efface(Ch, long(Ch)-2, long(Ch)) efface les deux derniers caractères de la chaîne Ch.

  • Vrai
  • Faux

Exercice 6 : Évaluation & Typage d'Expressions

🟡 Moyen Bac 2007
💡 Rappel de cours : Opérateurs & Fonctions prédéfinies
  • ord(c) retourne le code ASCII du caractère c (ex: ord("A") = 65, ord("D") = 68).
  • chr(n) retourne le caractère correspondant au code ASCII n (ex: chr(52) = "4").
  • ABS(x) retourne la valeur absolue du nombre x.
  • div donne le quotient entier et MOD donne le reste de la division entière.
  • Les caractères sont comparés selon leurs codes ASCII (ex: "D" < "A" s'évalue à Faux car 68 < 65).

Saisir le résultat et le type correspondant à chacune des expressions :

Instruction Résultat Type du résultat
sous_chaine("Baccalauréat", 0, 3) + " 2007"
(("D" < "A") et (ABS(-1) > 0))
(15 div 3) MOD 2
Ent(7.25) + Arrondi(7.25)
ch ← chr(ord("D") - 16)

Exercice 7 : Expressions Arithmétiques & Logiques en Python

🟡 Moyen
💡 Rappel de cours : Opérateurs Python
  • // représente la division entière (retient le quotient entier).
  • % (modulo) retourne le reste de la division entière.
  • ^ est l'opérateur logiques XOR (OU exclusif).
  • Priorité des opérateurs logiques : not > and > or.
Déclarations :
Variable Type Valeur
x float 2.2
y float 0.2
n int 20
z int -2
t str 'n'
b bool True
Expressions à évaluer :
n1 = (x+y)*(x-y)/(x+z) 
n2 = 1.2*(n%z) 
n3 = n//z + z%n
n4 = ('a'>t) ^ (ord('A')>n)
n5 = n3*z//4*z%n - n2
n6 = not((n1<=12) or (n3>=5) and (n2!=10)) and b

Saisir le résultat calculé et le type de chaque variable ni :

Variable Valeur calculée Type Python
n1
n2
n3
n4
n5
n6

Exercice 8 : Validation d'un Horaire (Expressions Booléennes)

🟡 Moyen

Soient les variables h, m et s, de type entier, représentant les composantes h:m:s d'un horaire.

Compléter l'algorithme qui évalue la validité d'un horaire en faisant glisser les bonnes étiquettes :

Un horaire est valide (valide = Vrai) si h ∈ [0, 23], m ∈ [0, 59] et s ∈ [0, 59].
Algorithme Validation_Horaire
Début
  // Evaluation de la validité de l'horaire h:m:s
  valide ← (0 ≤ h < (1)) et 
           (0 ≤ m < (2)) et 
           (0 ≤ s ≤ (3))
Fin
TDO
Objet Type
h, m, s entier
valide (4)

Exercice 9 : Traduction de Formules Mathématiques

🟡 Moyen
💡 Rappel de cours : Traduction de formules mathématiques
  • Opérateur de multiplication : La multiplication implicite (ex: $2x$) doit obligatoirement s'écrire avec l'opérateur * (ex: 2 * x).
  • Racine carrée : S'écrit racine(X) en Algorithme et sqrt(X) en Python (module math).
  • Valeur absolue : S'écrit abs(X) ou ABS(X) en Algorithme et en Python.
  • Priorités & Parenthèses : Entourer systématiquement le numérateur et le dénominateur composés de parenthèses (...) pour garantir le bon ordre des opérations.

Donner en algorithmique et en Python l’équivalent de chacune des expressions arithmétiques suivantes :

Formule A
$$A = \frac{(x + 1)^2}{\sqrt{x}}$$
Formule B
$$B = \frac{2x^2 + 4x - 1}{\sqrt{|x + 5|}}$$
Formule C
$$C = \sqrt{\frac{|10x + 2|}{3}}$$
Formule D
$$D = \frac{x^3}{(x^2 + 2)} - 1$$
Formules mathématiques
Formules mathématiques à traduire
💡 Indices détaillés formule par formule
Formule A
  • Numérateur : (x + 1)*(x + 1)
  • Dénominateur : racine(x) (Algo) / sqrt(x) (Python)
Formule B
  • Numérateur : (2 * x * x + 4 * x - 1)
  • Dénominateur : racine(abs(x + 5))
Formule C
  • Numérateur intérieur : abs(10 * x + 2)
  • Fraction globale sous la racine : abs(10 * x + 2) / 3
Formule D
  • Numérateur : x * x * x | Dénominateur : (x * x + 2)
  • Soustraction extérieure : - 1
📌 Exemple guidé : Pour traduire $E = \frac{x + 3}{\sqrt{x^2 + 1}}$ :
  • Algorithme : E ← (x + 3) / racine(x**2 + 1)
  • Python : E = (x + 3) / sqrt(x**2 + 1)

Exercice 10 : Trace d'Algorithmes sur les Chaînes

🔴 Avancé
💡 Rappel de cours : Fonctions sur les chaînes de caractères
  • long(ch) retourne le nombre total de caractères de la chaîne ch.
  • ch1 + ch2 effectue la concaténation (assemblage) de ch1 et ch2.
  • pos(sub, ch) retourne l'indice de la 1ère occurrence de la sous-chaîne sub dans ch (les positions démarrent à 1).
  • sous_chaine(ch, debut, fin) extrait les caractères de l'indice debut jusqu'à l'indice fin non inclus.
  • effacer(ch, debut, fin) supprime les caractères de ch à partir de l'indice debut jusqu'à l'indice fin non inclus.

Compléter le tableau suivant en donnant le résultat de l’évaluation des instructions :

c1 ← "Algorithme"
c2 ← "Récurrent"
📍 Représentation des chaînes avec numérotation des indices (0-basés) :
c1 :
A
0
l
1
g
2
o
3
r
4
i
5
t
6
h
7
m
8
e
9
c2 :
R
0
é
1
c
2
u
3
r
4
r
5
e
6
n
7
t
8
Expression Valeur calculée
n2 ← long(c2) n2 =
c1 ← c1 + c2 c1 =
n1 ← long(c1) n1 =
p ← pos("n", c2) p =
c3 ← sous_chaine(c1, 8, 15) c3 =
c2 ← effacer(c2, 1, 6) c2 =
c3 ← c3 + c2 c3 =

Exercice 11 : Simulation et Trace de Tableaux

🔴 Avancé

Soient les instructions suivantes :

t1[1] ← 5 
t2[2] ← t1[1] + 2 
t1[1] ← t1[1] DIV 2 
t2[0] ← 2 * t1[1] 
t2[1] ← t2[2] - t1[1]  
t2[0] ← t1[1] + 2 * t2[0] 
t1[0] ← t1[1] + 2 * t2[0]  
t1[2] ← t1[1]

Saisir le contenu final de chaque cellule des deux tableaux :

Tableau t1
t1
0
1
2
Tableau t2
t2
0
1
2