Fichier de rejeu Close

Indication Close

A propos de... Close

Commentaire Close

Algorithmique - Tests

  • Contexte 1: informatique
    • Test de compréhension
    • Test de programmation
  • Objectif 1: affectation
  • Objectif 2: alternative
  • Objectif 3: itération
  • Objectif 4: définition
  • Objectif 5: appels
  • Objectif 6: récursivité
Index

Téléchargements

  • Site
  • Sources
  • EniBook 1.618033988
logo

Crédits

© 2008-2017, Enib

Aide

En-tête

MenuContenu
Sommaire,
Téléchargements
Aide sur les outils

Pied de page

ChevronAction
Aller en haut de la page courante
Aller en bas de la page courante
Passer à la page précédente
Passer à la page suivante

Introduction

Objectif :

A titre d'exemples, ce chapitre propose des tests de compréhension et de programmation concernant le contexte informatique du cours d'algorithmique.

Deux types de tests sont proposés :

  • un test de compréhension d'une durée indicative de 20',
  • un test de programmation d'une durée indicative de 20'.

Test de compréhension

  1. 1/2 Comprendre
    1. Dessin sur la plage (1)
      • Question
      • Solution

      On cherche à faire dessiner une figure géométrique sur la plage à une personne qui a les yeux bandés. Quelle figure géométrique dessinera-t-elle en exécutant la séquence d'instructions ci-dessous ?

      1. avance de 20 pas;
      2. tourne à gauche de 90°;
      3. avance de 10 pas;
      4. tourne à gauche de 90°;
      5. avance de 20 pas;
      6. tourne à gauche de 90°;
      7. avance de 10 pas;
      Rappels Python
      1. tortue Logo (documentation Python)

        import turtle

        module Python à importer pour manipuler la tortue Logo.

        t = turtle.Turtle()

        crée une tortue t.

        t.down()

        tracer la trajectoire de la tortue Logo.

        t.up()

        ne pas tracer la trajectoire de la tortue Logo.

        t.setheading(a)

        oriente la tortue t dans une direction qui fait l'angle a (en degrés) avec l'axe horizontal (sens trigonométrique).

        t.forward(d)

        fait avancer la tortue t d'une distance d dans la direction courante.

        t.backward(d)

        fait reculer la tortue t d'une distance d dans la direction courante.

        t.left(a)

        fait tourner sur la gauche (sens trigonométrique) la tortue t (sans avancer, ni reculer) d'un angle a par rapport à la direction courante.

        t.right(a)

        fait tourner sur la droite (sens horaire) la tortue t (sans avancer, ni reculer) d'un angle a par rapport à la direction courante.

        t.goto(x,y)

        fait aller la tortue au point de coordonnées (x,y) quelle que soit son orientation.

      Votre réponse :
      1. AAV0_INT: Méthode

        Appliquer cette méthode au cas particulier de l'énoncé.

        Zone de saisie de texte

        ClavierAction
        F1Afficher une aide technique
        F2Afficher une aide pédagogique
        Ctrl-ATout sélectionner
        Ctrl-CCopier la sélection dans le presse-papier
        Ctrl-VCopier le presse-papier dans la sélection
        Ctrl-XCouper la sélection et la copier dans le presse-papier
        Ctrl-ZAnnuler la modification
        Maj-Ctrl-ZRétablir la modification

        MenuAction
        Ré-initialiser les sorties
        Faire apparaître le menu d'aide
        Valider la zone de saisie
        Initialiser la zone de saisie
        Charger le contenu d'un fichier dans la zone de saisie
        Sauvegarder le contenu de la zone de saisie dans un fichier
        Imprimer le contenu de la zone de saisie
      2. AAV0_INT: Résultat

        A la fin de la séquence d'instructions, la figure géométrique est un(e) ?

      3. AAV0_INT: Vérification

        Application de la technique

        Si la technique proposée nécessite Python, on la mettra en œuvre dans l'interpréteur ci-dessus (cf. Résultat).

        Zone de saisie de texte

        ClavierAction
        F1Afficher une aide technique
        F2Afficher une aide pédagogique
        Ctrl-ATout sélectionner
        Ctrl-CCopier la sélection dans le presse-papier
        Ctrl-VCopier le presse-papier dans la sélection
        Ctrl-XCouper la sélection et la copier dans le presse-papier
        Ctrl-ZAnnuler la modification
        Maj-Ctrl-ZRétablir la modification

        MenuAction
        Ré-initialiser les sorties
        Faire apparaître le menu d'aide
        Valider la zone de saisie
        Initialiser la zone de saisie
        Charger le contenu d'un fichier dans la zone de saisie
        Sauvegarder le contenu de la zone de saisie dans un fichier
        Imprimer le contenu de la zone de saisie
      Une solution possible :
      1. AAV0_INT: Choisir et appliquer une méthode générique

        Pour dessiner la figure, on peut se mettre à la place de la personne (empathie) mais ne disposant pas nécessairement d'un espace suffisant pour exécuter l'algorithme, on le fera à l'échelle d'une feuille de papier en dessinant la figure (avec crayon, règle, compas, rapporteur) telle qu'elle est prescrite par l'énoncé. On parlera alors d'empathie géométrique pour effectuer ce « suivi de trajectoire ».

        instruction trajectoire
        avance de 20 pas _images/informatique-lecture-1-1.png
        tourne à gauche de 90° _images/informatique-lecture-1-2.png
        avance de 10 pas _images/informatique-lecture-1-3.png
        tourne à gauche de 90° _images/informatique-lecture-1-4.png
        avance de 20 pas _images/informatique-lecture-1-5.png
        tourne à gauche de 90° _images/informatique-lecture-1-6.png
        avance de 10 pas _images/informatique-lecture-1-7.png
      2. AAV0_INT: Répondre explicitement à la question posée

        La figure géométrique est un quadrilatère à 4 angles droits : c'est donc un rectangle.

      3. AAV0_INT: Choisir et appliquer une technique de vérification

        On peut traduire cette séquence d'instructions pour une tortue Logo et la faire exécuter par l'interpréteur Python.

        • En Python, on crée une tortue Logo par les instructions:

          import turtle
          tortue = turtle.Turtle()
          
        • On dit à la tortue Logo d'avancer de \(n\) pas par l'instruction:

          tortue.forward(n*pas)
          

          où le pas représente finalement un facteur d'échelle (la longueur du pas est relative à la personne qui l'effectue).

        • On dit à la tortue Logo de tourner à gauche d'un angle \(a\) (en degrés) par l'instruction:

          tortue.left(a)
          

        Le code ci-dessous propose la version Python de l'algorithme de l'énoncé.

        python : essai.py
        
            
        >>>
        Output
        
                        

        Interpréteur

        MenuAction
        Ré-initialiser les sorties
        Faire apparaître le menu d'aide
        Interpréter le programme

        Editeur

        MenuRaccouciAction
        Ctrl+N Initialiser l'éditeur
        Ctrl+O Charger le contenu d'un fichier dans l'éditeur
        Ctrl+S Sauvegarder le contenu de l'éditeur dans un fichier
        Ctrl+P Imprimer le contenu de l'éditeur
        Ctrl+Z Annuler la dernière modification
        Maj+Ctrl+Z Rétablir la modification précedente
        Ctrl+F Chercher une expression dans l'éditeur
        Maj+Ctrl+F Chercher et remplacer une expression par une autre
        F10 Ouvrir une documentation du langage

        RaccourciAction
        F1 Afficher cette aide
        Tab Indenter la sélection
        Maj+Tab Désindenter la sélection
        Ctrl+A Sélectionner le contenu de l'éditeur
        Ctrl+C Copier la sélection dans le presse-papier
        Ctrl+V Remplacer la sélection par le contenu du presse-papier
        Ctrl+X Supprimer la sélection et la copier dans le presse-papier
        Maj+Ctrl+R Chercher et remplacer une expression par une autre dans tout l'éditeur

        La figure obtenue par la tortue Logo est bien un rectangle, ce qui corrobore la réponse proposée.

    2. Dessin sur la plage (2)
      • Question
      • Solution

      On cherche à faire dessiner une figure géométrique sur la plage à une personne qui a les yeux bandés. Quelle figure géométrique dessinera-t-elle en exécutant la séquence d'instructions ci-dessous ?

      1. avance de 20 pas;
      2. tourne à gauche de 60°;
      3. avance de 20 pas;
      4. tourne à gauche de 120°;
      5. avance de 20 pas;
      6. tourne à gauche de 60°;
      7. avance de 20 pas;
      Rappels Python
      1. tortue Logo (documentation Python)

        import turtle

        module Python à importer pour manipuler la tortue Logo.

        t = turtle.Turtle()

        crée une tortue t.

        t.down()

        tracer la trajectoire de la tortue Logo.

        t.up()

        ne pas tracer la trajectoire de la tortue Logo.

        t.setheading(a)

        oriente la tortue t dans une direction qui fait l'angle a (en degrés) avec l'axe horizontal (sens trigonométrique).

        t.forward(d)

        fait avancer la tortue t d'une distance d dans la direction courante.

        t.backward(d)

        fait reculer la tortue t d'une distance d dans la direction courante.

        t.left(a)

        fait tourner sur la gauche (sens trigonométrique) la tortue t (sans avancer, ni reculer) d'un angle a par rapport à la direction courante.

        t.right(a)

        fait tourner sur la droite (sens horaire) la tortue t (sans avancer, ni reculer) d'un angle a par rapport à la direction courante.

        t.goto(x,y)

        fait aller la tortue au point de coordonnées (x,y) quelle que soit son orientation.

      Votre réponse :
      1. AAV0_INT: Méthode

        Appliquer cette méthode au cas particulier de l'énoncé.

        Zone de saisie de texte

        ClavierAction
        F1Afficher une aide technique
        F2Afficher une aide pédagogique
        Ctrl-ATout sélectionner
        Ctrl-CCopier la sélection dans le presse-papier
        Ctrl-VCopier le presse-papier dans la sélection
        Ctrl-XCouper la sélection et la copier dans le presse-papier
        Ctrl-ZAnnuler la modification
        Maj-Ctrl-ZRétablir la modification

        MenuAction
        Ré-initialiser les sorties
        Faire apparaître le menu d'aide
        Valider la zone de saisie
        Initialiser la zone de saisie
        Charger le contenu d'un fichier dans la zone de saisie
        Sauvegarder le contenu de la zone de saisie dans un fichier
        Imprimer le contenu de la zone de saisie
      2. AAV0_INT: Résultat

        A la fin de la séquence d'instructions, la figure géométrique est un(e) ?

      3. AAV0_INT: Vérification

        Application de la technique

        Si la technique proposée nécessite Python, on la mettra en œuvre dans l'interpréteur ci-dessus (cf. Résultat).

        Zone de saisie de texte

        ClavierAction
        F1Afficher une aide technique
        F2Afficher une aide pédagogique
        Ctrl-ATout sélectionner
        Ctrl-CCopier la sélection dans le presse-papier
        Ctrl-VCopier le presse-papier dans la sélection
        Ctrl-XCouper la sélection et la copier dans le presse-papier
        Ctrl-ZAnnuler la modification
        Maj-Ctrl-ZRétablir la modification

        MenuAction
        Ré-initialiser les sorties
        Faire apparaître le menu d'aide
        Valider la zone de saisie
        Initialiser la zone de saisie
        Charger le contenu d'un fichier dans la zone de saisie
        Sauvegarder le contenu de la zone de saisie dans un fichier
        Imprimer le contenu de la zone de saisie
      Une solution possible :
      1. AAV0_INT: Choisir et appliquer une méthode générique

        Pour dessiner la figure, on peut se mettre à la place de la personne (empathie) mais ne disposant pas nécessairement d'un espace suffisant pour exécuter l'algorithme, on le fera à l'échelle d'une feuille de papier en dessinant la figure (avec crayon, règle, compas, rapporteur) telle qu'elle est prescrite par l'énoncé. On parlera alors d'empathie géométrique pour effectuer ce « suivi de trajectoire ».

        instruction trajectoire
        avance de 20 pas _images/informatique-lecture-2-1.png
        tourne à gauche de 60° _images/informatique-lecture-2-2.png
        avance de 20 pas _images/informatique-lecture-2-3.png
        tourne à gauche de 120° _images/informatique-lecture-2-4.png
        avance de 20 pas _images/informatique-lecture-2-5.png
        tourne à gauche de 60° _images/informatique-lecture-2-6.png
        avance de 20 pas _images/informatique-lecture-2-7.png
      2. AAV0_INT: Répondre explicitement à la question posée

        La figure géométrique est un polygone à 4 côtés de même longueur : il s'agit donc d'un losange.

      3. AAV0_INT: Choisir et appliquer une technique de vérification

        On peut traduire cette séquence d'instructions pour une tortue Logo et la faire exécuter par l'interpréteur Python.

        • En Python, on crée une tortue Logo par les instructions:

          import turtle
          tortue = turtle.Turtle()
          
        • On dit à la tortue Logo d'avancer de \(n\) pas par l'instruction:

          tortue.forward(n*pas)
          

          où le pas représente finalement un facteur d'échelle (la longueur du pas est relative à la personne qui l'effectue).

        • On dit à la tortue Logo de tourner à gauche d'un angle \(a\) (en degrés) par l'instruction:

          tortue.left(a)
          

        L'interpréteur ci-dessous propose la version Python de l'algorithme de l'énoncé.

        python : essai.py
        
            
        >>>
        Output
        
                        

        Interpréteur

        MenuAction
        Ré-initialiser les sorties
        Faire apparaître le menu d'aide
        Interpréter le programme

        Editeur

        MenuRaccouciAction
        Ctrl+N Initialiser l'éditeur
        Ctrl+O Charger le contenu d'un fichier dans l'éditeur
        Ctrl+S Sauvegarder le contenu de l'éditeur dans un fichier
        Ctrl+P Imprimer le contenu de l'éditeur
        Ctrl+Z Annuler la dernière modification
        Maj+Ctrl+Z Rétablir la modification précedente
        Ctrl+F Chercher une expression dans l'éditeur
        Maj+Ctrl+F Chercher et remplacer une expression par une autre
        F10 Ouvrir une documentation du langage

        RaccourciAction
        F1 Afficher cette aide
        Tab Indenter la sélection
        Maj+Tab Désindenter la sélection
        Ctrl+A Sélectionner le contenu de l'éditeur
        Ctrl+C Copier la sélection dans le presse-papier
        Ctrl+V Remplacer la sélection par le contenu du presse-papier
        Ctrl+X Supprimer la sélection et la copier dans le presse-papier
        Maj+Ctrl+R Chercher et remplacer une expression par une autre dans tout l'éditeur

        La figure obtenue par la tortue Logo est bien un losange, ce qui corrobore la réponse proposée.

Test de programmation

  1. 1/3 Appliquer
    1. Segment de droite
      • Question
      • Solution

      En s'inspirant des exemples précédents, écrire un programme qui dessine un segment de droite de 50 pas de long et qui fait un angle de \(\pi/6\) avec la verticale (par convention, les angles sont positifs dans le sens anti-horaire).

      aide Python

      tortue Logo : (documentation Python)

      import turtle

      module Python à importer pour manipuler la tortue Logo.

      t = turtle.Turtle()

      crée une tortue t.

      t.down()

      tracer la trajectoire de la tortue Logo.

      t.up()

      ne pas tracer la trajectoire de la tortue Logo.

      t.setheading(a)

      oriente la tortue t dans une direction qui fait l'angle a (en degrés) avec l'axe horizontal (sens trigonométrique).

      t.forward(d)

      fait avancer la tortue t d'une distance d dans la direction courante.

      t.backward(d)

      fait reculer la tortue t d'une distance d dans la direction courante.

      t.left(a)

      fait tourner sur la gauche (sens trigonométrique) la tortue t (sans avancer, ni reculer) d'un angle a par rapport à la direction courante.

      t.right(a)

      fait tourner sur la droite (sens horaire) la tortue t (sans avancer, ni reculer) d'un angle a par rapport à la direction courante.

      t.goto(x,y)

      fait aller la tortue au point de coordonnées (x,y) quelle que soit son orientation.

      Votre réponse :
      1. AAV0_INT: Méthode

        Appliquer cette méthode au cas particulier de l'énoncé.

        Zone de saisie de texte

        ClavierAction
        F1Afficher une aide technique
        F2Afficher une aide pédagogique
        Ctrl-ATout sélectionner
        Ctrl-CCopier la sélection dans le presse-papier
        Ctrl-VCopier le presse-papier dans la sélection
        Ctrl-XCouper la sélection et la copier dans le presse-papier
        Ctrl-ZAnnuler la modification
        Maj-Ctrl-ZRétablir la modification

        MenuAction
        Ré-initialiser les sorties
        Faire apparaître le menu d'aide
        Valider la zone de saisie
        Initialiser la zone de saisie
        Charger le contenu d'un fichier dans la zone de saisie
        Sauvegarder le contenu de la zone de saisie dans un fichier
        Imprimer le contenu de la zone de saisie
      2. AAV0_INT: Résultat

        Utiliser l'interpréteur Python ci-dessous pour programmer l'algorithme demandé.

        python : essai.py
        
            
        >>>
        Output
        
                        

        Interpréteur

        MenuAction
        Ré-initialiser les sorties
        Faire apparaître le menu d'aide
        Interpréter le programme

        Editeur

        MenuRaccouciAction
        Ctrl+N Initialiser l'éditeur
        Ctrl+O Charger le contenu d'un fichier dans l'éditeur
        Ctrl+S Sauvegarder le contenu de l'éditeur dans un fichier
        Ctrl+P Imprimer le contenu de l'éditeur
        Ctrl+Z Annuler la dernière modification
        Maj+Ctrl+Z Rétablir la modification précedente
        Ctrl+F Chercher une expression dans l'éditeur
        Maj+Ctrl+F Chercher et remplacer une expression par une autre
        F10 Ouvrir une documentation du langage

        RaccourciAction
        F1 Afficher cette aide
        Tab Indenter la sélection
        Maj+Tab Désindenter la sélection
        Ctrl+A Sélectionner le contenu de l'éditeur
        Ctrl+C Copier la sélection dans le presse-papier
        Ctrl+V Remplacer la sélection par le contenu du presse-papier
        Ctrl+X Supprimer la sélection et la copier dans le presse-papier
        Maj+Ctrl+R Chercher et remplacer une expression par une autre dans tout l'éditeur
      3. AAV0_INT: Vérification

        Application de la technique

        Si la technique proposée nécessite Python, on la mettra en œuvre dans l'interpréteur ci-dessus (cf. Résultat).

        Zone de saisie de texte

        ClavierAction
        F1Afficher une aide technique
        F2Afficher une aide pédagogique
        Ctrl-ATout sélectionner
        Ctrl-CCopier la sélection dans le presse-papier
        Ctrl-VCopier le presse-papier dans la sélection
        Ctrl-XCouper la sélection et la copier dans le presse-papier
        Ctrl-ZAnnuler la modification
        Maj-Ctrl-ZRétablir la modification

        MenuAction
        Ré-initialiser les sorties
        Faire apparaître le menu d'aide
        Valider la zone de saisie
        Initialiser la zone de saisie
        Charger le contenu d'un fichier dans la zone de saisie
        Sauvegarder le contenu de la zone de saisie dans un fichier
        Imprimer le contenu de la zone de saisie
      Une solution possible :
      1. AAV0_INT: Choisir et appliquer une méthode générique

        On applique la méthode de l'empathie géométrique pour effectuer un « suivi de trajectoire ».

        instruction trajectoire code Python
        s'orienter à 30° (\(\pi/6\)) de la verticale _images/informatique-logo-1-1.png tortue.left(90+30)
        avancer de 50 pas _images/informatique-logo-1-2.png tortue.forward(50*pas)
      2. AAV0_INT: Répondre explicitement à la question posée

        Le code ci-dessous propose la version Python du tracé attendu.

        python : essai.py
        
            
        >>>
        Output
        
                        

        Interpréteur

        MenuAction
        Ré-initialiser les sorties
        Faire apparaître le menu d'aide
        Interpréter le programme

        Editeur

        MenuRaccouciAction
        Ctrl+N Initialiser l'éditeur
        Ctrl+O Charger le contenu d'un fichier dans l'éditeur
        Ctrl+S Sauvegarder le contenu de l'éditeur dans un fichier
        Ctrl+P Imprimer le contenu de l'éditeur
        Ctrl+Z Annuler la dernière modification
        Maj+Ctrl+Z Rétablir la modification précedente
        Ctrl+F Chercher une expression dans l'éditeur
        Maj+Ctrl+F Chercher et remplacer une expression par une autre
        F10 Ouvrir une documentation du langage

        RaccourciAction
        F1 Afficher cette aide
        Tab Indenter la sélection
        Maj+Tab Désindenter la sélection
        Ctrl+A Sélectionner le contenu de l'éditeur
        Ctrl+C Copier la sélection dans le presse-papier
        Ctrl+V Remplacer la sélection par le contenu du presse-papier
        Ctrl+X Supprimer la sélection et la copier dans le presse-papier
        Maj+Ctrl+R Chercher et remplacer une expression par une autre dans tout l'éditeur
      3. AAV0_INT: Choisir et appliquer une technique de vérification

        A ce stade, une simple comparaison de figures entre celle de l'énoncé et celle obtenue par programme suffira.

        Les deux figures sont similaires, ce qui corrobore la réponse proposée.

    2. Triangle rectangle
      • Question
      • Solution

      En s'inspirant des exemples précédents, écrire un programme qui dessine un triangle \(ABC\) rectangle en \(A\) avec \(\theta_B = \widehat{ABC} = \pi/6\) et \(a = |BC| = 50\ \mathrm{pas}\).

      _images/informatique-logo-2.png
      aide Python

      tortue Logo : (documentation Python)

      import turtle

      module Python à importer pour manipuler la tortue Logo.

      t = turtle.Turtle()

      crée une tortue t.

      t.down()

      tracer la trajectoire de la tortue Logo.

      t.up()

      ne pas tracer la trajectoire de la tortue Logo.

      t.setheading(a)

      oriente la tortue t dans une direction qui fait l'angle a (en degrés) avec l'axe horizontal (sens trigonométrique).

      t.forward(d)

      fait avancer la tortue t d'une distance d dans la direction courante.

      t.backward(d)

      fait reculer la tortue t d'une distance d dans la direction courante.

      t.left(a)

      fait tourner sur la gauche (sens trigonométrique) la tortue t (sans avancer, ni reculer) d'un angle a par rapport à la direction courante.

      t.right(a)

      fait tourner sur la droite (sens horaire) la tortue t (sans avancer, ni reculer) d'un angle a par rapport à la direction courante.

      t.goto(x,y)

      fait aller la tortue au point de coordonnées (x,y) quelle que soit son orientation.

      Votre réponse :
      1. AAV0_INT: Méthode

        Appliquer cette méthode au cas particulier de l'énoncé.

        Zone de saisie de texte

        ClavierAction
        F1Afficher une aide technique
        F2Afficher une aide pédagogique
        Ctrl-ATout sélectionner
        Ctrl-CCopier la sélection dans le presse-papier
        Ctrl-VCopier le presse-papier dans la sélection
        Ctrl-XCouper la sélection et la copier dans le presse-papier
        Ctrl-ZAnnuler la modification
        Maj-Ctrl-ZRétablir la modification

        MenuAction
        Ré-initialiser les sorties
        Faire apparaître le menu d'aide
        Valider la zone de saisie
        Initialiser la zone de saisie
        Charger le contenu d'un fichier dans la zone de saisie
        Sauvegarder le contenu de la zone de saisie dans un fichier
        Imprimer le contenu de la zone de saisie
      2. AAV0_INT: Résultat

        Utiliser l'interpréteur Python ci-dessous pour programmer l'algorithme demandé.

        python : essai.py
        
            
        >>>
        Output
        
                        

        Interpréteur

        MenuAction
        Ré-initialiser les sorties
        Faire apparaître le menu d'aide
        Interpréter le programme

        Editeur

        MenuRaccouciAction
        Ctrl+N Initialiser l'éditeur
        Ctrl+O Charger le contenu d'un fichier dans l'éditeur
        Ctrl+S Sauvegarder le contenu de l'éditeur dans un fichier
        Ctrl+P Imprimer le contenu de l'éditeur
        Ctrl+Z Annuler la dernière modification
        Maj+Ctrl+Z Rétablir la modification précedente
        Ctrl+F Chercher une expression dans l'éditeur
        Maj+Ctrl+F Chercher et remplacer une expression par une autre
        F10 Ouvrir une documentation du langage

        RaccourciAction
        F1 Afficher cette aide
        Tab Indenter la sélection
        Maj+Tab Désindenter la sélection
        Ctrl+A Sélectionner le contenu de l'éditeur
        Ctrl+C Copier la sélection dans le presse-papier
        Ctrl+V Remplacer la sélection par le contenu du presse-papier
        Ctrl+X Supprimer la sélection et la copier dans le presse-papier
        Maj+Ctrl+R Chercher et remplacer une expression par une autre dans tout l'éditeur
      3. AAV0_INT: Vérification

        Application de la technique

        Si la technique proposée nécessite Python, on la mettra en œuvre dans l'interpréteur ci-dessus (cf. Résultat).

        Zone de saisie de texte

        ClavierAction
        F1Afficher une aide technique
        F2Afficher une aide pédagogique
        Ctrl-ATout sélectionner
        Ctrl-CCopier la sélection dans le presse-papier
        Ctrl-VCopier le presse-papier dans la sélection
        Ctrl-XCouper la sélection et la copier dans le presse-papier
        Ctrl-ZAnnuler la modification
        Maj-Ctrl-ZRétablir la modification

        MenuAction
        Ré-initialiser les sorties
        Faire apparaître le menu d'aide
        Valider la zone de saisie
        Initialiser la zone de saisie
        Charger le contenu d'un fichier dans la zone de saisie
        Sauvegarder le contenu de la zone de saisie dans un fichier
        Imprimer le contenu de la zone de saisie
      Une solution possible :
      1. AAV0_INT: Choisir et appliquer une méthode générique

        Dans le triangle \(ABC\) rectangle en \(A\), on a \(\theta_a = \pi/2\) et \(\theta_b = \pi/6\), d'où \(\theta_c = \pi - \pi/2 - \pi/6 = \pi/3\). On a également \(b = |AC| = a\sin(\pi/6)\) et \(c = |AB| = a\cos(\pi/6)\).

        On applique la méthode de l'empathie géométrique pour effectuer un « suivi de trajectoire ».

        instruction trajectoire code Python
        avancer de 50 pas _images/informatique-logo-2-1.png tortue.forward(50*pas)
        tourner à gauche de 120° _images/informatique-logo-2-2.png tortue.left(120)
        avancer de 25 pas _images/informatique-logo-2-3.png tortue.forward(50*pas*(1./2))
        tourner à gauche de 90° _images/informatique-logo-2-4.png tortue.left(90)
        avancer de \(\displaystyle 50\cdot\frac{\sqrt{3}}{2}\) pas _images/informatique-logo-2-5.png tortue.forward(50*pas*(1.732/2))
      2. AAV0_INT: Répondre explicitement à la question posée

        Le code ci-dessous propose la version Python du tracé attendu.

        python : essai.py
        
            
        >>>
        Output
        
                        

        Interpréteur

        MenuAction
        Ré-initialiser les sorties
        Faire apparaître le menu d'aide
        Interpréter le programme

        Editeur

        MenuRaccouciAction
        Ctrl+N Initialiser l'éditeur
        Ctrl+O Charger le contenu d'un fichier dans l'éditeur
        Ctrl+S Sauvegarder le contenu de l'éditeur dans un fichier
        Ctrl+P Imprimer le contenu de l'éditeur
        Ctrl+Z Annuler la dernière modification
        Maj+Ctrl+Z Rétablir la modification précedente
        Ctrl+F Chercher une expression dans l'éditeur
        Maj+Ctrl+F Chercher et remplacer une expression par une autre
        F10 Ouvrir une documentation du langage

        RaccourciAction
        F1 Afficher cette aide
        Tab Indenter la sélection
        Maj+Tab Désindenter la sélection
        Ctrl+A Sélectionner le contenu de l'éditeur
        Ctrl+C Copier la sélection dans le presse-papier
        Ctrl+V Remplacer la sélection par le contenu du presse-papier
        Ctrl+X Supprimer la sélection et la copier dans le presse-papier
        Maj+Ctrl+R Chercher et remplacer une expression par une autre dans tout l'éditeur
      3. AAV0_INT: Choisir et appliquer une technique de vérification

        A ce stade, une simple comparaison de figures entre celle de l'énoncé et celle obtenue par programme suffira.

        Les deux figures sont similaires, ce qui corrobore la réponse proposée.

    3. Triangle isocèle
      • Question
      • Solution

      En s'inspirant des exemples précédents, écrire un programme qui dessine un triangle \(ABC\) isocèle en \(A\) tel que \(a = |BC| = 40\ \mathrm{pas}\) soit à la verticale et \(\theta_c = \widehat{ACB} = \pi/6\).

      _images/informatique-logo-3.png
      aide Python

      tortue Logo : (documentation Python)

      import turtle

      module Python à importer pour manipuler la tortue Logo.

      t = turtle.Turtle()

      crée une tortue t.

      t.down()

      tracer la trajectoire de la tortue Logo.

      t.up()

      ne pas tracer la trajectoire de la tortue Logo.

      t.setheading(a)

      oriente la tortue t dans une direction qui fait l'angle a (en degrés) avec l'axe horizontal (sens trigonométrique).

      t.forward(d)

      fait avancer la tortue t d'une distance d dans la direction courante.

      t.backward(d)

      fait reculer la tortue t d'une distance d dans la direction courante.

      t.left(a)

      fait tourner sur la gauche (sens trigonométrique) la tortue t (sans avancer, ni reculer) d'un angle a par rapport à la direction courante.

      t.right(a)

      fait tourner sur la droite (sens horaire) la tortue t (sans avancer, ni reculer) d'un angle a par rapport à la direction courante.

      t.goto(x,y)

      fait aller la tortue au point de coordonnées (x,y) quelle que soit son orientation.

      Votre réponse :
      1. AAV0_INT: Méthode

        Appliquer cette méthode au cas particulier de l'énoncé.

        Zone de saisie de texte

        ClavierAction
        F1Afficher une aide technique
        F2Afficher une aide pédagogique
        Ctrl-ATout sélectionner
        Ctrl-CCopier la sélection dans le presse-papier
        Ctrl-VCopier le presse-papier dans la sélection
        Ctrl-XCouper la sélection et la copier dans le presse-papier
        Ctrl-ZAnnuler la modification
        Maj-Ctrl-ZRétablir la modification

        MenuAction
        Ré-initialiser les sorties
        Faire apparaître le menu d'aide
        Valider la zone de saisie
        Initialiser la zone de saisie
        Charger le contenu d'un fichier dans la zone de saisie
        Sauvegarder le contenu de la zone de saisie dans un fichier
        Imprimer le contenu de la zone de saisie
      2. AAV0_INT: Résultat

        Utiliser l'interpréteur Python ci-dessous pour programmer l'algorithme demandé.

        python : essai.py
        
            
        >>>
        Output
        
                        

        Interpréteur

        MenuAction
        Ré-initialiser les sorties
        Faire apparaître le menu d'aide
        Interpréter le programme

        Editeur

        MenuRaccouciAction
        Ctrl+N Initialiser l'éditeur
        Ctrl+O Charger le contenu d'un fichier dans l'éditeur
        Ctrl+S Sauvegarder le contenu de l'éditeur dans un fichier
        Ctrl+P Imprimer le contenu de l'éditeur
        Ctrl+Z Annuler la dernière modification
        Maj+Ctrl+Z Rétablir la modification précedente
        Ctrl+F Chercher une expression dans l'éditeur
        Maj+Ctrl+F Chercher et remplacer une expression par une autre
        F10 Ouvrir une documentation du langage

        RaccourciAction
        F1 Afficher cette aide
        Tab Indenter la sélection
        Maj+Tab Désindenter la sélection
        Ctrl+A Sélectionner le contenu de l'éditeur
        Ctrl+C Copier la sélection dans le presse-papier
        Ctrl+V Remplacer la sélection par le contenu du presse-papier
        Ctrl+X Supprimer la sélection et la copier dans le presse-papier
        Maj+Ctrl+R Chercher et remplacer une expression par une autre dans tout l'éditeur
      3. AAV0_INT: Vérification

        Application de la technique

        Si la technique proposée nécessite Python, on la mettra en œuvre dans l'interpréteur ci-dessus (cf. Résultat).

        Zone de saisie de texte

        ClavierAction
        F1Afficher une aide technique
        F2Afficher une aide pédagogique
        Ctrl-ATout sélectionner
        Ctrl-CCopier la sélection dans le presse-papier
        Ctrl-VCopier le presse-papier dans la sélection
        Ctrl-XCouper la sélection et la copier dans le presse-papier
        Ctrl-ZAnnuler la modification
        Maj-Ctrl-ZRétablir la modification

        MenuAction
        Ré-initialiser les sorties
        Faire apparaître le menu d'aide
        Valider la zone de saisie
        Initialiser la zone de saisie
        Charger le contenu d'un fichier dans la zone de saisie
        Sauvegarder le contenu de la zone de saisie dans un fichier
        Imprimer le contenu de la zone de saisie
      Une solution possible :
      1. AAV0_INT: Choisir et appliquer une méthode générique

        Dans le triangle \(ABC\) isocèle en \(A\), on a \(\theta_b = \theta_c = \pi/6\) et \(\theta_a = 2\pi/3\). On a également \(a = |BC| = 40\ \mathrm{pas}\), d'où \(\displaystyle |AB| = |AC| = \frac{a}{2}\frac{1}{\cos(\theta_c)} = a\frac{1}{\sqrt{3}}\).

        On applique la méthode de l'empathie géométrique pour effectuer un « suivi de trajectoire ».

        instruction trajectoire code Python
        s'orienter à la verticale _images/informatique-logo-3-0.png tortue.left(90)
        avancer de 40 pas _images/informatique-logo-3-1.png tortue.forward(40*pas)
        tourner à droite de 150° _images/informatique-logo-3-2.png tortue.right(150)
        avancer de \(\displaystyle 40\frac{1}{\sqrt{3}}\) pas _images/informatique-logo-3-3.png tortue.forward(40*pas/1.732)
        tourner à droite de 60° _images/informatique-logo-3-4.png tortue.right(60)
        avancer de \(\displaystyle 40\frac{1}{\sqrt{3}}\) pas _images/informatique-logo-3-5.png tortue.forward(40*pas/1.732)
      2. AAV0_INT: Répondre explicitement à la question posée

        Le code ci-dessous propose la version Python du tracé attendu.

        python : essai.py
        
            
        >>>
        Output
        
                        

        Interpréteur

        MenuAction
        Ré-initialiser les sorties
        Faire apparaître le menu d'aide
        Interpréter le programme

        Editeur

        MenuRaccouciAction
        Ctrl+N Initialiser l'éditeur
        Ctrl+O Charger le contenu d'un fichier dans l'éditeur
        Ctrl+S Sauvegarder le contenu de l'éditeur dans un fichier
        Ctrl+P Imprimer le contenu de l'éditeur
        Ctrl+Z Annuler la dernière modification
        Maj+Ctrl+Z Rétablir la modification précedente
        Ctrl+F Chercher une expression dans l'éditeur
        Maj+Ctrl+F Chercher et remplacer une expression par une autre
        F10 Ouvrir une documentation du langage

        RaccourciAction
        F1 Afficher cette aide
        Tab Indenter la sélection
        Maj+Tab Désindenter la sélection
        Ctrl+A Sélectionner le contenu de l'éditeur
        Ctrl+C Copier la sélection dans le presse-papier
        Ctrl+V Remplacer la sélection par le contenu du presse-papier
        Ctrl+X Supprimer la sélection et la copier dans le presse-papier
        Maj+Ctrl+R Chercher et remplacer une expression par une autre dans tout l'éditeur
      3. AAV0_INT: Choisir et appliquer une technique de vérification

        A ce stade, une simple comparaison de figures entre celle de l'énoncé et celle obtenue par programme suffira.

        Les deux figures sont similaires, ce qui corrobore la réponse proposée.

 
Algorithmique - Tests : Introduction, 14 oct. 2024.