0% ont trouvé ce document utile (0 vote)
143 vues21 pages

Introduction à l'Algorithmique

Le document décrit les bases de l'algorithmique et des algorithmes. Il explique ce qu'est un algorithme et ses différentes étapes. Il présente également les types de données et opérateurs utilisés ainsi que des instructions comme les affectations, les lectures/écritures et les structures conditionnelles.

Transféré par

steve landry
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
143 vues21 pages

Introduction à l'Algorithmique

Le document décrit les bases de l'algorithmique et des algorithmes. Il explique ce qu'est un algorithme et ses différentes étapes. Il présente également les types de données et opérateurs utilisés ainsi que des instructions comme les affectations, les lectures/écritures et les structures conditionnelles.

Transféré par

steve landry
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Les instructions de base

Pourquoi un cours d'algorithmique (1)


Objectif : obtenir de la ''machine'' qu'elle effectue un 
travail à notre place. 


Difficultés : expliquer à la machine comment elle doit 
s'y prendre : 
– Mais comment le dire ? 
– Comment le lui apprendre ? 
– Comment s'assurer qu'elle fait ce travail aussi bien que 
nous ? 
Pourquoi un cours d'algorithmique (2)


Objectif de cet enseignement: 
– Résoudre des problèmes ''comme'' une machine

– Savoir expliquer son raisonnement 
expliquer

– Savoir formaliser son raisonnement 
formaliser

– Concevoir et écrire des algorithmes. 
algorithmes
C'est quoi un algorithme

L'algorithmique vous le pratiquez tous les jours, 
depuis longtemps
– Meuble en kit  → (notice de montage) → cuisine équipée
– Farine, oeufs, chocolat, etc → (recette) → Forêt noire  


Algorithme = suite de calcul pour résoudre un 
problème 
– Par application d'un nombre fini d'opérations
– Sur un certain nombre de données

• Un  algorithme  traduit  dans  un  langage  compréhensible 


par l'ordinateur (ou langage de programmation) donne un 
programme, qui peut être ensuite exécuté pour effectuer 
un traitement souhaité.  
Un premier algorithme
Algorithme Carré
Variables unNombre, sonCarré : entiers {déclarations : Réservation
d'espace mémoire}
début
{préparation du traitement}
ecrire("Quel
ecrire nombre voulez-vous élever au carré?")
lire(unNombre)
lire
{traitement : calcul du carré}
SonCarré ← unNombre×unNombre

{présentation du résultat}
ecrire("Le
ecrire carré de ", unNombre, "c'est ", sonCarré)

fin
Les trois étapes d’un algorithme

Préparation du traitement
– données nécessaires à la résolution du problème


Traitement
– résolution pas à pas, après décomposition en 
sous-problèmes si nécessaire

• Edition des résultats
– impression à l’écran, dans un fichier, etc.
Variables et expressions
• Une variable est une zone de la mémoire dans laquelle 
on peut stocker des données.

Variable  <liste d’identificateurs> : type

• La taille de cette zone dépend du type de la donnée (et 
pas de la valeur qui est stockée) 

• Exemples : 
    Variables Age, note : entiers   
      nom, prénom : chaînes de caractères
Variables et expressions
• Expression : suite bien formée d'opérateurs portant sur des 
variables ou des valeurs et qui a une valeur. 
• Divers opérateurs pour manipulater des données : 
– Opérateurs arithmétiques (+ - * / mod div)
– Opérateurs de comparaison (< >, =, <>, >=, >=)
– Opérateurs booléens (And, Or, Not)

• Une expression est d'un certain type. 
si X une variable de type entier a la valeur 4, alors : 
1.  L'expression 4 a la valeur 4
2.  L'expression X a la valeur 4
3.  L'expression X*X a la valeur 16
4.  L'expression (X+(X*2)) <= 9 a la valeur FAUX
Représentation des variables en mémoire

• Toute  variable  manipulée  dans  un  programme  est  stockée 


quelque part en mémoire centrale. 
• Cette  mémoire  est  constituée  d'octets  qui  sont  identifiés  de 
manière unique par un numéro qu'on appelle adresse.
• Pour  retrouver  une  variable,  il  suffit  donc  de  connaître  l'adresse 
de  l'octet  où  elle  est  stockée  (ou,  s'il  s'agit  d'une  variable  qui 
recouvre  plusieurs  octets  contigus,  l'adresse  du  premier  de  ces 
octets). 
• Pour  des  raisons  évidentes  de  lisibilité,  on  désigne  souvent  les 
variables par des identificateurs, et non par leur adresse. 
– C'est le compilateur qui fait alors le lien entre l'identificateur 
d'une variable et son adresse en mémoire.
Adresse et variable

• Toute  variable  est  donc  caractérisée  par :  Son  adresse,  c’est  à  dire  l'adresse-
mémoire à partir de laquelle l'objet est stocké ;
– sa valeur, c'est-à-dire ce qui est stocké à cette adresse. 
– Son adresse, c’est à dire l'adresse-mémoire à partir de laquelle la variable est 
stockée ;
– sa valeur, c'est-à-dire ce qui est stocké à cette adresse. 

• Dans l’exemple  variable adresse valeur


Variables age, note : entiers ;  age 6000 13
age = 13;  note 6004 15
note = 15; 
– La variable age est placée à l'adresse 6000 en mémoire, et la variable note à l'adresse 
6004
– Les variables age et note étant de type entier, elles sont stockées sur 4 octets. Ainsi 
la valeur de age est stockée sur les octets d'adresse 6000 à 6003.
– L'adresse d'une variable étant un numéro d'octet en mémoire, il s'agit d'un entier quelque 
soit le type de variable considérée. Le format interne de cet entier (16 bits, 32 bits ou 64 
bits) dépend des architectures.
Types utilisés

Types        Opérations sur les types 


Entier:      +, *, - , /(division entière : 7/3 → 2),                 
                       mod(modolu), inf, sup, ≤, ≥, ==, ≠ 
• Réel:       idem sauf modulo
• Booléen:  VRAI FAUX, ⅴ (OU) ∧ (ET), NOT
• Caractère:  inf, sup, ≤, ≥, ==, ≠ 
• Chaine:  idem, + à venir
Le Type BOOLEEN
• Deux constantes booléennes : VRAI , FAUX


Des variables de type booléens :
    Variables  ok, stop: booléen
           ok←(rep= ‘O’ou rep= ‘o’)
                            stop←(val ≤ 0 ou val ≥ 9)

Dans les conditionnelles et itératives :
    Tant que ok faire…
    Si non(stop) alors...
Éléments sur les opérations logiques

Formule : expression logique composée de variables 
propositionnelles et de connecteurs logiques


Variable propositionnelle : proposition indécomposable


Connecteurs logiques:

négation   non,¬  

conjonction et, ∧

disjonction  ou, ∨

Ou exclusif, XOR (eXclusive OR)  
• Exemple : soit A et B variables propositionnelles 
(A ∧¬B) ∨ (¬A ∨B)
Table de vérité
Représentation des valeurs de vérité
associées à une expression logique

Négation Conjonction Disjonction XOR


A ¬A A B A ∧ B A B A ∨ B A B 
V F V V V V V V V V F
F V V F F V F V V F V
F V F F V V F V V
F F F F F F F F F

¬ (p ∧ q) ↔ (¬p) ∨ (¬q)


¬ (p ∨ q) ↔ (¬p) ∧ (¬q)
Instruction d'affectation et expression
• 1 instruction  = spécification d'1 ou plusieurs actions portant sur les 
variables. 

• Instruction d'affectation : consiste à doter une variable d'une valeur de 
son domaine. 

Variable ← <expression> ou <identificateur> ou <constante>

• Expression = suite bien formée d'opérations portant sur des variables 
ou des valeurs. 
• Exemple :  si X une variable de type entier a la valeur 4, alors 
a) L'expression X a la valeur 4
b) L'expression X*X a la valeur 16
c) L'expression (X+(X*2)) ≤ 9 a la valeur FAUX  
  L'expression c)  est une dite  expression logique
Déclaration d'une constante
• Instruction  permettant  de  réserver  de  l’espace  mémoire  pour  stocker 
des données dont la valeur est fixée pour tout l’algorithme

constante (<identificateur> : type) ← <expression>


Exemples :
constantes   TVA : réel ← 19.6
                    MAX: entier ← 100
                    SeuilMAX : entier ← MAX × 0.2
Instruction de lecture/écriture
• Pour Lire 1 valeur sur un périphérique d'Entrée

Lire(variable)
• Pour écrire 1 valeur sur un périphérique de sortie

Ecrire(variable)

• Exemples : 
L'instruction conditionnelle

Si <condition>
alors <instruction1>
[sinon <instruction2> ]
fsi

• Si  la  condition  prend  la  valeur  vrai,  le  premier  bloc  d’instructions  est 
exécuté; si elle prend la valeur faux, le second bloc est exécuté (s’il est 
présent, sinon, rien)
Exemple
Condition simple : 
Afficher ''recu'' si note >= 10, 
Afficher ''insiffisant'' si note < 10
Si (note >= 10)
alors Ecrire (“reçu”)
sinon Ecrire(“insuff”)
fsi

Condition imbriquée : Idem que l'exemple précédent mais avec mention

Si (note > 12)


alors Ecrire (“reçu avec mention Bien”)
sinon Si (note >= 10)
alors Ecrire(“reçu avec mention passable”)
Sinon Ecrire(“insuffisant”)
Fsi
Fsi
Ambiguité du sinon
Si (n >= 12)
alors Si (n > 16)
alors Ecrire (“TB”) Il y a ambiguité dans le sinon
sinon Ecrire(“B”)

Exemple de réécriture d'un si imbriqué :


Si (cd1) Si (cd1 et cd2)
alors Si (cd2) alors instr1
alors instr1 sinon (// cd1 = F ou cd2 = F) ou (cd1 = F et cd2 = F)
sinon instr2 Si (cd1 et non cd2)
Fsi alors instr2
Fsi Fsi
Fsi
L'instruction selon

Selon <identificateur> :
val1: instruction1
val2: instruction2

[defaut: … ]
FinSelon

• A utiliser s'il y a plus de deux choix possibles

Vous aimerez peut-être aussi