Skip to content
Snippets Groups Projects
Forked from Info 111 Programmation Impérative / 2023-2024 / Semaine2
Up to date with the upstream repository.
cours.md 17.75 KiB
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"}}

+++ {"slideshow": {"slide_type": "fragment"}}

  • Découper en petits programmes : les fonctions

+++ {"slideshow": {"slide_type": "fragment"}}

+++ {"slideshow": {"slide_type": "fragment"}}

+++ {"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