Algorithme
12/09/97
L’introduction
1. L’information c’est le traitement automatique de l’information
2. L’informatique c’est la science de l’ordinateur
1 met l’accent sur le concept d’information ( le côté humain de l’information)
2 met l’accent sur l’ordinateur ( insiste sur l’importance de la machine)
La difficulté majeure de l’information est la nécessité de passer de concepts humains à
une représentation mécanique
Une information est critère qui permet de restreindre la taille d’un ensemble où l’on
recherche la réponse à une question
Le traitement de l’information n’ajoute jamais d’information mais se contente d’extraire
l’information intéressante parmi celle que contiennent les données
Un système :
Un ensemble de parties coordonnées en vue d’atteindre un ensemble d’objectifs:
- Par ses objectifs : ensemble de taches à executer dans des conditions
données.
- Par sa composition : ensemble organisé d'éléments fonctionnels
composition d’un système, on distingue :
les entrées : variables dont les valeurs sont
imposées par l’extérieur
les sorties : variables qui agissent sur l’extérieur
les opérateurs : réalisent la transformation des
entrées en sortie
Entrées Transformation Sortie
E1 opérations S1
E2 internes S2
E3 S3
Ces transformations
sont étudiées en
algorithmique
Algorithmique : c’est la science de fabrication des algorithmes
Algorithme : c’est la démarche logique et naturelle dans la résolution d’un problème
c’est une succession d’opération qui permet de faire passer l’environnement de
l’état initial à l’état final (ensemble = ensemble des objets)
Les algorithmes écrits, il faut les coder dans un certain langage de programmation
La notion de programmation :
c’est l’art de faire des programmes
Un programme est une suite de déclaration et d’instruction écrites dans un
langage de programmation donné, permettant à un machine sur laquelle ce
langage est utilisable, d’exécuter un certain travail
Ecrire dans un langage approprié un certain travail
2 3 1
1. la description de ce travail = la fabrication de l’algorithme
2. c’est la traduction de l’algorithme
3. Dans un langage compréhensible par l’ordinateur
- pour executer un programme P écrit dans un langage de programmation L, il faut pouvoir le
mettre à la portée de la machine.
Il existe 2 modes :
* Le mode interprété : La correspondance est effectuée grâce à un programme spécial,
l'interprète, qui opère sur le programme et les données.
L'interprète décode P au fur et à mesure, et effectue les actions demandées.
* le mode compilé, dont l'exécution comprend 2 étapes :
Traduction de P en 1 programme équivalent exprimé en langage machine, traduction opérée par
un programme spécial, le compilateur.
La compilation, contrairement à l'interprétation, s'effectue une fois pour toute.
Notion d’action et de processeur
Soit l’énoncé E1
E1 Confection d’une omelette de 6 œufs
a- casser six œufs dans une coupe
b- battre les œufs avec une fourchette
c- chauffer beurre dans la poêle
d- poêle chaude, verser le contenu de la coupe
e- enlever la poêle, quand cuit
L’énoncé E1 décrit un travail donné
Définition :
On appelle processeur toute entité capable de comprendre un énoncé et
d’exécuter le travail indiqué.
Dans le cas de E1, toute personne sachant lire et disposant des ustensiles nécessaire, peut être
processeur.
Définition :
On appelle environnement d’un travail, l’ensemble des ustensiles (objets)
nécessaire à l’exécution du travail
Dans la description des travaux précédents, on distingue plusieurs étapes (1,2,3,... ;a,b,c,d,...)
Après chaque étape l’environnement est modifié
ex : avant a : la coupe est vide
après a : la coupe contient les œufs
Chaque étape constitue une action
Définition :
On appelle action un événement qui modifie l’environnement
En général, le processeur exécute les actions dans l’ordre dans lequel elles
apparaissent dans l’énoncé
Il respecte la séquence des actions
Une même action peut apparaitre plusieurs fois.
Action primitive ; décomposition d’une action
Définition :
Pour un processeur donné, une action est primitive si l’énoncé de cette action est à lui
seul suffisant pour que le processeur puisse l’exécuter sans information supplémentaire
Définition :
Pour un processeur donné, une action non-primitive doit être décomposée en actions
primitives
ex : décomposition de a
a1. Prendre une boite d’œuf, l’ouvrir, poser les œufs sur le plan de travail (il y
en a 6)
Répéter
a2. Prendre un œuf sur le plan de travail
a3. Le casser et versé son contenu dans la coupe
a4. Jeter la coquille à la poubelle
jusqu'à ce qu’il n’y ait plus d’œufs sur le plan de travail
Les actions a2, a3, a4 constituent un bloc.
A1 : initialisation
Analyse descendante : Top Down
Soit T un travail décrit par un énoncé non primitif. L'analyse descendante consiste à trouver 1
décomposition t1 t2 tn qui soit une suite d'énoncés dont l'exécution réalise le travail T.
Algorithme :
Etant donné un processeur bien défini et un traitement à exécuter par ce processeur, un
algorithme du traitement est l’énoncé d’une séquence d’actions primitives que devra effectuer le
processeur pour arriver en un temps fini au résultat demandé (définie par une
« post-condition » ), à partir d’une situation donnée (définie par une « pré-conditon »)
Notion d’objet informatique
A l’origine d’un traitement informatique l’on trouve toujours une situation réelle dont
les informations manipulées au cours du traitement représentant une image.
Cette image (ou modèle est construite par un processus faisant suite à une analyse de la
situation réelle.
Cette analyse consiste à dégager
des grandeurs caractéristiques, reliées par des relations
des invariants
Dans les modèles utilisés en informatique, les éléments de base sont souvent des
objets abstraits = informations pouvant prendre un ensemble fini ou infini de valeurs discrètes
ou continues. ( ex : objet mathématique )
Pour permettre leur utilisation par une machine les « objets abstraits » sont
représenter par des objets informatiques = information ne pouvant prendre qu’un nombre fini
de valeurs discrètes
Ce sont ces derniers objets qui sont représentés physiquement dans les machines
l’activité de programmation s’intéresse :
aux objets informatiques
à leurs modes de représentation en machine
aux traitements qui leur sont appliqués
objet réels objets abstraits objet informatique représentation en mémoire représentation physique
monde réel modèle algorithme programme machine
Les algorithmes sont composés :
d'entités informatique ( ou objets) qui représentent l’information
d'opérations (ou manipulations) qui manipulent des objets
de structures de commandes qui gouvernent le déroulement des informations
Pour l’étude d’un problème, il faut définir un univers (ou environnement)
Cet univers est caractérisé par un état (qui est l’état de l’ensemble des objets)
L’état de l’environnement change au cours du temps, cette évolution est discrète.
(on peut définir différent instants de référence)
Les objets ont des propriétés qui doivent être connus à la fin par la machine, le programmeur,
utilisateur. L’intervalle des valeurs possible dépends du langage de programmation.
Mais l’intervalle des valeurs possibles pour un entier dépends de l’ordinateur sur lequel nous travaillons
L’ordinateur manipule des objets qui sont des configurations de listes d’objets ou de notes. Comme les
représentations physiques varient selon les objets à manipuler, il faudra pour le programmeur définir :
précisément les objets à manipuler
manipuler leurs types
Algorithmique
19/09/97
La spécification du type des objets
définition :
Un type est un ensemble de valeurs munies de propriétés communes à ces valeurs et munies
d’opérations qui permettent de les manipuler
exemple :
type SALAIRE= nombre entiers de centimes, supérieur ou égale à 0 . inférieur à une
limite
opération= l’arrondi, comparaison, augmenter, diminuer, multiplier
propriétés= nombre de chiffres requis pour afficher les valeurs singulières
Mais pourquoi des types ?
clarté, lisibilité
( ne pas mélanger des objets de nature différente)
efficacité
L’ensemble des valeurs possibles pour un objet étant connues, la
quantité d’informations nécessaires pour coder une valeur est connue
optimisation de la taille de la mémoire nécessaire
optimisation des procédure de codage
(décodage de valeur)
vérification à priori
La compilateurs peut avertir le programmeur de son erreur =>
amélioration de la sécurité du programme
Comment introduire un type de données dans le programme
Pour pouvoir citer un type, il faut l’identifier en lui donnant un nom
Certains noms sont prédéfinis : ils ne font pas l’objet de déclarations
dans le programme
D’autres sont définis explicitement : ils font l’objet de déclarations de
type dans le programme avant toute utilisation : on parle de type
construit
La forme générale d'un type sera :
- Type T = <Type>
où T est l'identificateur du type
Type est une description du type
Les types prédéfinis simples (ou standards)
Le type caractère
Chaque ordinateur possède un « jeu de caractères » grâce auquel il communique avec
l’extérieur.
Ces caractères sont disponibles sur le périphérique d’entrée (lecture, clavier) ou de
sortie (imprimante)
On dispose au minimum de : 26 minuscules, 26 majuscules, 10 chiffres, les ponctuations
Les jeux courants sont :
ISO {Office de Normalisation Internationale}
EBCDIC {IBM}
ASCII {American Standard Code For Info Interchange}
Le type entier
Le type entier représente un domaine de valeurs entière, positives, nulles ou négatives
limitées par les caractérisation de l’ordinateur.
Ces limites sont variables d’un ordinateur à un autre => Possibilités de débordement
L’ensemble des valeurs admises est un ensemble général
{-2exp(n-1) ;... ;(2exp(n-1))-1}
n est un entier qui dépends du nombre de bits requis pour coder un entier
Les valeurs entières sont dotées des relations d’ordre habituelles
Les opérateurs suivants sont définis :
+, - , x, div, mod
Si une opération produit un résultat qui sort de l’intervalle des valeurs ordinaires il y a
dépassement de capacité.
L’ordinateur le signal et abandonne le calcul ( sauf si le cas a été défini de façon
explicite à la création de l’algorithme.
Attention :
(100+100) - 90 n’est pas égal à (100 -90) + 100
Le type réel
Le type réel décrit un domaine de valeurs qui sont en réalité une approximation de
nombres réels
(chaque valeur de ce type représente un intervalle de valeurs réelles)
La représentation interne de ces types comprend 1 nombre fractionnaire et un facteur
d'échelle.
Le type booléen
Le type booléen définit le domaine de valeurs logiques formé de 2 éléments : vrai ou
faux Les opérateurs standards sont définis sur des arguments de ce type.
OU ( )
ET ( )
NON ( )
Les relations produisent un résultat de type booléen
vrai : la relation est satisfaite
faux : la relation n’est pas satisfaite
Etant donné 2 arguments booléens p et q, les valeurs des relations pq, pq, p, q
1 / 18 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !