Skip to content

Programmation

Réfléchir de façon algorithmique

Pensée systématique qui s'apparente à la façon dont un ordinateur fonctionne

  • Analyser le problème à résoudre.
  • Décomposer le problème en petites parties plus simples.
  • Définir une solution pour chaque partie.
  • Résoudre (Implémenter) chaque partie..
  • Combiner les parties pour implémenter la solution complète.

Quelque exemples de la vie courante pour se pratiquer

  • Trouver un mot dans le dictionnaire
  • Ordonner des noms, des nombres, des cartes, etc...
  • Faire un gâteau, un macaroni
  • Faire la lessive

S'exprimer de façon algorithmique

Pour créer les solutions et algorithmes en faisant abstraction du langage, le programmeur utilise la technique du pseudo-code.

Le pseudo-code permet d'exprimer les instructions en faisant abstraction du langage de programmation.

De multiples styles existent pour le pseudo-code et ce n'est pas la technique unique pour exprimer un algorithme.

Les sections suivantes décrivent non seulement les opérations disponibles pour imiter la façon de penser comme l'ordinateur mais aussi une syntaxe commune du pseudo-code.

Ce que l'ordinateur peut faire (Instructions)

Déclarer une variable :

Réserver un espace dans la mémoire et lui donner un nom. Une variable n'est déclarée qu'une seule fois.

Déclaration (pseudo-code)

type_var x

Exemple (int indique le type - sorte - de la donnée)

int x

Une autre catégorie de variable très pratique existe. Elle peut stocker en mémoire plusieurs données du même type. On appelle ces variables des tableaux. Pour indiquer qu'il s'agit d'un tableau, on ajoute le suffixe [ ] au mot clé var ou au type.

Déclaration de tableau (pseudo-code)

type[] nomTableau

Exemple en C

int[] tabEntiers

int signifie que la variable x ne peut contenir que des nombre entiers.

Assigner une donnée à une variable

Placer une donnée dans une variable déjà déclarée ou en même temps que la déclaration.

Si une assignation est faite alors qu'une variable contient déjà une valeur, l'ancienne valeur est perdue et remplacée par la nouvelle.

La partie à droite du = est exécutée avant l'assignation.

Le tableau est un peu différent. Assigner toutes les valeurs du tableau est possible, mais l'assignation d'un élément ou la lecture d'un élément sont aussi disponibles. Le suffixe [numéro de l'élément] est ajouté derrière le nom de la variable pour ces opérations.

Pour être capable de retrouver le bon élément les tableaux sont numérotés en commençant par 0. On appelle ce numéro l'index de l'élément.

string[] tabValeurs

Index: 0 1 2 3
Valeur: "Premier" "Deuxième" "Troisième" "Quatrième"

tabValeurs[1] -> "Deuxième"

Exemple avec une variable existante

x = 5

Exemples en combinant la déclaration et l'assignation (Initialisation)

var nom = "Tremblay"

string nom = "Tremblay"

Exemple d'utilisation de la propriété du =

var x = 5
x = x + 1

Vu que la partie à droite est exécutée en premier, le calcul 5 + 1 est fait d'abord et ensuite le 5 déjà dans la mémoire est remplacé par 6.

Cette technique est souvent utilisée et s'appelle incrémentation

Exemples avec les tableaux

var[] tabNombres = [10, 56, 2, 42]
var x = tabNombres[0]
tabNombres[2] = 4
tabNombres[3] = tabNombres[0] + tabNombres[1] 

Si ces instructions sont exécutées, quelle est la valeur de chaque case du tableau à la fin?

Évaluer une expression mathématique

Les opérateurs mathématiques +, -, /, *, () sont disponibles pour écrire des équations et obtenir un résultat numérique.

Les opérateurs logiques <, >, <=, >=, ==, !=, ET, OU sont disponibles pour écrire une expression logique et obtenir un résultat booléen (VRAI OU FAUX).

Les opérateurs respectent l'ordre de priorité des mathématiques.

Le résultat d'une expression mathématiques peut être assigné à une variable pour être conservé.

Exemples d'expressions mathématiques

var x = 5
var y
var m = 2
var b = 1

y = m * x + b
var vraiFaux
var x = 5

vraiFaux = x < 10

Faire un choix

L'instruction SI ... ALORS, pour faire un choix, utilise une ou des variables pour déterminer si une série d'instructions est exécutée ou non.

Le facteur déterminant est la valeur de vérité (vrai ou faux - booléen) d'une condition.

Il est aussi possible de faire le choix entre deux séries d'instructions selon la valeur de vérité pour la condition.

Syntaxe pour un choix sans option

SI (age > 18) ALORS
    trouver le prix de l'article
    recevoir le paiement
    remettre le produit au client

Syntaxe pour un choix avec 2 options

SI (heureDeRemise < heureLimite) ALORS
    corriger l'examen
SINON
    assigner la note 0

Syntaxe pour plusieurs options

SI (dateDeRemise < dateLimite) ALORS 
    corriger le travail
SINON SI (dateDeRemise < dateLimite + 1) ALORS
    corriger le travail
    enlever 10% à la note
SINON SI (dateDeRemise < dateLimite + 2) ALORS
    corriger le travail
    enlever 10% à la note
SINON
    assigner la note 0

Répéter des instructions

Les instruction POUR et TANT QUE sont utilisées pour définir une répétition.

L'instruction POUR est utilisée pour un nombre de répétions défini. Elle utilise une variable qui change de valeur à chaque répétition.

L'instruction TANT QUE utilise une condition comme le choix pour déterminer quand arrêter. Elle est adéquate pour un nombre de répétitions indéterminé

Syntaxe du POUR

POUR x de 1 à 5 
    afficher x

Syntaxe du TANT QUE

TANT QUE (x < 10)
    augmenter x de 1

Combien de fois la boucle est exécutée quand x vaut 0? quand x vaut 5?

Exemple de décomposition d'un problème

Le problème : Trouver la définition du mot "programme" dans le dictionnaire

Première décomposition

  • À quel endroit commencer à chercher
  • À quel endroit arrêter
  • Comment comparer deux items et déterminer lequel est avant
  • Comment continuer la recherche lorsque ce n'est pas le bon mot

Raffiner la décomposition

  • Déterminer l'ordre alphabétique attendu selon le mot (français, espagnol, arabe, etc...)
  • Comment comparer deux mots
  • Comment savoir si l'on a trouvé le bon mot
  • Comment savoir si le mot n'est pas dans le dictionnaire

Exemple de décomposition et construction de l'algorithme en pseudo-code

Le problème : Trouver le plus petit nombre dans une série de nombres

Analyse du problème

  • Comment se souvenir de la série de nombres
  • Comment se souvenir du plus petit nombre
  • Où commencer la recherche
  • Quand arrêter la recherche
  • Comment comparer deux nombres

Pseudo-code solution

var[] serieNombres = [8, 12, 4, 6, 2]
var min = serieNombres[0]

POUR index de 1 à 4
    SI (serieNombres[index] < min)
        min = serieNombres[index]

Vérifier la solution en faisant les étapes sur papier comme si nous étions l'ordinateur