Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
1
Programmation Scratch
PRO1026 Programmation et enseignement Programmation Scratch Sujets Introduction Calcul de la factoriel Calcul du nombre triangulaire Notions de programmation Variables, vecteurs Structures conditionnelles Structures itératives Fonctions et récursion Passage de messages
2
Introduction La fonction factorielle (n!) consiste à multiplier la valeur de n termes entre eux et est définie comme suit: Si n = 0, alors n! = 1; Si n > 0, alors n! = n (n –1)!; Ainsi: 0! = 1; 1! = 1; 2! = 2 x (2‐1)! = 2 x 1! = 2 x 1 = 2; 5! = 5 x (5‐1)! = 5 x 4! = 5 x 4 x (4‐1) != 5 x 4 x 3! = … = =5 x 4 x 3 x 2 x1 = 120 n! = n x (n‐1) x (n‐2) x … x 1 Donc, si n = 0 alors la solution est de 1. Cela constitue le cas de base. Dans les autres cas, nous sommes dans un cas complexe qui nécessite une récurrence.
3
Notions de programmation (Vecteur): voir l’exemple EX-FACTORIELLE-RECURSIF-VECTEUR.sb2
Calcule de la factorielle: création d’une pile (vecteur) pour stocker les valeurs intermédiaires
4
Notions de programmation (Vecteur): voir l’exemple EX-FACTORIELLE-RECURSIF-VECTEUR.sb2
Calcule de la factorielle: création d’une pile (vecteur) pour stocker les valeurs intermédiaires
5
Notions de programmation (Vecteur): voir l’exemple EX-FACTORIELLE-RECURSIF-VECTEUR.sb2
Calcule de la factorielle: création d’une pile (vecteur) pour stocker les valeurs intermédiaires (fonctions utiles pour la manipulation de liste (vecteurs)) Ajout d’un élément à la fin d’une liste Suppression de l’élément 1: premier dernier: dernier élément supprimé tout: tous les éléments supprimés Accéder à un élément dans une liste 1: premier ajouté dernier: dernier ajouté
6
Notions de programmation (Vecteur): voir l’exemple EX-FACTORIELLE-RECURSIF-VECTEUR.sb2
Calcule de la factorielle: création d’une pile (vecteur) pour stocker les valeurs intermédiaires n! = n * n-1 * n-2 * …. * 3 * 2 Premier appel de factorielle(n) n ajouter à la liste (pile) Second appel de factorielle(n-1) Valeur du dernier élément de la pile * n-1 ajouter à la liste (pile) Après le n-1 ième appels à factorielle() Critère d’arrêt number1 = 1 Affichage des résultats
7
Notions de programmation (Vecteur): voir l’exemple EX-FACTORIELLE-RECURSIF-VECTEUR.sb2
Calcule de la factorielle: création d’une pile (vecteur) pour stocker les valeurs intermédiaires Fonction principale (point d’entrée)
8
Notions de programmation (Vecteur): voir l’exemple EX-FACTORIELLE-RECURSIF-VECTEUR.sb2
Calcule de la factorielle: création d’une pile (vecteur) pour stocker les valeurs intermédiaires Fonction factorielle()
9
Notions de programmation (Variable): voir l’exemple EX-FACTORIELLE-RECURSIF.sb2
Calcule de la factorielle: création d’une variable pour accumuler les valeurs intermédiaires n! = n * n-1 * n-2 * …. * 3 * 2 Premier appel de factorielle(acc, n) La variable acc est mise à jour avec la valeur n Second appel de factorielle(acc, n-1) La valeur de acc = acc * n-1 Après le n-1 ième appels à factorielle() Critère d’arrêt number1 = 1 Affichage des résultats
10
Notions de programmation (Variable): voir l’exemple EX-FACTORIELLE-RECURSIF.sb2
Calcule de la factorielle: création d’une variable pour accumuler les valeurs intermédiaires
11
Notions de programmation (Variable): voir l’exemple EX-FACTORIELLE-RECURSIF.sb2
Calcule de la factorielle: création d’une variable pour accumuler les valeurs intermédiaires
12
Notions de programmation: voir l’exempleEX-NOMBRE-TRIANGULAIRE.sb2
Calcule du nombre triangulaire: Calcul du nombre de blocs d’une pyramide, traçage de chaque bloc, affichage du nombre de blocs Nombre blocs de la base Nombre de blocs par étage Nombre d’étages Total Nombre de blocs total de la pyramide Largeur du carré dessiné Numéro de l’étage dessiné
13
Notions de programmation: voir l’exempleEX-NOMBRE-TRIANGULAIRE.sb2
Calcule du nombre triangulaire: Calcul du nombre de blocs d’une pyramide, traçage de chaque bloc, affichage du nombre de blocs LCarre = 360 / nbBlocBase
14
Notions de programmation: voir l’exempleEX-NOMBRE-TRIANGULAIRE.sb2
Calcule du nombre triangulaire: Calcul du nombre de blocs d’une pyramide, traçage de chaque bloc, affichage du nombre de blocs (px,py) py = Lcarre * noEtage LCarre px = -(nbBlocBase/2 * LCarre) + noEtage-1 * LCarre/2 + noBlocEtage * LCarre Position x du premier bloc d’un étage
15
Notions de programmation: voir l’exempleEX-NOMBRE-TRIANGULAIRE.sb2
Calcule du nombre triangulaire: Calcul du nombre de blocs d’une pyramide, traçage de chaque bloc, affichage du nombre de blocs noBlocEtage += 1 nbBlocTotal += 1
16
Notions de programmation (programmation multi-lutins, transmission de message): voir l’exemple EX-NOMBRE-TRIANGULAIRE-COLLABORATION.sb2 Calcule du nombre triangulaire: Calcul du nombre de blocs d’une pyramide, traçage des blocs d’un étage par des lutins différents, traçage de chaque bloc, affichage du nombre de blocs Transmission de message Un lutin peut transmettre un message à un autre lutin Un lutin peut être réveillé quand il reçoit un message
17
Notions de programmation (programmation multi-lutins, transmission de message): voir l’exemple EX-NOMBRE-TRIANGULAIRE-COLLABORATION.sb2 Calcule du nombre triangulaire: Calcul du nombre de blocs d’une pyramide, traçage des blocs d’un étage par des lutins différents, traçage de chaque bloc, affichage du nombre de blocs Programmation multi-lutins
18
Notions de programmation (programmation multi-lutins, transmission de message): voir l’exemple EX-NOMBRE-TRIANGULAIRE-COLLABORATION.sb2 Calcule du nombre triangulaire: Calcul du nombre de blocs d’une pyramide, traçage des blocs d’un étage par des lutins différents, traçage de chaque bloc, affichage du nombre de blocs Programmation multi-lutins (Pomme: fonction principale) Demande la largeur de la pyramide Initialisation des variables Transmission d’un message (SignalChatDebout) au Lutin Chat Debout pour lancer le traçage des blocs (premier étage) Attente d’un message (SignalPomme) pour l’affichage du nombre de blocs total Affichage du nombre de blocs total
19
Notions de programmation (programmation multi-lutins, transmission de message): voir l’exemple EX-NOMBRE-TRIANGULAIRE-COLLABORATION.sb2
20
Notions de programmation (programmation multi-lutins, transmission de message): voir l’exemple EX-NOMBRE-TRIANGULAIRE-COLLABORATION.sb2 Calcule du nombre triangulaire: Calcul du nombre de blocs d’une pyramide, traçage des blocs d’un étage par des lutins différents, traçage de chaque bloc, affichage du nombre de blocs Programmation multi-lutins (Chat Debout) Sur réception du message SignalChatDebout Traçage des blocs d’un étage complet Si c’est le dernier étage à traçer, transmission du message SignalPomme pour permettre de retourner le contrôle au lutin Pomme Sinon, transmission du message SignalChatVolant pour lancer le traçage des blocs du prochain étage
21
Notions de programmation (programmation multi-lutins, transmission de message): voir l’exemple EX-NOMBRE-TRIANGULAIRE-COLLABORATION.sb2
22
Notions de programmation (programmation multi-lutins, transmission de message): voir l’exemple EX-NOMBRE-TRIANGULAIRE-COLLABORATION.sb2 Calcule du nombre triangulaire: Calcul du nombre de blocs d’une pyramide, traçage des blocs d’un étage par des lutins différents, traçage de chaque bloc, affichage du nombre de blocs Programmation multi-lutins (Chat Volant) Sur réception du message SignalChatVolant Traçage des blocs d’un étage complet Si c’est le dernier étage à traçer, transmission du message SignalPomme pour permettre de retourner le contrôle au lutin Pomme Sinon, transmission du message SignalChatDebout pour lancer le traçage des blocs du prochain étage
23
Notions de programmation (programmation multi-lutins, transmission de message): voir l’exemple EX-NOMBRE-TRIANGULAIRE-COLLABORATION.sb2
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.