Aller au contenu principal

Pseudo-code

Objectifs

Comment représenter une procédure ?

  • Définir un pseudo-code
  • Exécuter l'instance d'un algorithme sous forme de pseudo-code

Cours

Pseudo-code

Algorithmique et programmation

Pseudo-code

  • Objectif : décrire un algorithme.

  • Code

    • Lu par une machine.

  • Pseudo-code / organigramme

    • Lu par des humains.

Instructions de base

  • Affectation : variable expression

    • a ← 42

  • Condition : SI condition ALORS instruction SINON instruction FIN SI

    • SI il pleut ALORS je prends un parapluie FIN SI

  • Boucle : TANT QUE condition FAIRE instruction FIN TANT QUE

    • TANT QUE il fait beau FAIRE je reste dehors FIN TANT QUE

  • Boucle : POUR variable DE nombre À nombre FAIRE instruction FIN POUR

    • POUR b DE 1 À 4 FAIRE avancer de b mètres FIN POUR

  • Fonction : FONCTION nom(paramètres) RETOURNER valeur FIN FONCTION

    • FONCTION double(c) RETOURNER 2 × c FIN FONCTION

Conditions

  • Comparaison entre deux expressions

    • a < b : plus petit que

    • a > b : plus grand que

    • a = b : égal

    • a != b : pas égal

    • a <= b ou a b : plus petit ou égal

    • a >= b ou a b : plus grand ou égal

  • Opérateurs logique pour combiner des conditions

    • 4 < a ET a < 10

    • b < 4 OU 10 < b

    • NON c = 6

Somme des premiers entiers

  • Problème : calculer la somme des premiers entiers positifs.

  • Entrée : un nombre entier positif x

  • Sortie : la somme des entiers de 1 à x (1 + 2 + ... + x)

Somme des premiers entiers


FONCTION somme(x) 
  c <- 0 
  POUR i DE 1 À x FAIRE 
    c <- c + i 
  FIN POUR
  RETOURNER c 
FIN FONCTION
  • Instance : somme(3)

Somme des premiers entiers


FONCTION somme(x) 
  c <- 0 
  POUR i DE 1 À x FAIRE 
    c <- c + i 
  FIN POUR
  RETOURNER c 
FIN FONCTION
  • Instance : somme(3)

  • Variables

    • x = 3

    •  

    •  

Somme des premiers entiers


FONCTION somme(x) 
  c <- 0 
  POUR i DE 1 À x FAIRE 
    c <- c + i 
  FIN POUR
  RETOURNER c 
FIN FONCTION
  • Instance : somme(3)

  • Variables

    • x = 3

    • c = 0

    •  

Somme des premiers entiers


FONCTION somme(x) 
  c <- 0 
  POUR i DE 1 À x FAIRE 
    c <- c + i 
  FIN POUR
  RETOURNER c 
FIN FONCTION
  • Instance : somme(3)

  • Variables

    • x = 3

    • c = 0

    • i = 1

Somme des premiers entiers


FONCTION somme(x) 
  c <- 0 
  POUR i DE 1 À x FAIRE 
    c <- c + i 
  FIN POUR
  RETOURNER c 
FIN FONCTION
  • Instance : somme(3)

  • Variables

    • x = 3

    • c = 1

    • i = 1

Somme des premiers entiers


FONCTION somme(x) 
  c <- 0 
  POUR i DE 1 À x FAIRE 
    c <- c + i 
  FIN POUR
  RETOURNER c 
FIN FONCTION
  • Instance : somme(3)

  • Variables

    • x = 3

    • c = 1

    • i = 2

Somme des premiers entiers


FONCTION somme(x) 
  c <- 0 
  POUR i DE 1 À x FAIRE 
    c <- c + i 
  FIN POUR
  RETOURNER c 
FIN FONCTION
  • Instance : somme(3)

  • Variables

    • x = 3

    • c = 3

    • i = 2

Somme des premiers entiers


FONCTION somme(x) 
  c <- 0 
  POUR i DE 1 À x FAIRE 
    c <- c + i 
  FIN POUR
  RETOURNER c 
FIN FONCTION
  • Instance : somme(3)

  • Variables

    • x = 3

    • c = 3

    • i = 3

Somme des premiers entiers


FONCTION somme(x) 
  c <- 0 
  POUR i DE 1 À x FAIRE 
    c <- c + i 
  FIN POUR
  RETOURNER c 
FIN FONCTION
  • Instance : somme(3)

  • Variables

    • x = 3

    • c = 6

    • i = 3

Somme des premiers entiers


FONCTION somme(x) 
  c <- 0 
  POUR i DE 1 À x FAIRE 
    c <- c + i 
  FIN POUR
  RETOURNER c 
FIN FONCTION
  • Instance : somme(3)

  • Variables

    • x = 3

    • c = 6

    • i = 3

Somme des premiers entiers


FONCTION somme(x) 
  c <- 0 
  POUR i DE 1 À x FAIRE 
    c <- c + i 
  FIN POUR
  RETOURNER c 
FIN FONCTION
  • Instance : somme(3)

  • Variables

    • x = 3

    • c = 6

    • i = 3

  • Résultat : 6

Somme des premiers entiers


FONCTION somme(x) 
  c <- 0 
  POUR i DE 1 À x FAIRE 
    c <- c + i 
  FIN POUR
  RETOURNER c 
FIN FONCTION
  • Instance : somme(3)

  • Variables

    • x = 3

    • c = 6

    • i = 3

  • Résultat : 6

F pour passer en plein écran ou O pour afficher la vue d'ensemble.
Versions sans animation, plein écran, imprimable.

Exercices

Comparaison

Que fait la fonction suivante ?

FONCTION comparer(x, y)
SI x > y ALORS
RETOURNER x
SINON
RETOURNER y
FIN SI
FIN FONCTION
Solution

La fonction comparer retourne le plus grand des deux nombres x et y.

Dessiner son organigramme.

Solution

plantuml

Que se passe-t-il si on modifie la comparaison en SI x < y ALORS ?

Solution

La fonction retournera le plus petit des deux nombres x et y.

Somme

FONCTION somme(x)
c <- 0
POUR i DE 1 À x FAIRE
c <- c + (i*i)
FIN POUR
RETOURNER c
FIN FONCTION

Quel est le rôle de cette fonction (essayer de tester l'instance x = 3) ?

Solution

La fonction somme calcule la somme des carrés de 1 à x. Pour x = 3, la somme est 1 + (2*2) + (3*3) = 1 + 4 + 9 = 14.

Commencer par regarder quelle variable est retournée par la fonction. Ensuite, regarder comment évolue cette variable dans la boucle POUR (cumul des valeurs de i).

Est-ce que l'algorithme ci-dessous fait la même chose ?

FONCTION somme(x)
c <- 0
i <- 1
TANT QUE i <= x FAIRE
c <- c + (i*i)
i <- i + 1
FIN TANT QUE
RETOURNER c
FIN FONCTION
Solution

Oui, les deux algorithmes font la même chose. La seule différence est la syntaxe des boucles.

Dessiner son organigramme.

Solution

plantuml

Que se passe-t-il si on modifie la condition de la boucle en TANT QUE i < x FAIRE ?

Solution

La fonction retournera la somme des carrés de 1 à x - 1. Par exemple, pour x = 3, la somme sera 1 + 4 = 5 car la boucle s'arrête à i = 2 et fera une itération de moins.

Références