Fichier de rejeu Close

Indication Close

A propos de... Close

Commentaire Close

Algorithmique - Cours

  • Contexte 1: informatique
  • Contexte 2: pédagogie
  • Contexte 3: enibook
  • Objectif 1: affectation
    • Variable
    • Définition
    • Séquences d'affectations
    • Exercices
      • Affectation - Exercices de compréhension
      • Affectation - Exercices de programmation
  • 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

Affectation - Exercices de programmation

Information :

Liens utiles sur l'affectation :

  • Cours
  • Exercices de compréhension

  1. Circuit logique
    • Question
    • Solution

    On considère le circuit logique ci-dessous où \(a\) et \(b\) sont les entrées et \(s\) la sortie.

    _images/fonction-ex1.png

    Proposer une instruction de type « affectation » qui permettra de calculer la sortie \(s\) du circuit lorsque les entrées \(a\) et \(b\) sont toutes à \(1\).

    opérateurs booléens
    _images/alternative-booleens-1.png _images/alternative-booleens-2.png _images/alternative-booleens-3.png
    aide Python
    1. instruction d'affectation

      a = b

      affecte la valeur de l'expression b à la variable de nom a.

    2. opérateurs booléens (documentation Python)

      not a

      négation : \(\overline{a}\)

      a and b

      conjonction : \(a\cdot b\)

      a or b

      disjonction : \(a + b\)

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

      Application de la méthode

      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. AAV5_AFF: Résultat

      Utiliser l'interpréteur Python ci-dessous pour répondre.

      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. AAV3_AFF: 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. AAV2_AFF: Choisir et appliquer une méthode générique

      On utilise une représentation analytique. En effet, lorsque un objet est représenté sous une forme graphique, il est préférable de le transformer en sa représentation analytique (lorsqu'elle existe) pour étudier cet objet à l'aide d'un programme informatique.

      Le circuit logique de l'énoncé possède 2 entrées a et b et une sortie s; sa représentation analytique est simplement:

      s = (not a and b) or (a and not b)
      

      Il faut bien sûr initialiser a et b pour que l'expression du membre de droite soit évaluable.

    2. AAV5_AFF: Répondre explicitement à la question posée

      L'instruction de type affectation qui permet de simuler le circuit logique est donnée dans l'interpréteur ci-dessous.

      python : affectation-type-boolean.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. AAV3_AFF: Choisir et appliquer une technique de vérification

      On établit « à la main » la table de vérité du circuit et on compare le résultat obtenu par programme avec celui de la table établie à la main.

      \(a\) \(b\) \(s\)
      0 0 0
      0 1 1
      1 0 1
      1 1 0

      On constate que ce circuit réalise un « ou exclusif » (xor, \(\oplus\)). Lorsque les entrées \(a\) et \(b\) sont à 1 (dernière ligne de la table de vérité), la sortie \(s\) est à 0 (False).

      Le code Python précédent donne bien le même résultat.

      On peut également utiliser le simulateur de circuits logiques ci-dessous pour vérifier le résultat fourni par le code Python.

      Circuit logique : affectation-circuit.json

      Entrées/Sorties

      Portes 1/1

      Portes 2/1

      Portes 3/1

      Vue d'ensemble
  2. Longueur d'une chaîne
    • Question
    • Solution

    Proposer une instruction de type « affectation » qui permettra de tester si les deux chaînes de caractères 'bonjour' et 'salut' ont le même nombre d'éléments.

    aide Python
    1. instruction d'affectation

      a = b

      affecte la valeur de l'expression b à la variable de nom a.

    2. opérateurs de séquences (documentation Python)

      x in s

      True si x appartient à la séquence s, False sinon.

      x not in s

      False si x appartient à la séquence s, True sinon.

      s + t

      concaténation (mise bout à bout) de s et t.

      n*s

      concaténation de s avec elle-même, n fois.

      s[i]

      élément de rang i+1 dans la séquence s (le premier élément a pour rang 0).

      s[i:j]

      séquence formée des éléments de la séquence s des rangs i inclus à j exclu.

      len(s)

      nombre d'éléments (longueur) de la séquence s.

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

      Application de la méthode

      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. AAV5_AFF: Résultat

      Utiliser l'interpréteur Python ci-dessous pour répondre.

      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. AAV3_AFF: 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. AAV2_AFF: Choisir et appliquer une méthode générique

      On commence par faire abstraction des données spécifiques, en particulier numériques ou alphanumériques, pour ne considérer que les variables associées. Puis on reformule l'énoncé avec les noms des variables en explicitant les données du problème et les résultats attendus.

      Ainsi, on ne s'intéressera pas aux valeurs alphanumériques 'bonjour' et 'salut' mais plutôt à ce qu'elles qualifient : deux chaînes de caractères auxquelles on attribuera un nom chacune.

      Il s'agit donc ici de comparer les longueurs de deux chaînes s1 et s2. La longueur d'une chaîne de caractères s'obtient à l'aide de la fonction len : len(s1) ou len(s2). On affecte donc simplement la comparaison (len(s1) == len(s2)) à la réponse souhaitée:

      compar = (len(s1) == len(s2))
      

      compar prendra donc la valeur booléenne True ou False selon que les longueurs sont égales ou non.

    2. AAV5_AFF: Répondre explicitement à la question posée

      L'instruction de type affectation qui permet de répondre à la question posée est donnée dans l'interpréteur ci-dessous.

      python : affectation-type-string.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. AAV3_AFF: Choisir et appliquer une technique de vérification

      On vérifie simplement par une comparaison avec un calcul « à la main ». En effet, les chaînes de caractères sont suffisamment petites pour calculer « à la main » leur nombre de caractères et les comparer.

      La chaîne bonjour a 7 caractères, la chaîne salut en a 5 : elles ne sont donc pas de longueurs égales, d'où le résultat False obtenu après exécution du code.

  3. Appartenance à une liste
    • Question
    • Solution

    Proposer une instruction de type « affectation » qui permettra de tester si les entiers 3 ou 9 appartiennent à la liste ['salut',1.72,4,True,6,'3'].

    aide Python
    1. instruction d'affectation

      a = b

      affecte la valeur de l'expression b à la variable de nom a.

    2. opérateurs de séquences (documentation Python)

      x in s

      True si x appartient à la séquence s, False sinon.

      x not in s

      False si x appartient à la séquence s, True sinon.

      s + t

      concaténation (mise bout à bout) de s et t.

      s[i]

      élément de rang i+1 dans la séquence s (le premier élément a pour rang 0).

      s[i:j]

      séquence formée des éléments de la séquence s des rangs i inclus à j exclu.

      len(s)

      nombre d'éléments (longueur) de la séquence s.

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

      Application de la méthode

      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. AAV5_AFF: Résultat

      Utiliser l'interpréteur Python ci-dessous pour répondre.

      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. AAV3_AFF: 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. AAV2_AFF: Choisir et appliquer une méthode générique

      On commence par faire abstraction des données spécifiques, en particulier numériques ou alphanumériques, pour ne considérer que les variables associées. Puis on reformule l'énoncé avec les noms des variables en explicitant les données du problème et les résultats attendus.

      Ainsi, on ne s'intéressera pas aux valeurs 3, 9 ou ['salut',1.72,4,True,6,'3'] mais plutôt à ce qu'elles qualifient : deux entiers et une liste auxquels on attribuera un nom chacun.

      Il s'agit donc ici de tester si une liste t contient l'un ou l'autre des 2 éléments e1 et e2. On utilise pour cela l'opérateur in:

      present = (e1 in t) or (e2 in t)
      
    2. AAV5_AFF: Répondre explicitement à la question posée

      L'instruction de type affectation qui permet de répondre à la question posée est donnée dans l'interpréteur ci-dessous.

      python : affectation-type-list.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. AAV3_AFF: Choisir et appliquer une technique de vérification

      On vérifie simplement par une simple comparaison avec un calcul « à la main ». En effet, la liste est suffisamment petite pour vérifier « à la main » la présence ou non de l'un ou l'autre des éléments.

      L'élément '3' n'est pas un entier, mais une chaîne de caractères. La liste t ne contient donc ni l'entier 3, ni l'entier 9, d'où le résultat False obtenu après exécution du code.

  4. Triangle rectangle
    • Question
    • Solution

    On considère le triangle \(ABC\) rectangle en \(A\) de la figure ci-dessous. Le côté \((AB)\) de longueur \(c = 200\) fait un angle \(\theta = 30^\circ\) avec l'axe des \(x\). Le côté \((AC)\) a pour longueur \(b = 150\).

    _images/affectation-logo-1-1.png

    Proposer un algorithme pour faire dessiner ce triangle rectangle par la tortue Logo en utilisant uniquement des instructions de type « affectation » et des instructions de la tortue Logo.

    aide Python
    1. instruction d'affectation

      a = b

      affecte la valeur de l'expression b à la variable de nom a.

    2. 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. AAV2_AFF: Méthode

      Application de la méthode

      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. AAV5_AFF: Résultat

      Utiliser l'interpréteur Python ci-dessous pour répondre.

      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. AAV3_AFF: 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. AAV2_AFF: Choisir et appliquer une méthode générique

      On effectuera un suivi de trajectoire : voir la figure à dessiner comme une trajectoire à faire parcourir par la tortue Logo.

      La trigonométrie du triangle rectangle \(ABC\) permet de déterminer les éléments manquants pour le suivi de trajectoire : le troisième côté \(a\) et les deux autres angles \(\theta_B\) et \(\theta_C\) respectivement en \(B\) et en \(C\).

      _images/affectation-logo-1-2.png

      Une fois connus les 3 côtés \(a\), \(b\), \(c\) et les 3 angles du triangle \(\theta_A\), \(\theta_B\), \(\theta_C\), il reste à déplacer la tortue en « suivant » le triangle côté après côté.

      On commence par créer la tortue t : t = turtle.Turtle().

      Le suivi de trajectoire commence par orienter correctement la tortue t : t.setheading(theta).

      On fait avancer la tortue de la longueur du côté \((AB)\) : t.forward(c).

      On la fait tourner sur la gauche : t.left(180-thetaB) puis on décrit le côté \((BC)\) : t.forward(a), et ainsi de suite jusqu'à revenir au point de départ \(A\).

      Remarque

      Ce suivi de trajectoire ne dépend pas du type du triangle (rectangle, isocèle, équilatéral, quelconque...).

    2. AAV5_AFF: Répondre explicitement à la question posée

      Les instructions qui permettent de répondre à la question posée est donnée dans l'interpréteur ci-dessous.

      python : affectation-logo-1.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. AAV3_AFF: Choisir et appliquer une technique de vérification

      Une simple comparaison des figures suffit : on compare la figure obtenue avec la tortue Logo à celle de l'énoncé.

      Le triangle obtenu correspond bien à celui de l'énoncé.

  5. Triangle équilatéral
    • Question
    • Solution

    On considère le triangle équilatéral \(ABC\) de la figure ci-dessous. Il a pour côté \(a = 130\) et le côté \((AB)\) fait un angle de \(\theta = 50^\circ\) avec l'axe des \(x\).

    _images/affectation-logo-2.png

    Proposer un algorithme pour faire dessiner ce triangle équilatéral par la tortue Logo en utilisant uniquement des instructions de type « affectation » et des instructions de la tortue Logo.

    aide Python
    1. instruction d'affectation

      a = b

      affecte la valeur de l'expression b à la variable de nom a.

    2. 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. AAV2_AFF: Méthode

      Application de la méthode

      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. AAV5_AFF: Résultat

      Utiliser l'interpréteur Python ci-dessous pour répondre.

      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. AAV3_AFF: 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. AAV2_AFF: Choisir et appliquer une méthode générique

      On effectuera un suivi de trajectoire : voir la figure à dessiner comme une trajectoire à faire parcourir par la tortue Logo.

      On commence par s'abstraire des données spécifiques à la question en introduisant des noms de variable et en appliquant les résultats élémentaires de trigonométrie du triangle équilatéral : dans un triangle équilatéral, les 3 côtés sont égaux et les 3 angles aussi:

      # données de l'énoncé
      a = b = c = 130.
      thetaA = thetaB = thetaC = 60.
      theta = 50.
      

      On pourra ainsi dessiner n'importe quel triangle équilatéral dont on connaîtra a et theta.

      Une fois connus les 3 côtés et les 3 angles du triangle, il reste à déplacer la tortue en « suivant » le triangle côté après côté.

      On commence par créer la tortue t : t = turtle.Turtle().

      Le suivi de trajectoire commence par orienter correctement la tortue t : t.setheading(theta).

      On fait avancer la tortue de la longueur du côté \((AB)\) : t.forward(c).

      On la fait tourner sur la gauche : t.left(180-thetaB) puis on décrit le côté \((BC)\) : t.forward(a), et ainsi de suite jusqu'à revenir au point de départ \(A\).

      Remarque

      Ce suivi de trajectoire ne dépend pas du type du triangle (rectangle, isocèle, équilatéral, quelconque...).

    2. AAV5_AFF: Répondre explicitement à la question posée

      Les instructions qui permettent de répondre à la question posée est donnée dans l'interpréteur ci-dessous.

      python : affectation-logo-2.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. AAV3_AFF: Choisir et appliquer une technique de vérification

      Une simple comparaison des figures suffit : on compare la figure obtenue avec la tortue Logo à celle de l'énoncé.

      Le triangle obtenu correspond bien à celui de l'énoncé.

  6. Triangle quelconque
    • Question
    • Solution

    On considère le triangle \(ABC\) de la figure ci-dessous. Il a pour côté \(a = 30\sqrt{5}\), \(b = 30\sqrt{13}\) et \(c = 120\). Les angles en \(A\) et en \(B\) valent respectivement \(\arctan(2/3.)\) et \(\arctan(2.)\). Le côté \((AB)\) fait un angle \(\theta = 20^\circ\) avec l'axe des \(x\).

    _images/affectation-logo-3.png

    Proposer un algorithme pour faire dessiner ce triangle équilatéral par la tortue Logo en utilisant uniquement des instructions de type « affectation » et des instructions de la tortue Logo.

    aide Python
    1. instruction d'affectation

      a = b

      affecte la valeur de l'expression b à la variable de nom a.

    2. 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. AAV2_AFF: Méthode

      Application de la méthode

      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. AAV5_AFF: Résultat

      Utiliser l'interpréteur Python ci-dessous pour répondre.

      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. AAV3_AFF: 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. AAV2_AFF: Choisir et appliquer une méthode générique

      On effectuera un suivi de trajectoire : voir la figure à dessiner comme une trajectoire à faire parcourir par la tortue Logo.

      On commence par s'abstraire des données spécifiques à la question en introduisant des noms de variable et en appliquant les résultats élémentaires de trigonométrie du triangle quelconque:

      # données de l'énoncé
      a, b, c = 30.*sqrt(5.), 30.*sqrt(13.), 120.
      thetaA, thetaB = atan(2/3.)*180/pi, atan(2.)*180/pi
      theta = 20.
      
      # géométrie du triangle quelconque
      thetaC = 180. - (thetaA + thetaB)
      

      On pourra ainsi dessiner n'importe quel triangle quelconque dont on connaîtra a et theta.

      Une fois connus les 3 côtés et les 3 angles du triangle, il reste à déplacer la tortue en « suivant » le triangle côté après côté.

      On commence par créer la tortue t : t = turtle.Turtle().

      Le suivi de trajectoire commence par orienter correctement la tortue t : t.setheading(theta).

      On fait avancer la tortue de la longueur du côté \((AB)\) : t.forward(c).

      On la fait tourner sur la gauche : t.left(180-thetaB) puis on décrit le côté \((BC)\) : t.forward(a), et ainsi de suite jusqu'à revenir au point de départ \(A\).

      Remarque

      Ce suivi de trajectoire ne dépend pas du type du triangle (rectangle, isocèle, équilatéral, quelconque...).

    2. AAV5_AFF: Répondre explicitement à la question posée

      Les instructions qui permettent de répondre à la question posée est donnée dans l'interpréteur ci-dessous.

      python : affectation-logo-3.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. AAV3_AFF: Choisir et appliquer une technique de vérification

      Une simple comparaison de figures suffit : on compare la figure obtenue avec la tortue Logo à celle de l'énoncé.

      Le triangle obtenu correspond bien à celui de l'énoncé.

  7. Lancer de dés
    • Question
    • Solution

    Proposer une instruction de type « affectation » qui permettra de simuler un lancer de dé à 6 faces.

    aide Python
    1. instruction d'affectation

      a = b

      affecte la valeur de l'expression b à la variable de nom a.

    2. nombres aléatoires (documentation Python)

      import random

      module Python à importer pour manipuler des nombres aléatoires.

      random.random()

      retourne un nombre réel aléatoirement compris entre 0 inclus et 1 exclu.

      random.randint(min,max)

      retourne un nombre entier aléatoirement compris entre min et max inclus.

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

      Application de la méthode

      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. AAV5_AFF: 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. AAV3_AFF: 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. AAV2_AFF: Choisir et appliquer une méthode générique

      On commence par faire abstraction des données spécifiques, en particulier numériques ou alphanumériques, pour ne considérer que les variables associées. Puis on reformule l'énoncé avec les noms des variables en explicitant les données du problème et les résultats attendus.

      S'abstraire des données spécifiques revient simplement ici à initialiser les variables min et max de la fonction random.randint(min,max) aux données du problème particulier.

      On cherche à tirer aléatoirement un nombre d compris entre 2 nombre min et max inclus.

      Pour le dé à 6 faces : min = 1 et max = 6.

    2. AAV5_AFF: Répondre explicitement à la question posée

      L'instruction de type affectation qui permet de répondre à la question posée est donnée dans l'interpréteur ci-dessous.

      python : affectation-jeux-1.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. AAV3_AFF: Choisir et appliquer une technique de vérification

      On procèdera par jeux de tests. En effet, la fonction random.randint(min,max) est une fonction d'un module standard de Python (le module random) : il y a peu de doutes sur le fait qu'elle fonctionne correctement.

      On vérifiera simplement ici que le code proposé ne « sort » pas des valeurs inférieures à min ou supérieures à max en le testant plusieurs fois de suite ou, au contraire, « sort » bien de temps en temps les valeurs extrêmes autorisées min et max.

      C'est bien le cas : les nombres compris entre 1 et 6 « sortent bien » tous et ceci de manière aléatoire.

  8. Tirage de cartes
    • Question
    • Solution

    Proposer une instruction de type « affectation » qui permettra de simuler le tirage d'une carte dans un jeu de 32 cartes.

    Les cartes seront représentées par un numéro de 1 à 32 : il n'y a ni couleurs (pique, cœur, carreau, trèfle), ni figures (roi, dame, valet).

    aide Python
    1. instruction d'affectation

      a = b

      affecte la valeur de l'expression b à la variable de nom a.

    2. nombres aléatoires (documentation Python)

      import random

      module Python à importer pour manipuler des nombres aléatoires.

      random.random()

      retourne un nombre réel aléatoirement compris entre 0 inclus et 1 exclu.

      random.randint(min,max)

      retourne un nombre entier aléatoirement compris entre min et max inclus.

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

      Application de la méthode

      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. AAV5_AFF: 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. AAV3_AFF: 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. AAV2_AFF: Choisir et appliquer une méthode générique

      On commence par faire abstraction des données spécifiques, en particulier numériques ou alphanumériques, pour ne considérer que les variables associées. Puis on reformule l'énoncé avec les noms des variables en explicitant les données du problème et les résultats attendus.

      S'abstraire des données spécifiques revient simplement ici à initialiser les variables min et max de la fonction random.randint(min,max) aux données du problème particulier.

      On cherche à tirer aléatoirement un nombre d compris entre 2 nombre min et max inclus.

      Pour le jeu de 32 cartes : min = 1 et max = 32.

    2. AAV5_AFF: Répondre explicitement à la question posée

      L'instruction de type affectation qui permet de répondre à la question posée est donnée dans l'interpréteur ci-dessous.

      python : affectation-jeux-2.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. AAV3_AFF: Choisir et appliquer une technique de vérification

      On procèdera par jeux de tests. En effet, la fonction random.randint(min,max) est une fonction d'un module standard de Python (le module random) : il y a peu de doutes sur le fait qu'elle fonctionne correctement.

      On vérifiera simplement ici que le code proposé ne « sort » pas des valeurs inférieures à min ou supérieures à max en le testant plusieurs fois de suite ou, au contraire, « sort » bien de temps en temps les valeurs extrêmes autorisées min et max.

      C'est bien le cas : seuls les nombres compris entre 1 et 32 « sortent bien » tous et ceci de manière aléatoire.

  9. Pile ou face
    • Question
    • Solution

    Proposer une instruction de type « affectation » qui permettra de simuler le jeu de « pile ou face ».

    « Pile » sera représenté par 0 et « Face » par 1.

    aide Python
    1. instruction d'affectation

      a = b

      affecte la valeur de l'expression b à la variable de nom a.

    2. nombres aléatoires (documentation Python)

      import random

      module Python à importer pour manipuler des nombres aléatoires.

      random.random()

      retourne un nombre réel aléatoirement compris entre 0 inclus et 1 exclu.

      random.randint(min,max)

      retourne un nombre entier aléatoirement compris entre min et max inclus.

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

      Application de la méthode

      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. AAV5_AFF: 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. AAV3_AFF: 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. AAV2_AFF: Choisir et appliquer une méthode générique

      On commence par faire abstraction des données spécifiques, en particulier numériques ou alphanumériques, pour ne considérer que les variables associées. Puis on reformule l'énoncé avec les noms des variables en explicitant les données du problème et les résultats attendus.

      S'abstraire des données spécifiques revient simplement ici à initialiser les variables min et max de la fonction random.randint(min,max) aux données du problème particulier.

      On cherche à tirer aléatoirement un nombre d compris entre 2 nombre min et max inclus.

      Pour le jeu de « pile ou face » : min = 0 et max = 1.

    2. AAV5_AFF: Répondre explicitement à la question posée

      L'instruction de type affectation qui permet de répondre à la question posée est donnée dans l'interpréteur ci-dessous.

      python : affectation-jeux-3.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. AAV3_AFF: Choisir et appliquer une technique de vérification

      On procèdera par jeux de tests. En effet, la fonction random.randint(min,max) est une fonction d'un module standard de Python (le module random) : il y a peu de doutes sur le fait qu'elle fonctionne correctement.

      On vérifiera simplement ici que le code proposé ne « sort » pas des valeurs inférieures à min ou supérieures à max en le testant plusieurs fois de suite ou, au contraire, « sort » bien de temps en temps les valeurs extrêmes autorisées min et max.

      C'est bien le cas : seuls les nombres 0 et 1 « sortent bien » tous les deux et ceci de manière aléatoire.

  10. Prix de vente
    • Question
    • Solution

    Un libraire propose une réduction de 3.5% sur le prix hors taxes (HT) d'un livre à 12.35 € HT. Sachant que la taxe sur la valeur ajoutée (TVA) sur les livres est de 5.5%, proposer une instruction de type « affectation » qui permettra de calculer le prix de vente final pour le client.

    aide Python
    1. instruction d'affectation

      a = b

      affecte la valeur de l'expression b à la variable de nom a.

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

      Application de la méthode

      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. AAV5_AFF: 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. AAV3_AFF: 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. AAV2_AFF: Choisir et appliquer une méthode générique

      On commence par faire abstraction des données spécifiques, en particulier numériques ou alphanumériques, pour ne considérer que les variables associées. Puis on reformule l'énoncé avec les noms des variables en explicitant les données du problème et les résultats attendus.

      Ainsi, on ne s'intéressera pas à la valeur « 12.35 € » mais à ce qu'elle qualifie : c'est-à-dire le prix hors taxes du livre, le « livre » étant lui-même un cas particulier de produit. Et ainsi pour chaque donnée spécifique du problème posé à laquelle on attribuera un nom.

      Il s'agit donc ici de proposer une instruction de type « affectation » qui permettra de calculer le prix de vente (noté pv) d'un produit connaissant son prix HT (noté ht), la TVA (notée tva, exprimée sous la forme d'un pourcentage) sur ce type de produit et la réduction éventuelle (notée r, exprimée sous la forme d'un pourcentage du prix HT) proposée par le vendeur sur ce produit.

      reduction = ht*r/100
      

      Sachant qu'une réduction se soustrait du prix HT initial pour obtenir le prix hors taxe effectivement proposé (noté htr) :

      htr = ht - reduction
      

      et qu'une taxe se calcule sur le prix hors taxe réellement effectué et s'ajoute à ce prix hors taxes, on a ainsi l'algorithme recherché :

      taxe = htr*tva/100
      pv = htr + taxe
      

      algorithme qu'il faut initialiser avec les données du problème particulier :

      ht, tva, r = 12.35, 5.5, 3.5
      
    2. AAV5_AFF: Répondre explicitement à la question posée

      L'instruction de type affectation qui permet de répondre à la question posée est donnée dans l'interpréteur ci-dessous.

      python : affectation-elem-1.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. AAV3_AFF: Choisir et appliquer une technique de vérification

      On peut utiliser une méthode d'encadrement du résultat en encadrant le prix de vente \(p_v\) par 2 valeurs limites facilement identifiables : \(min \leq p_v \leq max\).

      Le prix final sera en effet supérieur à la taxe imposée et inférieur au prix TTC sans réduction. On doit donc vérifier :

      taxe <= pv <= ht*(1+tva/100)
      

      On peut également utiliser une valeur évidente que doit donner l'algorithme : ici une réduction de 100% doit donner un prix de vente nul. Ainsi, pour \(r = 100\), on doit vérifier :

      pv == 0
      
  11. Conversion d'unités
    • Question
    • Solution

    On veut convertir 3.2 noeuds (nd, miles nautiques par heure) en kilomètres par heure (km/h).

    Proposer une instruction de type « affectation » qui permettra de réaliser cette conversion d'unités.

    Lien utile :

    National Institute of Standards and Technology guide for the use of the International System of Units (NIST), Annexe B9 (velocity)

    rappels sur les unités en physique
    _images/unites-1.png _images/unites-2.png
    aide Python
    1. instruction d'affectation

      a = b

      affecte la valeur de l'expression b à la variable de nom a.

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

      Application de la méthode

      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. AAV5_AFF: 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. AAV3_AFF: 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. AAV2_AFF: Choisir et appliquer une méthode générique

      On commence par faire abstraction des données spécifiques, en particulier numériques ou alphanumériques, pour ne considérer que les variables associées. Puis on reformule l'énoncé avec les noms des variables en explicitant les données du problème et les résultats attendus.

      Ainsi, on ne s'intéressera pas à la valeur « 3.2 nd » mais à ce qu'elle qualifie : c'est-à-dire une vitesse en noeuds, le « noeud » étant lui-même un cas particulier d'unité de vitesse. Et ainsi pour chaque donnée spécifique du problème posé à laquelle on attribuera un nom.

      On cherche donc ici à convertir \(n_1\cdot u_1\) en \(n_2\cdot u_2\) où \(u_1\) et \(u_2\) sont des unités physiques compatibles qui dérivent de la même unité de base \(u_b\) du Système international d'unités.

      \[\left| \begin{array}{l} u_1 = a_1\cdot u_b \\ u_2 = a_2\cdot u_b \end{array} \right. \Rightarrow \left| \begin{array}{l} n_1\cdot u_1 = n_1\cdot (a_1\cdot u_b) = (n_1\cdot a_1)\cdot u_b \\ n_2\cdot u_2 = n_2\cdot (a_2\cdot u_b) = (n_2\cdot a_2)\cdot u_b \end{array} \right. \Rightarrow \frac{n_1\cdot u_1}{n_2\cdot u_2} = \frac{n_1\cdot a_1}{n_2\cdot a_2}\]

      Comme on cherche \(n_2\) tel que \(n_1\cdot u_1 = n_2\cdot u_2\), on a donc :

      \[\frac{n_1\cdot u_1}{n_2\cdot u_2} = \frac{n_1\cdot a_1}{n_2\cdot a_2} = 1 \Rightarrow n_2 = n_1 \cdot \frac{a_1}{a_2}\]

      où les coefficients \(a_i\) sont documentés dans le Système international d'unités par le Bureau international des poids et mesures (voir par exemple l'Annexe B9 (velocity) du NIST).

    2. AAV5_AFF: Répondre explicitement à la question posée

      Pour convertir 3.2 noeuds en kilomètres par heure, on utilise la séquence d'affectations proposée dans l'interpréteur ci-dessous.

      python : affectation-elem-2.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. AAV3_AFF: Choisir et appliquer une technique de vérification

      On procèdera par jeux de tests en comparant les valeurs obtenues par le calcul avec celles de quelques valeurs caractéristiques connues ou facilement évaluables « à la main ».

      Exemples :

      1. \(n_1 = 1.\mathrm{nd} \Rightarrow{} n_2 = 1.852 \mathrm{km/h}\)
      2. \(n_1 = 1./1852 \mathrm{nd} \Rightarrow{} n_2 = 1./1000 \mathrm{km/h} = 0.001 \mathrm{km/h}\)

      On obtient bien les résultats escomptés avec Python.

  12. Produit scalaire
    • Question
    • Solution

    On considère les 2 vecteurs \(\vec{A}\) et \(\vec{B}\) définis dans \(\mathbb{R}^2\) comme le montre la figure ci-dessous.

    _images/affectation-elem-3-1.png

    Proposer une instruction de type « affectation » qui permettra de calculer le produit scalaire \(\vec{A}\cdot\vec{B}\) de ces deux vecteurs.

    aide Python
    1. instruction d'affectation

      a = b

      affecte la valeur de l'expression b à la variable de nom a.

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

      Application de la méthode

      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. AAV5_AFF: 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. AAV3_AFF: 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. AAV2_AFF: Choisir et appliquer une méthode générique

      On utilise une représentation analytique. En effet, lorsque un objet est représenté sous une forme graphique, il est préférable de le transformer en sa représentation analytique (lorsqu'elle existe) pour étudier cet objet à l'aide d'un programme informatique.

      Il s'agit ici de déterminer le produit scalaire \(\vec{V}_1\cdot\vec{V}_2\) de 2 vecteurs \(\vec{V}_1\) et \(\vec{V}_2\) de \(\mathbb{R}^2\) ayant pour composantes respectives \((x_1,y_1)\) et \((x_2,y_2)\).

      Par définition, ce produit scalaire est un réel \(p\) qui a pour expression : \(p = x_1\cdot x_2 + y_1\cdot y_2\).

      Ainsi, connaissant les composantes respectivement (x1,y1) et (x2,y2) des vecteurs \(\vec{V}_1\) et \(\vec{V}_2\), on détermine le produit scalaire p par une affectation simple:

      p = x1*x2 + y1*y2
      
    2. AAV5_AFF: Répondre explicitement à la question posée

      Avant d'appliquer la formule précédente du produit scalaire, il faut initialiser correctement les composantes des 2 vecteurs.

      python : affectation-elem-3.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. AAV3_AFF: Choisir et appliquer une technique de vérification

      On peut passer par une représentation géométrique en considérant l'interprétation géométrique du produit scalaire comme le rappelle la figure ci-dessous.

      _images/affectation-elem-3-2.png

      La projection de \(\vec{B}\) sur \(\vec{A}\) se lit très facilement sur la figure puisque \(\vec{A}\) est horizontal (parallèle à l'axe des abscisses avec \(|\vec{A}| = 3\)) : elle a pour valeur (-4) - (-2) = -2, d'où le produit scalaire \(p = 3 \cdot (-2) = -6\).

      Le code Python précédent donne bien le même résultat.

  13. Suite arithmétique
    • Question
    • Solution

    Proposer une instruction de type « affectation » qui permettra de calculer la somme \(s\) des \(n+1\) premiers termes \(u_k\) d'une suite arithmétique de premier terme \(u_0\) et de raison \(r\) : \(u_k = u_0 + kr\).

    rappels mathématiques
    1. La somme arithmétique \(S = (1+2+\ldots\ +n)\) des \(n+1\) premiers entiers est telle que :

      \(\begin{array}{rrccccccccccccc} & S &=& 1 &+& 2 &+& 3 &+& \ldots &+& (n-1) &+& n \\ + & S &=& n &+& (n-1) &+& (n-2) &+& \ldots &+& 2 &+& 1 \\ = & 2S &=& (n+1) &+& (n+1) &+& (n+1) &+& \ldots &+& (n+1) &+& (n+1)\\ \end{array}\)

      On en déduit : \(S = \displaystyle\frac{n(n+1)}{2}\).

    2. La somme géométrique \(S = (1 + q + q^2 + \ldots\ + q^n)\) de raison \(q \neq 1\) est telle que :

      \(\begin{array}{rcccccccccccccc} S &=& 1 &+& q &+& q^2 &+& \ldots &+& q^{(n-1)} &+& q^n & & \\ qS &=& & & q &+& q^2 &+& \ldots &+& q^{(n-1)} &+& q^n &+& q^{(n+1)} \\ (1-q)S &=& 1 &+& 0 &+& 0 &+& \ldots &+& 0 &+& 0 &-& q^{(n+1)} \\ \end{array}\)

      On en déduit : \(S = \displaystyle\frac{1-q^{(n+1)}}{1-q}\).

    aide Python
    1. instruction d'affectation

      a = b

      affecte la valeur de l'expression b à la variable de nom a.

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

      Application de la méthode

      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. AAV5_AFF: 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. AAV3_AFF: 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. AAV2_AFF: Choisir et appliquer une méthode générique

      On applique les résultats mathématiques sur les suites arithmétiques.

      La somme \(s\) des \(n+1\) premiers termes d'une suite arithmétique \(u_k = u_0 + kr\) s'écrit :

      \(s = u_0 + (u_0 + r) + (u_0 + 2r) + \ldots\ + (u_0 + nr) = (n+1)u_0 + r(1 + 2 + \ldots\ + n)\)

      On pose \(S = (1 + 2 + \ldots\ + n)\). On a alors : \(s = (n+1)u_0 + rS\) où \(S\) est tel que :

      \(\begin{array}{rrccccccccccccc} & S &=& 1 &+& 2 &+& 3 &+& \ldots &+& (n-1) &+& n \\ + & S &=& n &+& (n-1) &+& (n-2) &+& \ldots &+& 2 &+& 1 \\ = & 2S &=& (n+1) &+& (n+1) &+& (n+1) &+& \ldots &+& (n+1) &+& (n+1)\\ \end{array}\)

      On en déduit : \(S = \displaystyle\frac{n(n+1)}{2}\) et donc \(\displaystyle s = (n+1)u_0 + r\frac{n(n+1)}{2}\)

      L'application directe des résultats mathématiques concernant les sommes arithmétiques permet ainsi de proposer l'affectation suivante:

      s = (n+1)*u0 + n*(n+1)*r/2
      

      Il faut bien sûr connaître n, u0 et r pour évaluer cette somme.

    2. AAV5_AFF: Répondre explicitement à la question posée

      python : affectation-prop-1.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. AAV3_AFF: Choisir et appliquer une technique de vérification

      On procèdera par jeux de tests en considérant par exemple la suite arithmétique bien connue des entiers naturels : \(u_0 = 0\) et \(r = 1\), pour laquelle la somme des \(n+1\) premiers entiers vaut : \(\displaystyle s = \frac{n(n+1)}{2}\).

      Le code précédent est testé avec la somme des \(n = 5+1\) premiers entiers (\(u_0 = 0\) et \(r = 1\)). On a donc « à la main » : \(s = 0 + 1 + 2 + 3 + 4 + 5 = 15\), ce que donne l'exécution du programme Python.

  14. Suite géométrique
    • Question
    • Solution

    Proposer une instruction de type « affectation » qui permettra de calculer la somme \(s\) des \(n+1\) premiers termes \(u_k\) d'une suite géométrique de premier terme \(u_0\) et de raison \(q\) : \(u_k = u_0q^k\).

    rappels mathématiques
    1. La somme arithmétique \(S = (1+2+\ldots\ +n)\) des \(n+1\) premiers entiers est telle que :

      \(\begin{array}{rrccccccccccccc} & S &=& 1 &+& 2 &+& 3 &+& \ldots &+& (n-1) &+& n \\ + & S &=& n &+& (n-1) &+& (n-2) &+& \ldots &+& 2 &+& 1 \\ = & 2S &=& (n+1) &+& (n+1) &+& (n+1) &+& \ldots &+& (n+1) &+& (n+1)\\ \end{array}\)

      On en déduit : \(S = \displaystyle\frac{n(n+1)}{2}\).

    2. La somme géométrique \(S = (1 + q + q^2 + \ldots\ + q^n)\) de raison \(q \neq 1\) est telle que :

      \(\begin{array}{rcccccccccccccc} S &=& 1 &+& q &+& q^2 &+& \ldots &+& q^{(n-1)} &+& q^n & & \\ qS &=& & & q &+& q^2 &+& \ldots &+& q^{(n-1)} &+& q^n &+& q^{(n+1)} \\ (1-q)S &=& 1 &+& 0 &+& 0 &+& \ldots &+& 0 &+& 0 &-& q^{(n+1)} \\ \end{array}\)

      On en déduit : \(S = \displaystyle\frac{1-q^{(n+1)}}{1-q}\).

    aide Python
    1. instruction d'affectation

      a = b

      affecte la valeur de l'expression b à la variable de nom a.

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

      Application de la méthode

      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. AAV5_AFF: 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. AAV3_AFF: 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. AAV2_AFF: Choisir et appliquer une méthode générique

      On applique les résultats mathématiques sur les suites géométriques.

      La somme \(s\) des \(n+1\) premiers termes d'une suite géométrique \(u_k = u_0q^k\) avec \(q \neq 1\) s'écrit :

      \(s = u_0 + u_0q + u_0q^2 + \ldots\ + u_0q^n = u_0(1 + q + q^2 + \ldots\ + q^n)\)

      On pose \(S = (1 + q + q^2 + \ldots\ + q^n)\). On a alors : \(s = u_0S\) où \(S\) est tel que :

      \(\begin{array}{rcccccccccccccc} S &=& 1 &+& q &+& q^2 &+& \ldots &+& q^{(n-1)} &+& q^n & & \\ qS &=& & & q &+& q^2 &+& \ldots &+& q^{(n-1)} &+& q^n &+& q^{(n+1)} \\ (1-q)S &=& 1 &+& 0 &+& 0 &+& \ldots &+& 0 &+& 0 &-& q^{(n+1)} \\ \end{array}\)

      On en déduit : \(S = \displaystyle\frac{1-q^{(n+1)}}{1-q}\) et donc \(\displaystyle s = u_0\frac{1-q^{(n+1)}}{1-q}\)

      L'application directe des résultats de mathématiques concernant les sommes géométriques permet de proposer l'affectation suivante:

      s = u0*(1 - q**(n+1))/(1 - q)
      

      Il faut bien sûr connaître n, u0 et q (avec q != 1) pour évaluer cette somme.

    2. AAV5_AFF: Répondre explicitement à la question posée

      python : affectation-prop-2.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. AAV3_AFF: Choisir et appliquer une technique de vérification

      On procèdera par jeux de tests en considérant par exemple la suite des puissances de 2 : \(u_0 = 1\) et \(q = 2\), pour laquelle la somme des \(4+1\) premiers entiers vaut : \(\displaystyle s = \frac{1-2^5}{1-2} = 31\).

      Le code précédent est testé avec la somme des \(n = 4+1\) premiers termes de la suite \(u_k = 2^k\). On a donc « à la main » : \(s = 2^0 + 2^1 + 2^2 + 2^3 + 2^4 = 1+2+4+8+16 = 31\), ce que donne l'exécution du programme Python.

 
Algorithmique - Cours : Affectation - Exercices de programmation, 14 oct. 2024.