Académique Documents
Professionnel Documents
Culture Documents
ème
Niveau : 2 TI
Partie2
Partie3
Partie1
☞Objectifs :
▪ Les différents types des variables.
▪ Structure conditionnelle.
🖎Décomposition de problème :
☞TDO
Objet Type/nature Rôle
a, b Variable/Entier Deux variables tirés au hasard par l’ordinateur
p Variable/Entier Produit des deux entiers
test Variable/Boolée tester de la réponse de l’utilisateur
n
Break de savoir :
🖎Note :
☞Une variable est une zone de la mémoire centrale de l'ordinateur dans
laquelle une valeur est stockée.
☞Une variable possède un identificateur (nom) et un type (numérique, booléen,..)
🖎Note :
🖎 Structures conditionnelle (test) : permet d’exécuter un bloc de code selon qu’une
condition (test booléen) soit vérifié ou pas.
On distingue les formes suivantes :
☞Forme simple: if (“si”)
☞Forme complète: if…else (“si…sinon”)
☞Forme imbriqués (avec alternatives): if…elif…else (“si…sinon si… sinon”)
🖎Note :
☞ Les types des variables sont classés généralement en quatre catégories: les types
numériques (entiers & réels), les types alphanumériques (les chaines de caractères),
types booléens (Vrai/faux) et les tableaux (listes).
3) A part les opérateurs arithmétiques usuels, citer d’autres qu’on peut les appliquer
avec des opérandes numériques ?
🖎Note :
☞ On peut appliquer plusieurs opérateurs avec des opérandes (variables) numériques.
Exercice d’application:
Aider votre professeur de math à trouver une solution informatique pour résoudre
l’équation suivante : F(x,y)= √|2x+1|/y3
Sachant que x et y sont deux réels aléatoires (x €
[0,1] et y € [0,40])
☞Programme python :
from random import *
from math import *
x=random()
y=uniform(1,40)
if (y!=0) :
f=sqrt(abs(2*x+1)/pow(y,3))
print("X=", round(x,3), "Y=", round(y,3), "F=",round(f,3))
☞TDO
Obje Type/nature Rôle
t
🖎Note :
☞Le module math contient des fonctions mathématiques de base (sqrt, abs, pow..)
✔ "Pupille": de 8 à 9 ans
✔ "Minime": de 10 à 11 ans
Solution1 : Solution2 :
Algorithme categorie_enfant Algorithme categorie_enfant
Début Début
1) Afficher ("Saisir l'âge: ") 1) Afficher ("Saisir l'âge: ")
Lire (age) Lire (age)
2) SI age < 6 ALORS 2) SI age < 6 ALORS
Afficher ("Saisir un âge supérieur ou égal Afficher ("Saisir un age supérieur ou égal
6") 6")
SINON SI age <=7 ALORS SINON SI age …………. ET age ………… ALORS
Afficher ("Poussin") Afficher ("Poussin")
SINON SI age <=9 ALORS SINON SI age ………… ET age ………… ALORS
Afficher ("Pupille") Afficher ("Pupille")
SINON SI age <=11 ALORS SINON SI age ………… ET age ………… ALORS
Afficher ("Minime") Afficher ("Minime")
SINON SINON
Afficher ("Cadet") Afficher ("Cadet")
FIN SI FIN SI
Fin Fin
Suite Partie1
l’utilisateur doit
s’identifier au début du
jeu à travers la saisie de
son nom et prénom
séparés par espace.
Affichons par la suite un
message de bienvenu à
l’utilisateur (en affichant
uniquement son prénom).
3) L🡨long( ch)
7) b🡨Aléa (0 ,10)
8) Afficher (a,’’*’’,b,’’= ’’)
Lire(p)
9) test🡨(a*b=p)
10)Si (test=vrai) alors Afficher (test, ‘’Bravo !‘’)
Sinon Afficher (test, ‘’c’est faux !’’)
Fin si
Fin calculatrice
☞Programme python :
from random import randint
#----------------Ajout de l'identification de l'utilisateur----------------
ch=input("Nom&Prénom du joueur (séparés par espace!):")
p_espace=(ch.find(" "))
L= len(ch)
prenom=ch[(p_espace)+1 :L] #--- avec L exclus---
print("Bienvenu", prenom, "dans notre jeu !")
#---------------Commençant le jeu -----------------------------------------
a=randint(0,10)
b=randint(0,10)
print(a,"*",b,"=", end=" ")
p=int(input())
test=(a*b==p)
if (test==True): print(test, "Bravo!")
else: print(test, "C'est faux!")
Break de savoir :
🖎Note :
🖎 Une chaîne de caractères est une suite ordonnée de caractères (un mot, une phrase..),
délimitée par des quottes.
🖎 Une chaîne peut ne contenir aucun caractère : on l’appelle chaîne vide (‘‘’’)
🖎 Un chaine est immuable, càd que son contenu ne peut plus être modifié.
🖎 Voici la table des codes ASCII des premiers caractères. Les numéros 0 à 32 ne sont pas
des caractères imprimables. Cependant le numéro 32 est le caractère espace (" ")
Pos (ch1, ch2) Ch2.find(ch1) Retourne la première position de la chaîne ch1 dans ch2
Affichage Interprétation
Instructions
Prof : Mme A.Hanen & Mr S.Akrem Page 14
s1+s2+s3 'La vie est belle.' Concaténation des 3 chaines.
s3*3 'belle.belle.belle. Répéter 3 fois la chaine s3.
'
"E" not in True Vérifie le non inclusion du caractère ‘E‘
s2 dans la chaine s2.
"la" in s1 False Vérifie l’inclusion de la chaine ‘la‘ dans la
chaine s1.
"belle "== True Compare l’égalité entre les 2 chaines.
s3
s2<=s3 True Compare l’infériorité de s2 par rapport à
s3.
Partie 2 et 3
▪ Interroger 5 fois l’utilisateur et ajouter un score (1 par bonne réponse et -1 sinon)
☞Objectifs :
▪ La structure de contrôle itératives complète (boucle Pour)
▪ Les listes
🖎Décomposition de problème :
Améliorons l’affichage :
En algo En python
[ ] Pour compteur de Vi à Vf [Pas = valeur] for compteur in séquence :
faire Traitement
Traitement ☞Les éléments de la séquence sont issus
Fin pour d'une chaîne ou d'une liste.
🖎 Une liste est une structure de données contenant plusieurs éléments de même type
ou de types différents, délimités entre 2 crochets.
Partie 4
Améliorons encore notre jeu :
En cas de réponse erronée, le programme
reposera la même question, tant que la bonne
réponse n'aura pas été donnée.
☞Objectifs :
▪ La boucle à condition d’arrêt (Tantque)
🖎Décomposition de problème :
Break de savoir :
🖎Note :
🖎 La boucle non bornée sans limite (Tantque/while) : permet de répéter un traitement
tant que la condition d’entrée est Vraie (valide/vérifiée).
🖎 Elle est utilisée si on ne connait pas à l’avance le nombre de répétitions.
En algorithme En python
Partie 5
Améliorons encore notre jeu :
Le programme fait un contrôle de saisie du produit p donné par le joueur et n’accepte
que une valeur numérique (entier) pour déclencher par la suite le jeu.
☞Objectifs :
▪ La boucle à condition d’arrêt (Répéter.. jusqu’a)
🖎Décomposition de problème :
Break de savoir :
🖎Note :
En algorithme En python
[] Répéter while True:
Traitement Traitements
if condition_True:
Jusqu'à condition_Vrai
break
Partie 6
Améliorons encore notre jeu :
✔ Contrôler toute saisie du produit p donné par le joueur (doit être de type entier)
☞Objectifs :
▪ Les sous programmes (procédures et fonctions)
☞Décomposition de problème :
a🡨Aléa (0 ,10)
b🡨Aléa (0 ,10)
Répéter
Afficher (’’Essai’’, i+1, ’’ :’’, a,’’*’’, b,’’= ’’)
Lire(p)
Jusqu'à estnum(p)
Tantque (valeur(p) ≠ a*b) faire
Score=score-1
Afficher (‘’c'est Faux! Réessayez encore! score=", score)
Répéter
Afficher (’’Essai’’, i+1, ’’ :’’, a,’’*’’, b,’’= ’’)
Lire(p)
Jusqu'à estnum(p)
Fin Tantque
Score=score+1
Afficher (‘’Bravo! score=’’, score)
Fin pour
Afficher (‘’Résultat final : ‘’, i+1, ‘’essais et votre score=", score)
Afficher ("voulez-vous rejouez? (oui/non): ")
Lire (reponse)
Fin Tantque
Fin calculatrice
Break de savoir :
🖎Note :
🖎 Un sous programme (module) permet l’utilisation redondante d’un même traitement en
différents points du programme juste par un simple appel.
🖎 Il s’agit de découper un programme complexe en petits modules traités séparément.
🖎 Une fonction retourne une seule valeur (numérique, chaine, liste..) suite à un traitement
bien précis.
En algorithme En python
Fonction ma_fonction (paramètres Def ma_fonction
formels :type) :type_résultat (param) :
Début Traitement
Traitement return résultat
Retourner Résultat (facultatif)
Fin def, mot-clé qui est l'abréviation
de « define » (définir, en anglais)
☞Appel : var🡨 ma_fonction (param effectifs) (au
niveau du prog. principal)
Exemple :
def cube(x):
return (x * x * x)
En algorithme En python
Exemple :
def message ():
print ("Fonction sans retour de valeur !")
🖎 Une variable déclarée dans un sous-programme est dite locale est elle n’est accessible
que depuis ce sous-programme (indéterminée dehors)
Exemple :
def cube(x):
return (x * x * x)
Scripts Résultat
1*7=7
🖳 Afficher la table de multiplication par 7: 2 * 7 = 14
3 * 7 = 21
def tableMult_par_7(): 4 * 7 = 28
i = 1 5 * 7 = 35
while i <= 10: 6 * 7 = 42
print(i, "*", 7, "=", i * 7) 7 * 7 = 49
i += 1 # On incrémente i de 1 à chaque tour de boucle. 8 * 7 = 56
9 * 7 = 63
# appelle de la procédure
10 * 7 = 70
tableMult_par_7()
# appelle de la procédure
rectangle(7,5)
x et y sont passées par valeurs (pas de changement)
# appelle de la fonction
s=sommeEntiers(6)
print(s)
def somme_produit(a,b): 13 42
s = a + b
p = a * b
print(s, p)
# appelle de la procédure
somme_produit(6,7)
a et b sont passées par valeurs (pas de changement)
☞Algorithme procédure
saisie_produit :
Procédure saisie_produit (@X: entier)
Début
Répéter
Afficher (’’Essai’’, i+1, ’’ :’’, a,’’*’’, b,’’= ’’)
Lire(X)
Jusqu'à estnum(X)
Fin
☞ TDO :
❶ Un paramètre formel (local) est un paramètre utilisé dans la définition d'un sous
programme.
❷ Un paramètre effectif (global) ou réel est un paramètre utilisé lors de l'appel d'un
sous-programme.
🖎 Une règle à respecter :
Eliminer tous les paramètres dont le mode de passage est par référence @
et les retourner en résultat.
def Nom_procédure (paramètres):
Traitement
[return resultat]
☞L’appel en Python
- Si la procédure retourne un ou plusieurs résultats, il faut les stocker dans des
variables :
Variable(s)= Nom_procédure (paramètres)
- Si la procédure ne retourne rien :
Nom_procédure (paramètres)
Partie 6
Améliorons encore notre jeu :
✔ Contrôler toute saisie du produit p donné par le joueur (doit être de type entier)
☞Objectifs :
▪ Les sous programmes (procédures et fonctions)
☞Décomposition de problème :
a🡨Aléa (0 ,10)
b🡨Aléa (0 ,10)
Répéter
Afficher (’’Essai’’, i+1, ’’ :’’, a,’’*’’, b,’’= ’’)
Lire(p)
Jusqu'à estnum(p)
Tantque (valeur(p) ≠ a*b) faire
Score=score-1
Afficher (‘’c'est Faux! Réessayez encore! score=", score)
Répéter
Afficher (’’Essai’’, i+1, ’’ :’’, a,’’*’’, b,’’= ’’)
Lire(p)
Jusqu'à estnum(p)
Fin Tantque
Score=score+1
Afficher (‘’Bravo! score=’’, score)
Fin pour
Afficher (‘’Résultat final : ‘’, i+1, ‘’essais et votre score=", score)
Afficher ("voulez-vous rejouez? (oui/non): ")
Lire (reponse)
Fin Tantque
Fin calculatrice
Break de savoir :
🖎Note :
🖎 Un sous programme (module) permet l’utilisation redondante d’un même traitement en
différents points du programme juste par un simple appel.
🖎 Il s’agit de découper un programme complexe en petits modules traités séparément.
🖎 Une fonction retourne une seule valeur (numérique, chaine, liste..) suite à un traitement
bien précis.
En algorithme En python
Fonction ma_fonction (paramètres Def ma_fonction
formels :type) :type_résultat (param) :
Début Traitement
Traitement return résultat
Retourner Résultat (facultatif)
Fin def, mot-clé qui est l'abréviation
de « define » (définir, en anglais)
☞Appel : var🡨 ma_fonction (param effectifs) (au
niveau du prog. principal)
Exemple :
def cube(x):
return (x * x * x)
En algorithme En python
Exemple :
def message ():
print ("Fonction sans retour de valeur !")
🖎 Une variable déclarée dans un sous-programme est dite locale est elle n’est accessible
que depuis ce sous-programme (indéterminée dehors)
Exemple :
def cube(x):
return (x * x * x)
Scripts Résultat
1*7=7
🖳 Afficher la table de multiplication par 7: 2 * 7 = 14
3 * 7 = 21
def tableMult_par_7(): 4 * 7 = 28
i = 1 5 * 7 = 35
while i <= 10: 6 * 7 = 42
print(i, "*", 7, "=", i * 7) 7 * 7 = 49
i += 1 # On incrémente i de 1 à chaque tour de boucle. 8 * 7 = 56
9 * 7 = 63
# appelle de la procédure
10 * 7 = 70
tableMult_par_7()
# appelle de la procédure
rectangle(7,5)
x et y sont passées par valeurs (pas de changement)
# appelle de la fonction
s=sommeEntiers(6)
print(s)
def somme_produit(a,b): 13 42
s = a + b
p = a * b
print(s, p)
# appelle de la procédure
somme_produit(6,7)
a et b sont passées par valeurs (pas de changement)
☞Algorithme procédure
saisie_produit :
Procédure saisie_produit (@X: entier)
Début
Répéter
Afficher (’’Essai’’, i+1, ’’ :’’, a,’’*’’, b,’’= ’’)
Lire(X)
Jusqu'à estnum(X)
Fin
☞ TDO :
❶ Un paramètre formel (local) est un paramètre utilisé dans la définition d'un sous
programme.
❷ Un paramètre effectif (global) ou réel est un paramètre utilisé lors de l'appel d'un
sous-programme.
🖎 Une règle à respecter :
Eliminer tous les paramètres dont le mode de passage est par référence @
et les retourner en résultat.
def Nom_procédure (paramètres):
Traitement
[return resultat]
☞L’appel en Python
- Si la procédure retourne un ou plusieurs résultats, il faut les stocker dans des
variables :
Variable(s)= Nom_procédure (paramètres)
- Si la procédure ne retourne rien :
Nom_procédure (paramètres)
Partie 7
Améliorons encore notre jeu en affichant à la fin les scores correspondant aux parties
jouées.
☞Objectif :
▪ Les tableaux à une dimension (vecteurs)
b🡨Aléa (0 ,10
saisie_produ
Tant que (p
Score=sc
Afficher
saisie_pr
Fin Tant que
score=score+1
Afficher (‘’Bra
Fin pour
T_parties[j-1]=j #
T_scores[j-1]=sco
Afficher ("voulez-
Lire (reponse)
Fin Tantque
Afficher (‘’fin de jeu
Pour c de 0 à j-1 faire
Afficher ("Partie",
Fin pour
Fin calculatrice
☞Algorithme
Procédure saisie_prod
Début
Répéter
Afficher (’’Essai’’,
Lire(X)
Jusqu'à estnum(X)
Fin
☞ TDO :
🖎Note :
🖎 Un tableau à une dimension (vecteur) est une structure de données permettant de
ranger un nombre fini d'éléments tous de même type.
🖎 L'accès à un élément du tableau est un accès direct, il suffit de donner l'identificateur
(nom) du tableau et l'indice de cet élément.
🖎tab[i] désigne l’élément numéro i du tableau tab
print("************************************")
print("Fin de jeu et résultat: ")