Table de vérité de l`opérateur ET - Sen

publicité
Traitement informatique des informations
Cours TSEN
COURS D’ALGORITHMIQUE
I – NOTIONS GENERALES
Un algorithme peut être défini comme étant un ensemble de règles opératoires, employées en vue
d’obtenir un résultat déterminé au moyen d’un nombre fini d’opérations.
Dans ce cours, nous étudierons de nombreux algorithmes fondamentaux qui se retrouvent dans des
problèmes d’origines diverses et variées.
1. Syntaxe générale
Un algorithme est défini par un nom. Il commence par décrire les objets qu’il utilise, puis les actions
réalisées sur ces objets et qui définissent le processus de résolution.
L’ensemble des objets de données représente l’environnement (c’est la partie déclarations) de
l’algorithme tandis que la description des actions constitue l’énoncé (c’est le corps) de l’algorithme.
On adopte la syntaxe générale suivante :
Algo : nom_de_algorithme
Déclarations
Déclarations des objets utilisés
Début
Liste des actions
Fin nom_de_algorithme
L’écriture d’un algorithme à partir du schéma de résolution doit être établie dans un formalisme
indépendant de tout langage de programmation. Ainsi, l’algorithme est considéré comme le support de
communication entre les programmeurs maîtrisant différents langages évolués.
Convention d’écriture : tous les mots clés du langage algorithmique peuvent être soulignés pour pouvoir
être différenciés des autres écritures et pour la lisibilité de l’algorithme.
2. Commentaires
Un algorithme doit être bien documenté, il représente un support de communication entre les
programmeurs. Ainsi, à chaque étape, il est nécessaire d’insérer des commentaires explicatifs qui
permettent d’expliciter les actions réalisées. De même, on insère aussi des commentaires pour expliciter
les rôles des objets de données utilisés.
Lycée des Métiers Jacques Prévert Combs – la – Ville
Section de BAC PRO Systèmes électroniques numériques
Electronique Industrielle Embarquée
1
Traitement informatique des informations
Cours TSEN
Un commentaire est inséré entre deux accolades, et peut être allongé sur plusieurs lignes.
Exemple :
{ ceci est un commentaire }
{ cet algorithme réalise
une opération de retrait }
II– OBJETS DE DONNEES, TYPES, OPERATIONS et ACTIONS
1. Objets de données et types
Pour chaque algorithme, on distingue les objets de données et les actions réalisées sur ces derniers. Les
objets peuvent être :



Les objets d’entrée : données fournies par l’utilisateur pour le déroulement de l’algorithme.
Les objets de sortie : résultats produits par l’algorithme.
Les objets internes : objets intermédiaires servant aux différentes manipulations pour aboutir aux
résultats attendus.
Pour déclarer un objet, on doit préciser : son nom, son utilisation, son type et sa nature.
Le Nom : Le nom est utilisé pour désigner un objet. Il doit être composé par une suite (sans espèces) de
lettres ou de chiffres et le caractère _. La première lettre doit être une lettre. C’est un identificateur de
l’objet. Il doit être le plus expressif possible.
Exemple : Prix, Age, An2001
On peut utiliser des commentaires pour expliciter le rôle d’un objet et son utilité dans l’algorithme, ce qui
facilitera la compréhension dans une relecture.
L’utilisation : La caractéristique entrée, sortie ou interne indique l’utilisation qui sera faite de l’objet.
L’algorithme peut modifier des objets qui sont alors des objets d’entrée-sortie.
Le type : Le type caractérise les valeurs que peut prendre un objet et les actions autorisées sur cet objet.
On distingue les types prédéfinis et les types nouveaux que l’utilisateur peut définir. La définition d’un
nouveau type est faite par le mot clé type. Nous verrons plus loin son utilisation.
Les principaux types simples ou prédéfinis usuels, disponibles dans presque tous les langages de haut
niveau, sont les suivants :
Le type entier : les objets prennent des valeurs entières positives ou négatives.
Le type réel : les objets prennent des valeurs réelles positives ou négatives.
Le type caractère : les objets peuvent être une lettre, un chiffre ou un symbole.
Lycée des Métiers Jacques Prévert Combs – la – Ville
Section de BAC PRO Systèmes électroniques numériques
Electronique Industrielle Embarquée
2
Traitement informatique des informations
Cours TSEN
Le type chaîne de caractères (taille) : les objets sont des suites de caractères avec une taille
donnée (le nombre de caractères composant la chaîne).
Le type booléen : les objets prennent les valeurs vrai ou faux.
La syntaxe suivante est utilisée pour la déclaration des objets :
Nom_de_objet : type
Exemple :
Prix : réel
Compteur : entier
Car : caractère
Ville : chaîne (20)
Trouve : booléen
La nature : Un objet peut être une constante ou une variable. Une constante ne change pas de contenu
durant le déroulement de l’algorithme, la seule valeur de départ est gardée. Par contre, une variable peut
prendre plusieurs valeurs compatibles avec son type.
Pour les différencier, nous déclarons les constantes avec le mot clé constantes selon la syntaxe suivante :
Constantes
Nom_constantes = valeur
Exemple :
Constantes
TVA = 0.196
Max = 15
2. Actions
Les entrées/sorties permettent à un programme de communiquer avec le monde extérieur. Les
termes entrées et sortie étant relatifs à l'emplacement où on se situe, on se placera toujours du côté
de l'algorithme. Une entrée permet au programme de demander une donnée à l'utilisateur. Une
sortie fournit un résultat à l'utilisateur.
a. Entrée : Lecture ou Saisie
Pour demander la saisie d’une donnée tapée par l’utilisateur, l’action Lire (ou Saisir) est utilisée selon la
syntaxe suivante :
Lire (identificateur)
Saisir (identificateur)
Identificateur est un nom de variable qui indiquera où sera rangée la valeur lue. On peut demander la
saisie de plusieurs variables, dans ce cas, les identificateurs seront séparés par des virgules selon la
syntaxe suivantes :
Lire (identificateur1, identificateur2, …)
Saisir (identificateur1, identificateur2, …)
Lycée des Métiers Jacques Prévert Combs – la – Ville
Section de BAC PRO Systèmes électroniques numériques
Electronique Industrielle Embarquée
3
Traitement informatique des informations
Cours TSEN
Exemple :
Lire (Prix)
Saisir (Ville, Code_postal)
b. Sortie : Affichage ou Ecriture
Pour afficher un message à l’utilisateur ou afficher le contenu d’une variable, l’action afficher (ou écrire)
est utilisée selon la syntaxe suivante :
Afficher (identificateur)
Ecrire (identificateur)
Afficher (« … »)
Ecrire (« … »)
On peut mélanger des identificateurs et des messages dans la même action d’affichage pour plus de
convivialité. Dans ce cas, il faut séparer chaque entité par des virgules selon la syntaxe suivante :
Afficher (identificateur1, « … », identificateur2, …)
Ecrire (identificateur1, « …», identificateur2, …)
Exemple :
Afficher (« Le prix à payer est : », Prix)
Ecrire (« Bonjour », Nom)
c. Affectation
A chaque variable est associé un espace mémoire indépendant repéré par le nom de celle-ci.
L’affectationconsiste à reverser la valeur d’une expression calculable, ou d’une constante ou d’une
variable dans une autre variable. La syntaxe suivante est utilisée :
Identificateur  expression
Comme indiqué par le sens de la flèche, c’est le contenu de la partie de droite qui sera versé dans la partie
de gauche. L’ancien contenu de la variable de gauche sera écrasé par le nouveau contenu.
Exemple :

Prix_HT
Ville

Prix_TTC
15.67
« Paris »

Prix_HT * TVA
Lycée des Métiers Jacques Prévert Combs – la – Ville
Section de BAC PRO Systèmes électroniques numériques
Electronique Industrielle Embarquée
4
Traitement informatique des informations
Cours TSEN
3. Opérations
a. Opérations arithmétiques
Le tableau ci-après récapitule les opérations arithmétiques usuelles disponibles dans presque tous les
langages évolués.
Opérateur
+
+
*
: DIV
/
% MOD
Désignation
Plus unaire
Moins unaire
Addition
Soustraction
Multiplication
Division avec reste
Division
Modulo reste de la division
Exemple
+X
-X
X+Y
X–Y
X*Y
X : Y ou X DIV Y
X/Y
X % Y ou X MOD Y
X et Y peuvent être des constantes entières ou des variables (de type entier ou réel) ou encore des
expressions.
b. Opérations logiques
Le tableau ci-après récapitule les opérations logiques usuelles disponibles dans presque tous les langages
évolués.
Opérateur
NON
ET
OU
OUX
Désignation
Négation
ET logique
OU logique inclusif
OU logique exclusif
Exemple
NON (X)
X ET Y
X OU Y
X OUX Y
X et Y peuvent être des variables booléennes ou des expressions logiques. Les valeurs logiques que peut
prendre une variable sont 0 pour Faux et 1 ou pour Vrai.
Lycée des Métiers Jacques Prévert Combs – la – Ville
Section de BAC PRO Systèmes électroniques numériques
Electronique Industrielle Embarquée
5
Traitement informatique des informations
Cours TSEN
Voici les tables de vérité des quatre opérateurs logiques :
Table de vérité de l’opérateur NON
X
0
1
NON(X)
1
0
Table de vérité de l’opérateur ET
X
0
0
1
1
Y
0
1
0
1
X ET Y
0
0
0
1
Y
0
1
0
1
X OU Y
0
1
1
1
Y
0
1
0
1
X OUX Y
0
1
1
0
Table de vérité de l’opérateur OU
X
0
0
1
1
Table de vérité de l’opérateur OUX
X
0
0
1
1
Lycée des Métiers Jacques Prévert Combs – la – Ville
Section de BAC PRO Systèmes électroniques numériques
Electronique Industrielle Embarquée
6
Traitement informatique des informations
Cours TSEN
c. Opérations de test
Le tableau ci-après récapitule les opérations de test usuelles disponibles dans presque tous les langages
évolués. Il faut faire attention à l’utilisation du signe =, il s’agit ici d’un test d’égalité et non d’une
affectation (désignée en haut par une flèche  ).
Opérateur
=
>
<



Désignation
Test d’égalité
Supérieur à
Inférieur à
Supérieur ou égal à
Inférieur ou égal à
Différent de
Exemple
X=Y
X>Y
X<Y
XY
XY
XY
d. Priorité et associativité des opérateurs
L’évaluation et le calcul de la valeur d’une expression suivent un ensemble de règles qui déterminent la
séquence d’exécution des différentes opérations. La priorité est relative à l’ordre par lequel on évalue les
opérateurs et l’associativité se rapporte à l’ordre par lequel on évalue les opérateurs qui ont la même
priorité.
Afin d’aboutir aux résultats attendus, il faut faire usage des parenthèses qui assurent l’ordre dans lequel
sera évaluée l’expression. Les parenthèses ont la plus forte priorité.
Le tableau suivant présente les priorités des opérateurs dans l’ordre décroissant de leurs priorités :
()
Non + - (opérateurs unaires)
* / Div Mod ET OU OUX
+ - (opérateurs binaires)
Lycée des Métiers Jacques Prévert Combs – la – Ville
Section de BAC PRO Systèmes électroniques numériques
Electronique Industrielle Embarquée
7
Traitement informatique des informations
Cours TSEN
III – ALGORIGRAMMES
C’est une représentation graphique de l’algorithme. Pour le construire, on utilise des symboles
normalisés.
Lycée des Métiers Jacques Prévert Combs – la – Ville
Section de BAC PRO Systèmes électroniques numériques
Electronique Industrielle Embarquée
8
Téléchargement