Série N°1
Exercice 1 : Identificateurs, Aléa & Tableaux
- 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
arrayNumPy dont les indices commencent obligatoirement par0.
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
sous_chaine(ch, debut, fin)extraitfin-debutcaractères à partir du rangdebut. Le résultat est toujours de type chaîne.Arrondi(x)retourne l'entier le plus proche de la valeur réellex.
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
- En Python,
ch[debut:fin]extrait les caractères de l'indicedebutjusqu'à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
Ent(x)retourne la partie entière de la valeur réellex.Arrondi(x)retourne l'entier le plus proche de la valeur réellex.Valeur(ch)convertit une chaîne numérique en sa valeur numérique.ConvCh(x)convertit une valeur numériquexen chaîne de caractères.Effacer(ch, debut, fin)effacefin - debutcaractères de la chaînechà partir de la positiondebut.Sous_chaine(ch, debut, fin)extraitfin - debutcaractères de la chaînechà partir de la positiondebut.
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
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
ord(c)retourne le code ASCII du caractèrec(ex:ord("A") = 65,ord("D") = 68).chr(n)retourne le caractère correspondant au code ASCIIn(ex:chr(52) = "4").ABS(x)retourne la valeur absolue du nombrex.divdonne le quotient entier etMODdonne le reste de la division entière.- Les caractères sont comparés selon leurs codes ASCII (ex:
"D" < "A"s'évalue àFauxcar 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//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)
🟡 MoyenSoient 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 :
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
| Objet | Type |
|---|---|
h, m, s |
entier |
valide |
(4) |
Exercice 9 : Traduction de Formules Mathématiques
🟡 Moyen- 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 etsqrt(X)en Python (modulemath). - Valeur absolue : S'écrit
abs(X)ouABS(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 :
💡 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
- 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élong(ch)retourne le nombre total de caractères de la chaînech.ch1 + ch2effectue la concaténation (assemblage) dech1etch2.pos(sub, ch)retourne l'indice de la 1ère occurrence de la sous-chaînesubdansch(les positions démarrent à 1).sous_chaine(ch, debut, fin)extrait les caractères de l'indicedebutjusqu'à l'indicefinnon inclus.effacer(ch, debut, fin)supprime les caractères dechà partir de l'indicedebutjusqu'à l'indicefinnon 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) :
| 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 :