Algorithmique & structure
des données I
1ère Business Computing (BC)
Responsable : Dr. Fadoua Bouafif
1
Dr.Fadoua BOUAFIF
Objectifs du cours
Ce cours vise principalement à:
 Initier les étudiants à suivre une démarche méthodique et rigoureuse
dans la résolution de problèmes allant de l’analyse jusqu'à l’écriture de la
solution en algorithmique.
A l’issue de ce module l’étudiant doit :
 Connaître les composants et les éléments de base de l’algorithmique,
 Pouvoir utiliser les structures décisionnelles et itératives,
 Maîtriser l’utilisation des sous-programmes
 Apprendre le principe des méthodes de tri et de recherche dans les
tableaux
2
Dr.Fadoua BOUAFIF
Plan du cours
Chapitre 1: Généralités
Chapitre 2 : Notions de base et actions élémentaires
Chapitre 3: Les structures conditionnelles
Chapitre 4: Les structures ittératives
Chapitre 5: Les tableaux et les pointeurs
Chapitre 6: Les chaines de caractères
Chapitre 7: Les sous-programmes
Chapitre 8: Les Algorithmes de tri et les algorithmes de recherche dans les
tableaux
3
Dr.Fadoua BOUAFIF
Chapitre 1: Généralités
4
Dr.Fadoua BOUAFIF
Objectifs du chapitre
 Savoir les concepts généraux relatifs à l’algorithmique
 Comprendre la différence entre un algorithme et un
programme
 Avoir une idée sur les étapes d’éxecution d’un programme C
sur la machine
 Connaitre la structure d’un algorithme/un programme
5
Dr.Fadoua BOUAFIF
Plan du chapitre
1. Introduction
2. Définitions
3. Élaboration d'un algorithme
4. Passage de l'algorithme au programme
5. Démarche algorithmique
6. Etapes d’éxecution d’un programme sur la machine
7. Structure d'un algorithme/programme
8. Conclusion
6
Dr.Fadoua BOUAFIF
Introduction
 Qu’est ce qu’un programme informatique?
 C’est une suite d'actions ou d'instructions permettant à l'ordinateur de résoudre un problème donné.
 Comment écrire un programme?
 La mise en place d’un programme informatique nécessite plusieurs étapes.
 La première étape est la plus importante : la phase d’analyse.
 Qu’est ce que la phase d’analyse ?
La phase d’analyse consiste à:
 Comprendre le problème énoncé,
 Cerner ces limites, et
 Mettre en forme le problème dans un langage descriptif.
 Qu’est ce qu’un langage descriptif ?
 C’est un langage utilisé pour écrire le résultat de l’analyse.
 Algorithme
7
Dr.Fadoua BOUAFIF
Définitions
8
 Un algorithme est conçu pour résoudre un problème en utilisant l'ordinateur.
 Un algorithme est une suite d'opérations ou d'instructions suivant une logique déterminée.
Exemples : les algorithmes de recherches, les algorithmes de tri, etc.
 L'algorithmique est une science qui cherche la manière la plus optimale pour calculer des solutions
pratiques à un problème de calcul.
 L'algorithmique désigne l'ensemble des règles et des techniques qui sont impliquées dans la
définition et la conception des algorithmes.
 L'implémentation est la transcription de l'algorithme dans un langage évolué.
Dr.Fadoua BOUAFIF
Élaboration d'un algorithme
9
 Objectif : Structurer le raisonnement afin de parvenir à une solution claire.
Différentes questions se posent ainsi :
 Quel est le résultat attendu ?
 Quelles sont les données nécessaires pour résoudre ce problème ?
 Quels sont les principaux sous-problèmes ?
 Quelles sont les principales étapes permettant de les résoudre ?
 Solution:
Ecriture d’un algorithme où nous précisons les données(les constantes / les variables), leurs
types et les instructions.
Dr.Fadoua BOUAFIF
Élaboration d'un algorithme (suite)
10
 Caractéristiques :
Un algorithme doit être :
 Lisible : l'algorithme doit être compréhensible même par un non informaticien.
 De haut niveau : l'algorithme doit pouvoir être traduit dans n'importe quel langage de programmation.
 Précis : chaque élément de l'algorithme ne doit pas porter à confusion. Il est donc important de lever
toutes ambigüités.
 Concis : un algorithme ne doit pas dépasser une page. Si c'est le cas, il faut le décomposer en sous-
programme.
 Structuré : un algorithme doit être composé de différentes parties facilement identifiables.
 Remarque : La décomposition du problème en sous-problèmes et leurs descriptions s'appellent
modularisation des programmes (fonctions et procédures).
Dr.Fadoua BOUAFIF
Passage de l'algorithme au programme
11
 Après la phase d’analyse qui aboutit à l’écriture de l'algorithme relatif au problème donné, la
deuxième phase qui doit être élaborée est la programmation.
 La programmation consiste à traduire l'algorithme en un langage de programmation
(langage évolué) spécifique.
 Le langage de programmation
 est l'intermédiaire entre l'humain et la machine.
 permet d'écrire dans un langage proche de la machine mais intelligible par l'humain les opérations que
l'ordinateur doit exécuter.
 doit respecter une sémantique et une syntaxe stricte.
 La sémantique est l'étude du sens des mots.
 La syntaxe ou la grammaire est l'étude des contraintes entre les mots pour former des phases correctes.
Dr.Fadoua BOUAFIF
Démarche algorithmique
12
Dr.Fadoua BOUAFIF
Etapes d’éxecution d’un programme sur la machine
13
1
2 3
4
1. Codage: consiste à choisir un langage de
programmation et à l'aide de son éditeur,
l'algorithme est traduit et sera enregistré dans un
fichier nommé source.
2. Compilation: traduit le fichier source en un fichier
objet après avoir détecté toutes les erreurs
syntaxiques du programme.
3. Edition de liens: consiste à combiner les différents
fichiers objets pour créer un fichier exécutable.
4. Exécution : permet d’afficher le résultat du
programme via l’environnement de
développement intégré et le programmeur peut
se rendre compte des erreurs logiques en
effectuant une série de tests.
Dr.Fadoua BOUAFIF
Structure d'un algorithme/programme
14
En Algorithmique En C
Algorithme nom_algorithme
Const:
// déclaration des constantes
Var:
// déclaration des variables
Début
instruction 1
instruction 2
……
instruction n
Fin
En tête
Déclaration des variables
et des constantes
Traitement
#include <stdio.h>
#include <stdlib.h>
int main()
{ //début du programme
// déclaration des constantes
// déclaration des variables ;
instruction 1;
instruction 2 ;
……
instruction n ;
return 0;
} //fin du programme
Dr.Fadoua BOUAFIF
Conclusion
Dans ce chapitre nous avons:
 Présenté les concepts généraux relatifs à l’algorithmique
 Défini la différence entre un algorithme et un programme
 Détaillé les étapes de l’exécution d’un programme
 Montré la structure d’un algorithme/ d’un programme
15
Dr.Fadoua BOUAFIF

Ch1-Généralités.pdf

  • 1.
    Algorithmique & structure desdonnées I 1ère Business Computing (BC) Responsable : Dr. Fadoua Bouafif 1 Dr.Fadoua BOUAFIF
  • 2.
    Objectifs du cours Cecours vise principalement à:  Initier les étudiants à suivre une démarche méthodique et rigoureuse dans la résolution de problèmes allant de l’analyse jusqu'à l’écriture de la solution en algorithmique. A l’issue de ce module l’étudiant doit :  Connaître les composants et les éléments de base de l’algorithmique,  Pouvoir utiliser les structures décisionnelles et itératives,  Maîtriser l’utilisation des sous-programmes  Apprendre le principe des méthodes de tri et de recherche dans les tableaux 2 Dr.Fadoua BOUAFIF
  • 3.
    Plan du cours Chapitre1: Généralités Chapitre 2 : Notions de base et actions élémentaires Chapitre 3: Les structures conditionnelles Chapitre 4: Les structures ittératives Chapitre 5: Les tableaux et les pointeurs Chapitre 6: Les chaines de caractères Chapitre 7: Les sous-programmes Chapitre 8: Les Algorithmes de tri et les algorithmes de recherche dans les tableaux 3 Dr.Fadoua BOUAFIF
  • 4.
  • 5.
    Objectifs du chapitre Savoir les concepts généraux relatifs à l’algorithmique  Comprendre la différence entre un algorithme et un programme  Avoir une idée sur les étapes d’éxecution d’un programme C sur la machine  Connaitre la structure d’un algorithme/un programme 5 Dr.Fadoua BOUAFIF
  • 6.
    Plan du chapitre 1.Introduction 2. Définitions 3. Élaboration d'un algorithme 4. Passage de l'algorithme au programme 5. Démarche algorithmique 6. Etapes d’éxecution d’un programme sur la machine 7. Structure d'un algorithme/programme 8. Conclusion 6 Dr.Fadoua BOUAFIF
  • 7.
    Introduction  Qu’est cequ’un programme informatique?  C’est une suite d'actions ou d'instructions permettant à l'ordinateur de résoudre un problème donné.  Comment écrire un programme?  La mise en place d’un programme informatique nécessite plusieurs étapes.  La première étape est la plus importante : la phase d’analyse.  Qu’est ce que la phase d’analyse ? La phase d’analyse consiste à:  Comprendre le problème énoncé,  Cerner ces limites, et  Mettre en forme le problème dans un langage descriptif.  Qu’est ce qu’un langage descriptif ?  C’est un langage utilisé pour écrire le résultat de l’analyse.  Algorithme 7 Dr.Fadoua BOUAFIF
  • 8.
    Définitions 8  Un algorithmeest conçu pour résoudre un problème en utilisant l'ordinateur.  Un algorithme est une suite d'opérations ou d'instructions suivant une logique déterminée. Exemples : les algorithmes de recherches, les algorithmes de tri, etc.  L'algorithmique est une science qui cherche la manière la plus optimale pour calculer des solutions pratiques à un problème de calcul.  L'algorithmique désigne l'ensemble des règles et des techniques qui sont impliquées dans la définition et la conception des algorithmes.  L'implémentation est la transcription de l'algorithme dans un langage évolué. Dr.Fadoua BOUAFIF
  • 9.
    Élaboration d'un algorithme 9 Objectif : Structurer le raisonnement afin de parvenir à une solution claire. Différentes questions se posent ainsi :  Quel est le résultat attendu ?  Quelles sont les données nécessaires pour résoudre ce problème ?  Quels sont les principaux sous-problèmes ?  Quelles sont les principales étapes permettant de les résoudre ?  Solution: Ecriture d’un algorithme où nous précisons les données(les constantes / les variables), leurs types et les instructions. Dr.Fadoua BOUAFIF
  • 10.
    Élaboration d'un algorithme(suite) 10  Caractéristiques : Un algorithme doit être :  Lisible : l'algorithme doit être compréhensible même par un non informaticien.  De haut niveau : l'algorithme doit pouvoir être traduit dans n'importe quel langage de programmation.  Précis : chaque élément de l'algorithme ne doit pas porter à confusion. Il est donc important de lever toutes ambigüités.  Concis : un algorithme ne doit pas dépasser une page. Si c'est le cas, il faut le décomposer en sous- programme.  Structuré : un algorithme doit être composé de différentes parties facilement identifiables.  Remarque : La décomposition du problème en sous-problèmes et leurs descriptions s'appellent modularisation des programmes (fonctions et procédures). Dr.Fadoua BOUAFIF
  • 11.
    Passage de l'algorithmeau programme 11  Après la phase d’analyse qui aboutit à l’écriture de l'algorithme relatif au problème donné, la deuxième phase qui doit être élaborée est la programmation.  La programmation consiste à traduire l'algorithme en un langage de programmation (langage évolué) spécifique.  Le langage de programmation  est l'intermédiaire entre l'humain et la machine.  permet d'écrire dans un langage proche de la machine mais intelligible par l'humain les opérations que l'ordinateur doit exécuter.  doit respecter une sémantique et une syntaxe stricte.  La sémantique est l'étude du sens des mots.  La syntaxe ou la grammaire est l'étude des contraintes entre les mots pour former des phases correctes. Dr.Fadoua BOUAFIF
  • 12.
  • 13.
    Etapes d’éxecution d’unprogramme sur la machine 13 1 2 3 4 1. Codage: consiste à choisir un langage de programmation et à l'aide de son éditeur, l'algorithme est traduit et sera enregistré dans un fichier nommé source. 2. Compilation: traduit le fichier source en un fichier objet après avoir détecté toutes les erreurs syntaxiques du programme. 3. Edition de liens: consiste à combiner les différents fichiers objets pour créer un fichier exécutable. 4. Exécution : permet d’afficher le résultat du programme via l’environnement de développement intégré et le programmeur peut se rendre compte des erreurs logiques en effectuant une série de tests. Dr.Fadoua BOUAFIF
  • 14.
    Structure d'un algorithme/programme 14 EnAlgorithmique En C Algorithme nom_algorithme Const: // déclaration des constantes Var: // déclaration des variables Début instruction 1 instruction 2 …… instruction n Fin En tête Déclaration des variables et des constantes Traitement #include <stdio.h> #include <stdlib.h> int main() { //début du programme // déclaration des constantes // déclaration des variables ; instruction 1; instruction 2 ; …… instruction n ; return 0; } //fin du programme Dr.Fadoua BOUAFIF
  • 15.
    Conclusion Dans ce chapitrenous avons:  Présenté les concepts généraux relatifs à l’algorithmique  Défini la différence entre un algorithme et un programme  Détaillé les étapes de l’exécution d’un programme  Montré la structure d’un algorithme/ d’un programme 15 Dr.Fadoua BOUAFIF