Liens utiles sur l'affectation :
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.
instruction d'affectation
a = b
affecte la valeur de l'expression
b
à la variable de noma
.
Méthode
Nom de la méthode
?
Application de la méthode
Clavier | Action |
---|---|
F1 | Afficher une aide technique |
F2 | Afficher une aide pédagogique |
Ctrl-A | Tout sélectionner |
Ctrl-C | Copier la sélection dans le presse-papier |
Ctrl-V | Copier le presse-papier dans la sélection |
Ctrl-X | Couper la sélection et la copier dans le presse-papier |
Ctrl-Z | Annuler la modification |
Maj-Ctrl-Z | Rétablir la modification |
Menu | Action |
---|---|
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 |
Résultat
Utiliser l'interpréteur Python ci-dessous pour programmer l'algorithme demandé.
Vérification
Nom de la technique de 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).
Clavier | Action |
---|---|
F1 | Afficher une aide technique |
F2 | Afficher une aide pédagogique |
Ctrl-A | Tout sélectionner |
Ctrl-C | Copier la sélection dans le presse-papier |
Ctrl-V | Copier le presse-papier dans la sélection |
Ctrl-X | Couper la sélection et la copier dans le presse-papier |
Ctrl-Z | Annuler la modification |
Maj-Ctrl-Z | Rétablir la modification |
Menu | Action |
---|---|
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 |
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
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.
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
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.
National Institute of Standards and Technology guide for the use of the International System of Units (NIST), Annexe B9 (velocity)
instruction d'affectation
a = b
affecte la valeur de l'expression
b
à la variable de noma
.
Méthode
Nom de la méthode
?
Application de la méthode
Clavier | Action |
---|---|
F1 | Afficher une aide technique |
F2 | Afficher une aide pédagogique |
Ctrl-A | Tout sélectionner |
Ctrl-C | Copier la sélection dans le presse-papier |
Ctrl-V | Copier le presse-papier dans la sélection |
Ctrl-X | Couper la sélection et la copier dans le presse-papier |
Ctrl-Z | Annuler la modification |
Maj-Ctrl-Z | Rétablir la modification |
Menu | Action |
---|---|
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 |
Résultat
Utiliser l'interpréteur Python ci-dessous pour programmer l'algorithme demandé.
Vérification
Nom de la technique de 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).
Clavier | Action |
---|---|
F1 | Afficher une aide technique |
F2 | Afficher une aide pédagogique |
Ctrl-A | Tout sélectionner |
Ctrl-C | Copier la sélection dans le presse-papier |
Ctrl-V | Copier le presse-papier dans la sélection |
Ctrl-X | Couper la sélection et la copier dans le presse-papier |
Ctrl-Z | Annuler la modification |
Maj-Ctrl-Z | Rétablir la modification |
Menu | Action |
---|---|
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 |
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.
Comme on cherche \(n_2\) tel que \(n_1\cdot u_1 = n_2\cdot u_2\), on a donc :
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).
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.
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 :
- \(n_1 = 1.\mathrm{nd} \Rightarrow{} n_2 = 1.852 \mathrm{km/h}\)
- \(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.
On considère les 2 vecteurs \(\vec{A}\) et \(\vec{B}\) définis dans \(\mathbb{R}^2\) comme le montre la figure ci-dessous.
Proposer une instruction de type « affectation » qui permettra de calculer le produit scalaire \(\vec{A}\cdot\vec{B}\) de ces deux vecteurs.
instruction d'affectation
a = b
affecte la valeur de l'expression
b
à la variable de noma
.
Méthode
Nom de la méthode
?
Application de la méthode
Clavier | Action |
---|---|
F1 | Afficher une aide technique |
F2 | Afficher une aide pédagogique |
Ctrl-A | Tout sélectionner |
Ctrl-C | Copier la sélection dans le presse-papier |
Ctrl-V | Copier le presse-papier dans la sélection |
Ctrl-X | Couper la sélection et la copier dans le presse-papier |
Ctrl-Z | Annuler la modification |
Maj-Ctrl-Z | Rétablir la modification |
Menu | Action |
---|---|
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 |
Résultat
Utiliser l'interpréteur Python ci-dessous pour programmer l'algorithme demandé.
Vérification
Nom de la technique de 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).
Clavier | Action |
---|---|
F1 | Afficher une aide technique |
F2 | Afficher une aide pédagogique |
Ctrl-A | Tout sélectionner |
Ctrl-C | Copier la sélection dans le presse-papier |
Ctrl-V | Copier le presse-papier dans la sélection |
Ctrl-X | Couper la sélection et la copier dans le presse-papier |
Ctrl-Z | Annuler la modification |
Maj-Ctrl-Z | Rétablir la modification |
Menu | Action |
---|---|
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 |
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
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.
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.
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.
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\).
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}\).
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}\).
instruction d'affectation
a = b
affecte la valeur de l'expression
b
à la variable de noma
.
Méthode
Nom de la méthode
?
Application de la méthode
Clavier | Action |
---|---|
F1 | Afficher une aide technique |
F2 | Afficher une aide pédagogique |
Ctrl-A | Tout sélectionner |
Ctrl-C | Copier la sélection dans le presse-papier |
Ctrl-V | Copier le presse-papier dans la sélection |
Ctrl-X | Couper la sélection et la copier dans le presse-papier |
Ctrl-Z | Annuler la modification |
Maj-Ctrl-Z | Rétablir la modification |
Menu | Action |
---|---|
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 |
Résultat
Utiliser l'interpréteur Python ci-dessous pour programmer l'algorithme demandé.
Vérification
Nom de la technique de 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).
Clavier | Action |
---|---|
F1 | Afficher une aide technique |
F2 | Afficher une aide pédagogique |
Ctrl-A | Tout sélectionner |
Ctrl-C | Copier la sélection dans le presse-papier |
Ctrl-V | Copier le presse-papier dans la sélection |
Ctrl-X | Couper la sélection et la copier dans le presse-papier |
Ctrl-Z | Annuler la modification |
Maj-Ctrl-Z | Rétablir la modification |
Menu | Action |
---|---|
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 |
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.
Répondre explicitement à la question posée
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.
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\).
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}\).
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}\).
instruction d'affectation
a = b
affecte la valeur de l'expression
b
à la variable de noma
.
Méthode
Nom de la méthode
?
Application de la méthode
Clavier | Action |
---|---|
F1 | Afficher une aide technique |
F2 | Afficher une aide pédagogique |
Ctrl-A | Tout sélectionner |
Ctrl-C | Copier la sélection dans le presse-papier |
Ctrl-V | Copier le presse-papier dans la sélection |
Ctrl-X | Couper la sélection et la copier dans le presse-papier |
Ctrl-Z | Annuler la modification |
Maj-Ctrl-Z | Rétablir la modification |
Menu | Action |
---|---|
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 |
Résultat
Utiliser l'interpréteur Python ci-dessous pour programmer l'algorithme demandé.
Vérification
Nom de la technique de 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).
Clavier | Action |
---|---|
F1 | Afficher une aide technique |
F2 | Afficher une aide pédagogique |
Ctrl-A | Tout sélectionner |
Ctrl-C | Copier la sélection dans le presse-papier |
Ctrl-V | Copier le presse-papier dans la sélection |
Ctrl-X | Couper la sélection et la copier dans le presse-papier |
Ctrl-Z | Annuler la modification |
Maj-Ctrl-Z | Rétablir la modification |
Menu | Action |
---|---|
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 |
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.
Répondre explicitement à la question posée
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.