Vous êtes sur la page 1sur 117

Algorithmique et programmation

Thme I Algorithmique et programmation Cours 1 Fondements de l'algorithmique

Qu'est ce qu'un algorithme de Programmation ?


" Introduction l'algorithmique " 1. Les Variables " 2. Lecture et Ecriture " 3. Les Tests " 4. Les Boucles " 5. Les Tableaux " 6. Techniques Ruses " 7. Tableaux Multidimensionnels " 8. Fonctions Prdfinies " 9. Fichiers " 10. Procdures et Fonctions

Qu'est ce qu'un algorithme de Programmation ?

" Un algorithme, cest une suite dinstructions, qui une fois excute correctement, conduit un rsultat donn. " Pour fonctionner, un algorithme doit donc contenir uniquement des instructions comprhensibles par celui qui devra lexcuter

" La matrise de lalgorithmique requiert deux qualits, trs complmentaires dailleurs :  il faut avoir une certaine intuition  il faut tre mthodique et rigoureux

Algorithmes et cycle de dveloppement des logiciels


tude prliminaire

" tapes de mise en oeuvre d'un logiciel


1. Comprendre le problme 2. Concevoir lalgorithme

Analyse fonctionnelle

" Faire la trace pour valider l'algorithme

3. Coder lalgorithme
" Traduire lalgorithme en langage de programmation

Conception de systme

4. diter le programme
" Saisir le programme sur ordinateur

5. Compiler le programme 6. Faire ldition des liens


Mise en uvre du systme

" Ajout au programme des lments de la librairie

7. Excuter le programme 8. Vrifier et valider le programme

Entretien du systme

1. Variables ?

" Dans un programme informatique, on va avoir en permanence besoin de stocker provisoirement des valeurs.
Clavier, sourisetc; Interfaage avec machine; Fichier Rsultats dautres programmes; Etc.

    

1. Variables ?

Ces donnes peuvent tre de plusieurs types (on en reparlera) : elles peuvent tre des nombres, du texte, etc. Toujours est-il que ds que lon a besoin de stocker une information au cours dun programme, on utilise une variable. " Dclaration des variables " L'instruction d'affectation " Expressions et oprateurs

1. Variables ?

Dclaration des variables :

" Le nom de la variable " type de codage  Types numriques classiques  Type alphanumrique  Type boolen

1. Variables ?

Linstruction daffectation :

" Syntaxe et signification

" Ordre des instructions

1. Variables ?
Expressions et oprateurs : Une expression est un ensemble de valeurs, relies par des oprateurs, et quivalent une seule valeur: " Oprateurs numriques :

" Oprateur alphanumrique : &

" Oprateurs logiques (ou boolens) (ET, du OU, du NON )

1. Variables ?

1. Variables ?

1. Variables ?

1. Variables ?

1. Variables ?

1. Variables ?

1. Variables ?

2. Lecture et Ecriture ?

Imaginons que nous ayons fait un programme pour calculer le carr dun nombre, mettons 12. Si on a fait au plus simple, on a crit :

Ce programme nous donne le carr de 12. Mais si nous voudrions le carr dun autre nombre que 12, il faut rcrire le programme

2. Lecture et Ecriture ?

Les instructions de lecture et dcriture :

2. Lecture et Ecriture ?

2. Lecture et Ecriture ?

2. Lecture et Ecriture ?

2. Lecture et Ecriture ?

3. Les Tests?

Structure dun test Il ny a que deux formes possibles pour un test ; la premire est la plus simple, la seconde la plus complexe.

3. Les Tests?

Conditions composes

3. Les Tests?
Tests imbriqus

3. Les Tests?

3. Les Tests?

3. Les Tests?

3. Les Tests?

3. Les Tests?

5. Les Boucles ?

5. Les Boucles ?

5. Les Boucles ?

Boucler en comptant, ou compter en bouclant

5. Les Boucles ?

Boucles dans les boucles

5. Les Boucles ?

5. Les Boucles ?

5. Les Boucles ?

5. Les Boucles ?

5. Les Boucles ?

5. Les Boucles ?

5. Les Boucles ?

5. Les Boucles ?

5. Les Boucles ?

5. Les Boucles ?

6. Les Tableaux?
Imaginons que dans un programme, nous ayons besoin simultanment de 12 valeurs (par exemple, des notes pour calculer une moyenne).

Un ensemble de valeurs portant le mme nom de variable et repres par un nombre, sappelle un tableau, ou encore une variable indice. Le nombre qui, au sein dun tableau, sert reprer chaque valeur sappelle lindice. Chaque fois que lon doit dsigner un lment du tableau, on fait figurer le nom du tableau, suivi de lindice de llment, entre parenthses

6. Les Tableaux?

Tableaux Statiques

6. Les Tableaux?

Tableaux dynamiques Il arrive frquemment que lon ne connaisse pas lavance le nombre dlments que devra comporter un tableau. Bien sr, une solution consisterait dclarer un tableau gigantesque (10 000 lments, pourquoi pas, au diable les varices) pour tre sr que a rentre . Mais dune part, on nen sera jamais parfaitement sr, dautre part, en raison de limmensit de la place mmoire rserve et la plupart du temps non utilise, cest un gchis prjudiciable la rapidit, voire la viabilit, de notre algorithme.

6. Les Tableaux?

6. Les Tableaux?

6. Les Tableaux?

6. Les Tableaux?

6. Les Tableaux?

6. Les Tableaux?

6. Les Tableaux?

6. Les Tableaux?

6. Les Tableaux?

6. Les Tableaux?

6. Les Tableaux?

7. Techniques Ruses?

Une fois n est pas coutume, ce chapitre n a pas pour but de prsenter un nouveau type de donnes, un nouveau jeu d instructions. Son propos est de dtailler quelques techniques de programmation. 1. Tri dun tableau : le tri par Slection

7. Techniques Ruses?

1. Tri dun tableau : le tri par Slection

7. Techniques Ruses?
Nous allons maintenant nous intresser au maniement habile d une variable boolenne : la technique dite du flag . Le flag, en anglais, est un petit drapeau, qui va rester baiss aussi longtemps que l vnement attendu ne se produit pas. Et, aussitt que cet vnement a lieu, le petit drapeau se lve (la variable boolenne change de valeur). Ainsi, la valeur finale de la variable boolenne permet au programmeur de savoir si l vnement a eu lieu ou non.

2. Un exemple de flag : la recherche dans un tableau

7. Techniques Ruses?
2. Un exemple de flag : la recherche dans un tableau

7. Techniques Ruses?

3. Tri de tableau + flag = tri bulles


L ide de dpart du tri bulles consiste se dire qu un tableau tri en ordre croissant, c est un tableau dans lequel tout lment est plus petit que celui qui le suit. En effet, prenons chaque lment d un tableau, et comparons-le avec l lment qui le suit. Si l ordre n est pas bon, on permute ces deux lments. Et on recommence jusqu ce que l on n ait plus aucune permutation effectuer. Les lments les plus grands remontent ainsi peu peu vers les dernires places Nous baptiserons le flag Yapermute, la variable boolenne qui va nous indiquer si nous venons ou non de procder une permutation au cours du dernier balayage du tableau

7. Techniques Ruses?

7. Techniques Ruses?

7. Techniques Ruses?

7. Techniques Ruses?

7. Techniques Ruses?

7. Techniques Ruses?

7. Techniques Ruses?

8. Tableaux Multidimensionnels ?

1. Tableaux deux dimensions


L informatique nous offre la possibilit de dclarer des tableaux dans lesquels les valeurs ne sont pas repres par une seule, mais par deux coordonnes. Un tel tableau se dclare ainsi :

8. Tableaux Multidimensionnels ?

2. Tableaux plusieurs dimensions


Si vous avez compris le principe des tableaux deux dimensions, sur le fond, il n y a aucun problme passer au maniement de tableaux trois, quatre, ou pourquoi pas neuf dimensions. C est exactement la mme chose. Si je dclare un tableau Titi(2, 4, 3, 3), il s agit d un espace mmoire contenant 3 x 5 x 4 x 4 = 240 valeurs. Chaque valeur y est repre par quatre coordonnes.

8. Tableaux Multidimensionnels ?

8. Tableaux Multidimensionnels ?

8. Tableaux Multidimensionnels ?

8. Tableaux Multidimensionnels ?

8. Tableaux Multidimensionnels ?

8. Tableaux Multidimensionnels ?

8. Tableaux Multidimensionnels ?

8. Tableaux Multidimensionnels?

8. Tableaux Multidimensionnels ?

8. Tableaux Multidimensionnels ?

8. Tableaux Multidimensionnels ?

9. Fonctions Prdfinies ?

Tout langage de programmation propose ainsi un certain nombre de fonctions ; certaines sont indispensables, car elles permettent d effectuer des traitements qui seraient sans elles impossibles. D autres servent soulager le programmeur, en lui pargnant de longs et pnibles - algorithmes.

1. Les fonctions Mathmatiques

2. Les fonctions de texte

9. Fonctions Prdfinies ?
3. Trois fonctions numriques classiques

Par exemple, si je veux gnrer un nombre entre 1,35 et 1,65 ; la fourchette mesure 0,30 de large. Donc : 0 =< Alea()*0,30 < 0,30 Il suffit ds lors d ajouter 1,35 pour obtenir la fourchette voulue. Si j cris que :

9. Fonctions Prdfinies ?

9. Fonctions Prdfinies ?

9. Fonctions Prdfinies ?

9. Fonctions Prdfinies ?

9. Fonctions Prdfinies ?

9. Fonctions Prdfinies ?

9. Fonctions Prdfinies ?

9. Fonctions Prdfinies ?

9. Fonctions Prdfinies ?

9. Fonctions Prdfinies ?

9. Fonctions Prdfinies ?

9. Fonctions Prdfinies ?

10. Fichiers?

10. Fichiers?

10. Fichiers?

10. Fichiers?

10. Fichiers?

10. Fichiers?

10. Fichiers?

10. Fichiers?

10. Fichiers?

10. Fichiers?

10. Fichiers?

10. Fichiers?

11. Procdures et Fonctions?

11. Procdures et Fonctions?

11. Procdures et Fonctions?

11. Procdures et Fonctions?

11. Procdures et Fonctions?

11. Procdures et Fonctions?

11. Procdures et Fonctions?

11. Procdures et Fonctions?