Beruflich Dokumente
Kultur Dokumente
Patrick Reuter
matre de confrences
http://www.labri.fr/~preuter
Droulement
Motivation
Motivation
8.168.684.336 pages
Comment a marche ?
Motivation
Structure de donne:
Motivation
Structure de donne:
- tableau a 2 dimension
Motivation
Structure de donne :
File
Motivation
Structure de donne :
Pile
LIFO (Last In First Out)
Motivation
Structure de donne :
Motivation
Structure de donne :
Algorithme
Dfinition Wikipedia (12/9/2005) L'algorithmique est la science des algorithmes, visant tudier les oprations ncessaires la ralisation d'un calcul. Ren Descartes dans le Discours de la Mthode : diviser chacune des difficults que j'examinerois, en autant de parcelles qu'il se pourroit, et qu'il seroit requis pour les mieux rsoudre. . Un algorithme est une mthode de rsolution de problme nonce sous la forme d'une srie d'oprations effectuer. La mise en uvre de l'algorithme consiste en l'criture de ces oprations dans un langage de programmation et constitue alors la brique de base d'un programme informatique (implmentation, codage ) L'algorithme devra tre plus ou moins dtaill selon le niveau d'abstraction du langage utilis ; autrement dit, une recette de cuisine doit tre plus ou moins dtaille en fonction de l'exprience du cuisinier.
Structure de donnes
Dfinition Wikipedia (12/9/2005) une structure logique destine contenir des donnes afin de leur donner une organisation permettant de simplifier leur traitement. Exemple : On peut prsenter des numros de tlphone *
- par dpartement, - par nom - par profession (pages jaunes), - par numro tlphonique (annuaires destins au tlmarketing), - par rue et/ou - une combinaison quelconque de ces classements. chaque usage correspondra une structure d'annuaire approprie.
Ingrdients dalgorithmes
Variables : nombre y i patrick x1
Ingrdients dalgorithmes
Affectation Condition/Comparaison Appel de fonction Structure de contrle
Branchements conditionnels (multiples) Boucles
Bloc dinstruction
Ingrdients dalgorithmes
Affectation a := 7; score := 0; score := score + 100; gameover := FAUX; - Note:
- Affectation dune seule variable avec un valeur. - La variable affecter figure gauche, la valeur droite Faux: a+b := 6; 7 := c;
Ingrdients dalgorithmes
Condition/Comparaison
a=7 absent = FAUX malade = VRAI OU vacances = VRAI score > highscore;
- Note:
- Le rsultat dune condition/comparaison peut tre uniquement soit VRAI, soit FAUX
Ingrdients dalgorithmes
Appel de fonction, p.ex. afficher( Bonjour tout le monde ); resultat := racine_carre(16);
Ingrdients dalgorithmes
Structure de contrle
Branchements conditionnels
SI <condition> ALORS
<bloc dinstructions>
SINON
<bloc dinstructions>
Ingrdients dalgorithmes
Structure de contrle
Branchements conditionnels
SI <condition> ALORS <bloc dinstructions> SINON <bloc dinstructions>
Ingrdients dalgorithmes
Structure de contrle
Branchements conditionnels
SI <condition> ALORS <bloc dinstructions> SINON <bloc dinstructions>
Ingrdients dalgorithmes
Structure de contrle
Branchements conditionnels multiples CAS mois DE 1': nom := Janvier ; 2': nom := Fvrier ; 3': nom := Mars ; 4': nom := Avril ; 5': nom := Mai ; . 12': nom := Dcembre ; AUTREMENT afficher('Erreur dans le mois') ; FIN CAS;
Ingrdients dalgorithmes
Structure de contrle
Boucle
Dfinition : Suite dinstructions qui peut tre excut plusieurs fois (itration)
Ingrdients dalgorithmes
Structure de contrle
Boucle
TANT QUE <condition> FAIRE <bloc dinstructions> FIN TANT QUE ou FAIRE <bloc dinstructions> TANT QUE <condition>
Ingrdients dalgorithmes
Structure de contrle
Boucle TANT QUE <condition> FAIRE <bloc dinstructions> FIN TANT QUE
Exemple : Afficher les nombres entiers dont le carr est infrieur 100. nombre := 1; TANT QUE (nombre*nombre<100) FAIRE afficher(nombre); nombre := nombre + 1; FIN TANT QUE
nombre := 1; nombrecarre := nombre * nombre; TANT QUE (nombrecarre<100) FAIRE afficher(nombre); nombre := nombre + 1; nombrecarre := nombre * nombre; FIN TANT QUE
Chaque variable une colonne nombre
nombrecarre
nombre := 1; nombrecarre = nombre * nombre; TANT QUE (nombrecarre<100) FAIRE afficher(nombre); nombre := nombre + 1; nombrecarre := nombre * nombre; FIN TANT QUE
Chaque instruction une ligne nombre 1
nombrecarre
nombre = 1; nombrecarre = nombre * nombre; TANT QUE (nombrecarre<100) FAIRE afficher(nombre); nombre = nombre + 1; nombrecarre = nombre * nombre; FIN TANT QUE
nombre 1
nombrecarre
nombre = 1; nombrecarre = nombre * nombre; TANT QUE (nombrecarre<100) FAIRE afficher(nombre); nombre = nombre + 1; nombrecarre = nombre * nombre; FIN TANT QUE
nombre 1
nombrecarre
nombre = 1; nombrecarre = nombre * nombre; TANT QUE (nombrecarre<100) FAIRE afficher(nombre); nombre = nombre + 1; nombrecarre = nombre * nombre; FIN TANT QUE
nombre 1
nombrecarre
nombre = 1; nombrecarre = nombre * nombre; TANT QUE (nombrecarre<100) FAIRE afficher(nombre); nombre = nombre + 1; nombrecarre = nombre * nombre; FIN TANT QUE
nombre 1
nombrecarre
nombre = 1; nombrecarre = nombre * nombre; TANT QUE (nombrecarre<100) FAIRE afficher(nombre); nombre = nombre + 1; nombrecarre = nombre * nombre; FIN TANT QUE
nombre 1
nombrecarre
2
4
nombre = 1; nombrecarre = nombre * nombre; TANT QUE (nombrecarre<100) FAIRE afficher(nombre); nombre = nombre + 1; nombrecarre = nombre * nombre; FIN TANT QUE
nombre 1
nombrecarre
2
4
nombre = 1; nombrecarre = nombre * nombre; TANT QUE (nombrecarre<100) FAIRE afficher(nombre); nombre = nombre + 1; nombrecarre = nombre * nombre; FIN TANT QUE
nombre
nombrecarre
nombre = 1; nombrecarre = nombre * nombre; TANT QUE (nombrecarre<100) FAIRE afficher(nombre); nombre = nombre + 1; nombrecarre = nombre * nombre; FIN TANT QUE
nombre
nombrecarre
nombre = 1; nombrecarre = nombre * nombre; TANT QUE (nombrecarre<100) FAIRE afficher(nombre); nombre = nombre + 1; nombrecarre = nombre * nombre; FIN TANT QUE
nombre
nombrecarre
Ingrdients dalgorithmes
Structure de contrle
Boucle
FAIRE <bloc dinstructions> TANT QUE <condition>
Ingrdients dalgorithmes
Structure de contrle
Boucle
FAIRE jouer(); afficher( Voulez vous rejouer (O/N) ? ); prendreDuClavier(charactere); TANT QUE (caractere= "O" OU caractere = "o");
Ingrdients dalgorithmes
Structure de contrle
Boucle POUR
POUR variable de valeur valeur FAIRE <bloc dinstructions> FIN POUR
Ingrdients dalgorithmes
Structure de contrle
Boucle POUR
Exemple
POUR i:=1 10 FAIRE afficher(i); afficher(i*i); FIN POUR
Diviseur := 2; TANT QUE diviseur<nombre ET estPremier = VRAI FAIRE SI (nombre MOD diviseur = 0) ALORS
estPremier := FAUX; diviseur := diviseur + 1; FIN TANT QUE RETOURNER estPremier; FIN FONCTION
Diviseur := 2; TANT QUE diviseur<nombre ET estPremier := VRAI FAIRE SI (nombre MOD diviseur = 0) ALORS
estPremier := FAUX; diviseur := diviseur + 1; FIN TANT QUE RETOURNER estPremier; FIN FONCTION
Diviseur := 2; TANT QUE diviseur<nombre ET estPremier := VRAI FAIRE SI (nombre MOD diviseur = 0) ALORS
estPremier := FAUX; diviseur := diviseur + 1; FIN TANT QUE RETOURNER estPremier; FIN FONCTION
Diviseur := 2; TANT QUE diviseur<nombre ET estPremier = VRAI FAIRE SI (nombre % diviseur = 0) ALORS
estPremier := FAUX; diviseur := diviseur + 1; FIN TANT QUE RETOURNER estPremier; FIN FONCTION
Diviseur := 2; TANT QUE diviseur<nombre ET estPremier := VRAI FAIRE SI (nombre MOD diviseur = 0) ALORS
estPremier := FAUX; diviseur := diviseur + 1; FIN TANT QUE RETOURNER estPremier; FIN FONCTION
Diviseur := 2; TANT QUE diviseur<nombre ET estPremier := VRAI FAIRE SI (nombre MOD diviseur = 0) ALORS
estPremier := FAUX; diviseur := diviseur + 1; FIN TANT QUE RETOURNER estPremier; FIN FONCTION
Diviseur := 2; TANT QUE diviseur<nombre ET estPremier := VRAI FAIRE SI (nombre MOD diviseur = 0) ALORS
estPremier := FAUX; diviseur := diviseur + 1; FIN TANT QUE RETOURNER estPremier; FIN FONCTION
2 3
Diviseur := 2; TANT QUE diviseur<nombre ET estPremier = VRAI FAIRE SI (nombre MOD diviseur = 0) ALORS
estPremier := FAUX; diviseur := diviseur + 1; FIN TANT QUE RETOURNER estPremier; FIN FONCTION
2 3
Diviseur := 2; TANT QUE diviseur<nombre ET estPremier := VRAI FAIRE SI (nombre MOD diviseur = 0) ALORS
estPremier := FAUX; diviseur := diviseur + 1; FIN TANT QUE RETOURNER estPremier; FIN FONCTION
2 3
Diviseur := 2; TANT QUE diviseur<nombre ET estPremier = VRAI FAIRE SI (nombre MOD diviseur = 0) ALORS
estPremier := FAUX; diviseur := diviseur + 1; FIN TANT QUE RETOURNER estPremier; FIN FONCTION
2 3
FAUX
Diviseur := 2; TANT QUE diviseur<nombre ET estPremier = VRAI FAIRE SI (nombre MOD diviseur = 0) ALORS estPremier := FAUX;
diviseur := diviseur + 1; FIN TANT QUE RETOURNER estPremier; FIN FONCTION
2 3 4
Diviseur := 2; TANT QUE diviseur<nombre ET estPremier = VRAI FAIRE SI (nombre MOD diviseur = 0) ALORS estPremier := FAUX;
diviseur := diviseur + 1; FIN TANT QUE RETOURNER estPremier; FIN FONCTION
2 3 4
Diviseur := 2; TANT QUE diviseur<nombre ET estPremier = VRAI FAIRE SI (nombre MOD diviseur = 0) ALORS
estPremier := FAUX; diviseur := diviseur + 1; FIN TANT QUE RETOURNER estPremier; FIN FONCTION
2 3 4
FAUX
Diviseur := 2; TANT QUE diviseur<nombre ET estPremier = VRAI FAIRE SI (nombre MOD diviseur = 0) ALORS
estPremier := FAUX; diviseur := diviseur + 1; FIN TANT QUE RETOURNER estPremier; FIN FONCTION
2 3 4
Diviseur = 2; TANT QUE diviseur<nombre ET estPremier = VRAI FAIRE SI (nombre MOD diviseur = 0) ALORS
estPremier = FAUX; diviseur = diviseur + 1; FIN TANT QUE RETOURNER estPremier; FIN FONCTION
2 3 4
FAUX