-
Nicolas M. Thiéry authoredNicolas M. Thiéry authored
jupytext:
notebook_metadata_filter: rise, semantic
text_representation:
extension: .md
format_name: myst
format_version: 0.13
jupytext_version: 1.15.1
kernelspec:
display_name: C++14
language: C++14
name: xcpp14
rise:
auto_select: first
autolaunch: false
centered: false
controls: false
enable_chalkboard: true
height: 100%
margin: 0
maxScale: 1
minScale: 1
scroll: true
slideNumber: true
start_slideshow_at: selected
transition: none
width: 90%
semantic:
use_module: info-111
+++ {"slideshow": {"slide_type": "slide"}}
Premiers éléments de programmation impérative
+++ {"slideshow": {"slide_type": "slide"}}
Prélude
+++ {"slideshow": {"slide_type": "slide"}}
Résumé des épisodes précédents ...
+++ {"slideshow": {"slide_type": "fragment"}}
- Info 111: modalités et infrastructure
+++ {"slideshow": {"slide_type": "fragment"}}
- Informatique: usage, technologie, science
+++ {"slideshow": {"slide_type": "fragment"}}
- Objectif d'Info 111: initier à la science via la technologie
+++ {"slideshow": {"slide_type": "fragment"}}
- Concrètement: bases de la programmation impérative + ...
+++ {"slideshow": {"slide_type": "slide"}}
Rappel
:::{prf:definition} Programmes
Programme : suite d'instructions exécutées de manière séquentielle (les unes après les autres)
:::
+++ {"slideshow": {"slide_type": "fragment"}}
::::::{prf:example} :::::{grid} :gutter: 0
:::{grid-item-card}
debut()
droite()
avance()
prend()
gauche()
avance()
pose()
droite()
avance()
gauche()
avance()
avance()
droite()
ouvre()
:::
::::{grid-item-card}
:::{image} media/laby0.png :height: 20ex :align: center :::
:::: ::::: ::::::
+++ {"slideshow": {"slide_type": "slide"}}
Comment rompre la monotonie?
+++ {"slideshow": {"slide_type": "fragment"}}
- Faire des calculs : expressions et variables
+++ {"slideshow": {"slide_type": "fragment"}}
- Découper en petits programmes : les fonctions
+++ {"slideshow": {"slide_type": "fragment"}}
- S'adapter au contexte : les instructions conditionnelles
+++ {"slideshow": {"slide_type": "fragment"}}
- Répéter : les instructions itératives (boucles)
+++ {"slideshow": {"slide_type": "slide"}}
Expressions
+++ {"slideshow": {"slide_type": "fragment"}}
(expression)= :::{prf:definition} Expressions
Expression : combinaison de valeurs par des opérations donnant une nouvelle valeur
:::
+++ {"slideshow": {"slide_type": "fragment"}}
:::{prf:example}
L'expression 3 * (1 + 3) + (1 + 4) * (2 + 4)
vaut 42
:::
+++ {"slideshow": {"slide_type": "fragment"}}
(operations_sur_les_entiers)= :::{admonition} Opérations sur les entiers
Opération | Exemple | Résultat |
---|---|---|
opposé | -(-5) |
5 |
addition | 17 + 5 |
22 |
soustraction | 17 - 5 |
12 |
multiplication | 17 * 5 |
85 |
division entière | 17 / 5 |
3 |
reste de la division entière | 17 % 5 |
2 |
:::
+++ {"slideshow": {"slide_type": "slide"}}
:::{tip} Aparté : syntaxe, sémantique, algorithme
(syntaxe_informel)=
- Syntaxe : comment on l'écrit (semantique_informel)=
- Sémantique : ce que cela fait (algorithme_informel)=
- Algorithme : comment c'est fait :::
+++ {"slideshow": {"slide_type": "fragment"}}
:::{prf:example}
- Syntaxe : 17 / 5
- Sémantique : calcule la division entière de 17 par 5
- Algorithme : division euclidienne :::
+++ {"slideshow": {"slide_type": "slide"}}
Expressions booléennes
+++ {"slideshow": {"slide_type": "fragment"}}
(expression_booleenne)= :::{prf:definition} Expressions booléennes (conditions)
Une expression booléenne est une expression dont la valeur est «vrai» ou «faux» (type : bool).
(condition)= Une expression booléenne est aussi appelée une condition.
:::
+++ {"slideshow": {"slide_type": "fragment"}}
Exemples:
---
slideshow:
slide_type: fragment
---
true
---
slideshow:
slide_type: fragment
---
false
+++ {"slideshow": {"slide_type": "fragment"}}
regarde() == Vide
x > 3.14
2 <= n and n <= 5
+++ {"slideshow": {"slide_type": "fragment"}}
(operations_booleennes_usuelles)= :::{admonition} Opérations booléennes usuelles
Opération | Exemple | Résultat |
---|---|---|
comparaison | 3 <= 5 |
true |
comparaison stricte | 3 < 5 |
true |
comparaison stricte | 3 > 5 |
false |
égalité | 3 == 5 |
false |
inégalité | 3 != 5 |
true |
négation | not 3 <= 5 |
false |
et | 3 < 5 and 3 > 5 |
false |
ou | 3 < 5 or 3 > 5 |
true |
:::
+++ {"slideshow": {"slide_type": "slide"}}
Variables
+++ {"slideshow": {"slide_type": "fragment"}}
(exemple:calcul_energie_cinetique)= :::{prf:example} :for: expression :good_to_have: cinetic_energy :motivates: variable :name: exemple_variables_énergie_cinétique
Calculer l'énergie cinétique \frac12 m v^2 d'un objet de masse 14,5 kg selon qu'il aille à 1, 10, 100, ou 1000 m/s. :::
---
slideshow:
slide_type: fragment
---
1./2 * 14.5 * 1 * 1