SlideShare une entreprise Scribd logo
Algorithmique et structure de données




                                        1
Plan
1. Introduction à l’informatique
2. Notions élémentaires des algorithmes : déclarations,
   entrées/sorties, calcul, affectations
3. Les structures conditionnelles
4. Les structures itératives
5. Les tableaux
6. Les chaines de caractères
7. Les enregistrements
8. Les procédures et fonctions
                                                      2
Chapitre 1 :

Introduction à l’informatique




                                3
1. Représentations des données
• Les informations traitées par un ordinateur peuvent être de
  différents types (texte, nombres, etc.) mais elles sont toujours
  représentées et manipulées par l'ordinateur sous forme binaire.
  Toute information sera traitée comme une suite de 0 et de 1.
  L'unite d'information est le chiffre binaire (0 ou 1), que l'on
  appelle bit (pour binary digit, chiffre binaire).

• Le codage d'une information consiste a établir une
  correspondance entre la représentation externe (habituelle) de
  l'information (le caractère A ou le nombre 36 par exemple), et sa
  représentation interne dans la machine, qui est une suite de bits.

                                                                  4
Changements de bases




                       5
Représentation des entiers




                             6
7
Représentation des nombres
      fractionnaires




                             8
Conversion de et vers la base 10




                                   9
10
11
Conversion bases 2, 8 et 16




                              12
Représentation des caractères




                                13
Code ASCII




             14
2. Architecture d’un ordinateur (1)




                                      15
Architecture d’un ordinateur (2)




                                   16
Mémoire centrale ou principale




                                 17
Processeur



C'est le moteur de l'ordinateur. Il exécute les instructions
contenues dans les programmes. Il le fait de façon plus ou
moins rapide en fonction de la fréquence interne du
processeur. Par exemple un processeur à 3 Ghz effectue
3 milliards d'opérations à la seconde.




                                                               18
Exécution d’instructions




L'unité de commande et de contrôle effectue les opérations suivantes :
1- extraction de l'instruction à exécuter,
2- analyse de cette instruction et liaison avec l'U.A.L. (Unité Arithmétique et Logique) ,
3- recherche des données à traiter dans la mémoire centrale,
4- déclenchement du traitement dans l'U.A.L.,
                                                                                      19
5- rangement des résultats dans la mémoire centrale ou en mémoire auxiliaire
3. Architecture de système informatique




                                     20
• Langage machine : Le langage machine appelé aussi
  langage binaire, c'est avec ce langage que
  fonctionnent les ordinateurs. Il consiste à utiliser deux
  états (représentés par les chiffres 0 et 1) pour coder les
  informations (texte, images etc.).
• Dans le langage machine, le programmeur doit entrer
  chaque commande et toutes les données sous forme
  binaire c'est à dire sous forme de suite d'octets.
• Le programme écrit en langage évolué (C, Pascal)
  sera traduit en langage machine par un programme
  particulier appelé compilateur.

                                                          21
22
23
4. Les types de Langages informatiques

• Langage machine
• Langage assembleur (assembly language)
• Langage évolué
     • Les langages de scripts (langages interprétés)
     • Les langages compilés
• Langage de balisage (langage de marquage)
• Langage de requête

                                                        24
• Le langage évolué est un langage qui accomplit beaucoup pour un
  minimum de code et d'effort de programmation,
• Titre d'exemple : Pascal, Java, C, C++, C#, Visual Basic (ou VB),
  Delphi, Python, Perl, PHP, JavaScript, VBscript, ASP etc.
• Bref la syntaxe des langages évolués est très simplifiée, on y
  trouve par exemple des mots en anglais (if, do while, switch,
  integer, string) donc il est plus accessible et compréhensible aux
  gens que l'assembleur lui même plus accessible que le langage
  machine.
• Ces langages sont traduits en langage machine avant leur
  exécution par un programme compilateur, ces programmes
  fonctionnent ensuite comme s'ils étaient directement écrits en
  langage machine.
                                                                25
Langages évolués de programmation




                                                      26
http://www.info.univ-angers.fr/~gh/hilapr/progs.htm
• Langage de balisage (langage de marquage)
Ces langages reposent sur ce qu'on appelle des balises ou tags,ces
  derniers sont des étiquettes avec lesquelles on peut étiqueter
  des données (mots, texte etc.) pour produire un effet chez eux
  tant en sens (leurs donner du sens : ceci est un paragraphe,
  ceci est un titre, citation etc.) qu'en rendu visuel (italique, gras,
  couleur du texte etc.), on peut étiqueter des données en les
  encadrant par ces balises, parmi ce type de langages il y a le
  HTML (HyperText Markup Language), le XML, le SGML,
  XHTML (Extensible HyperText Markup Language).
Par exemple :
  Pour mettre en italique : <i> texte en italique </i> ;

                                                                     27
• Langages de requêtes
Ces langages qualifient le plus souvent les langages
propres aux bases de données, ils sont représentés
notamment par le SQL (structured query language) en
français langage structuré de requêtes, il permet tout
simplement de gérer une base de données par exemple
l'interroger, y insérer des données ou en supprimer
d'autres, lui demander de faire ressortir des données selon
des critères que je lui fixe.


                                                        28
Paradigme (ou style ou type) des langages
          de programmations
•   Langages impératifs et procéduraux : comme C, …
•   Langages à objets : comme C++, Java,…
•   Langages déclaratifs : comme Prolog,..
•   Langages logiques : comme Prolog,…
•   Langages fonctionnels : comme Lisp,…
•   …

                                                      29
Langages impératifs et procéduraux
• Langages impératifs : une instruction du langage
  correspond à un ensemble d'instructions du langage
• Un programme est formé par plusieurs procédure. Une
  procédure, appelée également fonction, est une suite
  d'instructions devant être effectuée dans un ordre précis.
   En C :                        Int carre ( int b)
    Main ( )                     {
    {                              return (b*b);
      int a, b;                  }
      a=b*b;
      printf(« %d »,a);          Main ()
    }                            { int a;
                                  a= carre (b);
                                 Printf(« %d »,a); }     30
Langages déclaratifs
• Un langage déclaratif ne décrit pas comment
  est réalisée une opération, comme dans un
  langage impératif, mais décrit le problème lui-
  même, sans s'intéresser au contexte.
• Figurent parmi les langages déclaratifs Oz,
  Prolog ou encore Clips.


                                               31
Langages logiques
• Un programme logique est composé de faits et de règles qui sont
  traités par un moteur d'inférence.
• Prolog fut le premier langage de ce type à être fonctionnel sur un
  ordinateur.




                                                                32
Langages fonctionnels
• Dans ce paradigme, l'opération de base n'est pas
  l'affectation, contrairement aux langages impératifs, mais
  l'évaluation de fonctions.

• Par exemple avec Lisp:
   (first '(7 3 10))
           cela donne 7
  (* (+ 2 2) 4)
           cela donne 16

                                                         33
Langages à objets
• Les langages à objets offrent une abstraction à la machine :
  l'objet est une structure sémantique indépendante qui rassemble
  des données et des traitements.
• En se basant sur une méthode de conception à objet et sur un
  langage de modélisation à objet, on peut facilement implanter un
  concept au moyen d'un langage de programmation à objets.
                                             En C++
                            Class Television {
                             int poids;
                             int longueur_diagonale;
                             boolean allume;
                             String Chaine_memorisees;

                                 void eteindre ();
                                 void allumer();
                                 void memoriser_chaines (String chaine);
                            };                                             34
5. Introduction à l’algorithmique
• L'algorithmique est l’ensemble des règles et des techniques qui sont
  impliquées dans la définition et la conception d'algorithmes, c'est à dire
  de processus systématiques de résolution, par le calcul, d'un problème
  permettant de décrire les étapes vers le résultat.
• En d'autres termes, un algorithme est une suite finie et non-ambiguë
  d’opérations permettant de donner la réponse à un problème.
• Un algorithme est une solution informatique indépendant du langage de
  programmation
• Un algorithme est une étape qui précède l’implémentation d’un
  programme permettant de faire un raisonnement sur la suite
  d’instructions nécessaires
• Le style de structure d’algorithme traité dans ce cours s’inspire des
  langages de programmation impératifs et procéduraux
                                                                       35
36
37

Contenu connexe

PDF
Programmation en C
PDF
Cours algorithme
PDF
Chapitre iv algorithmes de tri
PDF
Curriculum informatique 2ème année Septembre 2019
PDF
Chapitre iii récursivité et paradigme diviser pour régner
PPTX
Les structures de données.pptx
PDF
Algorithmique
PPTX
L’algorithme 1.pptx
Programmation en C
Cours algorithme
Chapitre iv algorithmes de tri
Curriculum informatique 2ème année Septembre 2019
Chapitre iii récursivité et paradigme diviser pour régner
Les structures de données.pptx
Algorithmique
L’algorithme 1.pptx

Tendances (20)

PDF
cours algorithme et structure de données 1er année
PDF
Python avancé : Ensemble, dictionnaire et base de données
PPTX
Python.pptx
PDF
Chapitre8: Collections et Enumerations En Java
PDF
EXPOSE SUR L’ALGORITHME DU TRI À BULLES (BUBBLE SORT).
DOC
Fonctions chaine
PPTX
Chapitre1: Langage Python
PDF
Introduction au Deep Learning
PDF
Chapitre 2 complexité
PPSX
Cours algorithme: structures répétitives
PPT
Cours langage c
PPT
Cours Visual Basic.NET
PDF
Manuel des TP : Atelier Web 2
PDF
Chapitre 5 arbres binaires
PPTX
Introduction aux systèmes répartis
PDF
Ch2-Notions de base & actions élémentaires.pdf
PDF
Fiche TD sur les systèmes informatiques
PPTX
Introduction à Python
PDF
Chapitre i introduction et motivations
PPT
Ch1 systemenumeration
cours algorithme et structure de données 1er année
Python avancé : Ensemble, dictionnaire et base de données
Python.pptx
Chapitre8: Collections et Enumerations En Java
EXPOSE SUR L’ALGORITHME DU TRI À BULLES (BUBBLE SORT).
Fonctions chaine
Chapitre1: Langage Python
Introduction au Deep Learning
Chapitre 2 complexité
Cours algorithme: structures répétitives
Cours langage c
Cours Visual Basic.NET
Manuel des TP : Atelier Web 2
Chapitre 5 arbres binaires
Introduction aux systèmes répartis
Ch2-Notions de base & actions élémentaires.pdf
Fiche TD sur les systèmes informatiques
Introduction à Python
Chapitre i introduction et motivations
Ch1 systemenumeration
Publicité

En vedette (20)

ODP
Girard Intranet
PDF
Chapitre 3
PPT
Installer un réseau poste à poste dans une école primaire
PPT
Intro technos-reseau
PDF
Intro_Programmation_Informatique
PPTX
JASPARD, M. LOGIC un service GeoWeb d’aide à la décision et à la coopération...
PPTX
Algorithmic Forex Trading
PDF
Digital elect total
PDF
Combinators - Lightning Talk
PDF
Combinational logic
PDF
Bca i sem de lab
PDF
exercice_réseau
PPTX
Combinational circuit (7-Segment display)
PDF
58210401202 งาน 1 ss
PPTX
Assurance Qualité logicielle
PPT
Structure de données en PHP
PPT
S4 réseaux et internet
PDF
combinational_circuits
PPTX
Canaux logiques et codage dans le gsm
PPT
COMBINATIONAL CIRCUITS & FLIP FLOPS
Girard Intranet
Chapitre 3
Installer un réseau poste à poste dans une école primaire
Intro technos-reseau
Intro_Programmation_Informatique
JASPARD, M. LOGIC un service GeoWeb d’aide à la décision et à la coopération...
Algorithmic Forex Trading
Digital elect total
Combinators - Lightning Talk
Combinational logic
Bca i sem de lab
exercice_réseau
Combinational circuit (7-Segment display)
58210401202 งาน 1 ss
Assurance Qualité logicielle
Structure de données en PHP
S4 réseaux et internet
combinational_circuits
Canaux logiques et codage dans le gsm
COMBINATIONAL CIRCUITS & FLIP FLOPS
Publicité

Similaire à Chapitre 1 (algorithme) (20)

PDF
Algorithme et Programmation
PDF
Algorithme et programmation.pdf
PDF
Cours programmation en langage C.pdf
PPT
Langage_C.azadaddzazazazaazeazeazeazeazeazeaze"e"&"e""rfrff"r"e"&e"e"
PDF
Cours.langage c
PDF
Ktab asd
PPT
Introduction générale au notion d'algorithmique et programmationt
PPT
Algorithmique_Programmation_informatique
PPTX
Theme1 (1)
PDF
6752018 algorithmique
PDF
Algorithmique_et_programmation_I_Plan_du.pdf
PPT
Programmation_c_complet__niveau_université.ppt
PDF
Théorie des langages - 00 - Introduction
PPTX
Formation Langage c.pptx
PPTX
cours fortran.pptx
PDF
cours Algorithmique SMP-SMC s2 by coursedu.blogspot.com
PPT
Pl 2-bis
PPSX
0002- Introduction au Langage Pascal.ppsx
Algorithme et Programmation
Algorithme et programmation.pdf
Cours programmation en langage C.pdf
Langage_C.azadaddzazazazaazeazeazeazeazeazeaze"e"&"e""rfrff"r"e"&e"e"
Cours.langage c
Ktab asd
Introduction générale au notion d'algorithmique et programmationt
Algorithmique_Programmation_informatique
Theme1 (1)
6752018 algorithmique
Algorithmique_et_programmation_I_Plan_du.pdf
Programmation_c_complet__niveau_université.ppt
Théorie des langages - 00 - Introduction
Formation Langage c.pptx
cours fortran.pptx
cours Algorithmique SMP-SMC s2 by coursedu.blogspot.com
Pl 2-bis
0002- Introduction au Langage Pascal.ppsx

Chapitre 1 (algorithme)

  • 2. Plan 1. Introduction à l’informatique 2. Notions élémentaires des algorithmes : déclarations, entrées/sorties, calcul, affectations 3. Les structures conditionnelles 4. Les structures itératives 5. Les tableaux 6. Les chaines de caractères 7. Les enregistrements 8. Les procédures et fonctions 2
  • 3. Chapitre 1 : Introduction à l’informatique 3
  • 4. 1. Représentations des données • Les informations traitées par un ordinateur peuvent être de différents types (texte, nombres, etc.) mais elles sont toujours représentées et manipulées par l'ordinateur sous forme binaire. Toute information sera traitée comme une suite de 0 et de 1. L'unite d'information est le chiffre binaire (0 ou 1), que l'on appelle bit (pour binary digit, chiffre binaire). • Le codage d'une information consiste a établir une correspondance entre la représentation externe (habituelle) de l'information (le caractère A ou le nombre 36 par exemple), et sa représentation interne dans la machine, qui est une suite de bits. 4
  • 7. 7
  • 8. Représentation des nombres fractionnaires 8
  • 9. Conversion de et vers la base 10 9
  • 10. 10
  • 11. 11
  • 12. Conversion bases 2, 8 et 16 12
  • 15. 2. Architecture d’un ordinateur (1) 15
  • 17. Mémoire centrale ou principale 17
  • 18. Processeur C'est le moteur de l'ordinateur. Il exécute les instructions contenues dans les programmes. Il le fait de façon plus ou moins rapide en fonction de la fréquence interne du processeur. Par exemple un processeur à 3 Ghz effectue 3 milliards d'opérations à la seconde. 18
  • 19. Exécution d’instructions L'unité de commande et de contrôle effectue les opérations suivantes : 1- extraction de l'instruction à exécuter, 2- analyse de cette instruction et liaison avec l'U.A.L. (Unité Arithmétique et Logique) , 3- recherche des données à traiter dans la mémoire centrale, 4- déclenchement du traitement dans l'U.A.L., 19 5- rangement des résultats dans la mémoire centrale ou en mémoire auxiliaire
  • 20. 3. Architecture de système informatique 20
  • 21. • Langage machine : Le langage machine appelé aussi langage binaire, c'est avec ce langage que fonctionnent les ordinateurs. Il consiste à utiliser deux états (représentés par les chiffres 0 et 1) pour coder les informations (texte, images etc.). • Dans le langage machine, le programmeur doit entrer chaque commande et toutes les données sous forme binaire c'est à dire sous forme de suite d'octets. • Le programme écrit en langage évolué (C, Pascal) sera traduit en langage machine par un programme particulier appelé compilateur. 21
  • 22. 22
  • 23. 23
  • 24. 4. Les types de Langages informatiques • Langage machine • Langage assembleur (assembly language) • Langage évolué • Les langages de scripts (langages interprétés) • Les langages compilés • Langage de balisage (langage de marquage) • Langage de requête 24
  • 25. • Le langage évolué est un langage qui accomplit beaucoup pour un minimum de code et d'effort de programmation, • Titre d'exemple : Pascal, Java, C, C++, C#, Visual Basic (ou VB), Delphi, Python, Perl, PHP, JavaScript, VBscript, ASP etc. • Bref la syntaxe des langages évolués est très simplifiée, on y trouve par exemple des mots en anglais (if, do while, switch, integer, string) donc il est plus accessible et compréhensible aux gens que l'assembleur lui même plus accessible que le langage machine. • Ces langages sont traduits en langage machine avant leur exécution par un programme compilateur, ces programmes fonctionnent ensuite comme s'ils étaient directement écrits en langage machine. 25
  • 26. Langages évolués de programmation 26 http://www.info.univ-angers.fr/~gh/hilapr/progs.htm
  • 27. • Langage de balisage (langage de marquage) Ces langages reposent sur ce qu'on appelle des balises ou tags,ces derniers sont des étiquettes avec lesquelles on peut étiqueter des données (mots, texte etc.) pour produire un effet chez eux tant en sens (leurs donner du sens : ceci est un paragraphe, ceci est un titre, citation etc.) qu'en rendu visuel (italique, gras, couleur du texte etc.), on peut étiqueter des données en les encadrant par ces balises, parmi ce type de langages il y a le HTML (HyperText Markup Language), le XML, le SGML, XHTML (Extensible HyperText Markup Language). Par exemple : Pour mettre en italique : <i> texte en italique </i> ; 27
  • 28. • Langages de requêtes Ces langages qualifient le plus souvent les langages propres aux bases de données, ils sont représentés notamment par le SQL (structured query language) en français langage structuré de requêtes, il permet tout simplement de gérer une base de données par exemple l'interroger, y insérer des données ou en supprimer d'autres, lui demander de faire ressortir des données selon des critères que je lui fixe. 28
  • 29. Paradigme (ou style ou type) des langages de programmations • Langages impératifs et procéduraux : comme C, … • Langages à objets : comme C++, Java,… • Langages déclaratifs : comme Prolog,.. • Langages logiques : comme Prolog,… • Langages fonctionnels : comme Lisp,… • … 29
  • 30. Langages impératifs et procéduraux • Langages impératifs : une instruction du langage correspond à un ensemble d'instructions du langage • Un programme est formé par plusieurs procédure. Une procédure, appelée également fonction, est une suite d'instructions devant être effectuée dans un ordre précis. En C : Int carre ( int b) Main ( ) { { return (b*b); int a, b; } a=b*b; printf(« %d »,a); Main () } { int a; a= carre (b); Printf(« %d »,a); } 30
  • 31. Langages déclaratifs • Un langage déclaratif ne décrit pas comment est réalisée une opération, comme dans un langage impératif, mais décrit le problème lui- même, sans s'intéresser au contexte. • Figurent parmi les langages déclaratifs Oz, Prolog ou encore Clips. 31
  • 32. Langages logiques • Un programme logique est composé de faits et de règles qui sont traités par un moteur d'inférence. • Prolog fut le premier langage de ce type à être fonctionnel sur un ordinateur. 32
  • 33. Langages fonctionnels • Dans ce paradigme, l'opération de base n'est pas l'affectation, contrairement aux langages impératifs, mais l'évaluation de fonctions. • Par exemple avec Lisp: (first '(7 3 10)) cela donne 7 (* (+ 2 2) 4) cela donne 16 33
  • 34. Langages à objets • Les langages à objets offrent une abstraction à la machine : l'objet est une structure sémantique indépendante qui rassemble des données et des traitements. • En se basant sur une méthode de conception à objet et sur un langage de modélisation à objet, on peut facilement implanter un concept au moyen d'un langage de programmation à objets. En C++ Class Television { int poids; int longueur_diagonale; boolean allume; String Chaine_memorisees; void eteindre (); void allumer(); void memoriser_chaines (String chaine); }; 34
  • 35. 5. Introduction à l’algorithmique • L'algorithmique est l’ensemble des règles et des techniques qui sont impliquées dans la définition et la conception d'algorithmes, c'est à dire de processus systématiques de résolution, par le calcul, d'un problème permettant de décrire les étapes vers le résultat. • En d'autres termes, un algorithme est une suite finie et non-ambiguë d’opérations permettant de donner la réponse à un problème. • Un algorithme est une solution informatique indépendant du langage de programmation • Un algorithme est une étape qui précède l’implémentation d’un programme permettant de faire un raisonnement sur la suite d’instructions nécessaires • Le style de structure d’algorithme traité dans ce cours s’inspire des langages de programmation impératifs et procéduraux 35
  • 36. 36
  • 37. 37