Chapitre 1 (algorithme)

37
Algorithmique et structure de données 1

Transcript of Chapitre 1 (algorithme)

Page 1: Chapitre 1 (algorithme)

Algorithmique et structure de données

1

Page 2: Chapitre 1 (algorithme)

22

Plan1. 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

Page 3: Chapitre 1 (algorithme)

33

Chapitre 1 :

Introduction à l’informatique

Page 4: Chapitre 1 (algorithme)

44

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.

Page 5: Chapitre 1 (algorithme)

55

Changements de bases

Page 6: Chapitre 1 (algorithme)

66

Représentation des entiers

Page 7: Chapitre 1 (algorithme)

7

Page 8: Chapitre 1 (algorithme)

88

Représentation des nombres fractionnaires

Page 9: Chapitre 1 (algorithme)

99

Conversion de et vers la base 10

Page 10: Chapitre 1 (algorithme)

1010

Page 11: Chapitre 1 (algorithme)

1111

Page 12: Chapitre 1 (algorithme)

1212

Conversion bases 2, 8 et 16

Page 13: Chapitre 1 (algorithme)

1313

Représentation des caractères

Page 14: Chapitre 1 (algorithme)

1414

Code ASCII

Page 15: Chapitre 1 (algorithme)

1515

2. Architecture d’un ordinateur (1)

Page 16: Chapitre 1 (algorithme)

1616

Architecture d’un ordinateur (2)

Page 17: Chapitre 1 (algorithme)

1717

Mémoire centrale ou principale

Page 18: Chapitre 1 (algorithme)

1818

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.

Page 19: Chapitre 1 (algorithme)

1919

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., 5- rangement des résultats dans la mémoire centrale ou en mémoire auxiliaire

Page 20: Chapitre 1 (algorithme)

2020

3. Architecture de système informatique

Page 21: Chapitre 1 (algorithme)

2121

• 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.

Page 22: Chapitre 1 (algorithme)

2222

Page 23: Chapitre 1 (algorithme)

2323

Page 24: Chapitre 1 (algorithme)

2424

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

Page 25: Chapitre 1 (algorithme)

2525

• 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.

Page 26: Chapitre 1 (algorithme)

2626

Langages évolués de programmation

http://www.info.univ-angers.fr/~gh/hilapr/progs.htm

Page 27: Chapitre 1 (algorithme)

2727

• 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> ;

Page 28: Chapitre 1 (algorithme)

2828

• 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.

Page 29: Chapitre 1 (algorithme)

2929

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,…• …

Page 30: Chapitre 1 (algorithme)

3030

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.

Main ( ){ int a, b; a=b*b; printf(« %d »,a);}

Int carre ( int b){ return (b*b);} Main (){ int a; a= carre (b);Printf(« %d »,a); }

En C :

Page 31: Chapitre 1 (algorithme)

3131

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.

Page 32: Chapitre 1 (algorithme)

3232

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.

Page 33: Chapitre 1 (algorithme)

3333

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

Page 34: Chapitre 1 (algorithme)

3434

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.

Class Television { int poids; int longueur_diagonale; boolean allume; String Chaine_memorisees; void eteindre (); void allumer(); void memoriser_chaines (String chaine);};

En C++

Page 35: Chapitre 1 (algorithme)

3535

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

Page 36: Chapitre 1 (algorithme)

3636

Page 37: Chapitre 1 (algorithme)

3737