Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
No results found
Show changes
Commits on Source (2)
No preview for this file type
......@@ -92,9 +92,9 @@ void afficheAbs(int a) {
}
```
+++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "7e7caeab8de8f579ae9909114c065692", "grade": false, "grade_id": "cell-ebbfec0d5cb0e626", "locked": true, "schema_version": 3, "solution": false, "task": false}}
+++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "07d4990e2e6eb3cd10eda103227d8b50", "grade": false, "grade_id": "cell-ebbfec0d5cb0e626", "locked": true, "schema_version": 3, "solution": false, "task": false}}
:::{admonition}
:::{admonition} Exercice 1 (suite)
2. Observez les appels suivants; y a-t-il une différence entre `abs` et `afficheAbs`?
......@@ -186,25 +186,23 @@ nbgrader:
afficheAbs(-3) == 3
```
+++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "11cf6cf006086fd5692ad6ced17f0884", "grade": false, "grade_id": "cell-6f19e46ffe7ff87b", "locked": true, "schema_version": 3, "solution": false, "task": false}}
+++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "9d5904ef8252d11c5039bde5c1927164", "grade": false, "grade_id": "cell-6f19e46ffe7ff87b", "locked": true, "schema_version": 3, "solution": false, "task": false}}
:::{hint} Explication
`abs` **renvoie** une valeur alors que `afficheAbs` ne fait
qu'**afficher** une valeur. On notera ci-dessus que, avec `abs(3);`,
Jupyter ne montre pas du tout la valeur alors que, avec `abs(3)`,
Jupyter montre la valeur avec son type (`int`). Inversement
`afficheAbs` affiche la valeur mais ne la renvoie pas; de ce fait, il
n'est pas possible de réutiliser la valeur produite, que ce soit pour
un calcul ou un test.
`abs` **renvoie** une valeur alors que `afficheAbs` l'**affiche**. On
notera ci-dessus que, avec `abs(3);`, Jupyter ne montre pas du tout la
valeur alors que, avec `abs(3)`, Jupyter montre la valeur avec son
type (`int`). Inversement `afficheAbs` affiche la valeur mais ne la
renvoie pas.
:::
+++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "91faf38ccc11ad8e27da683b0e4b19ee", "grade": false, "grade_id": "cell-d95a34f5ac81eb33", "locked": true, "schema_version": 3, "solution": false}}
+++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "008fd5d8f8e30dc8a1f669ebaf169b3a", "grade": false, "grade_id": "cell-d95a34f5ac81eb33", "locked": true, "schema_version": 3, "solution": false}}
:::{admonition}
:::{admonition} Exercice 1 (suite)
3. Essayez de deviner le résultat des appels suivants puis exécutez pour
vérifier :
vérifier :
:::
```{code-cell}
......@@ -278,9 +276,9 @@ int distance(int a, int b) {
}
```
+++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "3ebfc99e85e04e0b8acad75fefa2323d", "grade": false, "grade_id": "cell-cf373e1ce7210f3a", "locked": true, "schema_version": 3, "solution": false}}
+++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "78fd3c6d1136c7c9a067ca0637bbb03d", "grade": false, "grade_id": "cell-cf373e1ce7210f3a", "locked": true, "schema_version": 3, "solution": false}}
:::{admonition}
:::{admonition} Exercice 2 (suite)
2. Vérifiez le comportement de votre fonction `distance` sur
l'exemple ci-dessous; essayez sur quelques autres exemples;
corrigez la fonction si nécessaire :
......@@ -290,7 +288,7 @@ int distance(int a, int b) {
distance(5,3)
```
:::{admonition}
:::{admonition} Exercice 2 (suite)
3. Les tests ci-dessous automatisent partiellement la vérification du
comportement de la fonction `distance`, en spécifiant chaque fois
la valeur attendue. Vérifiez que l'on obtient bien `true` à chaque
......@@ -345,7 +343,7 @@ nbgrader:
distance(2,-5) == 7
```
+++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "f35b2e8ae8e366a950fd629dea044cf9", "grade": false, "grade_id": "cell-f389d530bfbe35e0", "locked": true, "schema_version": 3, "solution": false}}
+++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "f73aeb18a3e712c8fa0421caa3fc2070", "grade": false, "grade_id": "cell-f389d530bfbe35e0", "locked": true, "schema_version": 3, "solution": false}}
::::{admonition} Exercice 3 : tests automatiques
......@@ -357,14 +355,15 @@ savoir d'où il provient, nous allons rassembler les tests en une seule
cellule à l'aide de l'infrastructure d'automatisation des tests vue en
cours.
1. Essayez les exemples suivants. Si vous avez une erreur du type `no
member named 'cerr'`, vous avez probablement redémarré le noyau en
oubliant d'exécuter la première cellule de cette feuille contenant
`#include <iostream>`.
1. Essayez les exemples suivants.
:::{admonition} Astuce
:class: tip
Si vous avez une erreur du type `no member named 'cerr'`, vous avez
probablement redémarré le noyau en oubliant d'exécuter la première
cellule de cette feuille contenant `#include <iostream>`.
À chaque fois que vous redémarrez le noyau, allez ensuite dans
`Cellule` -> `Exécuter toutes les précédentes`. Cela exécute toutes
les cellules qui sont avant celle où vous vous trouvez. Vous éviterez
......@@ -391,19 +390,15 @@ CHECK ( 1 < 2 );
CHECK ( 1 > 2 );
```
+++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "4e74432c8558d2e47373df592b782000", "grade": false, "grade_id": "cell-4f9b5f26274b8d47", "locked": true, "schema_version": 3, "solution": false}}
:::{admonition}
2. On remarque que, si la condition en paramètre de `CHECK` est vraie, il
n'y a aucun affichage. Par contre si la condition est fausse, un
message d'erreur indiquant la condition fausse est affiché.
:::
+++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "8f49d3fe4d88760d05c6d455d3854d7a", "grade": false, "grade_id": "cell-4f9b5f26274b8d47", "locked": true, "schema_version": 3, "solution": false}}
+++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "813e664c8c9349df5e978d2681e9f41c", "grade": false, "grade_id": "cell-c7c30794bfe3d639", "locked": true, "schema_version": 3, "solution": false}}
:::{admonition} Exercice 3 (suite)
Notez que, si la condition en paramètre de `CHECK` est vraie, il n'y a
aucun affichage. Par contre si la condition est fausse, un message
d'erreur indiquant la condition fausse est affiché.
:::{admonition}
3. Avec `CHECK`, les tests de la fonction `distance` se mettent sous la
forme :
Avec `CHECK`, les tests de la fonction `distance` se mettent sous la
forme :
:::
```{code-cell}
......@@ -425,16 +420,12 @@ CHECK ( distance(-4,2) == 6 );
CHECK ( distance(2,-5) == 7 );
```
+++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "382f4acd02d681e81dc7cb369214f0ad", "grade": false, "grade_id": "cell-5a60b1893097e9fd", "locked": true, "schema_version": 3, "solution": false}}
:::{admonition}
Exécutez ces tests. Leur exécution ne devrait rien afficher.
:::
+++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "5db99dfbb8f4893b20fcaee77e070091", "grade": false, "grade_id": "cell-5a60b1893097e9fd", "locked": true, "schema_version": 3, "solution": false}}
+++
:::{admonition} Exercice 3 (suite)
2. Exécutez ces tests. Leur exécution ne devrait rien afficher.
:::{admonition}
4. Exécutez les deux cellules suivantes pour définir et tester la
3. Exécutez les deux cellules suivantes pour définir et tester la
fonction `maxAbs`. Corrigez la fonction pour qu'elle passe les tests.
:::
......@@ -474,10 +465,10 @@ CHECK( maxAbs(-15, 5) == 15 );
CHECK( maxAbs( -2, -3) == 3 );
```
+++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "8dee2f9c194145aeed7f4ca64ff3189a", "grade": false, "grade_id": "cell-586e9cd851617645", "locked": true, "schema_version": 3, "solution": false, "task": false}}
+++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "8defd9e38add13a8100b5e138df7ddab", "grade": false, "grade_id": "cell-586e9cd851617645", "locked": true, "schema_version": 3, "solution": false, "task": false}}
:::{admonition}
5. Ajoutez un test avec les valeurs 5 et -15, dans cet ordre :
:::{admonition} Exercice 3 (suite)
4. Ajoutez un test avec les valeurs 5 et -15, dans cet ordre :
:::
```{code-cell}
......@@ -620,9 +611,9 @@ nbgrader:
// REMPLACEZ CETTE LIGNE PAR VOTRE RÉPONSE
```
+++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "47eddfdb2cccf040405fdf006b36e8ea", "grade": false, "grade_id": "cell-e103b2353b1c2e15", "locked": true, "schema_version": 3, "solution": false}}
+++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "4264e387a5e1dbe1e94d598f64cec5e5", "grade": false, "grade_id": "cell-e103b2353b1c2e15", "locked": true, "schema_version": 3, "solution": false}}
:::{admonition}
:::{admonition} Exercice 5 (suite)
2. Vérifiez son fonctionnement sur les exemples et tests ci-dessous :
:::
......
......@@ -65,8 +65,8 @@ de la *pile*).
- [ ] [02-exponentielle1.md](02-exponentielle1.md)
- [ ] [02-exponentielle2.md](02-exponentielle2.md)
- [ ] [02-exponentielle3.md](02-exponentielle3.md)
- [ ] [02-exponentielle4.md](02-exponentielle4.md)
- [ ] [02-exponentielle5.md](02-exponentielle5.md)
- [ ] [02-exponentielle4.md](02-exponentielle4.md)
- [ ] [02-exponentielle5.md](02-exponentielle5.md)
- [ ] [Point de chute ♣](03-point-de-chute.md)
- [ ] [Implanter les fonctions sinus et cosinus ♣](04-sinus-cosinus.md)