• Aucun résultat trouvé

Objectif du cours

N/A
N/A
Protected

Academic year: 2022

Partager "Objectif du cours "

Copied!
18
0
0

Texte intégral

(1)

2019/2020 Algo1 /SMIA 1

Module : Informatique 2

Algorithmique et Programmation

Première année SMIA

Département d’Informatique, Université Mohammed V Youssef.elbenani@um5.ac.ma

Objectif du cours

Objectifs :

• Apprendre les concepts de base de l'algorithmique.

• S’initier à l’analyse et la résolution de problèmes et écrire les algorithmes correspondants.

• Étudier les procédures et les fonctions qui permettent de structurer et de réutiliser les algorithmes.

• Avoir une première notion de performance des

algorithmes utilisés.

(2)

Plan du cours

Chap. 1 : L’introduction à l’algorithmique

Chap. 2 : Notions et instructions de base

Chap. 3 : Instructions de lecture et d’écriture

Chap. 4 : Instructions conditionnelles

Chap. 5 : Instructions itératives (les boucles)

Chap. 6 : Les tableaux

Chap. 7 : Les fonctions et les procédures

Chap. 8 : Complexité des algorithmes et algorithmes de tri

2019/2020 Algo1 /SMIA 3

2019/2020 Algo1 /SMIA 4

(3)

Introduction

Un ordinateur est formé d’un environnement matériel et d’un environnement logiciel.

Environnement matériel : Tous les ordinateurs,

monoprocesseurs, sont construits sur le modèle proposé en 1944 par VON NEUMANN:

Mémoire centrale (ou principale) : contient les instructions et les données. Un ensembles de cellules ou de mots ( 8bits, 16 bits, 32 ou 64 bits).

Unité centrale de traitement :formée d’une unité de commande (UC) et d’une unité arithmétique et logique (UAL). L’UC extrait des instructions et des données de la mémoire et déclenche le traitement de ces données dans l’UAL.

2019/2020 Algo1 /SMIA 5

Environnement matériel

Registres: des unités de mémorisation qui

permettent à l'unité centrale de traitement de ranger de façon temporaire des données pendant les

calculs. L'accès à ces registres est très rapide (100 fois).

Unités d'échanges : reliées à des périphériques pour échanger de l'information avec le monde extérieur. L'unité de commande dirige les unités d'échange lorsqu'elle rencontre des instructions d'entrée-sortie.

(4)

Environnement matériel

Les limites de la physique actuelle ont été atteintes en miniature et depuis 2006 la tendance nouvelle est de placer le plus possible de microprocesseurs sur une même puce (circuit-intégré).

Exemple : les processeurs 64 bits Core i7 d' INTEL ou AMD FX d'AMD, qui possèdent de 4 à 8 processeurs.

Les ordinateurs actuels introduisent, entre le processeur et la mémoire centrale, des mémoires caches qui accélèrent l'accès aux données.

Les mémoires caches primaires, directement sur le processeur, ou secondaires, situées sur la carte mère.

Certains ordinateurs introduisent un troisième niveau de cache.

2019/2020 Algo1 /SMIA 7

Environnement matériel

Les dispositifs qui servent pour la communication avec l'homme (clavier, écran, imprimantes, micros, haut- parleurs, scanners, etc.)

Les mémoires secondaires: qui permettent de conserver de l'information pour une période après l’arrêt de

l’ordinateur. Exemples : disques durs (500G, 1T,…) les CD-ROM, DVD (17G), Blu-ray(50G) ou les clés

USB(64G),…

À l'avenir, l’arrivé du « nuage » (cloud computing), disparition des mémoires locales, en faveur d’une délocalisation proposées par les centres de données (datacenters) accessibles via Internet.

2019/2020 Algo1 /SMIA 8

(5)

Environnement logiciel

Un ordinateur est livré avec un système d'exploitation.

Un système d'exploitation est un ensemble de

programmes, qui assurent la gestion des ressources, matérielles et logicielles, employées par les utilisateurs.

Un système d'exploitation a pour rôle de créer

l'environnement nécessaire à l'exécution d'un travail, et est chargé de répartir les ressources entre les usagers. Il propose aussi de nombreux protocoles de connexion pour relier l'ordinateur à un réseau.

Entre l'utilisateur et l'ordinateur, le système d'exploitation propose une interface graphique au moyen d'un

gestionnaire de fenêtres.

2019/2020 Algo1 /SMIA 9

Environnement logiciel

WINDOWS, MACOS ou LINUX pour les ordinateurs individuels, et UNIX pour les ordinateurs multi- utilisateurs.

Les systèmes d'exploitation mettent à la disposition des utilisateurs un ensemble d'applications :

traitement de texte, tableurs, outils multimédias, navigateurs pour le web, jeux, . . .

Les systèmes d’exploitation offrent un

environnement de travail pré-construit, confortable et facile d'utilisation.

(6)

Pourquoi un cours d’algorithmique

Pour proposer à la « machine» d’effectuer un travail à notre place.

Problème : expliquer à la machine comment elle doit le faire.

Besoins :

savoir expliquer et formaliser son problème

Concevoir et écrire des algorithmes (séquence d’instructions qui décrit comment résoudre un problème particulier).

2019/2020 Algo1 /SMIA 11

Les algorithmes sont anciens !

Les algorithmes ne sont pas nés avec l’informatique :

L’algorithme d’Euclide pour calculer le PGCD de deux entiers est vieux de plus de 2000 ans !

Des descriptions précises d’algorithmes sont présents dans la Chine ancienne.

(Par exemple, pour extraire des racines carrées à partir de divisions effectuées sur une « surface à calculer »).

2019/2020 Algo1 /SMIA 12

(7)

Les origines de l’algorithmique

Mohammed Al-Khwarizmi (780 - 850)

يمزراوخلا یسوم نب دمحم رفعجوبا ou يمزراوخلا ىسوم نب دمحم الله دبع وبأ

Mathématicien, géographe, astrologue et astronome

musulman arabe dont les écrits ont permis l'introduction de l'algèbre en Europe.

L’origine du mot « algorithme » est lié au nom d’Al- Khwarizmi.

Ce savant arabe a publié plusieurs méthodes pour le calcul effectif de racines d’une équation du second degré et grâce à lui les chiffres arabes ont pu se diffuser en occident.

2019/2020 Algo1 /SMIA 13

Algorithme

Savoir expliquer comment faire un travail sans la moindre ambiguïté.

Un algorithme : est une suite finie d’instructions que l’on applique à un nombre fini de données dans un ordre précis pour arriver à un résultat.

L’écriture algorithmique : un travail de programmation ayant une vision universelle :

Un algorithme ne dépend pas du langage dans lequel il est implanté,

ni de la machine qui va exécuter le programme correspondant.

(8)

2019/2020 Algo1 /SMIA 15

Algorithmique

L’algorithmique désigne la discipline qui étudie les algorithmes et leurs applications en informatique

Une bonne connaissance de l’algorithmique permet d’écrire des algorithmes exacts et efficaces

2019/2020 Algo1 /SMIA 16

Propriétés d’un algorithme

Un algorithme doit:

– avoir un nombre fini d’étapes,

– avoir un nombre fini d’opérations par étape, – se terminer après un nombre fini d’opérations, – fournir un résultat.

Chaque opération doit être:

– définie rigoureusement et sans ambiguïté – effective, c.-à-d. réalisable par une machine

Le comportement d'un algorithme est déterministe.

(9)

Les 3 étapes d’un algorithme

Les entrées (les données du problème)

Le traitement

Les sorties (l’affichage des résultats)

Les entrées : Il s’agit de repérer les données nécessaires à la résolution du problème.

Le traitement : Il s’agit de déterminer toutes les étapes des traitements à faire et donc des "instructions" à développer pour arriver aux résultats.

2019/2020 Algo1 /SMIA 17

Les 3 étapes d’un algorithme

Les sorties : les résultats obtenus peuvent

être affichés sur l’écran, ou imprimés sur

papier, ou bien encore conservés dans un

fichier.

(10)

Exemple 1 d’algorithme : recette de cuisine

2019/2020 Algo1 /SMIA 19

Exemple 2 : Algorithme de calcul

2019/2020 Algo1 /SMIA 20

(11)

Exemple 3 : algorithme de calcul de

√2

Considérons les étapes suivantes :

Étape 1 : poser a 1

Étape 2 : effectuer le calcul de a/2 +1/a

Étape 3 : affecter le résultat à a

Effectuons maintenant ces étapes simples dans l’ordre suivant : étape 1 puis étape 2 puis étape 3 puis étape 2 puis étape 3 etc.

On obtient 1 1/2+1/1=1,5 a 1,5

1,5/2+1/1,5=1,416 a 1,416

La valeur obtenue est approximation de √2

2019/2020 Algo1 /SMIA 21

Génie logiciel

Définition: le génie logiciel regroupe les sciences et les technologies qui permettent la production et la maintenance de logiciels de qualité

Le cycle de vie d’un logiciel regroupe les étapes de production du logiciel, ainsi que leur

ordonnancement.

(12)

Les étapes de développement du logiciel

2019/2020 Algo1 /SMIA 23

Les étapes de développement du logiciel

1) Analyse des besoins : que fait le système ?

On définit les fonctionnalités du système à développer.

2) Conception : comment faire le système ?

décomposition du système en modules logiciels et matériel.

3) Implémentation (codage) :

Réalisation des programmes dans un langage de programmation

2019/2020 Algo1 /SMIA 24

(13)

Les étapes de développement du logiciel

4) Tests unitaires : effectuer les tests de chaque composant du logiciel en vue de son intégration.

5) Intégration : Intégration des modules et test de tout le système

6) Livraison et maintenance:

Livraison du produit final à l'utilisateur,

Le suivi, les modifications, les améliorations après livraison.

2019/2020 Algo1 /SMIA 25

Les langages de programmation

Le langage de programmation est l'intermédiaire entre l'humain (anglais) et la machine (binaire).

Il existe des milliers de langages de niveau élevé, pour tous les goûts et toutes les applications.

Quelques uns des plus connus: C, C++, Java, PHP,…

(14)

Les langages de programmation

Haut niveau : proche de l’homme, vocabulaire et syntaxe plus riches

C++, Java, PHP,…

C, Fortran,…

Assembleur

Langage machine

Bas niveau : proche de la machine, instructions élémentaires

2019/2020 Algo1 /SMIA 27

Compilation et interpréteur

Compilation : permet de traduire le code source du programme vers le langage natif (objet) de la machine (ou parfois vers du code intermédiaire).

Interpréteur : permet de traduire et d’exécuter chaque instruction du programme. Ce mécanisme est utilisé pour le passage d’un programme précompilé à un pseudo-code (cas de Java).

2019/2020 Algo1 /SMIA 28

(15)

2019/2020 Algo1 /SMIA 29

Représentation d’un algorithme

Un algorithme, pour être lu par tous, est écrit en langage naturel (pseudo-code) ou représenté par un organigramme.

Un programme est la traduction d’un algorithme pour être compris par une machine (ordinateur,

calculatrice, téléphone,…).

(16)

2019/2020 Algo1 /SMIA 31

Représentation d’un algorithme

L’organigramme:

représentation graphique avec des symboles

(réctangles, losanges, etc.)

Offre une vue d’ensemble de l’algorithme.

Représentation presque abandonnée aujourd’hui.

Représentation d’un algorithme

Le pseudo-code:

représentation textuelle avec une série de

conventions ressemblant à un langage de

programmation.

plus pratique pour écrire un algorithme.

représentation largement utilisée.

Un algorithme écrit en pseudo-code est composé de trois parties suivantes : L’en-tête, la partie

déclarative et le corps

2019/2020 Algo1 /SMIA 32

(17)

2019/2020 Algo1 /SMIA 33

Les instructions de base

Un programme informatique est formé de quatre types d’instructions considérées comme des briques de base :

Les affectations de variables

Les lectures et/ou les écritures

Les tests

Les boucles

Formalisme d’un algorithme

Un algorithme informatique doit suivre les règles suivantes : Il est composé d’une entête et d’un corps :

l’entête, qui spécifie :

le nom de l’algorithme (Nom :)

son utilité (Rôle :)

Les données “en entrée”, c.-à-d. les éléments qui sont indispensables à son bon fonctionnement (Entrée :)

(18)

Formalisme d’un algorithme

les données “en sortie”, c.-à-d. les éléments calculés, produits, par l’algorithme (Sortie :)

les données locales à l’algorithme et indispensables (Déclaration :)

le corps, qui est composé :

du mot clé début

d’une suite d’instructions

du mot clé fin

2019/2020 Algo1 /SMIA 35

Formalisme d’un algorithme : exemple

Nom : addDeuxEntiers

Rôle : Additionner deux entiers a et b et mettre le résultat dans c

Entrée : a, b deux entiers Sortie : c un entier

Déclaration : a, b, c : entier début

c←a+b;

ecrire (ʺla somme de a et b est =ʺ, c);

fin

2019/2020 Algo1 /SMIA 36

Références

Documents relatifs

Notamment Notamment *dans le cas où, en justice, il est fait à l’agent reproche de son rôle au sein du service public, la loi impose à l’administration de soutenir

les écailles portent un très grand nombre de stries qui provoquent des interférences multiples. constructives dans des directions précises pour chaque longueur

- dans le cas où p est un nombre premier, les puissances successives qui permettent d’atteindre l’unité sont un ensemble de nombres constitué d’un plus grand nombre et de tous

«Le choix ou la fabrication des exemples: d'une manière ou d'une autre, les exemples (les phrases d'exemples des dictionnaires) qui ont à la fois une fonction

(Photo credits: KZ Gedenkstatte Dachau, courtesy of USHMM Photo Archives ).. Marche en faveur de la présidence

Un fragment de tige de quelques centimètres dérivant ou transporté par accident dans un cours d'eau peut reconstituer une plante viable. Une fois enracinée, la plante peut

En effet, pour concevoir que, pour Callias atteint de telle maladie, tel remède est bon, puis pour Socrate, et pour beaucoup de gens dans le même état, pris un par un, cela relève

Avantage : Par la construction unique avec queue d'aronde les brides de câble gamme UNI peuvent être raccourci et allongé afin de pouvoir mieux répondre à vos exigences.. Matériel