Algorithme 2 - Fiche 1 : À la découverte de " Scratch "
Transcription
Algorithme 2 - Fiche 1 : À la découverte de " Scratch "
Stage ALGORITHMIQUE - Documents élèves - page 1 Algorithme 2de - Fiche 1 : À la découverte de " Scratch " 5°) On a décidé d'améliorer le script précédent en utilisant le moins de variables possibles. Ouvrir le logiciel Scratch sur le Bureau. 1°) a) Construire le script et cliquer b) Faire calculer 2 + 5×3 ; (2 + 5)×3 ; ( 2 + 5×3 )² ; . 5 5 ; . 8 3 2°) a) Construire le script ci-dessous et déterminer ce qu'il permet de calculer. a) Que faut-il placer dans les deux ème espaces vides pour que le 2 reste restitué soit 16 ? ? ? b) Compléter le script pour faire apparaître successivement les quatre restes 20 , 16 , 4 et 0 . Remplir le tableau de valeurs donné en annexe. b) Calculer et restituer le reste de la division de 128 par 36 , puis le quotient entier. c) Compléter le script ci-contre en utilisant la commande " répéter " pour faire apparaître successivement les quatre restes 20 , 16 , 4 et 0 , puis le PGCD de 128 et 36 . c) Calculer et restituer le reste de la division de 135 par 24 , puis le quotient entier. Idem avec 12 524 et 584 . Remplir le tableau de valeurs donné en annexe. ? 3°) a) Calculer et restituer le reste de la division de 128 par 36 . Puis calculer et restituer le reste de la division de 36 par le reste trouvé précédemment. b) Avec un bon vieux stylo et une feuille, écrire en ligne ces deux premières divisions euclidiennes. c) En continuant à diviser chaque quotient par son reste, que se passera-t-il ? d) Continuer les calculs et restitutions de restes jusqu'à obtenir 0 . e) Restituer alors le PGCD de 128 et 36 . 4°) a) Calculer et restituer le PGCD de 406 et 119 . ? ? d) Alléger ce script pour ne restituer que le PGCD de 128 et 36 . e) Ce nouveau script convient-il pour calculer et restituer le PGCD de 57 de 33 , et celui de 219 de 183 ? Pour calculer n'importe quel PGCD ? 6°) a) Dans le script précédent, remplacer la commande par la commande ? b) Calculer et restituer le PGCD de 57 et 33 . c) Calculer et restituer le PGCD de 219 et 183 . d) Que faire pour que le script restitue chacun des deux PGCD demandés au b) et au c) ? Remplir le tableau de valeurs donné en annexe. b) Ce nouveau script convient-il pour calculer et restituer le PGCD de 57 de 33 , et celui de 219 de 183 ? Pour calculer n'importe quel PGCD ? ? Stage ALGORITHMIQUE - Documents élèves - page 2 Annexe à la Fiche 1 : Tableaux de valeurs à remplir Tableau de valeurs des variables pour la question 5°) b) Valeur de a 128 128 Valeur de b Tableau de valeurs des variables pour la question 5°) c) Valeur de a Valeur de r Valeur de b Valeur de r Valeur de a Valeur de b Valeur de r Valeur de a Valeur de b Valeur de r 36 Répétition n°1 Répétition n°2 Répétition n°3 Tableau de valeurs des variables pour la question 6°) a) a r=... b r 0 donc a b r r=............. a b r r=............. a b r r=............. Stage ALGORITHMIQUE - Documents élèves - page 3 Algorithme 2de - Fiche 2 : Exercices avec " Scratch " 2°) Écrire un script permettant de simuler 20 lancers successifs. Exercice 1 Définir une variable Règle du jeu : contenant le nombre total de lancers gagnants. Restituer ce nombre pendant 2 secondes, puis la fréquence des lancers gagnants. On lance deux dés. On veut faire une somme de 12 . 3°) Augmenter la simulation à 500 lancers successifs. On continuera à restituer le nombre total de lancers gagnants pendant 2 secondes, puis la fréquence des lancers gagnants. Mais on ne fera plus afficher les « Gagné » et les « Perdu ». 1°) a) Écrire un script permettant de simuler ce lancer en faisant afficher la somme. Utiliser . . b) Peut-on prévoir le nombre de lancers qu'il faut pour obtenir une somme de 12 ? Exercice 3 2°) On décide de lancer jusqu'à obtenir la somme 12 . Définir une variable Placement à intérêts composés destinée à compter le nombre de lancers nécessaires. Un client d'une banque place une somme de 2 000 € à un taux d'intérêt de 3,5 % par an. 1°) Compléter le script ci-contre pour connaître la somme capitalisée au bout de 12 ans. ? Compléter le script ci-contre : ? 3°) Adapter le script précédent pour compter le nombre de lancers de 3 dés nécessaires pour obtenir une somme de 18 . 2°) Transformer le script pour connaître au bout de combien d'années la somme capitalisée dépassera 3 500 €. 4°) Adapter le script précédent pour compter le nombre de lancers de 4 dés nécessaires pour obtenir une somme de 24 . Exercice 4 Exercice 2 Jeu des multiples Règle du jeu : 1°) Écrire un script permettant de restituer pendant 1 seconde chaque entier de 1 à 30 . On lance deux dés. Si la somme des faces est paire, on gagne. Sinon, on perd. 2°) Transformer le script pour que chaque multiple de 3 soit remplacé par un son (à choisir). 1°) Écrire un script permettant de simuler ce jeu en faisant afficher ou . 3°) Transformer le script pour que chaque multiple de 5 soit remplacé par un 2 en conservant le son pour les multiples de 3 . Attention à l'entier 15 ... Utiliser et . ème son, tout Stage ALGORITHMIQUE - Documents élèves - page 4 Algorithme 2de - Fiche 3 : À la découverte de " Python " 2°) a) Taper, observer et comprendre : Ouvrir le logiciel Python sur le Bureau. >>> print("Bonjour !") >>> print(a) 1°) a) Faire calculer par Python 2 + 5×3 ; (2 + 5)×3 . b) Taper les commandes suivantes, observer et comprendre ce qui se passe : >>> print("La valeur de a est ",a) >>> nom=input("Comment t'appelles-tu ? ") puis répondre avec un nom ou un prénom >>> 127//10 >>> nom >>> 127%10 >>> print("Tu t'appelles ",nom," !") Que sont ces deux valeurs pour 127 et 10 ? >>> 127/10 « Jusqu'à ce que tu aies 18 ans, tu seras mineur. » (ou [Ctrl+O] ) , Phrase 2 : >>> int(5/3) >>> 5**2 >>> 2**5 >>> sqrt(121) >>> from math import* >>> sqrt(121) >>> pi >>> cos(pi/3) d) Taper, observer et comprendre : double-cliquer sur le fichier " BONJOUR " . Une nouvelle fenêtre s'ouvre, contenant un texte (appelé script ). Taper sur la touche F5 du clavier, et répondre poliment à la question posée. 3°) L'objectif est de préparer un petit questionnaire du même genre à l'attention d'un autre élève de la classe, que nous appellerons « l'utilisateur » . a) Ouvrir une nouvelle fenêtre (ou [Ctrl+N] ) . File\New Window >>> a=5 Tu remarques l'absence des >>> . Le texte que tu y écriras est inactif : >>> a+2 essaie de taper 2+3 . >>> b=a+2 >>> b+3 >>> a=a*2 >>> a >>> m,n=2,1.5 >>> m+n c) Construis un script : - demandant à un utilisateur deux nombres entiers de son choix, - répondant avec la somme et le produit de ses nombres. 4°) Phrase 1 : b) Dans le menu File\Open... >>> 5/3 c) Taper, observer et comprendre : b) Construis un script : - demandant à un utilisateur un nombre entier de son choix, - répondant avec le double et le carré de son nombre. Efface et tape une série de deux ou trois questions que Python posera à l'utilisateur et construis des répliques fonction des réponses. Inspire-toi du script vu dans le fichier " BONJOUR " . Sauvegarde ( File\Save ou [Ctrl+S] ) sous le nom essai01.py , puis tape sur la touche F5 pour le tester. Présente-le à un utilisateur de ton choix. « Tant que tu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . , tu seras mineur. » Compléter la phrase 2 pour qu'elle signifie la même chose que la phrase 1 . 5°) On a retrouvé le script permettant de calculer le PGCD de 128 et 36 obtenu avec Scratch (voir document en annexe). Le traduire en langage courant, puis, en langage Python. Le texte en langage courant est appelé algorithme. Remplir le tableau de valeurs donné en annexe. 6°) Construire un algorithme et un script pour Python : - demandant à un utilisateur deux nombres entiers de son choix, - répondant avec le PGCD de ses nombres. Stage ALGORITHMIQUE - Documents élèves - page 5 Annexe à la Fiche 3 : Pour la question 5°) Langage "Scratch" Langage courant Tant que condition, faire action action jusqu'à r = 0 » revient à « Tant que r condition, action action Fin du Tant que Attention ! « Répéter Tant que Langage "Python" faire while condition : action action 0 » : les conditions sont contraires... r 0 r==0 r 0 r!=0 Langage courant Langage Python Stage ALGORITHMIQUE - Documents élèves - page 6 Algorithme 2de - Fiche 4 : Exercices avec " Python " Exercice 1 Écrire un algorithme qui : - demande à l’utilisateur une vitesse en km/h , - et lui convertit cette vitesse en m/s . Exercice 2 Un distributeur d'argent dispose de billets de 100 et de 50, de pièces de 10 et de 1. Écrire l'algorithme qui le nombre maximum de chacun des objets correspondant à une somme d'argent demandée par l'utilisateur. Exercice 3 a) Écrire un algorithme qui : - demande à l’utilisateur une fonction f affine non constante , - et lui donne la solution de l'équation f(x) = 0 . b) Écrire un algorithme qui : - demande à l’utilisateur une fonction f affine non constante et un nombre k , - et lui donne la solution de l'équation f(x) = k . c) Écrire un algorithme qui : - demande à l’utilisateur les valeurs de a , b , c et d , avec a - et lui donne la solution de l'équation ax + b = cx + d . b, Exercice 4 a) Écrire un algorithme qui : - demande à l’utilisateur le numérateur et le dénominateur d'une fraction , - et lui donne la forme irréductible de cette fraction. b) Écrire un algorithme qui : - demande à l’utilisateur les valeurs de a , b , c et d , - et lui donne la forme irréductible de a c + . b d Stage ALGORITHMIQUE - Documents élèves - page 7 Algorithme 2de - Fiche 5 : Exercices sur l'instruction SI ... SINON ... Exercice 1 Exercice 4 a) Écrire un algorithme qui : - demande à l’utilisateur un nombre non nul, - et l’informe si ce nombre est positif ou négatif. On décide d'un code à quatre chiffres. b) Écrire un algorithme qui : - demande à l’utilisateur un nombre, - et l’informe si ce nombre est nul, positif ou négatif. Exercice 2 En athlétisme, les coureurs sont répartis suivant les classes d'âge suivantes : Eveil : avant 10 ans Poussin: de 10 à 11 ans Benjamin: de 12 à 13 ans Minime: de 14 à 15 ans Cadet: de 16 à 17 ans Junior: de 18 à 19 ans Espoir: de 20 à 22 ans Senior: de 23 à 39 ans Vétéran : 40 et plus a) Écrire un algorithme qui : - demande à l’utilisateur son âge, - et l’informe de sa catégorie. b) Écrire un algorithme qui : - demande à l’utilisateur son âge, - et l’informe s'il est ou non Benjamin. Exercice 3 a) Écrire un algorithme qui : - demande à l’utilisateur deux nombres différents, - et lui donne le plus grand des deux. b) Même exercice avec trois nombres distincts. c) Même exercice avec quatre nombres distincts. Écrire un algorithme qui : - demande à l’utilisateur un nombre à quatre chiffres, - et lui donne combien de chiffres sont corrects. Exercice 5 Écrire un algorithme qui : - demande à l’utilisateur l'heure qu'il est, - et l’informe de l'heure qu'il sera 5 minutes plus tard. Exercice 6 Écrire un algorithme qui : - demande à l’utilisateur les valeurs de a , b , c et d , - et lui donne la solution de l'équation ax + b = cx + d , ou l'informe qu'il n'y a pas de solution, ou l'informe que tous les nombres sont solutions. Exercice 7 a) Écrire un algorithme qui : - demande à l’utilisateur deux nombres, - et l'informe s'il y a au moins un positif. b) Écrire un algorithme qui : - demande à l’utilisateur deux nombres, - et l'informe s'il y a deux, un ou pas de positif. Exercice 8 Quatre candidats, A , B, C et D participent à des élections obéissant à la règle suivante : • lorsque l'un des candidats obtient plus de 50% des suffrages, il est élu dès le premier tour. • en cas de deuxième tour, peuvent participer uniquement les candidats ayant obtenu au moins 12,5% des voix au premier tour. Écrire un algorithme qui : - demande à l’utilisateur le nombre de voix obtenues par chaque candidat, er - et l’informe qui est élu au 1 tour, ou quels candidats participent au second tour. Exercice 9 Une compagnie d'assurance automobile propose à ses clients quatre familles de tarifs identifiables par une couleur, du moins au plus onéreux : tarifs bleu, vert, orange et rouge. Le tarif dépend de la situation du conducteur : • un conducteur de moins de 25 ans et titulaire du permis depuis moins de deux ans, se voit attribuer le tarif rouge, si toutefois il n'a jamais été responsable d'accident. Sinon, la compagnie refuse de l'assurer. • un conducteur de moins de 25 ans et titulaire du permis depuis plus de deux ans, ou de plus de 25 ans mais titulaire du permis depuis moins de deux ans a le droit au tarif orange s'il n'a jamais provoqué d'accident, au tarif rouge pour un accident, sinon il est refusé. • un conducteur de plus de 25 ans titulaire du permis depuis plus de deux ans bénéficie du tarif vert s'il n'est à l'origine d'aucun accident et du tarif orange pour un accident, du tarif rouge pour deux accidents, et refusé au-delà. Écrire un algorithme qui : - demande à l’utilisateur tous les renseignements nécessaires, - et l’informe du tarif de son assurance. Exercice 10 Un utilisateur pense à un nombre entier dans [ 1 ; 100 ] . Écrire un algorithme qui permet à l'ordinateur de trouver ce nombre si, à chaque proposition qu'il fait, l'utilisateur tape P pour un nombre trop grand, M pour un nombre trop petit et G pour la bonne réponse. Stage ALGORITHMIQUE - Documents élèves - page 8 Algorithme 2de - Fiche 6 : Exercices sur l'instruction FOR ... Exercice 1 Écrire un algorithme qui écrit tous les multiples de 5 jusqu'à 60 . Exercice 2 On demande à l’utilisateur un entier naturel non nul. a) Écrire un algorithme qui donne la liste des entiers de 1 à ce nombre. b) Écrire un algorithme qui donne la liste des carrés de 1 au carré de ce nombre. Exercice 3 On connaît les premières conversions ci-dessous : 1 € = 11,30 dhs 2 € = 22,60 dhs 3 € = 33,90 dhs Écrire un algorithme qui donne la liste des conversions de 1 € à 1 000 € . Exercice 4 Écrire un algorithme qui donne la liste des entiers de 1 à 100 telle que chaque multiple de 5 soit suivi de la lettre C et que chaque multiple de 8 soit suivi de la lettre H . Exercice 5 Il était une fois un empereur hindou, Chiram, qui voulut récompenser l'un de ses sujets, Seta, pour son invention merveilleuse : le jeu des échecs. « Comment veux-tu être récompensé ? demanda Chiram. - Donne-moi 2 grains de blé pour la première case de mon échiquier, répondit Seta. Puis 4 grains pour la deuxième case, 8 grains pour la troisième, et encore le double pour la quatrième et ainsi de suite jusqu’à la soixante-quatrième case. - Accordé ! répondit Chiram, qui trouvait ridicules ces quelques grains ... Écrire un algorithme qui affiche : - le nombre de grains de riz sur chacune des 64 cases de l'échiquier, - le nombre total de grains, - la masse de grains en tonnes (prendre 1 g pour un grain de riz). (Production mondiale actuelle 600 millions de tonnes...) Stage ALGORITHMIQUE - Documents élèves - page 9 Algorithme 2de - Fiche 7 : Exercices sur les tableaux Exercice 1 f) Taper, observer, comprendre : >>> tpair=[t[0],t[2],t[4],t[6], 1°) a) Taper les commandes suivantes, observer et comprendre ce qui se passe : >>> semaine=['lu','ma','me','je', 've','sa','di'] >>> semaine >>> semaine[2] >>> semaine[0] >>> semaine[1]='mardi' >>> semaine b) Taper, observer, comprendre : >>> t=[0,3,6,9,12,15,18,21,24,27] >>> t t[8],t[10]] >>> tpair Créer une liste timpair des multiples impairs de 3 . Créer une liste tsix des multiples de 6 allant de 0 à 60 . Exercice 2 2°) a) Taper, observer, comprendre : >>> cent=[] >>> cent Exercice 4 Écrire un algorithme qui : - demande à l’utilisateur une liste de dix nombres entiers, - et lui donne le plus grand de ces nombres. Exercice 5 Écrire un algorithme qui : - demande à l’utilisateur une liste de dix nombres entiers, - et lui donne la même liste mais classée dans l'ordre inverse. Exercice 6 >>> cent a) Écrire un algorithme qui : - demande à l’utilisateur dix nombres entiers, - et lui donne le nombre de 1 dans sa liste. >>> t[3]==6 >>> for i in range (1,8) : cent.append(i) b) Même exercice mais avec une liste de longueur non imposée. >>> t[3]==9 >>> cent >>> t[3] >>> t[3]+1 c) Taper, observer, comprendre : >>> len(t) >>> del(t[9]) >>> t >>> len(t) >>> t.append(27) Ajouter 30 à la liste. d) Taper, observer, comprendre : >>> for i in range (2,7) : print(t[i]) Afficher les multiples de 3 allant de 18 à 30 . e) Taper, observer, comprendre : >>> for i in range (0,11) : if i%4==0 : print(t[i]) Afficher les multiples de 6 appartenant à cette liste. >>> cent.append(0) b) Créer la liste des entiers de 0 à 100 . c) Créer une liste tsixbis des multiples de 6 allant de 0 à 60 . 3°) a) Écrire un script créant la liste des carrés des entiers de 1 à 15 . b) Écrire un script créant les listes des 10 premiers multiples des entiers de 2 à 7 : [0, [0, [0, [0, [0, [0, 2, 3, 4, 5, 6, 7, 4, 6, 8, 10, 12, 14, 16, 18, 20] 6, 9, 12, 15, 18, 21, 24, 27, 30] 8, 12, 16, 20, 24, 28, 32, 36, 40] 10, 15, 20, 25, 30, 35, 40, 45, 50] 12, 18, 24, 30, 36, 42, 48, 54, 60] 14, 21, 28, 35, 42, 49, 56, 63, 70] Exercice 3 Écrire un algorithme qui : - demande à l’utilisateur successivement dix nombres entiers, - et crée une liste tab avec ces dix valeurs. Exercice 7 Le crible d'Eratosthène consiste à barrer tous les multiples de 2 auf 2. Puis à recommencer avec le premier entier qui n'a pas été barré, 3 . Puis à recommencer avec 5 ( 4 a été barré) et ainsi de suite (voir ci-dessous) : 11 21 2 12 22 3 13 23 4 14 24 5 15 25 6 16 26 7 17 27 8 18 28 9 19 29 10 20 30 31 41 51 61 71 81 91 32 42 52 62 72 82 92 33 43 53 63 73 83 93 34 44 54 64 74 84 94 35 45 55 65 75 85 95 36 46 56 66 76 86 96 37 47 57 67 77 87 97 38 48 58 68 78 88 98 39 49 59 69 79 89 99 40 50 60 70 80 90 100 Les nombres qui restent non barrés après épuisement sont les nombres premiers. Écrire un algorithme qui : - crée une liste des 99 premiers entiers de 2 à 100 , - en extrait la liste des nombres premiers inférieurs à 100 .