📈🧮🧮🔧🔧⚙️📊⚙️📊📝📝⚙️🔢📊🔍📊📈🔧🔍🔧🔍🔀🔧🧮📈💻📊⚙️📝🔢🔧⚙️💻💻🔧📊📈📊🔀💻🔢📈🔀📝📝🧮📈📊🧮⚙️
💻
🔢
🧮
🔍

✨ Révision Informatique - Bac Scientifique ✨

Algorithmes fondamentaux, traitements récurrents et chaînes de caractères

🌊 Les traitements récurrents et arithmétique

Fonction pour calculer la somme des chiffres d'un entier

Algorithme
def somme_chiffres(x):
    ch = str(x)
    s = 0
    for i in range(0, len(ch)):
        s = s + int(ch[i])
    return s

Cette fonction transforme un nombre entier en chaîne de caractères, puis calcule la somme de chacun de ses chiffres. Par exemple, pour l'entrée 123, la fonction retournera 1+2+3=6.

Fonction pour calculer la somme des diviseurs d'un entier

Algorithme
def somme_div(x):
    s = 0
    for i in range(1, x+1):
        if x % i == 0:
            s = s + i
    return s

Cette fonction calcule la somme de tous les diviseurs d'un nombre donné. Par exemple, pour l'entrée 12, les diviseurs sont 1, 2, 3, 4, 6, et 12, donc la fonction retournera 1+2+3+4+6+12=28.

Fonction pour calculer la factorielle d'un entier

Algorithme
def fact(n):
    f = 1
    for i in range(2, n+1):
        f = f * i
    return f

La factorielle d'un nombre n (notée n!) est le produit de tous les entiers positifs inférieurs ou égaux à n. Par exemple, 5! = 5×4×3×2×1 = 120.

Fonction pour calculer la puissance x^n de deux entiers

Algorithme
def puissance(x, n):
    p = 1
    for i in range(1, n+1):
        p = p * x
    return p

Cette fonction calcule x élevé à la puissance n, en multipliant x par lui-même n fois. Par exemple, puissance(2, 3) retourne 2^3 = 8.

Fonction pour calculer le PGCD de deux entiers

Algorithme
def PGCD(a, b):
    while (a != b):
        if a > b:
            a = a - b
        else:
            b = b - a
    return a

L'algorithme d'Euclide pour calculer le Plus Grand Commun Diviseur. Il repose sur le principe que si a > b, alors PGCD(a, b) = PGCD(a-b, b).

Fonction pour calculer le PPCM de deux entiers

Algorithme
def PPCM(a, b):
    if a > b:
        max = a
        min = b
    else:
        max = b
        min = a
    while max % min != 0:
        max = max + (a + b - min)
    return max

Le Plus Petit Commun Multiple de deux nombres est le plus petit entier positif qui est divisible par les deux nombres.

🌊 Les traitements sur les chaînes de caractères

Fonction pour vérifier si une chaîne est formée uniquement par des lettres majuscules

Algorithme
def verif_maj(ch):
    ok = True
    i = 0
    while i < len(ch) and ok:
        if ch[i] < "A" or ch[i] > "Z":
            ok = False
        i = i + 1
    return ok

Cette fonction vérifie si tous les caractères d'une chaîne sont des lettres majuscules. Elle retourne True si c'est le cas, False sinon.

Fonction pour vérifier si une chaîne est formée uniquement par des lettres

Algorithme
def verif_lettres(ch):
    i = 0
    while i < len(ch) and ch[i] in ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v", "w", "x", "y", "z"]:
        i = i + 1
    return i == len(ch)

Cette fonction vérifie si tous les caractères d'une chaîne sont des lettres. Elle retourne True si c'est le cas, False sinon.

Fonction pour vérifier si une chaîne formée uniquement par des caractères distincts

Algorithme
def verif_caracteres(ch):
    i = 0
    while i < len(ch) and ch.find(ch[i]) == i:
        i = i + 1
    return i == len(ch)

Cette fonction vérifie si tous les caractères d'une chaîne sont distincts (c'est-à-dire qu'il n'y a pas de caractère répété). Elle retourne True si c'est le cas, False sinon.

Fonction pour calculer le nombre de voyelles dans une chaîne

Algorithme
def nb_voyelles(ch):
    nb = 0
    for i in range(0, len(ch)):
        if ch[i] in ["a", "e", "i", "o", "u", "y"]:
            nb = nb + 1
    return nb

Cette fonction compte le nombre de voyelles présentes dans une chaîne. Elle considère "a", "e", "i", "o", "u" et "y" comme des voyelles.

📝 Exercices pratiques

Exercice 1: Calculer la somme des chiffres d'un nombre

Écrivez un programme qui demande à l'utilisateur de saisir un nombre entier et qui affiche la somme de ses chiffres.

Solution
def somme_chiffres(x):
    ch = str(x)
    s = 0
    for i in range(len(ch)):
        s += int(ch[i])
    return s

# Programme principal
nombre = int(input("Entrez un nombre entier: "))
resultat = somme_chiffres(nombre)
print(f"La somme des chiffres de {nombre} est {resultat}")

Exercice 2: Vérifier si une chaîne est un palindrome

Écrivez une fonction qui vérifie si une chaîne de caractères est un palindrome (se lit de la même façon de gauche à droite et de droite à gauche).

Solution
def est_palindrome(ch):
    ch = ch.lower()  # Convertir en minuscules
    i = 0
    j = len(ch) - 1
    while i < j:
        if ch[i] != ch[j]:
            return False
        i += 1
        j -= 1
    return True

# Programme principal
texte = input("Entrez une chaîne de caractères: ")
if est_palindrome(texte):
    print(f"'{texte}' est un palindrome")
else:
    print(f"'{texte}' n'est pas un palindrome")

Exercice 3: Calculer le PGCD et le PPCM de deux nombres

Écrivez un programme qui calcule et affiche le PGCD et le PPCM de deux nombres entiers saisis par l'utilisateur.

Solution
def pgcd(a, b):
    while a != b:
        if a > b:
            a = a - b
        else:
            b = b - a
    return a

def ppcm(a, b):
    return (a * b) // pgcd(a, b)  # Formule: PPCM(a, b) = (a * b) / PGCD(a, b)

# Programme principal
a = int(input("Entrez le premier nombre: "))
b = int(input("Entrez le deuxième nombre: "))

resultat_pgcd = pgcd(a, b)
resultat_ppcm = ppcm(a, b)

print(f"Le PGCD de {a} et {b} est {resultat_pgcd}")
print(f"Le PPCM de {a} et {b} est {resultat_ppcm}")

🔍 Astuces et conseils pour le Bac

Comment aborder un problème d'algorithme

  1. Lisez attentivement l'énoncé et identifiez ce qui est demandé.
  2. Décomposez le problème en sous-problèmes plus simples.
  3. Choisissez les structures de données appropriées.
  4. Écrivez l'algorithme en pseudocode ou en langage naturel avant de le coder.
  5. Testez votre algorithme avec des exemples simples.
  6. Vérifiez les cas limites et les cas particuliers.

Points importants à retenir

  • Maîtrisez les algorithmes de base (somme, moyenne, minimum, maximum, etc.).
  • Comprenez bien les algorithmes de tri et de recherche.
  • Sachez comment manipuler les chaînes de caractères et les tableaux.
  • Apprenez les algorithmes classiques (PGCD, PPCM, factorielle, etc.).
  • Pratiquez régulièrement pour améliorer votre vitesse et votre précision.