Chapitre 4 : Méthodologie et Algorithme

algorithme = suite d'instructions permettant de résoudre un problème précis

4.1 Méthodologie de résolution d'un problème
	1) Poser le problème		5) Compilation
	2) Analyser le problème		6) Exécution
	3) Résoudre le problème		7) Vérification des résultats
	4) Implémentation

4.1.1 Définir le problème (QUOI ?)
Correspond à étudier 2 "choses" :
	- Les données
	- Le résultat attendu
Création du cahier des charges qui définie ces notions en détails

4.1.2 Analyser le problème (COMMENT ?)

* Donner une forme aux données
* Définir précisément leur 	Nature
							Structure
							Domaine de validité
Règle d'analyse :
	Remettre en question les évidences
	Diviser le problème : Analyse descendante

4.1.3 Résoudre le problème

Algorithme = méthode finale de résoution. Pour décrire l'algorithme, il faut un langage : le langage algorithmique.
Le langage algorithmique peut avoir plusieurs formes mais a quelques contraintes :
	- Langage limité et précis
	- Doit être adapté à la personne qui va s'en servir

- L'algorithme d'Euclide du PGCD :
	* données : d'entrée (a,b)
	* résultat : PGCD(a,b)

|	EUCLIDE(a,b)
|	Si b est nul
|		PGCD = a
|	Sinon EUCLIDE(b,a mod b)		mod = reste de la division de a par b

Définir le problème : 
	* Expliciter les données
	* Expliciter les résultats
	* Expliciter les relations données/résultats
Analyser un problème :
	* le résoudre
	* le diviser en sous problèmes et les définir

4.1.4 Implémentation

Transformer l'algorithme en programme
Plus tard, le programme sera compilé puis exécuté.

4.2 Conception d'un algorithme (exemple)

Problème : obtenir un café
Cahier des charges
	* données : café(en grain,...), eau, tasse,...
	* résultat : tasse de café

* Mettre café dans filtre
* Mettre le filtre sur la tasse
* verser eau
* prendre la tasse

4.2.4 Sélection et itération

* Opérateur conditionnel ou de sélection
 	si (le café est en grain)
	alors (le moudre)
	sinon (ne rien faire)
* Opérateur d'itération
	tant que (moins de 10 tasses prêtes)
	faire (...)
ou
	faire (...)
	jusqu'à (condition)

4.3 Structure d'un algorithme

4.3.1 Structure de contrôle
Suite de blocs

4.3.2 Portée
Structure séquentielle = liste de ses instructions
- Instructions les unes à la suite des autres qui sont executées une fois

Structure conditionelle :
- 	Si (___)
	alors (___)	le bloc situé après "alors"
	sinon (___)   le bloc situé après "sinon"

Structure itérative :
Tant que (___)
faire(___)	Bloc situé après le faire

4.3.3 Niveau d'une séquence
Si (___)
	alors (___)
	sinon (___)
tant que (___)
	faire (___
		   ___
		   ___)
afficher résultat
-> Niveau 1 de séquence

bloc de niveau 2 : 
	* bloc après "alors"
	* bloc après "sinon"
	* bloc après "faire"

4.4 Exemple récapitulatif

- Prendre la patate dans le panier
- eplucher
- la mettre dans l'eau

- Si (panier est vide)
	alors remplir panier
- Prendre la patate dans le panier
- éplucher
- la mettre dans l'eau

Si (panier vide) alors
	remplir
Tant que (panier pas vide) faire
	Prendre patate
	Epluche
	Mettre dans l'eau