diff --git a/.gradebook.db b/.gradebook.db index 39e4067a72eccc06a9aeddecf01a832f4d3bcf9d..f11c26e80b9ec060d4f948e2daad893b602006bb 100644 Binary files a/.gradebook.db and b/.gradebook.db differ diff --git a/cours.md b/cours.md index 7c0526e688a6826a499e65af7b5cf3f293be02cb..5a835b3789a5d5d00120bee395f960f1af3b7621 100644 --- a/cours.md +++ b/cours.md @@ -63,15 +63,15 @@ semantic: :::{prf:definition} Programmes -***Programme*** : suite d'instructions exécutées de manière -séquentielle (les unes après les autres) +***Programme*** : séquence d'instructions qui +spécifie étape par étape les opérations à effectuer pour obtenir à +partir des ***entrées*** un résultat (la +***sortie***). ::: +++ {"slideshow": {"slide_type": "fragment"}} -<!-- TODO IMG --> - ::::::{prf:example} :::::{grid} :gutter: 0 @@ -117,7 +117,7 @@ ouvre() +++ {"slideshow": {"slide_type": "fragment"}} -- Découper en petits programmes : les *[fonctions](fonction_informelle)* +- Découper en petits programmes : les *[fonctions](fonction_informel)* +++ {"slideshow": {"slide_type": "fragment"}} @@ -204,7 +204,7 @@ appelée une ***condition***. +++ {"slideshow": {"slide_type": "fragment"}} -**Exemples:** +**Exemples :** ```{code-cell} --- @@ -217,12 +217,12 @@ true ```{code-cell} --- slideshow: - slide_type: fragment + slide_type: null --- false ``` -+++ {"slideshow": {"slide_type": "fragment"}} ++++ {"slideshow": {"slide_type": null}} - `regarde() == Vide` - `x > 3.14` @@ -273,27 +273,15 @@ slideshow: ``` ```{code-cell} ---- -slideshow: - slide_type: fragment ---- 1./2 * 14.5 * 10 * 10 ``` ```{code-cell} ---- -slideshow: - slide_type: fragment ---- -1./2 * 14.5 * 10 * 10 +1./2 * 14.5 * 100 * 100 ``` ```{code-cell} ---- -slideshow: - slide_type: fragment ---- -1./2 * 14.5 * 100 * 100 +1./2 * 14.5 * 1000 * 1000 ``` +++ {"slideshow": {"slide_type": "fragment"}} @@ -310,20 +298,12 @@ double m; ``` ```{code-cell} ---- -slideshow: - slide_type: fragment ---- v = 1000; m = 14.5; ``` ```{code-cell} ---- -slideshow: - slide_type: fragment ---- -1.0/2.0 * m * v * v +1./2 * m * v * v ``` +++ {"slideshow": {"slide_type": "slide"}} @@ -555,14 +535,10 @@ y **Exemple : incrémentation** -```{code-cell} ---- -slideshow: - slide_type: fragment ---- ++++ {"slideshow": {"slide_type": "fragment"}} + int x; x = 1; -``` ```{code-cell} --- @@ -570,9 +546,6 @@ slideshow: slide_type: fragment --- x = x + 1; -``` - -```{code-cell} x ``` @@ -585,17 +558,32 @@ Variantes : slideshow: slide_type: fragment --- -x -= 2 -``` - -```{code-cell} -x--; +x -= 2; +x ``` ```{code-cell} +--- +slideshow: + slide_type: fragment +--- +x++; x ``` ++++ {"slideshow": {"slide_type": "fragment"}} + +:::{admonition} Quelques raccourcis pratiques + +| Syntaxe | Sémantique | Syntaxe équivalente | +| ------- | ---------- | --- | +| `x += a` | Incrémenter `x` de `a` | `x = x + a` | +| `x -= a` | Décrémenter `x` de `a` | `x = x - a` | +| `x++` | Incrémenter `x` | `x = x + 1` | +| `x--` | Décrémenter `x` | `x = x - 1` | + +::: + +++ {"slideshow": {"slide_type": "slide"}} :::{warning} Affectation et égalité : deux concepts différents @@ -641,11 +629,11 @@ Comment éviter de retaper chaque fois la formule? ### Fonctions -(fonction_informelle)= +(fonction_informel)= :::{prf:definition} Fonctions Informellement, une ***fonction*** est un -petit [programme](programme) : +petit [programme](programme_informel) : - Entrées - Traitement - Sortie @@ -659,17 +647,17 @@ petit [programme](programme) : ```{code-cell} --- slideshow: - slide_type: fragment + slide_type: null --- double energie_cinetique(double m, double v) { - return 0.5 * m * v * v; + return 1./2 * m * v * v; } ``` ```{code-cell} --- slideshow: - slide_type: fragment + slide_type: null --- energie_cinetique(14.5, 10) ``` @@ -677,10 +665,8 @@ energie_cinetique(14.5, 10) +++ {"slideshow": {"slide_type": "fragment"}} - Entrées : la masse et la vitesse (des nombres réels) - - Sortie : l'énergie cinétique (un nombre réel) - -- Traitement : `0.5 * m * v * v` +- Traitement : `1./2 * m * v * v` +++ {"slideshow": {"slide_type": "slide"}} diff --git a/index.md b/index.md index ee64816ffc224c75ae7fcd9afeaca8f8643597e4..afbb06c9be79d71cc4295b994060dbe30c4a29e5 100644 --- a/index.md +++ b/index.md @@ -11,29 +11,31 @@ kernelspec: name: xcpp17 --- -+++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "ff657c59b200e50d261c063a9775dbc5", "grade": false, "grade_id": "cell-65f24a4fe8c153b9", "locked": true, "schema_version": 3, "solution": false, "task": false}} ++++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "56ec0a4cabda6c0696ea19160d6d7e34", "grade": false, "grade_id": "cell-65f24a4fe8c153b9", "locked": true, "schema_version": 3, "solution": false, "task": false}} -# Semaine 2: Programmation impérative: premier aperçu +# Semaine 2: Premiers éléments de programmation impérative -La semaine dernière, Laby nous a amené à la découverte des premiers +La semaine dernière, Laby nous a amené à la découverte de premiers éléments de la programmation impérative: programmes, fonctions, -expressions conditionnelles et itératives. Cette semaine, nous allons +instructions conditionnelles et itératives. Cette semaine, nous allons commencer à formaliser ces éléments, en y ajoutant expressions et variables. -+++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "2c35c1c7542efe699c052d8014954324", "grade": false, "grade_id": "cell-65f24a4fe8c153c0", "locked": true, "schema_version": 3, "solution": false, "task": false}} ++++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "4e2d6846c80331c1469f58ec637e7e4a", "grade": false, "grade_id": "cell-65f24a4fe8c153c0", "locked": true, "schema_version": 3, "solution": false, "task": false}} ## [Cours](cours.md) -## [TD](TD.md) +## [TD : affectations, instructions conditionnelles](TD.md) +++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "6b66466b7f04d30b80167a5b5f733e1f", "grade": false, "grade_id": "cell-65f24a4fe8c153c1", "locked": true, "schema_version": 3, "solution": false, "task": false}} ## TP -+++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "4225cf9a77f610bff1cadee460f19ddd", "grade": false, "grade_id": "cell-65f24a4fe8c153c2", "locked": true, "schema_version": 3, "solution": false, "task": false}} ++++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "9510d5dd72e75753d592cc04121c4d9f", "grade": false, "grade_id": "cell-65f24a4fe8c153c2", "locked": true, "schema_version": 3, "solution": false, "task": false}} -**Rappel :** Tout exercice non marqué d'un ♣ est à terminer pour la semaine prochaine.** +:::{attention} Rappel +Tout exercice non marqué d'un ♣ est à terminer pour la semaine prochaine. +::: +++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "16d262add0837e4334ab87b904b85f8f", "grade": false, "grade_id": "cell-bf0808a9dcb0b572", "locked": true, "schema_version": 3, "solution": false, "task": false}} @@ -101,24 +103,26 @@ Travaillez successivement sur les feuilles suivantes : 3. N'oubliez pas de déposer à nouveau votre travail en fin de séance, afin que tout soit bien sauvegardé. -+++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "3f7ea34bb4fe2ce23ec7d6a49f3c5ae9", "grade": false, "grade_id": "cell-bf0808a9dcb0b576", "locked": true, "schema_version": 3, "solution": false, "task": false}} ++++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "e5203c02432c8ea4b5dc0d24105bc30d", "grade": false, "grade_id": "cell-bf0808a9dcb0b576", "locked": true, "schema_version": 3, "solution": false, "task": false}} ### Exercice 4 : Service JupyterHub@Paris-Saclay -Rappel : l'université a déployé un service `JupyterHub` (expérimental) +:::{hint} Rappel +L'université a déployé un service `JupyterHub` (expérimental) vous permettant de travailler en dehors des séances avec simplement une connexion internet et un navigateur web (firefox, chrome, safari, ...). - -**Cet exercice n'est à faire que si vous n'avez pas encore utilisé ce -service ou si vous avez rencontré des difficultés.** +::: +:::{attention} +Cet exercice n'est à faire que si vous n'avez pas encore utilisé ce +service ou si vous avez rencontré des difficultés. Demandez de l'aide au besoin à votre enseignant. +::: 1. Suivez les instructions de la page [Case départ](https://nicolas.thiery.name/Enseignement/Info111/ComputerLab/index.html) du site web - pour vous connecter au service JupyterHub; téléchargez-y vos TP 1 - et 2 et consultez les; demandez de l'aide au besoin à votre - enseignant. + pour vous connecter au service JupyterHub; +2. Téléchargez-y vos TP 1 et 2 et consultez les; <!-- 2. Fermez votre serveur avec `Control Panel -> Stop My Server`, puis @@ -146,11 +150,9 @@ Travaillez successivement sur les deux feuilles suivantes : de l'université, soit depuis chez vous en utilisant le service JupyterHub. -+++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "72cd89adbc36aa95e2dcc50f3cd6e55d", "grade": false, "grade_id": "cell-bf0808a9dcb0b57a", "locked": true, "schema_version": 3, "solution": false, "task": false}} - -<div class="alert alert-info"> ++++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "76412fe4e07321dadd3cc05830f425fc", "grade": false, "grade_id": "cell-bf0808a9dcb0b57a", "locked": true, "schema_version": 3, "solution": false, "task": false}} -**Note :** +:::{note} Vous pouvez aborder les exercices ♣ suivants dans l'ordre que vous souhaitez. @@ -160,13 +162,15 @@ feuilles de travail (notebook). Pour cela : utilisez le menu `Fichier -> Nouveau -> Notebook` et sélectionnez le noyau `Python 3` ou `C++ 17`. Vous noterez dans le titre de l'onglet que votre feuille s'appelle `Untitled.ipynb`; utilisez un clic droit sur le titre de -l'onglet et choisissez `Renomer` dans le menu pour donner un nom +l'onglet et choisissez `Renommer` dans le menu pour donner un nom informatif à la feuille. </div> -<div class="alert alert-info"> +::: -**Indication :** ++++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "0e5590c0564fa84b30aec895de9bf212", "grade": false, "grade_id": "cell-bf0808a9dcb0b57c", "locked": true, "schema_version": 3, "solution": false, "task": false}} + +:::{tip} Astuce Pour que le dépôt sur GitLab tienne compte de vos nouveaux fichiers, vous devez au préalable les déclarer au système de gestion de version @@ -179,8 +183,9 @@ vous ouvrirez un terminal et ferez : Il sera alors inclus dans tous les dépôts ultérieurs. -</div> +::: ++++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "d2ac8dc671e598607d2d1c2dff7cc736", "grade": false, "grade_id": "cell-bf0808a9dcb0b57b", "locked": true, "schema_version": 3, "solution": false, "task": false}} ### Exercice ♣ : Euler forever! @@ -193,7 +198,7 @@ combinaison de réflexion sur feuille et de programmation (voir Essayez de résoudre les problèmes 1, 2, 5 et tous ceux qui vous plairont! -+++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "1265a7c7fccab11b7f710a2d6abf74be", "grade": false, "grade_id": "cell-bf0808a9dcb0b579", "locked": true, "schema_version": 3, "solution": false, "task": false}} ++++ {"deletable": false, "editable": false, "nbgrader": {"cell_type": "markdown", "checksum": "ea53bc2ad33d30f8800bbf95e6f35dd1", "grade": false, "grade_id": "cell-bf0808a9dcb0b579", "locked": true, "schema_version": 3, "solution": false, "task": false}} ### Exercice ♣ : Python @@ -201,9 +206,8 @@ Dans le cours «Introduction à la programmation», vous (re)découvrirez le langage de programmation Python. Pour prendre un peu d'avance, refaites le TP en utilisant cette fois `Python`. -Vous pouvez consulter la feuille «Résumé de la syntaxe de base -Python», fournie dans la <a href="TD.pdf">feuille de TD</a> en -parallèle à celle pour C++. +Vous pouvez consulter la feuille [Résumé de la syntaxe de base +Python](fiche-resume-python.md). <!-- Vous trouverez un cours complet sur `Python` à cette adresse: