BAC Scientifiques
Informatique
Mme Mkhinini Raja
Résumé
1
Algorithme et programmation BAC SCIENTIFIQUES Mme Mkhinini Raja
Les modules prédéfinis
Python Algorithme Exemple
int(x) Ent(x) rent (10.2)
round ( a ) Arrondi(a) rarrondi (10.8)
from math import *
Racine carrée(a) rracine carrée(16)
sqrt ( a )
abs abs rabs(-4)
from random import *
Aléa(vi, vf) raléa(1,10)
randint(a,b)
Ch[i] Ch"coucou"
Ch[i]
On commence par 0 R Ch[1]
Ch[d : f] Ch"informatique"
Sous-chaine(ch,d,f)
On commence par 0, f exclut rsous-chaine(Ch,2,8)
len ( ch ) Ch"Bac 2024"
Long(ch)
On commence par 1 rlong(Ch)
ch"COUCOU"
[Link] ( ch2 )
rpos("O",ch)
Pos(ch2,ch1)
rpos("OU",ch)
On commence par 0
rpos("COURS",ch)
ch. upper ( ) Majus(ch) Ch"bon" rmajus(Ch)
Nb13.55
Str(nb) convch (nb)
rconvch(Nb)
int(ch)
Ch"2024"
Valeur (ch)
rvaleur(Ch)
float(ch)
ord ( car ) ord(car) rord ( "a" )
chr ( x ) chr(x) r chr ( 65 )
Ch[ : d]+Ch[f: ] Efface(ch,d,f) ch''maison"
f exclut refface(ch,1,4)
[Link]() Estnum(ch) restnum("144")
Entier seulement Entier ou réel restnum("B2")
2
Algorithme et programmation BAC SCIENTIFIQUES Mme Mkhinini Raja
Les structures de contrôle conditionnelles
REMARQUES
❖ Une condition est une expression booléenne dont le résultat vaut "vrai" ou "faux".
❖ Une condition peut contient :
➢ Un opérateur de comparaison (<, <=, > , >=, =(== en python), ≠( != en python)
➢ Un opérateur d'appartenance Exemple : si x [1..10] alors (en algorithme)
➢ Un opérateur logique (ET, OU, NON), dans ce cas on dit que la condition est composée.
➢ Exemple : si (a>10) et (a ≠ 15) alors
A. La forme réduite
Algorithme Python
Si Condition Alors if condition:
Traitement
____Traitement
Fin Si
B. La forme complète
Algorithme Python
Si Condition Alors if condition :
Traitement1 ____traitement1
Sinon else :
Traitement2 ____traitement2
FinSi
C. La forme généralisée Algorithme Python
Si Condition1 Alors if condition1:
traitement1 ____traitement1
Sinon Si Condition2 Alors elif condition2 :
traitement2 ____traitement2
..………………………. ……………..
Sinon else:
traitement n ____traitement n
FinSi
D. Structure de
choix Algorithme
Selon <Sélecteur> match Sélecteur :
Valeur1_1[, Valeur1_2, …] : case Valeur1 :
Traitement1 Traitement1
Valeur2_1 . . Valeur2_2 : case Valeur2_1 | Valeur2_2 :
Traitement2 Traitement2
……… case Sélecteur if V3_1 <=Sélecteur<= V3_2 :
[Sinon TraitementN] Traitement3
Fin Selon case _ : TraitementN
Le sélecteur doit être de type scalaire (entier,caractère)
3
Algorithme et programmation BAC SCIENTIFIQUES Mme Mkhinini Raja
Les structures de contrôle itératives complète
PARTIE 1 : Manipulation sur les nombres
La boucle POUR
Pour compteur de début à fin (pas) faire
Algorithme Traitement à répéter
Fin pour
for i in range(debut,fin,pas):
Python Traitement à répéter
#Aller de début à fin-1
Quand Lorsqu’on connaît le nombre de répétition
utiliser la Vi ≤ Vf
structure
EXERCICE 1
Les structures de contrôle itératives à condition d’arrêt
La boucle REPETER La boucle TANTQUE
Structures
Répéter Tant que (condition) faire
Traitement à répéter Traitement répétitif
Algorithme
Jusqu'a (Condition) Fin TantQue
Initialisation obligatoire
while Condition :
Au python while not (Condition) :
_____traitement
_____traitement
Quand utiliser la si on ne connait pas d'avance le nombre de répétition
structure
Remarque Le nombre de répétition >= 1 Le nombre de répétition >= 0
4
Algorithme et programmation BAC SCIENTIFIQUES Mme Mkhinini Raja
Algorithme et programmation Bac Scientifiques Mme Mkhinini Raja
Algorithme tableau
Début
Répéter Saisir la taille du tableau entre 3 et 10
écrire("donner la taille du tableau")
Lire(n);
jusqu'à n dans [3..10]
Pour i de 0 à n-1 faire
écrire ( "t[", i ,"]=" )
Lire (T[i]) Remplir un tableau (donnée)
Fin pour
Pour i de 0 à n-1 faire
écrire (T[i]) Afficher t
Fin Pour
TDNT (tableau de déclaration de nouveau type)
TAB Un tableau de 10 entier maximum
TDO
O T/N
t TAB
n Entier
i Entier
PYTHON AFFICHAGE AVEC PYTHON
5
Algorithme et programmation Bac Scientifiques Mme Mkhinini Raja
Activité
1) Ecrire un algorithme qui remplie un tableau T contient n nombres strictement positifs avec n [3..20]
puis calculer dans un deuxième tableau le factoriel de chaque nombre, afficher le tableau V.
2) Implémenter ce programme en python dans un fichier nommé "[Link]"
Exemple : si n=10
2 5 7 3 10 3 1 5 9 6
0 1 2 3 4 5 6 7 8 9
2 120 5040 6 3628800 6 1 120 362880 720
0 1 2 3 4 5 6 7 8 9
6
Algorithme et programmation BAC SCIENTIFIQUES Mme Mkhinini Raja
LES SOUS-PROGRAMMES
Les fonctions
Algorithme Python
Retourner une chaine aléatoire de 10 caractères
Fonction Chaine_alea (): chaine
Début
ch""
Pour i de 1 à 10 faire
chch+chr(alea(0,256))
Fin Pour
Retourner(ch)
Fin
Inverser une chaine de caractère
Fonction Inverse ( ch : chaine):chaine
Début
Chx""
Pour i de long(ch)-1 à 0 (pas=-1) faire
ChxChx+ch[i]
Fin Pour
Retourner (Chx)
Fin
Retourner une chaine aléatoire de 10 lettres majuscules
Fonction Chaine_maj(): chaine
Début
ch""
Pour i de 1 à 10 faire
chch+chr(alea(65,90))
Fin Pour
Retourner(ch)
Fin
Retourner une chaine aléatoire de 10 lettres minuscules
Fonction Chaine-min(): chaine
Début
ch""
Pour i de 1 à 10 faire
chch+chr(alea(97,122))
Fin Pour
Retourner(ch)
Fin
Convertir une chaine majuscule en minuscule
Fonction minus(ch: chaine): chaine
Début
Chm""
Pour i de 0 à long(ch)-1 faire
Chmchm+chr(ord(ch[i])+32)
Fin Pour
Retourner(chm)
7
Algorithme et programmation BAC SCIENTIFIQUES Mme Mkhinini Raja
Fin
Vérifier si une chaine donnée est alphabétique
Fonction alpha (ch : chaine) : booléen
Début
Testvrai
i0
Répéter
Si (ch[i] ["A".."Z","a".."z"]) Alors
ii+1
Sinon
Test faux
Fin Si
Jusqu'à (i=long(ch)) ou (test=faux)
Retourner (test)
Fin
Compter l'occurrence d'un entier dans un tableau
Fonction Occ (t :tab ;n :entier, x :entier) :entier
Début
nb0
Pour i de 0 à n-1 faire
Si T[i]=x alors
nb nb+1
Fin si
Fin Pour
Retourner (nb)
Fin
Compter l'occurrence d'un caractère dans une chaine
Fonction Occ (c : caractère, ch :chaine) :entier
Début
nb 0
Pour i de 0 à long(ch)-1 faire
Si ch[i]=c alors
nb nb+1
Fin Si
Fin Pour
Retourner (nb)
Fin
Déterminer le maximum d'un tableau
Fonction maximum (t : tab ;n :entier) : entier
Début
maxit[0]
Pour i de 1 à n-1 faire
Si t[i]>maxi alors
maxit[i]
FinSi
8
Algorithme et programmation BAC SCIENTIFIQUES Mme Mkhinini Raja
Fin Pour
Retourner(maxi)
Fin
Déterminer le minimum d'un tableau
Fonction minimum (t : tab ;n :entier) : entier
Début
minit[0]
Pour i de 1 à n-1 faire
Si t[i]<mini alors
mini t[i]
Fin Si
Fin Pour
Retourner(mini)
Fin
Calculer la puissance de 2 entiers
Fonction puissance (a,b:entier):entier
Début
p1
Pour i de 1 à b faire
pp*a
Fin pour
Retourner(p)
Fin
Cherche un entier dans un tableau-recherche séquentielle-
Fonction Recherche (t:tab;,x:entier; n:entir ): booleen
Début
i0
test faux
Répéter
si t[i]=x alors
testvrai
sinon
ii+1
Fin si
Jusqu'à (test = vrai) ou (i=n)
Retourner(test)
Fin
9
Algorithme et programmation BAC SCIENTIFIQUES Mme Mkhinini Raja
Cherche un entier dans un tableau-recherche dichotomique
Fonction Rech_Dicho (T:TAB ; n,X: entier): Booléen
Début
d 0
f n-1
trouv Faux
Répéter
m (d + f) DIV 2
Si T[m]=X alors
trouv Vrai
Sinon Si T[m]>X alors
f m-1
Sinon
d m+1 Fin
Finsi
Jusqu'a (trouv) OU (d>f)
retourner trouv
Générer une chaine chn contenant que les chiffres à partir d'une chaine ch
Fonction générer (ch :chaine) :chaine
Début
Chn ""
Pour i de 0 a long(ch)-1 faire
Si ch[i] ["0".."9"] alors
ChnChn+ch[i]
Fin si
Fin pour
Retourner (Chn)
Fin
Déterminer si un entier est premier ou pas
Fonction Premier (x :entier) : booleen
Début
nb0
Pour i de 1 à x faire
Si x mod i = 0 alors
nbnb+1
Fin Si
Fin Pour
Si nb=2 alors
test vrai
Sinon Ou bien
test Faux
Retourner(nb=2)
Fin si
Retourner(test)
Fin
10
Algorithme et programmation BAC SCIENTIFIQUES Mme Mkhinini Raja
Calculer le PGCD
Fonction PGCD(a,b:entier):entier
Début
Tant que a≠b faire
Si a>b alors
aa-b
sinon
bb-a
Fin Si
Fin Tantque
Retourner(a)
Fin
Calculer le factoriel d'un entier
Fonction factoriel (x: entier):entier
Début
f1
Pour i de 1 à x faire
ff * i
Fin Pour
Retourner(f)
Fin
Calculer le PPCM
Fonction PPCM(a,b:entier):entier
Début
xa
yb
Tant que a≠b faire
Si a<b alors
aa+x
Sinon
bb+y
Fin si
Fin Tantque
Retourner(a)
Fin
11
Algorithme et programmation BAC SCIENTIFIQUES Mme Mkhinini Raja
LES PROCEDURES
Saisir un caractère majuscule
Procédure saisie_majus (@ c : caractère)
Début
Répéter
Ecrire ("Donner un caractère")
Lire(c)
Jusqu'à c["A".."Z"]
Fin
Saisir une chaine de caractère non vide et de longueur maximale égale à 20
Procédure saisie_ch (@ ch : chaine)
Début
Répéter
Ecrire ("Donner une chaine")
Lire(ch)
Jusqu'à long(ch) [1..20]
Fin
Afficher les éléments pairs d'un tableau T
Procédure Affiche (T : tab ; n : entier)
Début
Pour i de 0 a n-1 faire
Si T[i] mod2=0 alors
Ecrire (T[i] )
Fin Si
Fin Pour
Fin
Saisir un entier compris entre 10 et 100
Procédure saisie_n (@ n : entier)
Début
Répéter
Ecrire ("Donner un nombre")
Lire(n)
Jusqu'à n [10..100]
Fin
12
Algorithme et programmation BAC SCIENTIFIQUES Mme Mkhinini Raja
Remplir un tableau T par n entiers
Procédure RemplirT(@ T : tab ; n : entier)
Début
Pour i de 0 à n-1 faire
Lire(T[i])
Fin pour
Fin
Remplir un tableau T par N entiers aléatoires de 2 chiffres
Procédure Tab_alea (@ T : tab ; n : entier)
Début
Pour i de 0 à n-1 faire
T[i]alea (10,99)
Fin Pour
Fin
Remplir un tableau par des caractères aléatoires
Procédure Tab_alea (@ t : tab ; n : entier)
Début
Pour i de 0 à n-1 faire
T[i]chr(alea(0,256))
Fin Pour
Fin
13
Algorithme et programmation BAC SCIENTIFIQUES Mme Mkhinini Raja
Remplir un tableau avec des chaine alphabétiques
Procédure Remplir (@T:tab;n:entier)
Début
Pour i de 0 à n-1 faire
Répéter
Lire(T[i])
Jusqu’à verif(T[i])=Vrai
Fin pour
Fin Voir fonction
verif
Remplir un tableau T par N entiers croissant
Procédure CroiTab(@ t : tab ; n : entier)
Début
Ecrire ("t[0]")
Lire(t[0])
Pour i de 1 à n-1 faire
Répéter
Lire(t[i])
Jusqu'à (t[i]>t[i-1])
Fin Pour
Fin
Afficher les entiers premiers qui [a..b]
Procédure afficher(a,b:entier)
Début
Pour i de a à b faire
Si premier(i)=vrai alors
Ecrire(i,"/") Voir
Fin si fonction
Fin pour Premier
Fin
Remplir un tableau avec des éléments distincts
Procédure Remplir(@T:tab;n:entier)
Début
Lire(T[0]) Voir fonction
Pour i de 1 a n-1 faire Recherche
Répéter
Lire(T[i])
Jusqu’à Recherche(T,T[i],i-1)=faux
Fin Pour
Fin
14
Algorithme et programmation BAC SCIENTIFIQUES Mme Mkhinini Raja
Le tri à Bulle
Procédure tri_bull(@ T:tab ; n:entier)
Début
Répéter
permut faux
Pour i de 0 à n-2 faire
Si T[i]>T[i+1] alors
Permutvrai
Aux T[i]
T[i]T[i+1]
T[i+1] aux
Fin si
Fin Pour
Jusqu’à (permut=faux)
Fin
Le tri par sélection
Procédure tri_selection (@ t:tab; n:entier)
Début
Pour i de 0 à n-2 faire
pMini
Pour j de i+1 à n-1 faire
Si (t[j] < t[pMin]) alors
pMin j
Fin si
Fin pour
Si (i≠pMin) alors
aux t[i]
t[i] t[pMin]
t[pMin]aux
Fin si
Fin pour
Fin
Le tri par insertion
Procédure tri_insertion (@ T:tab ; n:entier)
Début
Pour i de 1 à n-1 faire
Aux t[i]
ji
Tant que t[j-1]> Aux et j>0 faire
T[j]t[j-1]
jj-1
Fin Tant que
T[j]Aux
Fin Pour
Fin
15
Algorithme et programmation Bac Scientifiques Mme Mkhinini Raja
16