Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
CAHIER
D’ LGORITHMIQUE
ET DE PROGRAMMATION
Date de mise à jour : 13/09/2021
Chapitre 0 : Pensée computationnelle et programmation.................................................................... 1
I- Définition de la pensée computationnelle (CT) : .................................................................................................. 2
II- Résolution d’un problème informatique : ........................................................................................................... 2
Annexe…………………………………………………………………………………………………………………..……………………………………………..22
Avant-propos
Tout le monde utilise un ordinateur, mais c’est une autre chose de le piloter ! Tu vas apprendre ici les
bases de la programmation.
Pourquoi Python ?
Choisir un langage de programmation pour débuter est délicat. Il faut un langage avec une prise en
main facile, bien documenté, avec une grande communauté d’utilisateurs. Python possède toutes ces
qualités et davantage encore. Il est moderne, puissant et très utilisé, y compris par les programmeurs
professionnels. Malgré toutes ces qualités, débuter la programmation (avec Python ou un autre
langage) est difficile. Le mieux est d’avoir déjà une expérience du code, à l’aide de Scratch par
exemple.
Bien maîtriser Python te permettra d’apprendre facilement les autres langages. Surtout le langage
n’est pas le plus important, l’essentiel ce sont les algorithmes. Les algorithmes sont comme des
recettes de cuisine, il faut suivre pas à pas les instructions et ce qui compte, c’est le résultat final et
non le langage avec lequel a été écrite la recette.
Caractéristiques de Python
• langage de haut niveau
• portable sur tous les systèmes d’exploitation
• typage dynamique : pas besoin de déclarer le type des variables !
• extensible (interfaçable avec d’autres bibliothèques et modules)
• sous licence libre
• syntaxe « très simple »
• multiparadigme : impératif et orienté-objet
• interprété et/ou pré-compilé puis interprété
Chapitre 0
Chapitre 0
Pensée
computationnelle
1
Pensée
computationnelle
e
Abstraction : focaliser sur les parties importantes du problème pour les résoudre
Algorithme : Trouver une solution à traves
an
1- Décomposition :
Un problème complexe est divisé en plusieurs problèmes partiels compréhensibles.
2- Identification de modèles :
On recherche des modèles identifiables au cœur des problèmes partiels. Ce faisant on s’appuie sur des valeurs
empiriques : souvent, les processus identifiés sont déjà connus en totalité ou en partie, dans le cadre d’autres
processus de résolution de problèmes.
3- Abstraction :
w
Les aspects insignifiants du problème sont mis de côté. L’accent est mis sur les détails pertinents. On veille à fortement
simplifier le problème initial.
ar
4- Algorithme :
Grâce aux étapes de réflexion précédentes, on sait désormais selon quels modèles opère la problématique rencontrée
et comment nous pouvons les influencer. Il est maintenant possible de définir des règles menant à la résolution de
problèmes.
M
(N-1)……
N- Fin nom programme
Application :
1- Ecrire un algorithme qui permet de saisir deux nombres a et b, calculer leur somme en la stockant dans une
variable s puis l’afficher.
2- Utiliser le logiciel Algobox pour écrire cet algorithme sur la machine.
0) Début somme
1) Lire (a)
2) Lire (b)
3) s a+b
4) Afficher (s)
5) Fin somme
2
Pensée
computationnelle
Remarques :
1- lire : est un mot clé traduire l’action de saisie à partir du clavier. Les informations saisies
(clavier) sont rangées en mémoire centrale
2- s a + b : il s’agit d’une opération d’affectation
Attribuer à une case mémoire(Variable) une valeur
3- Afficher : est un mot clé traduire l’action d’affichage sur l’écran.
e
b=int(input("donner un entier: "))
s=a+b
an
print("la somme = ",s)
w
…………………. : ……………………………………. ……………….………………………
…………………. : ……………………………………. ……………….………………………
ar
M
ZI
JA
3
Chapitre 1
e
Chapitre 1
an
w
Les structures de
ar
données
M
ZI
JA
4
Les structures de
données
Opérateur
Opération Exemple
En Algo En Python
13 - (2 + 5) * 6 = - 29
() () Parenthèse
13 – 2 + 5 * 6 = 41
e
* * Multiplication 3 * 9 = 27
/ / Division 15 / 9 = 1.6666666666666667
DIV // Division entière 15 / 9 = 1
an
MOD % Reste de la division entière 15 % 9 = 6
+ + Addition 5+2=7
- - Soustraction 5–2=3
w
a -= b équivaut à a = a-b
a *= b équivaut à a = a*b
a /= b équivaut à a = a/b
a %= b équivaut à a = a%b
ar
Existe Opérateur / Fonction Rôle Exemple
aussi en ** Puissance 5**2=25
Python
pow(x,y) Retourne x à la puissance y (même chose que x**y).
M
Type du
résultat
Syntaxe en Syntaxe en
Rôle de la fonction Exemples
algo Python
ZI
Même
Entier
que x
type
Réel
ou
Entier
5
Les structures de
données
2) Le type réel :
Les valeurs de type réel (float) ou nombre à virgule flottante, forment un sous ensemble des nombres réels R.
Type en T.D.O Type en Python
Réel float
e
Retourne la racine carrée de x si x
Racine_carré(x) sqrt (x) est positif sinon il provoque une Entier ou Réel Réel
erreur.
an
Retourne un entier, en ignorant la
Ent(x) trunc (x) * Réel Entier
partie décimale de x.
Existe
aussi en
Opérateur /
Fonction
round(x[, n])
Rôle
w
x arrondi à n chiffres, arrondissant la moitié au pair.
Si n est omis, la valeur par défaut à 0.
Exemple
ar
Python
Activité :
Quel sera le résultat donné par la console après saisie des suites d ́instructions suivantes ?
Instructions Résultats
ZI
JA
6
Les structures de
données
e
4) Le type logique :
Le type logique ou booléen comme dans tout langage peut prendre deux valeurs uniquement. En Python, ces valeurs
an
sont True et False.
Soit B1 et B2 deux objets de type Booléen, les principales opérations définies sur ce type sont :
Opération En Algo En Python B1 B2 not B1 B1 and B2 B1 or B2 B1 ^ B2
Négation Non(a) not(a) True True False True True False
Conjonction a ET b a and b True False False False True True
Disjonction a OU b a or b False True True False True True
Disjonction a OUEX b a ^ b False False True False False False
w
Tous les opérateurs relationnels retournent une valeur de type logique, quel que soit le type des objets
comparés.
ar
Soit x et y deux objets d'un type supportant les opérateurs relationnels, la liste de ces opérateurs est :
Syntaxe en Algo Syntaxe en Python Description
x<y x<y Inférieur
x≤y x <= y Inférieur ou égal
x>y x>y Supérieur
x≥y x >= y Supérieur ou égal
M
x=y x == y Égal (attention !)
x <> y x != y Différent
x≠y x != y Différent
xЄy x in y Appartient
Activité :
ZI
Compléter les expressions booléennes manquantes dans la liste des affectations suivantes en respectant la
valeur imposée de la variable booléenne Y :
La valeur de la variable
Affectations
booléenne Y doit être égale à :
Y← 7 > ………….. Vrai
JA
7
Les structures de
données
5) Le type caractère :
Une variable de type caractère contient un caractère et un seul. Un caractère est représenté par le caractère lui-
même placé entre apostrophes. Puisque le type caractère n’existe pas en Python, on peut le remplacer par le type
chaine de caractères.
En Algo En Python
Caractère str
Les fonctions standards relatives aux chaînes de caractères
Syntaxe en Algo Syntaxe en Python Description Exemple
chr(x) chr(x) Renvoie le caractère dont le code est le nombre entier x.
e
ord(c) ord(c) Renvoie le code ASCII du caractère c. Il s'agit de l'inverse de chr().
an
• Le caractère de position i dans une chaîne de caractères ch est symbolisé par ch[i].
• En algorithme, le premier caractère de la chaine est de position 0 (et en Python de position 0).
• En Python, une chaîne de caractères est un objet immutable, c’est-à-dire que ses caractères ne peuvent
pas être modifiés par une affectation séparée et sa longueur est fixe.
• Si on essaye de modifier un caractère d’une chaîne de caractères, Python renvoie une erreur.
En Algo En Python
Description
str
caractère
Construit un nombre entier ou réel à
int(ch) / float(ch) / partir d’un entier, d’un réel ou d’une
Valeur (ch)
eval(ch) chaîne (à condition que la chaîne
représente un nombre entier)
JA
8
Les structures de
données
Activité :
On considère la chaîne de caractères s="Bonjour le monde !". Déterminer les sous-chaînes suivantes :
Instruction Résultat
s[:4]
s[6:]
s[1:3]
s[-3:-1]
s[:-4]
s[-5:]
s[0:7:2]
e
s[2:8:3]
s[::-1]
s*2
an
s+" ça va ?"
len(s*3)
s.find("on")
s.isnumeric()
s.upper()
s[:7]+chr(32)+ "tout"+chr(32)+s[8:-1]+":)"
7) Les tableaux :
w
Un tableau est une variable indicée permettant de stocker n valeurs de même type. Le nombre n d'éléments, qui est
précisé à la déclaration, s'appelle la taille (ou capacité) du tableau. Les éléments d’un tableau ont généralement le
même type de données. La position d'un élément s'appelle indice ou rang de l'élément.
ar
On peut traduire le tableau en Python en une liste. Une liste est une collection ordonnée d’éléments éventuellement
hétérogène. Ces éléments sont séparés par des virgules et entourés de crochets et accessibles à l’aide des indices
associés (maliste[indice]).
M
Déclaration d’un tableau en Algo
Objet Type/Nature
T Tableau de N Type_élément
Syntaxe en
Syntaxe en Python Description Exemple
Algorithme
Permet d’ajouter un élément v
Lire(T[i]) T.append(v)
à la fin d'une liste.
Permet d’afficher les éléments
Ecrire(T[i]) print(T[i])
JA
d’un tableau T.
Pour changer la valeur d’un élément d’une liste on utilise l’expression suivante : liste[indice]←NouvelleValeur
9
Les structures de
données
e
aussi en Permet de supprimer l’élément
del(T[i])
Python d’indice i de la liste T.
Permet de supprimer l’élément
an
T.pop(p)
d’indice p de la liste T.
min(T) / max(T)
une chaine de caractère
Renvoi le plus petit / grand
élément de la liste T
w
Permet de convertir une liste en
ar
Permet de copier liste L1 dans une
L2=L1.copy()
nouvelle liste L2
Activité :
M
Soit la variable msg="Python:c’est:facile",
Exécuter les instructions ci-dessous en Python et compléter le tableau suivant :
B.append(len(A[0])) B=
B.insert(3,len(A[1])) B=
B.append(max(B)) B=
B.append(len(A[0])*2) B=
print(B.count(19))
JA
print(B.index(5))
B.pop(2) B=
B.remove(19) B=
del(B[len(B)-1]) B=
B.sort() B=
10
Chapitre 2
Chapitre 2
e
an
w
Les actions
ar
M
élémentaires
ZI
simples
JA
11
Les actions
élémentaires simples
e
Une action d'entrée ou lecture (saisie) de données.
Une action d'affectation d'une valeur à une variable.
Une action de sortie ou écriture (affichage) de données, de résultats ou de messages.
an
II- Les actions d’entrées :
Une action d'entrée consiste à saisir une ou plusieurs données à partir du clavier (ou autres sources d'entrées) pour
les ranger dans les cases mémoires correspondantes.
Syntaxe :
En algorithme En Python
LIRE (Identificateur_objet) Identificateur_objet =input (ˮMessageˮ)
Exemples :
Tâche
Lire un entier A LIRE (A)
En Algo
w En Python
ar
Lire un entier A (version 2) AFFICHER(″Donner A″); LIRE (A)
Lire une moyenne MOY LIRE (MOY)
Lire 3 entiers N1, N2 et N3 AFFICHER(″Donner 3 valeurs″);
LIRE (N1, N2, N3)
M
Lire un nom LIRE (NOM)
III- L’affectation :
L'affectation consiste à ranger une valeur dans la case mémoire d'une variable.
Cette action permet de modifier la valeur de la variable d'une manière interne (c'est à dire sans faire
appel à l'intervention de l'utilisateur)
ZI
Syntaxe :
En algorithme En Python
Identificateur_variable Valeur Identificateur_variable = Valeur
Exemples :
JA
12
Les actions
élémentaires simples
e
AFFICHER (A) print (A)
AFFICHER ("A =", A) print ("A =", A)
an
On peut fixer le formatage d'affichage des variables comme suit :
Ancienne méthode :
Syntaxe :
print(“%[largeur][.précision]type“%(valeur(s)))
Exemples :
w
Le retour à la ligne peut être forcé par le caractère \n, la tabulation par le caractère \t :
ar
M
Nouvelle méthode :
Syntaxe :
print(“{[largeur]:[.précision]type}“.format(valeur(s)))
Exemple :
ZI
Avec :
Tous ce qui est entre [ ] est optionnel
largeur : largeur totale (en caractère) sur laquelle on veut afficher la valeur
précision : nombre de chiffres à afficher de la valeur réel utilisée
JA
13
Chapitre 3
e
Chapitre 3
an
w
Les structures de
ar
contrôle
M
conditionnelles
ZI
JA
14
Les structures de
contrôle condionnelles
e
les structures conditionnelles généralisée.
an
1) Définition :
Une structure conditionnelle simple est dite réduite si son traitement est exécuté quand la condition est
vraie.
2) Syntaxe :
En algorithme En python
SI Condition ALORS if Condition :
Instruction 1 Instruction 1
w Instruction 2
.
Instruction n
FINSI
Instruction 2
.
Instruction n
Identation
ar
Dans cette forme, en évaluant la condition :
Si la valeur de la condition est VRAIE les instructions indiquées entre ALORS et FINSi seront exécutées.
Si la valeur de la condition est FAUX les instructions indiquées entre ALORS et FINSi ne seront pas exécutées.
Python utilise le symbole de deux points ( : ) et en retrait (identation) pour marquer là où commence et où
se termine le code de la structure.
M
Activité :
Écrire un algorithme puis la traduction en Python d’un programme intitulé SUP qui affichera la plus grande
valeur (MAX) de 2 entiers donnés N1 et N2.
1) Définition :
La structure conditionnelle est une structure dans laquelle on a à choisir entre deux traitements ou plus.
Une structure conditionnelle simple est dite complète si suivant la valeur d'une condition, on exécute soit un
traitement T1 soit un traitement T2.
2) Syntaxe :
JA
En algorithme En python
SI Condition ALORS if Condition :
Traitement 1 Traitement 1
SINON else :
Traitement 2 Traitement 2
FIN SI Identation
Activité :
Écrire un algorithme puis la traduction en Python d’un programme intitulé PARITE qui affiche un message
vérifiant la parité d’un entier E donné.
15
Les structures de
contrôle condionnelles
e
SINON Traitement n
traitement n
FIN SI
an
Activité :
Écrire un algorithme puis la traduction en Python d’un programme intitulé SAISON qui affichera le nom de
la saison en fonction de sa première lettre (S) donnée.
w
Une structure de contrôle conditionnelle est dite à choix lorsque le traitement dépend de la valeur que prendra le sélecteur.
2) Syntaxe :
ar
En algorithme En Python
SELON Selecteur
Valeur1, Valeur2,… : instruction(s) Puisque la structure conditionnelle à choix
Valeur3 : Instruction(s) multiple n’a pas d’équivalent en Python,
……………….. on pourra la remplacer par la structure
M
[Autres : instructions] conditionnelle forme généralisée
FIN SELON
Activité :
Écrire un algorithme puis la traduction en Python d’un programme intitulé JOURS qui affichera le nombre
ZI
de jours d’un mois, en fonction du numéro d’un mois (M) et une année (A) donnés.
JA
16
Chapitre 4
Chapitre 4
e
an
La saisie
w
contrôlée
ar
M
ZI
JA
17
La saisie contrôlée
15 La saisie contrôlée
Activité :
Ecrire un algorithme puis la traduction en Python d’un programme intitulé « Décision_Examen » qui à partir des
deux notes N1 et N2 de coefficients respectifs 3 et 4 obtenues par un élève dans un examen, affiche un message
indiquant si l’élève a réussi ou en revanche a échoué.
Prenons le cas où l’utilisateur se trompe et introduit par exemple les notes suivantes :
N1=35 & N2=16 ce qui donne une moyenne égale à 24,14 autrement dit l’élève sera déclaré comme admis, ce qui
n’est pas acceptable.
e
Questions :
Comment doit-on modifier la solution pour que l’ordinateur redonne la possibilité à l’utilisateur de saisir
an
une nouvelle note à chaque fois que celle-ci est hors intervalle.
Combien de fois l’ordinateur va-t-il inviter l’utilisateur à réintroduire la note ? Inconnu
Combien de fois au minimum l’ordinateur va-t-il redemander la saisie de la note ? 0 fois
Définition :
Prenons le cas d’une saisie au clavier (une lecture), où par exemple, le programme pose une question à laquelle
l’utilisateur doit répondre par O (Oui) ou N (Non). Mais tôt ou tard, l’utilisateur, facétieux ou maladroit, risque de
w
taper autre chose que la réponse attendue. Dès lors, le programme peut planter soit par une erreur d’exécution
(parce que la valeur de la réponse ne correspond pas au type de la variable attendu) soit par une erreur
fonctionnelle (il se déroule normalement jusqu’au bout, mais en produisant des résultats fantaisistes).
Alors, on met en place ce qu’on appelle un contrôle de saisie, afin de vérifier que les données entrées au clavier
ar
correspondent bien à celles attendues par l’algorithme.
Cette structure est utilisée lorsque le nombre de répétition d'exécution du module répétitif est inconnu.
La structure « répéter » :
Cette structure exécute les instructions placées entre (REPETER et JUSQU’A) et évalue à chaque répétition une
M
condition de type booléenne avant de continuer la boucle pour décider l'arrêt ou la continuité de la répétition. Il y a
donc au moins une fois exécution des instructions
Syntaxe
En Algorithme En python Lecture
Répéter n = input("Entrez un nombre: ")
ZI
True
JA
Les instructions sont toujours exécutées au moins une fois. Dans ce cas on utilise la boucle Répéter
…Jusqu’à
Activité :
On souhaite réaliser la saisie du numéro d’un mois (compris entre 1 et 12) avec vérification..
18
Chapitre 5
Chapitre 5
e
Les structures
an
w
ar
de contrôle
M
ZI
itératives
JA
19
Les structures de
contrôle itératives
e
(............)
3) SOM ← .............. Pour éviter toutes ces répétitions, on utilise
4) Afficher (“Saisir la moyenne de l’élève N° 2 :”) , Lire les structures itératives appelées aussi
an
(............) structure répétitives ou boucles.
5) SOM ← ...............
6) Afficher (“Saisir la moyenne de l’élève N° 3 :”) , Lire
(............)
7) SOM ← ...............
8) MOY ← ....................
9) Afficher (“La moyenne de la classe est :”, MOY)
10) FIN MOYENNE_CLASSE
w
I- Structure de contrôle itérative complète : la boucle « pour »
Un résultat à une définition itérative complète s’il est la répétition d’une suite d’instructions un nombre fini de fois
ar
connu à l’avance.
Syntaxe
En algorithme En Python
Pour compteur de Vi à Vf faire For compteur in range (Vi, Vf+1):
Instruction 1 Instruction 1
M
Instruction 2 Instruction 2
….. …..
Instruction N Instruction N
FinPour
• Le traitement de la boucle « Pour » s’arrête lorsque le compteur atteint la valeur finale (Vf).
• Les instructions entre « Pour » et « FinPour » constitue le corps du traitement à répéter.
Exemples :
JA
20
Les structures de
contrôle itératives
Activité :
Ecrire un algorithme puis la traduction en Python d’un programme intitulé PUISSANCE permettant de
déterminer puis d’afficher la valeur de P qui représente X à la puissance N (P = XN)
N.B. : On suppose que dans tous les cas les valeurs de X et N sont strictement positives.
1) La boucle « Répéter…Jusqu’à » :
e
a) Définition :
12 Cette boucle exécute les instructions placées entre (REPETER et JUSQU’A) puis évalue à chaque répétition une condition de type
booléenne avant de continuer la boucle pour décider l'arrêt ou la continuité de la répétition. Il y a donc au moins une fois
exécution des instructions.
an
b) Syntaxe :
Instruction
En Algorithme En python
Répéter Instruction
Instruction while not(Condition) : False
Jusqu’à Condition Instruction Condition
Activité :
w True
Ecrire un algorithme puis la traduction en Python d’un programme intitulé PALINDROME permettant de
ar
saisir un mot puis chercher si ce mot est un palindrome ou non. Un palindrome est un mot qui est
identique si on le lit de gauche à droite ou de droite à gauche.
Exemple : kayak est un palindrome
b) Syntaxe :
False
En algorithme En Python Condition
TantQue Condition Faire While Condition :
Instruction 1 Instruction 1 True
JA
Dans la boucle « TantQue », on peut tomber dans un cas où le traitement correspondant ne s’exécute aucune fois et
ceci si dès la première évaluation la condition est fausse.
Activité :
Écrire un algorithme puis la traduction en Python d’un programme intitulé TRAITEMENT permettant de
saisir une phrase quelconque ( PH ) puis élimine tous les espaces supplémentaires entre les mots (en
laissant un seul).
N.B. : On suppose qu'il n’existe aucun espace au début et à la fin de la phrase PH.
21
Annexe
IV- Pro cédu re :
Une procéd ure est u n sous-progra mme qui pe ut être paramétrée ou n on para métrée et qui e nglobe un traiteme nt qui ne ret ourne a ucun rés ultat.
Table ASCII
e
an
w
ar
M
ZI
JA
22