Académique Documents
Professionnel Documents
Culture Documents
ORSAY
Algorithmique : Volume 1
Introduction Instructions de base Logique propositionnelle
Ccile Balkanski, Nelly Bensimon, Grard Ligozat
Algorithmique 1 : Introduction
Structures de donnes
- des plus simples aux plus complexes
Algorithmique 1 : Introduction
Fort noire
De l'importance de l'algorithme
Informations parses Machine Rsultats mis en forme
Obtention de rsultats
Un algorithme, traduit dans un langage comprhensible par lordinateur (ou langage de programmation, ici le C++), donne un programme, qui peut ensuite tre excut, pour effectuer le traitement souhait.
Algorithmique 1 : Introduction 5
Calculabilit :
- Existe-t-il des tches pour lesquelles il n'existe aucun algorithme ? - Etant donne une tche, peut-on dire s'il existe un algorithme qui la rsolve ?
Correction
- Peut-on tre sr qu'un algorithme rponde au problme pour lequel il a t conu?
Algorithmique 1 : Introduction 7
Un premier algorithme
Algorithme ElveAuCarr {Cet algorithme calcule le carr du nombre que lui fournit l'utilisateur} variables unNombre, sonCarr: entiers dbut {prparation du traitement} afficher("Quel nombre voulez-vous lever au carr?") saisir(unNombre) {traitement : calcul du carr} sonCarr unNombre unNombre {prsentation du rsultat} afficher("Le carr de ", unNombre) afficher("c'est ", sonCarr) fin
Algorithmique 1 : Instructions de base 9
Traitement
- rsolution pas pas, aprs dcomposition en sousproblmes si ncessaire
10
Fonction :
Instruction permettant de rserver de lespace mmoire pour stocker des donnes (dpend du type de ces donnes : entiers, rels, caractres, etc.)
Exemples :
variables val, unNombre : entiers nom, prnom : chanes de caractres
Algorithmique 1 : Instructions de base 11
Fonction :
Instruction permettant de placer en mmoire les informations fournies par l'utilisateur.
Exemples:
saisir(unNombre) saisir(nom, prnom) saisir(val)
Algorithmique 1 : Instructions de base 12
Fonction :
Instruction permettant de visualiser les informations places en mmoire.
Exemples:
afficher(unNombre, "est diffrent de 0") afficher("La somme de", unNombre, "et" , val , "est", unNombre + val)
Algorithmique 1 : Instructions de base 13
Fonction :
Instruction permettant de rserver de lespace mmoire pour stocker des donnes dont la valeur est fixe pour tout lalgorithme
Exemples :
constantes (MAX : entier) 100 (DOUBLEMAX : entier) MAX 2
Algorithmique 1 : Instructions de base 14
afficher(Titre) {prsentation du rsultat} afficher(prixHT, euros H.T. devient ", prixTTC, euros T.T.C.") Fin Affichage :
Algorithmique 1 : Instructions de base 15
Fonction :
Instruction permettant dattribuer la variable identifie par l'lment plac gauche du symbole la valeur de l'lment plac droite de ce symbole.
Exemple:
nom "Venus" val 50 val val 2
Algorithmique 1 : Instructions de base 16
Affectation : exemples
constante variables (SEUIL : rel) 13.25 valA, valB : rels compteur : entier mot , tom : chanes
tableau de simulation :
valA valB compteur mot tom
valA 0.56 valB valA valA valA (10.5 + SEUIL) compteur 1 compteur compteur + 10 mot " Bonjour " tom "Au revoir ! "
17
18
dbut {prparation du traitement} afficher("Donnez-moi deux valeurs :") saisir (valA, valB) afficher("Vous m'avez donn ", valA, " et ", valB) {traitement mystre} valA valB valB valA {prsentation du rsultat} afficher("Maintenant , mes donnes sont : ", valA, " et ", valB) Fin Affichage :
Algorithmique 1 : Instructions de base 19
20
Traitement faire si
Algorithme SimpleOuDouble {Cet algorithme saisit une valeur entire et affiche son double si cette donne est infrieure un seuil donn.) constante (SEUIL : entier) 10 variable val : entier dbut afficher("Donnez-moi un entier : ") { saisie de la valeur entire} saisir(val) si val < SEUIL { comparaison avec le seuil} alors afficher ("Voici son double :" , val 2) sinon afficher ("Voici la valeur inchange :" , val) fsi fin
Algorithmique 1 : Instructions de base 21
Linstruction conditionnelle
si <expression logique> alors instructions [sinon instructions] fsi
Si lexpression logique (la condition) prend la valeur vrai, le premier bloc dinstructions est excut; si elle prend la valeur faux, le second bloc est excut (sil est prsent, sinon, rien).
Algorithmique 1 : Instructions de base 22
Sil y a plus de deux choix possibles, linstruction selon permet une facilit dcriture.
Algorithmique 1 : Instructions de base 25
si abrviation = "M" alors afficher( "Monsieur" ) sinon si abrviation = "Mme" alors afficher("Madame") sinon si abrviation = "Mlle" alors afficher( "Mademoiselle" ) sinon afficher( "Monsieur,Madame " ) fsi fsi Algorithmique 1 : Instructions de base 26 fsi
variables dbut
{initialisation du traitement}
totalValeurs 0
pour cpt 1 nbVal faire afficher("Donnez une valeur :") saisir(valeur) totalValeurs totalValeurs + valeur fpour
{dition des rsultats}
{cumul}
Affichage :
Algorithmique 1 : Instructions de base 28
La boucle pour
pour <var> valInit valfin [par <pas>] faire {suite dinstructions} traitement fpour
Fonction:
rpter une suite dinstructions un certain nombre de fois
29
<valeur finale>
traitement
type entier ou rel, le mme pour ces 4 informations
valeur dont varie la variable de boucle entre deux passages dans la boucle, 1 par dfaut (peut tre ngatif)
30
Attention :
- le traitement ne doit pas modifier la variable de boucle
pour cpt 1 MAX faire si () alors cpt MAX fpour Interdit !
31
Affichage :
Algorithmique 1 : Instructions de base 33
Fonction:
- rpter une suite dinstructions tant quune condition est remplie remarque : si la condition est fausse ds le dpart, le traitement nest jamais excut
Algorithmique 1 : Instructions de base 34
saisir(val) tant que val STOP faire totalValeurs totalValeurs + val afficher("Donnez une autre valeur, " , STOP, " pour finir. " ) saisir(val) ftq traitement excuter afficher("La somme des valeurs saisies est " , totalValeurs)
affichage rsultats relance: r-affectation de la variable de condition
Algorithmique 1 : Instructions de base
35
{cumul}
...quivaut :
cpt 0 tant que cpt < nbVal faire afficher("Donnez une valeur :") saisir(valeur) totalValeurs totalValeurs + valeur {cumul} cpt cpt + 1 {compte le nombre de valeurs traites} ftq
Algorithmique 1 : Instructions de base 36