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