BASE DE L’ALGORITHMIE
Un système d’instructions. Pour résoudre d’un problème ou d’une classe de problèmes Recette de cuisine pour faire un gâteau Algorithme : KEZAKO ?
Jeu de construction Livret de petits dessins Joli de camion Meuble en KitNotice de montagePenderie Pelote de laine et aiguille PatronnagePull en laine IngrédientsRecette de cuisineUne tarte au citron Algorithme : KEZAKO ?
L’algorithme est donc un ensemble organisé d’instructions en interaction les unes avec les autres permettant la résolution d’un problème. Un programme est l’expression d’un algorithme pour une machine donnée dans un langage de programmation donné, en utilisant le répertoire d’actions (opérations-instructions) et les règles de composition propres à cette machine et ce langage donné. Quelques définitions
Une machine est dotée de cinq fonctionnalités : entrer les données, exécuter le programme (suite d’instructions) définir la séquence des instructions (donc mémoriser le programme) mémoriser les données (résultats intermédiaires) sortir les résultats Quelques définitions
Mots – clés: action, ajout, algorithme, alors, autre, à, booléen, caractère, cas, chaîne, constante, début, écriture, entier, et, faire, faux, fermer, fichier, fin, fois, fonction, itérer, jusqu’à, lecture, mettre, non, ou, ouvrir, pas, pour, prendre, remarque, retourner, répéter, réel, selon, si, sinon, tantque, type, variable, vrai. Structure de base
Identifiant: Valides : Date, DATE, _201,JourDS Non valides : 101_Dalmatiens (ne commence pas par une lettre ou le blanc souligné), Cout Achat (l’espace n’est pas accepté), Paie&Bonus (les caractère spéciaux autres que le souligné sont interdits), fin (les mots-clés ne sont pas autorisés) Structure de base
Séparateurs: Structure de base Rôle : Les deux points séparent un identifiant de son type dans une liste []Les crochets symbolisent le début et la fin d’un tableau.Le point permet l’accès à un sous élément,La virgule sépare les éléments d’une liste ;Le point virgule sépare les éléments de déclaration ‘ ’Les quotes encadrent les caractères « »Les guillemets encadrents une chaîne de caractères #Le dièse annonce une ligne de commentaire //La double barre commence un commentaire sur une ligne d’instruction
algorithme vide #Déclarations des variables et des constantes début #instruction 1 #instruction 2 fin Structure de base Mots clés Identifiant du nom de l’algorithme En tête: déclaration importante Corps de l’algorithme: Description des instructions
algorithme Fairebouillir début Décrocher la casserole Remplir la casserole d’eau froide Déposer la casserole sur les plaques de cuisson Allumer les plaques de cuisson fin Séquence linéaire
a ← 3,b ← 4 a←ba←b b←ab←a afficher a,b a ← 3,b ← 4 b←ab←a a←ba←b afficher a,b Séquence linéaire a=4 b=4 b=3 a=3 Les instructions s’exécutent de façon linéaire c’est-à-dire les unes après les autres dans l’ordre d’écriture du script.
Fonction ou procédure FONCTION Données en entrée Un unique résultat en sortie PROCEDURE Données en entrée 0 à N résultats en sortie
Fonction
Mot clé Nom Donnée et type Sortie et type Mots clés Utilisation de la fonction
Variable globale -> définie en dehors de la fonction Variable locale -> définie uniquement dans une fonction et masque tout autre variable portant le même nom Fonction
x=6 def fonction(y) : x = 3*y+2 return x x = 5 def fonction2(y): return (2*fonction(y)**2+2*y) x=fonction(x)+2*fonction2(x)-3 Fonction 3*5+2 2*17^2+2*5=
N=3 def mult_3(N) return N*N Fonction N=3 def mult_3(x) return N*x N=4 def mult_3(x) N=3 return N*x N=3 def mult_3(x) N=4 return N*x Quelle fonction multiplie l’entrée par 3 ?
Permet de choisir entre de séquence d’instructions suivant une condition Structure alternative
EXERCICES a=24 ! a-4 <25 VRAI ou FAUX ? b,c=3,2 b-c/2==2 and c^10<1000 VRAI ou FAUX ? Structure alternative
valeur absolue d’un nombre : nombre ← Lire « Donnez une année » valeur = 0 Debut si nombre<0 Alors valeur ← - nombre Sinon valeur ← +nombre Fin si Afficher (« la valeur absolue est : »,valeur) Structure alternative En Python ?
Structure alternative algorithme ValAbsolue variable nombre,valeur :réel début nombre ← Lire « Donnez une année » valeur = 0 début si nombre<0 alors valeur ← - nombre sinon valeur ← nombre fin si afficher (« la valeur absolue est : »,valeur) fin En Python ?
Année bissextile Règle 1 : Une année divisible par 4 est une année bissextile. Règle 2 : Une année divisible par 100 n’est pas une année bissextile. Règle 3: Une année divisible par 400 est une année bissextile. Arbre des choix (ou des décisions)
Divisible par 400 Divisible par 100 Divisible par 4 Oui bissextile Oui Non bissextile Non bissextile
algorithme AnneeBissextile variable annee : entier, bissextile :booleen #Séquence de test de l’année bissextile debut si annee divisible par 4 alors debut si annee divisible par 100 alors debut si annee divisible par 400 alors bissextile ← vrai fin si Arbre des choix (ou des décisions) sinon bissextile ← vrai fin si #Affichage de la réponse debut si bissextile alors afficher(« c’est une année bisextile ») sinon afficher(« ce n’est pas une année bisextile ») fin si
# Déclaration des variables annee = input("Saisissez une annee : ") annee = int(annee) # Pour forcer le type entier bissextile = False # initialisation de bissextile if annee % 400 == 0: bissextile = True elif annee % 100 == 0: bissextile = False elif annee % 4 == 0: bissextile = True else: bissextile = False Arbre des choix (ou des décisions) if bissextile: # Vrai si l'année est bissextile print("L'année saisie est bissextile.") else: print("L'année saisie n'est pas bissextile.")
Structure bouclée (POUR...FAIRE)
Structure bouclée (POUR...FAIRE)
algorithme Somme variable somme :réel début somme=0 Pour i allant de 1 à 100 Faire somme ← somme +1/i**2 fin pour afficher (« la somme est : », somme) fin Structure bouclée
(TANT QUE...FAIRE)
Structure bouclée (TANT QUE...FAIRE)
algorithme CalculPi variable somme: réel,test:booleen,k:entier constante erreur=10 -6 début somme ← 0, test ← vrai, k ← 1 tant que test Faire somme ← somme +(-1)**k/(2*k+1) debut si 4 /(2*k+1)<erreur alors test ← faux fin si k ← k+1 fin tantque afficher (« la valeur de pi à », erreur, « près est : », somme) fin Structure bouclée
Jeu de Nim Ce jeu se joue à deux en commençant avec n allumettes (par exemple 9). Chacun sont tour, un joueur retire 1,2 ou 3 allumettes. Le gagnant est le joueur qui ramasse la dernière allumette. Le nombre de position de ce jeu est fini. Illustrer par un arbre de décision l’ensemble des solutions de ce jeu. Déterminer alors une stratégie gagnante. Proposer alors un algorithme permettant de s’assurer la victoire. Intelligence artificielle
Jeu de nim Gagné Perdu Gagné Perdu GagnéGagné
Jeu de nim Il faut donc se ramener à une position où le nombre d’allumettes est un multiple de 4