Initiation à l'algorithmique I Qu'est-ce qu'un algorithme ? Définition Un algorithme est une suite finie et non ambiguë d’opérations ou d'instructions permettant de résoudre un problème. http://fr.wikipedia.org/wiki/Algorithme I Qu'est-ce qu'un algorithme ? Définition Un algorithme est une suite finie et non ambiguë d’opérations ou d'instructions permettant de résoudre un problème. http://fr.wikipedia.org/wiki/Algorithme I Qu'est-ce qu'un algorithme ? Exemple 1 : un labyrinthe → →↓←↓↓→↑→↑↑ I Qu'est-ce qu'un algorithme ? Exemple 2 : "programme de calcul" I Qu'est-ce qu'un algorithme ? Exemple 3 : recette de la pâte à crêpes ● Demander N le nombre de personnes ● Mettre N×100g de farine dans un saladier ● Pour i = 1 à N Ajouter un œuf dans le saladier Mélanger à l'aide d'un fouet. ● Si on souhaite des crêpes sucrées Alors Ajouter N cuillerées de sucre Sinon Ajouter N/2 cuillerées de muscade ● Ajouter N×100g de lait et N×100g d'eau. ● Tant Que le mélange présente encore des grumeaux Fouetter énergiquement. II Les variables 1. Généralités Une variable est une mémoire qui va permettre de stocker une donnée. Il existe différents types de variables : ● nombres ● chaînes de caractères ● booléens II Les variables 1. Généralités Une variable est une mémoire qui va permettre de stocker une donnée. Il existe différents types de variables : ● nombres ● chaînes de caractères ● booléens Il est important de déclarer ses variables en début d'algorithme. En effet, 23 peut-être un entier ou une chaîne de caractères. → 23+200 = 223 si on considère des entiers = 23200 si on considère des codes postaux II Les variables 2. Petits exercices Exercice 1 : a et b sont deux réels, comment échanger les valeurs de a et b ? Réponse fausse : a←b b←a II Les variables 2. Petits exercices Exercice 1 : a et b sont deux réels, comment échanger les valeurs de a et b ? Réponse fausse : a←b b←a En effet, si a = 3, b = 5, 1ère étape : a ← b donc a ← 5 2ème étape : b ← a donc b ← 5 Finalement, a = b = 5, la valeur de a est perdue II Les variables 2. Petits exercices Exercice 1 : a et b sont deux réels, comment échanger les valeurs de a et b ? Réponse fausse : a←b b←a En effet, si a = 3, b = 5, 1ère étape : a ← b donc a ← 5 2ème étape : b ← a donc b ← 5 Finalement, a = b = 5, la valeur de a est perdue Réponse correcte : temp ← a # temp est une variable temporaire qui met a en mémoire a←b b ← temp Exemple avec a = 3 , b = 5 temp ← a donc temp ← 3 a ← b donc a ← 5 b ← temp donc b ← 3 II Les variables 2. Petits exercices Exercice 2 : a et b sont deux réels, à quoi servent ces instructions ? a←a+b b←a–b a←a–b Exercice 3 : a est un réel, que retourne cet algorithme ? a←a+1 a←a*a a←a-1 Exercice 4 : N est un entier, à quoi sert cet algorithme ? temp ← N N ← N/10 N ← partie_entière(N) u ← temp - 10*N III Les structures de base 1. Saisir / Afficher Saisir : Permet à l'utilisateur de donner un renseignement à la machine Afficher: Permet la machine de retourner un résultat III Les structures de base 1. Saisir / Afficher Saisir : Permet à l'utilisateur de donner un renseignement à la machine Afficher: Permet la machine de retourner un résultat Exemple : Algorithme de bienvenue nom ← Saisir ("Quel est ton nom ? ") Afficher ("Bonjour " & nom) III Les structures de base 1. Saisir / Afficher Saisir : Permet à l'utilisateur de donner un renseignement à la machine Afficher: Permet la machine de retourner un résultat Exemple : Algorithme de bienvenue nom ← Saisir ("Quel est ton nom ? ") Afficher ("Bonjour " & nom) Attention : L'algorithme suivant ... nom ← Saisir ("Quel est ton nom ? ") Afficher ("Bonjour nom" ) … va afficher "Bonjour nom" quel que soit le nom entré. III Les structures de base 2. Si SI : Permet de réaliser une action à une certaine condition III Les structures de base 2. Si SI : Permet de réaliser une action à une certaine condition Exemple 1 : Algorithme météorologique Si il pleut Alors prendre son parapluie Sinon le laisser à la maison Fin Si III Les structures de base 2. Si SI : Permet de réaliser une action à une certaine condition Exemple 1 : Algorithme météorologique Si il pleut Alors prendre son parapluie Sinon le laisser à la maison Fin Si Exemple 2 : Valeur absolue Si x < 0 Alors |x| vaut -x Sinon |x| vaut x Fin Si III Les structures de base 3. Pour Pour : Permet de répéter une action un nombre de fois connu à l'avance. Exemple 1 : compte à rebours Pour i = 1 à 10 Afficher 11 - i Fin Pour Afficher "BOUM" III Les structures de base 3. Pour Pour : Permet de répéter une action un nombre de fois connu à l'avance. Exemple 1 : compte à rebours Pour i = 1 à 10 Afficher 11 - i Fin Pour Afficher "BOUM" Remarque : il est possible d'écrire Pour i = 10 à 0 par pas de -1 Afficher i Fin Pour Afficher "BOUM" III Les structures de base 3. Pour Exemple 2 : Épeler un mot mot ← Saisir ("Quel mot épeler ?" ) Pour i = 1 à longueur(mot) Afficher la lettre de mot en position i Fin Pour III Les structures de base 3. Pour Exemple 2 : Épeler un mot mot ← Saisir ("Quel mot épeler ?" ) Pour i = 1 à longueur(mot) Afficher la lettre de mot en position i Fin Pour Exemple 3 : Combien de fois obtient-on de 6 en lançant 100 fois un dé ? compteur ← 0 Pour i = 1 à 100 dé ← entier aléatoire entre 1 et 6 Si dé = 6 Alors compteur ← compteur + 1 Fin Si Fin Pour Afficher ("On a obtenu " & compteur & " fois le six") III Les structures de base 4. Tant Que Tant Que : Permet de répéter une action autant de fois que nécessaire. Remarque : le nombre de répétitions n'est pas connu à l'avance III Les structures de base 4. Tant Que Tant Que : Permet de répéter une action autant de fois que nécessaire. Remarque : le nombre de répétitions n'est pas connu à l'avance Exemple 1 : Jouons aux petits chevaux. Tant Que dé ≠ 6 Relancer le dé Fin Tant Que Sortir son cheval de l'écurie III Les structures de base 4. Tant Que Tant Que : Permet de répéter une action autant de fois que nécessaire. Remarque : le nombre de répétitions n'est pas connu à l'avance Exemple 1 : Jouons aux petits chevaux. Tant Que dé ≠ 6 Relancer le dé Fin Tant Que Sortir son cheval de l'écurie Exemple 2 : Calcul de a Modulo N par soustractions successives : Saisir a et N deux entiers Tant Que a > N a←a–N Fin Tant Que Afficher a III Les structures de base 4. Tant Que A noter : Un Tant Que peut remplacer un Pour. Exemple :Comptons jusqu'à 10. Pour i = 1 à 10 Afficher i Fin Pour III Les structures de base 4. Tant Que A noter : Un Tant Que peut remplacer un Pour. Exemple :Comptons jusqu'à 10. Pour i = 1 à 10 Afficher i Fin Pour Attention : Si on oublie l'incrémentation "i ← i+1" ... i←1 Tant Que i ≤ 10 Afficher i i←i+1 Fin tant Que IV Récréation : "Lightbot" Jeu de programmation disponible : - en ligne sur Google Play sur Windows Store sur App Store IV Récréation. IV Récréation. IV Récréation. IV Récréation. IV Récréation. IV Récréation. V Scratchons un peu Logiciel téléchargeable à https://scratch.mit.edu/scratch2download/ De nombreux exemples à https://scratch.mit.edu/ V Scratchons un peu 1. Saisir / Afficher Traduction du Saisir : et du Afficher : V Scratchons un peu 1. Saisir / Afficher Traduction du Saisir : et du Afficher : concaténation de texte V Scratchons un peu 1. Saisir / Afficher V Scratchons un peu 2. Traduction du Si V Scratchons un peu 3. Traduction du Pour V Scratchons un peu 3. Traduction du Pour Qu'obtient-on avec : V Scratchons un peu 3. Traduction du Pour Création d'un carré : V Scratchons un peu 4. Traduction du Tant Que. V Scratchons un peu 4. Traduction du Tant Que. Marche aléatoire : Promenons notre lutin de façon aléatoire jusqu'à ce qu'il touche le bord de l'écran. VI Quelques exercices 1. Exercices élémentaires. Exercice 1 : Entrer trois nombres au clavier, l'algorithme doit afficher le plus grand des trois. Exercice 2 : Entrer au clavier un réel x, l'algorithme devant afficher sous quel état se trouve l'eau à la température x degrés. Exercice 3 : Calculer la somme S = 1 + 2 + 3 + … + 100. Exercice 4 : En vue de la construction d'un graphique, donner la table de valeurs de la fonction x → x² pour x allant de -3 à 3 par pas de 0,5. Exercice 5 : J'ai placé 100€ sur un compte rémunéré à 1,5 %, au bout de combien de temps mon capital dépassera-t-il 150€ ? Exercice 6 : Un entier n étant entré au clavier, retourner le nombre de chiffres de n. VI Quelques exercices 2. Correction exercice 1. Proposition "classique" : Saisir 3 nombres a, b, c. Si a ≤ b ≤ c Alors Max ← c Si a ≤ c ≤ b Alors Max ← b ... VI Quelques exercices 2. Correction exercice 1. Proposition "classique" : Saisir 3 nombres a, b, c. Si a ≤ b ≤ c Alors Max ← c Si a ≤ c ≤ b Alors Max ← b ... Incorrect : Écrire Si a ≤ b et b ≤ c VI Quelques exercices 2. Correction exercice 1. Proposition "classique" : Saisir 3 nombres a, b, c. Si a ≤ b ≤ c Alors Max ← c Si a ≤ c ≤ b Alors Max ← b ... Incorrect : Écrire Si a ≤ b et b ≤ c Problèmes : ● Écriture lourde (car si faut écrire les Fin Si) ● Risque d'oublier des cas ● Risque de mettre des cas inutiles ● Façon de faire pas généralisable (avec 4 nombres au départ, ou plus). VI Quelques exercices 2. Correction exercice 1. Proposition "classique" : Saisir 3 nombres a, b, c. Si a ≤ b ≤ c Alors Max ← c Si a ≤ c ≤ b Alors Max ← b ... Incorrect : Écrire Si a ≤ b et b ≤ c Problèmes : ● Écriture lourde (car si faut écrire les Fin Si) ● Risque d'oublier des cas ● Risque de mettre des cas inutiles ● Façon de faire pas généralisable (avec 4 nombres au départ, ou plus). Correction : Saisir 3 nombres a, b, c. Si a ≤ b Alors Max ← b Fin Si Si Max ≤ c Alors Max ← c Fin Si Afficher Max VI Quelques exercices 3. Exercices "avancés". Exercice 1 : Suite de Syracuse. un si u n est pair, u n +1=3 u n +1 sinon. Elle est définie par u 0 ∈ℕ et u n+1 = 2 Exemple : 6 → 3 → 10 → 5 → 16 → 8 → 4 → 2 → 1 → 4 → ... Le premier terme étant entré au clavier, faire afficher les 20 termes suivants. Exercice 2 : Jeu du "nombre mystère" L'ordinateur choisit un entier aléatoire entre 1 et 20, le joueur doit le deviner par essais successifs, l'ordinateur disant "Trop petit" ou "Trop grand" à chaque tentative. Exercice 3 : Tables de multiplications. L'ordinateur choisit et affiche 2 entiers aléatoires entre 1 et 10, le joueur doit entrer le produit de ces deux entiers. Exercice 4 : Jouons aux dés : Alice et Bob lancent un dé, le premier obtenant un 6 a gagné. Simuler une partie, puis 100 parties pour dire qui gagne le plus souvent. Diaporama réalisé par Lionel Pascaud [email protected]