-
Nicolas M. Thiéry authoredNicolas M. Thiéry authored
jupytext:
text_representation:
extension: .md
format_name: myst
format_version: 0.13
jupytext_version: 1.15.1
kernelspec:
display_name: C++17
language: C++17
name: xcpp17
+++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "11bc746bb3f36668d563917b04467610", "grade": false, "grade_id": "cell-b78562ee2ff6d72c", "locked": true, "schema_version": 3, "solution": false}}
TP : valeurs, types et variables
Introduction à Jupyter et premiers calculs
Lors de ces premières semaines de cours, nous allons travailler dans
l'application web Jupyter qui permet d'exécuter du code C++
interactivement, un peu comme une super calculatrice. Plus tard, nous
verrons comment créer un programme C++
indépendant en dehors de
Jupyter.
+++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "31783578f8bde28209b21d60b4afa8df", "grade": false, "grade_id": "cell-33660fa4ef5903e4", "locked": true, "schema_version": 3, "solution": false}}
Exercice 1 : premiers calculs
- Cliquez sur la cellule suivante puis exécutez la en appuyant sur les touches Maj+Entrée :
1 + 1
+++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "a641bd5ef111d5f779f4d06209dffffb", "grade": false, "grade_id": "cell-291a3535b726abef", "locked": true, "schema_version": 3, "solution": false}}
La première ligne donne le résultat du calcul. La deuxième ligne
indique que ce résultat est de type entier (int
).
Techniquement parlant, le navigateur web a envoyé le contenu 1+1
de
la cellule à un noyau (kernel en anglais) qui l'a compilé et
exécuté, avant de renvoyer le résultat à afficher. Le noyau que nous
utilisons (C++17
) permet de travailler en C++
. Il existe des
noyaux pour beaucoup d'autres langages de programmation.
+++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "23ac875d5810411efd84b5b11ec27071", "grade": false, "grade_id": "cell-c7495bbedb1de8c7", "locked": true, "schema_version": 3, "solution": false}}
- Modifiez l'expression dans la cellule précédente et exécutez la de nouveau.
+++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "d687d8f5e69fce473a4c069310d311e9", "grade": false, "grade_id": "cell-12b1679926b1768d", "locked": true, "schema_version": 3, "solution": false}}
- Utilisez la cellule suivante pour calculer la surface d'un rectangle de largeur 25 et de longueur 37 :
---
deletable: false
nbgrader:
cell_type: code
checksum: 6c2954c10ebb31553b07a0019812862e
grade: false
grade_id: cell-b645bc465bd310ae
locked: false
schema_version: 3
solution: true
ordo_failure: "R\xE9ponse incorrecte; essayes encore!"
ordo_solution:
text/plain: '925
type: int'
ordo_success: "Bonne r\xE9ponse!"
---
// REMPLACER CETTE LIGNE PAR VOTRE RÉPONSE
+++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "d8e8920ea94e7d6c8db86d6b29e849fe", "grade": false, "grade_id": "cell-1b42d53da30ded82", "locked": true, "schema_version": 3, "solution": false, "task": false}}
Exercice 2 : types
Vous avez vu en cours qu'il existe plusieurs types de variables
(int
, double
, etc.). Il est très utile de connaître le type des
valeurs que l'on manipule. Exécutez les cellules suivantes et observez
les types obtenus :
3*4
3*4.0
+++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "f91a40fc1958f4b6f1e0681d8df77441", "grade": false, "grade_id": "cell-7c72028bf998c9e5", "locked": true, "schema_version": 3, "solution": false}}
Les lignes suivantes vous présentent des exemples de calculs. Exécutez-les en observant bien la valeur du résultat et son type.
---
deletable: false
editable: false
nbgrader:
cell_type: code
checksum: 593fcfb7063e8d55389842ed36c10a03
grade: false
grade_id: cell-678ae0462813d831
locked: true
schema_version: 3
solution: false
task: false
---
3*(1+3) + (1+4)*(2+4)
---
deletable: false
editable: false
nbgrader:
cell_type: code
checksum: 9f3cc6c0e458e40336da192b6f55aa16
grade: false
grade_id: cell-8c8f01689a82794b
locked: true
schema_version: 3
solution: false
task: false
---
42 / 2
---
deletable: false
editable: false
nbgrader:
cell_type: code
checksum: babcd64046ca10ca7696da6a16825c30
grade: false
grade_id: cell-9678ffe15c270b81
locked: true
schema_version: 3
solution: false
task: false
---
42 / 5
---
deletable: false
editable: false
nbgrader:
cell_type: code
checksum: a1b61504a42f653f72eeb746b99dd23f
grade: false
grade_id: cell-15172444994cbdff
locked: true
schema_version: 3
solution: false
task: false
---
42. / 5
---
deletable: false
editable: false
nbgrader:
cell_type: code
checksum: 7f94e7cc2a78f5f84d00835ab6e3c7fc
grade: false
grade_id: cell-7009aedea5b1e925
locked: true
schema_version: 3
solution: false
task: false
---
42 % 5
---
deletable: false
editable: false
nbgrader:
cell_type: code
checksum: 73faf81ec97e7a196d35eb58d0016ed1
grade: false
grade_id: cell-7c66e2817d57b95c
locked: true
schema_version: 3
solution: false
task: false
---
1 + 1.
---
deletable: false
editable: false
nbgrader:
cell_type: code
checksum: eb7d7730da271c2d1e497aa89c9ad470
grade: false
grade_id: cell-33bc66dde9266641
locked: true
schema_version: 3
solution: false
task: false
---
42 == 6*7
---
deletable: false
editable: false
nbgrader:
cell_type: code
checksum: 88c54f98c8270c287d5ff9cf434e1f2a
grade: false
grade_id: cell-3163364eab44d8d7
locked: true
schema_version: 3
solution: false
task: false
---
41 == 2*21
+++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "b03fd9ec2be270091121833ce867f1cc", "grade": false, "grade_id": "cell-cf97d7e3ffc985a0", "locked": true, "schema_version": 3, "solution": false}}
Remarque: dans les deux cellules précédentes, nous avons utilisé un
double égal ==
qui sert à tester l'égalité entre deux
valeurs. Nous reverrons bientôt la signification du simple égal
=
.
---
deletable: false
editable: false
nbgrader:
cell_type: code
checksum: dbabeaac7e3f9d86ef9a32e951cd5df1
grade: false
grade_id: cell-d4b738450011dd37
locked: true
schema_version: 3
solution: false
task: false
---
1 < 2
---
deletable: false
editable: false
nbgrader:
cell_type: code
checksum: 0a8e6b094ad756a7c0ffa364fcc7ee15
grade: false
grade_id: cell-3e5e3a25f145a973
locked: true
schema_version: 3
solution: false
task: false
---
2 > 3
---
deletable: false
editable: false
nbgrader:
cell_type: code
checksum: cb08d8a9c4574e2b2adad48f3464fad8
grade: false
grade_id: cell-606159825dc54bf9
locked: true
schema_version: 3
solution: false
task: false
---
1 < 2 and 2 > 3
---
deletable: false
editable: false
nbgrader:
cell_type: code
checksum: 697a998ec2daa1290313a8fc7797575d
grade: false
grade_id: cell-783a55b0abd2377f
locked: true
schema_version: 3
solution: false
task: false
---
1 < 2 or 2 > 3
+++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "af204e753d48317334d009d9df551827", "grade": false, "grade_id": "cell-05caf97c8306b9b4", "locked": true, "schema_version": 3, "solution": false, "task": false}}
Note: pour éviter de fausses manœuvres, nous configurons de nombreuses
cellules, telles celles ci-dessus, pour qu'elles soient non
modifiables. Pour faire vos propres expérimentations ou pour prendre
des notes personnelles, vous pouvez à tout moment insérer de nouvelles
cellules. Insérez maintenant une cellule ci-dessous en utilisant le
bouton +
sous les onglets. Dans la barre d'outil de cette feuille,
sélectionnez Markdown
à la place de Code
pour en faire une cellule
de texte.
+++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "f111bfd79786faaa5d38dc0f13967c66", "grade": false, "grade_id": "cell-884721498ad284a1", "locked": true, "schema_version": 3, "solution": false}}
Exercice 3 :
Pour chacune des expressions suivantes, déterminez de tête le type
et la valeur du résultat, et donnez votre réponse à l'endroit indiqué
sous la forme type
, valeur
; puis vérifiez en exécutant les
cellules.
+++ {"deletable": false, "nbgrader": {"cell_type": "markdown", "checksum": "2c2010fc398715fd883ec87dbcf20298", "grade": true, "grade_id": "cell-a8d152d15809265f", "locked": false, "points": 2, "schema_version": 3, "solution": true}}
- Type : int, bool, ou double ?
- Valeur : 7, 9, 11, ou 21 ?
% REMPLACER CETTE LIGNE PAR VOTRE RÉPONSE
---
deletable: false
editable: false
nbgrader:
cell_type: code
checksum: a72897335f295c7d452b11e914f2fc49
grade: false
grade_id: cell-0f3ff9e9e4c33f41
locked: true
schema_version: 3
solution: false
---
3 * 2 + 5
+++ {"deletable": false, "nbgrader": {"cell_type": "markdown", "checksum": "dfe5e7372570d9dea7fd0e5805abc6c1", "grade": true, "grade_id": "cell-b866905e681f44cb", "locked": false, "points": 2, "schema_version": 3, "solution": true}}
- Type : int, bool, ou double ?
- Valeur : 12 ou 12.5 ?
% REMPLACER CETTE LIGNE PAR VOTRE RÉPONSE
---
deletable: false
editable: false
nbgrader:
cell_type: code
checksum: 962d88d6809f73496c72662e2f1a341d
grade: false
grade_id: cell-127febc577edfc08
locked: true
schema_version: 3
solution: false
---
25 / 2
+++ {"deletable": false, "nbgrader": {"cell_type": "markdown", "checksum": "6c2e63ea6633366117382f5c3f127e60", "grade": true, "grade_id": "cell-899fabbcd7ecd371", "locked": false, "points": 2, "schema_version": 3, "solution": true}}
- Type : int, bool, ou double ?
- Valeur : 6, 7, 6.0000, ou 7.0000?
% REMPLACER CETTE LIGNE PAR VOTRE RÉPONSE
---
deletable: false
editable: false
nbgrader:
cell_type: code
checksum: dfc73c6565beb9718da57a04d56a539a
grade: false
grade_id: cell-286c54ae7e34701d
locked: true
schema_version: 3
solution: false
---
3.5*2
+++ {"deletable": false, "nbgrader": {"cell_type": "markdown", "checksum": "71eee2fa3fea6fb3788badde6e41dfc0", "grade": true, "grade_id": "cell-fe0c64ef514d2b0f", "locked": false, "points": 2, "schema_version": 3, "solution": true}}
- Type: int, bool, ou double ?
- Valeur : 5, 4, ou 4.66667 ?
% REMPLACER CETTE LIGNE PAR VOTRE RÉPONSE
---
deletable: false
editable: false
nbgrader:
cell_type: code
checksum: 20a02b357e2b564128c22de02d6bafff
grade: false
grade_id: cell-b52c330c011b1b89
locked: true
schema_version: 3
solution: false
task: false
---
14. / 3
+++ {"deletable": false, "nbgrader": {"cell_type": "markdown", "checksum": "26ca09cd9707728cdd34ca521aed3382", "grade": true, "grade_id": "cell-b1b2d0d4b7baa06e", "locked": false, "points": 2, "schema_version": 3, "solution": true}}
- Type : int, bool, ou double ?
- Valeur : 3,7,21, true, ou false ?
% REMPLACER CETTE LIGNE PAR VOTRE RÉPONSE
---
deletable: false
editable: false
nbgrader:
cell_type: code
checksum: 5d1d2f1a6a8c2051575b59fe5305d7ab
grade: false
grade_id: cell-67ced375854c7fb3
locked: true
schema_version: 3
solution: false
task: false
---
3*7 == 21
+++ {"deletable": false, "nbgrader": {"cell_type": "markdown", "checksum": "ff1acd99636db830d19c4999334bfe63", "grade": true, "grade_id": "cell-59ff90739ae5b7b2", "locked": false, "points": 2, "schema_version": 3, "solution": true}}
- Type : int, bool, double ?
- Valeur : 21, 25, true, false ?
% REMPLACER CETTE LIGNE PAR VOTRE RÉPONSE
---
deletable: false
editable: false
nbgrader:
cell_type: code
checksum: 1ed41b3835b89e6fcbc70955741fe280
grade: false
grade_id: cell-959d3023456a140e
locked: true
schema_version: 3
solution: false
task: false
---
(3*7 == 21) and (4.2 > 5.3 or 4*4 == 8*2)
+++ {"deletable": false, "nbgrader": {"cell_type": "markdown", "checksum": "334e68aa2b0ee056926c9e5d3f54bf12", "grade": true, "grade_id": "cell-2bf659cbac5d597a", "locked": false, "points": 2, "schema_version": 3, "solution": true}}
- Type : int, bool, double ?
- Valeur : 1, 0, true, false ?
% REMPLACER CETTE LIGNE PAR VOTRE RÉPONSE
---
deletable: false
editable: false
nbgrader:
cell_type: code
checksum: abfc8ff20663be8e6949ec8c6c06ce55
grade: false
grade_id: cell-f47f3ad36d564ee3
locked: true
schema_version: 3
solution: false
task: false
---
true and false
+++ {"deletable": false, "nbgrader": {"cell_type": "markdown", "checksum": "4ca4d1bcbd35f830508935fdcf0b1e2a", "grade": true, "grade_id": "cell-e5856c338c095691", "locked": false, "points": 2, "schema_version": 3, "solution": true}}
- Type : int, bool, double ?
- Valeur : 1, 0, true, false ?
% REMPLACER CETTE LIGNE PAR VOTRE RÉPONSE
---
deletable: false
editable: false
nbgrader:
cell_type: code
checksum: 84b49eb8f761d684f8e79173e910b814
grade: false
grade_id: cell-e0555c4a9b71b38e
locked: true
schema_version: 3
solution: false
task: false
---
true or false
+++ {"deletable": false, "nbgrader": {"cell_type": "markdown", "checksum": "ced8c634c6cc49e5a69c156df6e90a91", "grade": true, "grade_id": "cell-89f6e927581416a9", "locked": false, "points": 2, "schema_version": 3, "solution": true}}
- Type : int, bool, double ?
- Valeur : 1, 0, true, false ?
% REMPLACER CETTE LIGNE PAR VOTRE RÉPONSE
---
deletable: false
editable: false
nbgrader:
cell_type: code
checksum: ab4121e4a092cce93227b3fe2b6c7ca1
grade: false
grade_id: cell-b578732ac62c6681
locked: true
schema_version: 3
solution: false
task: false
---
(false and false) or true
+++ {"deletable": false, "nbgrader": {"cell_type": "markdown", "checksum": "d0147601a4bf7a09551fff8080059637", "grade": true, "grade_id": "cell-447af0863372964d", "locked": false, "points": 2, "schema_version": 3, "solution": true}}
- Type : int, bool, double ?
- Valeur : 1, 0, true, false ?
% REMPLACER CETTE LIGNE PAR VOTRE RÉPONSE
---
deletable: false
editable: false
nbgrader:
cell_type: code
checksum: cb2b8d971ecd3f9ac908ced0e3a2f28b
grade: false
grade_id: cell-64d5df8a0de7fed9
locked: true
schema_version: 3
solution: false
task: false
---
false and (false or true)
+++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "b13d62422ced658b42da7508a80bcb1a", "grade": false, "grade_id": "cell-6e834cd22ecc144b", "locked": true, "schema_version": 3, "solution": false}}
Bravo, vous avez terminé cette première feuille où vous avez exploré les expressions, valeurs, types en C++. Dans la feuille suivante, vous aborderez les variables.
Vous pouvez maintenant fermer cette feuille; utilisez pour cela le raccourci clavier Ctrl+Maj+Q.