Aller au contenu principal
BacInfo

Ch. 01 · Leçon 1

Série de révision : structures de données et structures simples

60 minanalyse · python

Ce que vous saurez faire

  • Réviser les notions de variables et d'identificateurs
  • Manipuler les chaînes de caractères en Python
  • Traduire des expressions algorithmiques en Python à l'aide de modules
  • Implémenter des structures conditionnelles simples et imbriquées

id: 33-1542-serie-revision-structures-donnees-si slug: 33-1542-serie-revision-structures-donnees-si titre: 'Série de révision : structures de données et structures simples' chapitre: 1 chapitre_titre: Structures de données et structures simples lecon: 1 niveau: 4eme-sci ordre: 1 prerequis: [] duree_estimee_min: 60 mots_cles:

  • variables
  • chaines
  • modules python
  • structure conditionnelle
  • sous-chaine
  • identificateurs langages:
  • analyse
  • python objectifs:
  • Réviser les notions de variables et d'identificateurs
  • Manipuler les chaînes de caractères en Python
  • Traduire des expressions algorithmiques en Python à l'aide de modules
  • Implémenter des structures conditionnelles simples et imbriquées status: published source_pdf: 33_1542.pdf source_pages:
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9 kind: exercices

Cette série de révision propose six exercices couvrant les structures de données (variables, chaînes) et les structures simples (séquence, conditionnelle). Chaque exercice est accompagné de son corrigé masqué.

Exercice 1 — Vrai ou Faux sur les structures de données

Exercice 1
Évaluer des propositions sur les variables et les actions de base

Évaluer chacune des propositions suivantes par « vrai » si elle est valide ou « faux » sinon.

  1. Le contenu d'une variable peut être changé à tout moment dans un programme.
  2. A et a sont deux variables différentes en Python.
  3. Pour saisir une donnée dans l'étape d'algorithme, on utilise l'action lire.
  4. L'action print("4ième", sciences) permet d'afficher le message "4ième sciences".
  5. N ← ent(5.8) mod 2 + arrondi(6.7) div 10 permet d'affecter à N la valeur 0.
Voir le corrigé
  1. Vrai — une variable est, par définition, modifiable.
  2. Vrai — Python est sensible à la casse.
  3. Vrai — en algorithme, on saisit avec lire.
  4. Fauxsciences est interprété comme une variable (non définie) et non comme une chaîne ; il faudrait écrire print("4ième", "sciences").
  5. Faux — calcul : ent(5.8) = 5, 5 mod 2 = 1 ; arrondi(6.7) = 7, 7 div 10 = 0 ; donc N = 1 + 0 = 1 (et non 0).

Exercice 2 — QCM sur les chaînes de caractères

Exercice 2
Manipulation de la chaîne Ch = 'html 5 '

Soit la chaîne Ch = "html 5 ". Pour chacune des propositions suivantes, cocher la ou les bonnes réponses.

a) Ch.upper() donne :

  • "HTML"
  • "HTML 5 "
  • "Html 5 "

b) Pour copier "html", on écrit :

  • Ch[0:4]
  • Ch[:4]
  • Ch[1:4]

c) print(Ch[0] * 3) permet d'afficher :

  • p*3
  • 0*3
  • "hhh"

d) Ch.find("H") :

  • Donne l'entier 0
  • Donne l'entier 1
  • Donne l'entier -1

e) int(Ch[5]) :

  • Donne l'entier 5
  • Donne le caractère 5
  • Donne le réel 5

f) chr(randint(65, 90)) :

  • Retourne un entier aléatoire
  • Retourne une lettre en minuscule
  • Retourne une lettre en majuscule
Voir le corrigé

a)"HTML 5 "upper() met toute la chaîne en majuscules.

b)Ch[0:4] et ✅ Ch[:4] — les deux écritures sont équivalentes pour extraire les 4 premiers caractères.

c)"hhh"Ch[0] vaut 'h', et 'h' * 3 répète la chaîne 3 fois.

d) ✅ Donne l'entier -1 — la méthode find est sensible à la casse, et 'H' (majuscule) n'apparaît pas dans "html 5 ".

e) ✅ Donne l'entier 5Ch[5] est le caractère '5', converti en entier par int.

f) ✅ Retourne une lettre en majuscule — les codes ASCII de 65 à 90 correspondent aux lettres 'A' à 'Z'. Exemple : chr(66) = 'B'.

Exercice 3 — Implémentation des modules Python

Exercice 3
Traduire des expressions algorithmiques en Python

Implémenter les expressions algorithmiques suivantes en Python et les évaluer (type et résultat).

Instruction en algorithme
Ok ← estnum(20.5) et estnum("20,5")
Ch ← souschaine("python", 2, long("python"))
x ← arrondi(5.3) + abs(-7) div 6 * racine_carrée(16)
Ch ← "html#2emeinfo" puis z ← efface(Ch, pos("#", Ch), 9)
Voir le corrigé

Ligne 1 :

Ok = "20.5".isdigit() and "20,5".isdigit()
  • Type : booléen
  • Résultat : True and False = False

Ligne 2 :

ch = "python"[2:]
  • Type : str
  • Résultat : "thon"

Ligne 3 :

from math import *
x = round(5.3) + abs(-7) // 6 * sqrt(16)
  • Type : int (ou float selon Python)
  • Calcul : 5 + 7 // 6 * 4 = 5 + 1 * 4 = 5 + 4 = 9

Ligne 4 :

z = ch[:ch.find("#")] + ch[9:]
  • Type : str
  • Résultat : "htmlinfo"

Exercice 4 — Traduction et trace d'une structure conditionnelle

Exercice 4
Traduire en Python et déterminer l'affichage

Écrire la séquence suivante en Python puis donner l'affichage à l'écran après son exécution.

A ← -7
Si A > 0 alors
    C ← A + A
Sinon Si A = 0
    C ← A + 10
Sinon
    C ← A
    C ← abs(C)
Finsi
Ecrire("A=", A)
Ecrire("C=", C)
Voir le corrigé

Traduction en Python :

A = -7
if A > 0:
    C = A + A
elif A == 0:
    C = A + 10
else:
    C = A
    C = abs(C)
print("A=", A)
print("C=", C)

Trace d'exécution :

Trace d'exécution
0 / 4
InstructionAC
01···??
02···??
03···??
04···??

Affichage à l'écran :

A= -7
C= 7

Exercice 5 — Heure après une minute

Exercice 5
Programme d'avance d'horloge

On propose d'écrire un programme qui saisit l'heure sous la forme hh:mm puis l'affiche après une minute.

Exemples :

  • 09:45 → on affiche 09:46
  • 12:59 → on affiche 13:00
  • 23:59 → on affiche 00:00
Voir le corrigé

Analyse :

ObjetType / Nature
heurechaîne
hh, mmentier
h, mchaîne

Algorithme (extrait) :

Nom : Montre
Début
    Ecrire("Donner l'heure"), lire(heure)
    Si pos(":", heure) = 2 alors
        h ← sous-chaine(heure, 0, 2)
        m ← sous-chaine(heure, 3, 5)
        hh ← valeur(h)
        mm ← valeur(m)
        Si (0 ≤ hh ≤ 23) et (0 ≤ mm ≤ 59) alors
            Si (mm < 59) et (hh ≠ 23) alors
                mm ← mm + 1
            Sinon Si (hh ≠ 23) et (mm = 59)
                mm ← 0
                hh ← hh + 1
            Sinon
                mm ← 0
                hh ← 0
            Finsi
            Si 0 ≤ mm ≤ 9 alors m ← "0" + convch(mm) Finsi
            Si 0 ≤ hh ≤ 9 alors h ← "0" + convch(hh) Finsi
            Ecrire("L'heure devient : ", h, ":", m)
        Sinon
            Ecrire("erreur")
        Finsi
    Sinon
        Ecrire("erreur")
    Finsi
Fin

Implémentation Python :

heure = input('donner une heure')
if heure.find(':') == 2:
    h = heure[:2]
    m = heure[3:]
    m = int(m)
    h = int(h)
    if 0 <= m <= 59 and 0 <= h <= 23:
        if m < 59:
            m = m + 1
        else:
            if h != 23:
                m = 0
                h = h + 1
            else:
                m = 0
                h = 0
        if 0 <= m <= 9:
            m = '0' + str(m)
        if 0 <= h <= 9:
            h = '0' + str(h)
        heure = str(h) + ':' + str(m)
        print("apres une minute l'heure devient", heure)
    else:
        print("verifier les heures ou les minutes")
else:
    print('Time n est pas sous la forme hh:mm')

Exercice 6 — Type d'un fichier selon son extension

Exercice 6
Identifier le type d'un fichier par son extension

Un fichier est identifié par son nom et son extension sous la forme : nom.extension.

Écrire une analyse et un algorithme nommé « Fichier » permettant de saisir dans une seule chaîne de caractères le nom et l'extension d'un fichier (en supposant la saisie correcte), et afficher le type du fichier.

On se limite aux types suivants selon l'extension :

  • Txt, doctexte
  • Jpeg, gif, png, jpgimage
  • Mp3, wavaudio
  • Mp4vidéo
  • Exeapplication

Exemple : pour le fichier "Devoir.mp3", on affiche : Devoir est de type audio.

Voir le corrigé

Analyse :

ObjetType / Nature
nom, f, extchaîne
pentier

Algorithme :

Nom : Fichier
Début
    Ecrire("Donner le fichier"), lire(f)
    p ← pos(".", f)
    nom ← sous-chaine(f, 0, p)
    ext ← sous-chaine(f, p+1, long(f))
    ext ← majus(ext)
    Si ext = "TXT" ou ext = "DOC" alors
        Ecrire(nom, " est de type texte")
    Sinon Si ext = "JPEG" ou ext = "GIF" ou ext = "PNG" ou ext = "JPG" alors
        Ecrire(nom, " est de type image")
    Sinon Si ext = "MP3" ou ext = "WAV" alors
        Ecrire(nom, " est de type audio")
    Sinon Si ext = "MP4" alors
        Ecrire(nom, " est de type vidéo")
    Sinon Si ext = "EXE" alors
        Ecrire(nom, " est de type application")
    Sinon
        Ecrire("Type de fichier inconnu")
    Finsi
Fin

Implémentation Python :

ch = input('donner un fichier')
p = ch.find('.')
nom = ch[:p]
print(nom)
ext = ch[p+1:]
ext = ext.upper()
print(ext)
if ext == 'TXT' or ext == 'DOC':
    print(nom, ' est de type texte')
elif ext == 'JPG' or ext == 'PNG' or ext == 'GIF' or ext == 'JPEG':
    print(nom, ' est de type image')
elif ext == 'MP3' or ext == 'WAV':
    print(nom, ' est de type audio')
elif ext == 'MP4':
    print(nom, ' est de type vidéo')
elif ext == 'EXE':
    print(nom, ' est une application')
else:
    print(nom, 'ce type est inconnu')

Bravo d'être arrivé jusqu'ici. Marquez la leçon terminée pour ancrer le progrès.