imen.essassi@tarbia.
tn Lycée 9 avril 1938- Tunis
Pensée computationnelle et programmation
Démarche de résolution de problème
Situation : Préparer un jus d’orange
Compléter le schéma suivant afin d’identifier les outils (entrées), les actions (les traitements) et les résultats (les sorties) de cette situation en réécrivant les étapes de
réalisation.
1
[email protected] Lycée 9 avril 1938- Tunis
Décrire les éléments essentiels permettant la résolution d’un problème :
Jeu 1 : Lancement de dé
2
[email protected] Lycée 9 avril 1938- Tunis
Règle du jeu
Le dé contient 6 facettes. Les facettes contiennent des valeurs comprises entre ….. et …..
Travail à faire
a- Ecrire un algorithme qui permet de simuler ce jeu.
………………………………………………………………………………………………
b- En déduire le Tableau de Déclaration des Objets (TDO).
Objet Type
c- Afin d’afficher la valeur choisie par l’ordinateur, il suffit d’utiliser cette instruction :
………………………………………………………………………………………………
La fonction Alea
Définition
Alea est une fonction qui permet de saisir …………………… une valeur comprise entre une valeur
initiale Vi et une valeur finale Vf.
Exercice 1 : Lancer Thonny et remplir le tableau suivant :
Description Algorithme Python
……………………………………………..
……………………………… X aléa() X = random()
………………………… print (X)
Ex: >>> X= random()
0.49852220170348827
Générer un nombre entier dans ……………………………………………..
[val1, val2] X Aléa (val1, val2) X = ………………… (val1, val2)
Ex: >>> ………………… (0, 20)
print(X)
20
Générer un nombre réel dans ……………………………………………..
[val1, val2] X = uniform (val1, val2)
Ex: >>> X= uniform (10, 12.5)
……………………………………………..
print("{:10.2f}".format(x))
……………………………………………..
Savoir-faire : Les bibliothèques
from random import *
from math import *
Exercice 2
- Lancer Thonny.
- Implémenter en Python le programme qui permet de simuler le jeu du lancement de dé.
3
[email protected] Lycée 9 avril 1938- Tunis
- Enregistrer le programme sous le nom « Ex2 » dans votre dossier de travail.
- Ajouter à votre programme cette instruction : print(type(D)).
Remarque : Python est sensible à la casse : print (type(X)) ≠ print (type(x))
Qu’affiche le programme ?
………………………………………………………………………………
En déduire le type de x.
……………………………………………………………………………….
Savoir- faire : Les objets
Un objet peut changer de valeur à tout moment dans l’algorithme.
Les types des objets standards :
Algorithme Python
Entier int
Réel float
Booléen bool
Chaîne de caractères str
Exercice 3 : Le jeu de chance Pile / Face
1- Ecrire un algorithme qui permet de simuler le résultat de la lancée d’une pièce de monnaie.
NB : Pile est symbolisée par 1 et face est symbolisée par 0.
…………………………………………………………………………………………
2-
- Lancer Thonny.
- Implémenter en Python le programme qui permet de simuler ce jeu.
- Enregistrer le programme sous le nom « Ex3 » dans votre dossier de travail.
Exercice 4 : Le jeu Taureau/ Vache
1- Ecrire un algorithme qui permet de proposer un entier positif de 4 chiffres à deviner par
l’utilisateur.
…………………………………………………………………………………………
2-
- Lancer Thonny.
- Implémenter en Python le programme qui permet de simuler ce jeu.
- Enregistrer le programme sous le nom « Ex4 » dans votre dossier de travail.
L’affectation
Notation algorithmique
X est une variable à laquelle on associe la valeur de 5. ………………………………
4
[email protected] Lycée 9 avril 1938- Tunis
Implémentation Python
L’affectation en Python est représentée sous forme du signe =
Exemple : …………………………………………………………………………………
Savoir- faire : L’affectation
Cette opération permet d’affecter une valeur ou une expression à une variable.
Au niveau de l’algorithme Au niveau du Python
x5 x=5
x x+2 x=x+2
y a/b y=a/b
Exercice 5
1- Compléter le tableau suivant :
Instruction Valeur de A Valeur de B Valeur de C
A5
B 7
CA
AB
BC
2- Quel est le rôle de cet ensemble d’instructions ?
…………………………………………………………………………………………
Exercice 6
1- Compléter le tableau suivant :
Instruction Valeur de A Valeur de B
A5
B 7
AA+B
BA-B
AA-B
2- Quel est le rôle cet ensemble d’instructions ?
…………………………………………………………………………………………
Le type entier
Définition : C’est l’ensemble Z des entiers relatifs.
Savoir- faire
5
[email protected] Lycée 9 avril 1938- Tunis
Opérateurs arithmétiques : +, -, *, /, div, mod Opérateurs de comparaison : ≤, ≥, <, >, ≠, =
Algorithme Python Algorithme Python
div // ≠ !=
mod % = ==
Exercice 7
Compléter le tableau suivant :
Instruction Résultat Type
A 5+7
B 5-7
C 5*7
D5/7
E5 div 7
F5 mod 7
G5>7
H5≠7
Le type booléen
Définition : Le type booléen prend comme valeurs : vrai (True) ou faux (False)
Table de vérité
A B Non(A) A ou B A et B
V V
V F
F V
F F
Savoir- faire
Notation algorithmique / Notation Python
Algorithme Python
non not
et and
ou or
Exercice 8
Compléter le tableau suivant :
Instruction Résultat Type
A (2>7) et (-2<5)
B (Alea (1,3)<10) ou (4>2)
C non (10≠-2)
6
[email protected] Lycée 9 avril 1938- Tunis
L’affichage
Savoir- faire
Algorithmique : Forme générale
Forme générale Exemples
Ecrire (variable) Ecrire (C)
Ecrire (message) Ecrire (‘’Bonjour’’)
Ecrire (message,variable) Ecrire (‘’La somme est :’’,S)
Python : Forme générale
Forme générale Exemples
print (variable) print (C)
print(message) print(‘Bonjour’)
print(message,variable) print(‘La somme est :’,S)
Exercice 9
1- Réécrire l’ensemble des instructions de l’Exercice 5 et afficher les valeurs finales de A et B.
…………………………………………………………………………………………………………
…………………………………………………………………………………………………………
…………………………………………………………………………………………………………
…………………………………………………………………………………………………………
…………………………………………………………………………………………………………
…………………………………………………………………………………………………………
……………………………………………………………………
2-
- Lancer Thonny.
- Implémenter cet algorithme en Python.
- Enregistrer le programme sous le nom « Ex9 » dans votre dossier de travail.
Exercice 10
1- Réécrire l’ensemble des instructions de l’Exercice 6 et afficher les valeurs finales de A et B.
…………………………………………………………………………………………………………
…………………………………………………………………………………………………………
…………………………………………………………………………………………………………
…………………………………………………………………………………………………………
…………………………………………………………………………………………………………
…………………………………………………………………………………………………………
……………………………………………………………………
2-
- Lancer Thonny.
- Implémenter cet algorithme en Python.
- Enregistrer le programme sous le nom « Ex10 » dans votre dossier de travail.
7
[email protected] Lycée 9 avril 1938- Tunis
Exercice 11
a- Ecrire ce programme sur votre b- Enregistrer le programme sous le nom
« Ex11 » dans votre dossier de travail.
c- Exécuter le programme.
d- En déduire son rôle.
…………………………………………….
machine :
Jeu 2 : Chilaformi
Règles du jeu
- L’ordinateur saisit aléatoirement un nombre V1 compris entre 0 et 5.
- L’utilisateur saisit un nombre V2 compris entre 0 et 5.
- Calculer la somme de V1 et V2.
- Si la somme est paire, alors afficher « Ordinateur gagnant ».
Si la somme est impaire, alors afficher « Utilisateur gagnant ».
8
[email protected] Lycée 9 avril 1938- Tunis
Travail à faire
a- Ecrire un algorithme qui permet de simuler ce jeu.
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………………………………………………………
……………………………………………………
b- En déduire le Tableau de Déclaration des Objets (TDO).
Objet Type
c- Implémenter cette solution en Python.
Lecture / Saisie d’un objet
Savoir- faire
Algorithme Python
Ecrire (« Donner un nombre : ») x=int(input(‘Donner un nombre :’))
Lire (x) print(type(x)) ……………………
Lire (x) x=str(input())
print(type(x)) ……………………
Ecrire (« Donner votre nom : ») nom=input(‘Donner votre nom :’)
Lire (nom) print(type(nom)) ……………………
Ecrire (« Donner une note : ») note=float(input(‘Donner une note :’))
Lire (note) print(type(note)) ……………………
Exercice 12
a- Réorganiser ces instructions pour que l’algorithme affiche le montant à payer par un client qui a
acheté q cahiers sachant que le prix du cahier est 2500 millimes et qu’il a une remise de 10%.
1. Ecrire (“Le montant payé est : ”, m)
2. m 2500 * q
3. Ecrire (“Donner la quantité : ”), Lire (q)
4. r (10*m)/100
5. m m-r
9
[email protected] Lycée 9 avril 1938- Tunis
b- En déduire le Tableau de Déclaration des Objets (TDO)
Objet Type
Exercice 13
Ecrire un algorithme qui permet de saisir deux entiers A et B puis calculer et afficher la somme et le produit
de A et B.
Exemple : A=5, B=3 le programme affiche : S=8, P=15
Exercice 14
Ecrire un algorithme qui permet de saisir deux entiers A et B puis les permuter et les afficher.
Exemple : A=5, B=13 le programme affiche : A=13, B=5
Exercice 15
Ecrire un algorithme qui permet de saisir un rayon r strictement positif puis calculer le périmètre d’un
cercle. Périmètre d’un cercle=2 π r ( π est une constante = 3,14).
Exercice 16
Ecrire un algorithme qui permet de saisir un entier n composé de 3 chiffres puis afficher son inverse.
Exemple : n=256 le programme affiche : nombre inversé=652
Exercice 17
Ecrire un algorithme qui permet de saisir un entier n composé de 4 chiffres puis afficher la somme de ses
chiffres.
Exemple : n=1024 le programme affiche : S=7
Le types caractère et chaîne de caractères
Savoir-faire : Le type chaîne de caractères
Une chaîne de caractères est une suite de caractères. Elle est composée de caractères : lettres
alphabétiques majuscules ou minuscules (M, a, …), des chiffres (0, 1,…), des signes de
ponctuation (., ?,…) et des symboles (#, &,…). Exemples : Maths / 123 /
17/02/2021 / 1+3-5 ! / est appelée chaîne vide
Savoir-faire : Les fonctions prédéfinies sur le type chaine de caractères
Algorithme Python Description
10
[email protected] Lycée 9 avril 1938- Tunis
Long(S) len(S) Retourne le nombre de caractères de la chaine S.
Retourne la première position de S1 dans S2.
Pos (S1, S2) S2.find(S1)
Si S1 n’existe pas dans S2, retourne -1
Convch(X) str(X) Convertit un nombre X en chaine.
Retourne Vrai si la chaine S est convertible en
Estnum(S) S.isnumeric()
numérique, Faux dans le cas contraire.
Retourne la conversion d’une chaine S en numérique si
Valeur(S) int(S)
c’est possible.
Retourne une partie de la chaine S à partir de la
Sous_Chaine (S, D, F) S[d:f]
position D jusqu’à la position F exclue.
Efface des caractères de la chaine S à partir de la
Effacer (S, D, F) S[:D]+S[F:]
position D jusqu’à la position F exclue.
Majus(S) S.upper() Convertit la chaine S en majuscule.
Savoir- faire : Opérateur de concaténation +
Algorithme Python Type
Ch 1+2
Ch=………..
Savoir-faire : Le type caractère
Les lettres alphabétiques majuscules ou minuscules (A..Z, a..z), les chiffres
(0..9), les signes de ponctuation (., ?,…) et les symboles (#, &, …)
le caractère espace
Savoir-faire : Les fonctions sur le type caractère
Algorithme & Python Rôle Exemples
A ord(c) A contient le code ASCII du caractère c print(ord(A))=……
ord(B)=……
print(ord(a))=……
ord(b)=……
C chr(d) C contient le caractère dont le code ASCII est d print(chr(65))=……
chr(66)=……
print(chr(97))=……
chr(98)=……
Exercices 16 et 17
11
[email protected] Lycée 9 avril 1938- Tunis
Exercice 18 : Ecrire un algorithme qui permet de saisir une lettre alphabétique minuscule puis afficher son
équivalent en majuscule.
Exemple : Let=a Let en majuscule=A
Exercice 19 : Ecrire un algorithme qui permet de saisir une chaine de caractères de taille impaire, puis afficher la
chaine contenant sa longueur, son premier caractère, le caractère du milieu ainsi que le dernier caractère.
Exemple : ch=poste Le programme affiche : 5pse
Exercice 20 : Ecrire un algorithme qui permet de saisir une chaine de caractères de taille maximale 7 puis
remplacer son premier caractère par son successeur. (2 méthodes)
Exemple : ch=portail Le programme affiche qortail
Savoir-faire : Le type chaîne de caractères
En python, le type chaîne de caractères est un type immutable c’est-à-dire un objet de type chaine de
caractères ne peut pas être modifié.
La structure conditionnelle
Savoir-faire : Structure conditionnelle simple : Syntaxe
Algorithme Python
Si condition Alors Traitement 1 if conditions(s) :
Sinon Traintement 2 Traitement 1
Fin si else :
Traitement 2
Exercice 21 : Un algorithme peut aussi être représenté sous forme graphique. On parle d'organigramme (ou
d'ordinogramme).
a- Transformer cet organigramme en un algorithme.
12
[email protected] Lycée 9 avril 1938- Tunis
b- Implémenter cette solution en Python.
Exercice 22
Ecrire un algorithme qui permet de saisir un entier composé de 3 chiffres et de vérifier s’il est cubique. Un entier
naturel de 3 chiffres est dit cubique s’il est égal à la somme des cubes de ses trois chiffres. (2 méthodes).
Exemples : 153 est cubique car 153=13+53+33, 300 n’est pas cubique car 300 ≠ 33+03+03 (=27)
Exercice 23
Ecrire un algorithme qui permet de saisir deux entiers A et B puis afficher le maximum de ces deux entiers.
Exemple : a=5, B=-7 le programme affiche : Le maximum de 5 et -7 est 5.
Exercice 24
Ecrire un algorithme qui permet de saisir une chaîne ch et un caractère c puis afficher si c existe ou non dans
ch.
Exemple : ch=informatique et c=f Le programme affiche : f existe dans informatique
Exercice 25
Ecrire un algorithme qui permet de saisir une lettre alphabétique (majuscule ou minuscule) puis afficher son
rang dans l’alphabet. (2 méthodes)
Exemple : Let= B Rang dans l’alphabet=2
Exercice 26
Ecrire un algorithme qui permet de saisir un entier X puis afficher s’il est positif ou négatif.
Exemple : X=5 5 positif
Exercice 27
13
[email protected] Lycée 9 avril 1938- Tunis
a- Ecrire un algorithme qui permet de saisir deux entiers A et B puis afficher le signe de leur produit :
positif, négatif ou neutre. Nb : Ne calculer pas le produit
Exemple : A=7, B=-2 Le signe du produit est négatif
b- Implémenter cette solution en Python.
Exercice 28
Le jeu consiste à tirer au hasard un entier X formé de deux chiffres.
Si le chiffre de dizaine est égal au chiffre d'unité, on gagne 10 points.
Si le nombre est divisible par 3, on gagne 2 points.
Si le chiffre de dizaine est impair, on gagne 1 point.
Si les 3 conditions sont vérifiées alors afficher X est un nombre magique
Afficher le score final.
Exemple : si le nombre tiré est 99, on gagne 13 pts 99 est un nombre magique
Ecrire un algorithme qui permet de calculer, afficher le score obtenu et afficher si le nombre est magique.
Exercice 29
Ecrire un algorithme qui permet de saisir deux entiers a et b (b supposé différent de 0) puis résoudre dans R
l’équation ax+b=0
Jeu 3 : Chilaformi (Version 2)
Règles du jeu
1- L’ordinateur saisit aléatoirement un nombre V1 compris entre 0 et 5.
2- L’utilisateur saisit un nombre V2 (supposé compris entre 0 et 5).
3- Calculer la somme de V1 et V2.
4- Si la somme est paire, alors ajouter un point au score de l’ordinateur.
5- Si la somme est impaire, alors ajouter un point au score de l’utilisateur.
6- Répéter les étapes 1-, 2-, 3-, 4-, 5- 5 fois.
Travail à faire
a- Ecrire un algorithme qui permet de simuler ce jeu.
b- En déduire le Tableau de Déclaration des Objets (TDO).
c- Implémenter cette solution en Python.
Savoir- faire : Structure itérative complète : Syntaxe
Algorithme Python
14
[email protected] Lycée 9 avril 1938- Tunis
for element in sequence :
Traitement
La variable element est dite variable d’‘itération, elle prend
successivement les différentes valeurs de la sequence
Pour compteur de Vi à Vf faire
Exemples
Traitement for i in range(10) :
print(i) # affiche les entiers de 0 à 9
Finpour for i in range(5,10) :
print(i) # affiche les entiers de 5 à 9
Vi : valeur intiale du compteur for n in range(10,20,2):
print(n) # affiche les entiers de 10 a 18
Vf : valeur finale du compteur
avec un pas =2 (10,12 ,14,16,18)
for i in range (10,0,-1) :
print (i) #affiche les entiers de 10 à 1
avec un pas = -1
Exercice 30 : Ecrire un algorithme qui permet de saisir une chaîne puis l’inverser et l’afficher.
Exercice 31 : Palindrome
Ecrire un algorithme qui permet de saisir une chaîne de caractères puis vérifier si elle est palindrome. Une
chaine est dite palindrome si elle est la même de droite à gauche et de gauche à droite.
Exemples : AZZA, radar
Exercice 32 : Nombre Premier
Ecrire un algorithme qui permet de saisir un entier N puis vérifier s’il est un nombre premier.
Un nombre est dit premier s’il est divisible par 1 et par lui- même.
Exemples : 5, 7, 11 sont des nombres premiers.
Exercice 33
Ecrire un algorithme qui permet de saisir un entier n puis calculer et afficher n !.
n !=1*2*3*4*…*(n-1) * n
Exemples : n=0 0 !=1 // n=1 1 !=1 // n=4 4 !=1*2*3*4=24
Exercice 34
Ecrire un algorithme qui permet de saisir deux entiers x et y (x0, y0) puis calculer et afficher xy.
Exemple : x=3, y=2 32=8
Exercice 35
Ecrire un algorithme qui permet d’afficher les nombres pairs composés de 2 chiffres.
Le programme affiche : 10, 12, 14,…..,98
Exercice 36
Ecrire un algorithme qui permet de saisir un entier n0 puis afficher s’il est parfait ou non.
Un nombre n est dit parfait s’il est égal à la somme de ses diviseurs sauf lui- même
Exemple : n=6, les diviseurs de 6 sauf lui- même : 1, 2 et 3 1+2+3=6 6 est parfait
Exercice 37
15
[email protected] Lycée 9 avril 1938- Tunis
Ecrire un algorithme qui permet de saisir une chaîne ch alphabétique, puis calculer le nombre de
consonnes et de voyelles dans cette chaîne.
Exemple : ch=abCDEf nbre de voyelles=2, nbre de consonnes= 4
Exercice 38
Ecrire un algorithme qui permet de saisir une chaîne ch puis calculer la somme des chiffres dans ch.
Exemple : ch=a1$BC#7 S=8
Exercice 39
Ecrire un algorithme qui saisit une chaîne ch puis affiche le nombre de mots de cette chaîne. On suppose
que deux mots sont séparés par un et un seul espace.
Exemple : ch=Bonjour la Tunisie. nbre de mots = 3
Exercice 40
Ecrire un algorithme qui permet de saisir une chaîne alphabétique ch puis afficher la chaîne des lettres
majuscules et la chaîne des lettres minuscules.
Exemple : ch=aBC# chv=a, chc=BC
Exercice 41
Ecrire un algorithme qui permet de saisir une chaîne ch, saisir un caractère c puis calculer le nombre
d’occurrences de c dans ch.
Exemple : ch=123451211, c=1 Nbre d’occurrences=4
16