Академический Документы
Профессиональный Документы
Культура Документы
COURS ALGORITHMIQUE
ET PROGRAMMATION
INFORMATIQUE
DUT INFORMATIQUE
S1
Marie-Agns peraldi-frati
Mitre de confrences en informatique
UNS/IUT de Nice cte dazur
1
M AP @ U N I C E . F R
MAP - UNS
RFRENCES
MAP - UNS 2
1
12/03/2013
NOTION DE BASE EN
ALGORITHMIQUE
4
MAP - UNS
2
12/03/2013
CONCEPTS IMPORTANTS EN
INFORMATIQUE
MAP - UNS 5
Besoins :
savoir expliciter son raisonnement
savoir formaliser son raisonnement
concevoir (et crire) des algorithmes:
squence dinstructions qui dcrit comment rsoudre un
problme particulier
MAP - UNS 6
3
12/03/2013
ALGORITHME
MAP - UNS 7
EXEMPLE DALGORITHMES
Recette de cuisine
Notice de montage de meuble
en kit
MAP - UNS 8
4
12/03/2013
Complexit
En combien de temps un algorithme va -t-il atteindre le
rsultat escompt?
De quel espace a-t-il besoin?
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 ?
MAP - UNS 9
MAP - UNS 10
5
12/03/2013
Prparation du traitement
donnes ncessaires la rsolution du problme
Traitement
rsolution pas pas,
aprs dcomposition en sous-problmes si
ncessaire
Edition des rsultats
impression lcran,
dans un fichier, etc.
MAP - UNS 11
LANGAGE ALGORITHMIQUE
MAP - UNS 12
6
12/03/2013
MAP - UNS 13
MAP - UNS 14
7
12/03/2013
Exemples:
Saisir(unNombre)
Afficher ( le nom est , nom, et le prnom est ,
prnom )
Saisir(val)
MAP - UNS 15
PHASE DANALYSE
MAP - UNS 16
8
12/03/2013
MAP - UNS 17
Traitement raliser
MAP - UNS 18
9
12/03/2013
Donnes en entre
MAP - UNS 19
Donnes en sortie
MAP - UNS 20
10
12/03/2013
ALGORITHME TVA
Algorithme CalculTVA
{Saisit un prix HT et affiche le prix TTC correspondant}
Constantes (TVA : rel) 20.6
(Titre : chane) "Rsultat"
Variables prixHT : rel
Variable prixTTC, montantTVA : rels {dclarations}
INSTRUCTIONS SQUENTIELLES
RSULTAT DUN ALGORITHME
11
12/03/2013
Algorithme CaDoitEchanger?
{Cet algorithme .........................................}
Variables valA, valB: rels {dclarations}
Dbut {prparation du traitement}
Afficher ("Donnez-moi deux valeurs :")
Saisir (valA, valB)
Afficher ("Vous m'avez donn ", valA, " et ", valB)
{traitement mystre}
valAvalB
valBvalA {prsentation du rsultat}
Afficher("Maintenant , mes donnes sont : ", valA, " et ", valB)
Fin
CE QUIL MANQUE
Saisir(valA, valB)
valTempvalA
valAvalB
valBvalTemp
MAP - UNS 24
12
12/03/2013
STRUCTURE ALTERNATIVE
SI ALORS SINON FSI (1)
Exemple :
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
MAP - UNS 25
STRUCTURE ALTERNATIVE
SI ALORS SINON FSI (2)
Ou instruction conditionnelle
si <expression logique>
alors instructions
[sinon instructions]
fsi
MAP - UNS 26
13
12/03/2013
STRUCTURE ALTERNATIVE
SI ALORS SINON FSI (3)
STRUCTURES ALTERNATIVES
IMBRIQUES
Problme: afficher :
"Reu avec mention Assez Bien " si une note est suprieure ou
gale 12,
" Reu mention Passable" si elle est suprieure 10 et
infrieure 12, et
"Insuffisant" dans tous les autres cas.
si note 12
alors afficher( "Reu avec mention AB" )
sinon si note 10
alors afficher( Reu mention Passable" )
sinon afficher("Insuffisant" )
fsi
fsi
MAP - UNS 28
14
12/03/2013
selon <identificateur>
(liste de) valeur(s) : instructions
(liste de) valeur(s) : instructions
[autres: instructions]
MAP - UNS 29
15
12/03/2013
selon abrviation
"M" : afficher( " Monsieur " )
"Mme" :afficher( " Madame " )
"Mlle" : afficher( " Mademoiselle " )
autres :afficher( " Monsieur, Madame " )
quivalent avec instruction Conditionnelle
si abrviation = "Mme "
alors afficher( Madame" )
sinon si abrviation = Mlle
alors afficher("Mademoiselle")
sinon si abrviation = "M"
alors afficher( "Monsieur" )
sinon afficher( "Monsieur,Madame " )
fsi
fsi MAP - UNS 31
fsi
MAP - UNS 32
16
12/03/2013
TO DO
MAP - UNS 33
Exemple
Algorithme FaitLeTotal
{Cet algorithme fait la somme des nbVal donnes qu'il saisit}
variables nbVal, cpt : entiers
valeur, totalValeurs: rels
dbut
{initialisation du traitement}
afficher("Combien de valeurs voulez-vous saisir ?")
saisir(nbVal)
{initialisation du total 0 avant cumul}
totalValeurs0
{traitement qui se rpte nbVal fois}
pour cpt 1 nbVal faire
afficher("Donnez une valeur :")
saisir(valeur)
totalValeurstotalValeurs+ valeur {cumul}
fpour
{dition des rsultats}
afficher("Le total des ", nbVal, "valeurs est " , totalValeurs)
MAP - UNS 34
fin
17
12/03/2013
BOUCLE POUR
Valeur Valeur
initiale finale
MAP - UNS 35
linstruction pour:
initialise une variable de boucle (le compteur)
incrmente cette variable de la valeur de pas
vrifie que cette variable ne dpasse pas la borne suprieure
Attention :
-le traitement ne doit pas modifier la variable de boucle
MAP - UNS 36
18
12/03/2013
MAP - UNS 38
19
12/03/2013
MAP - UNS 39
Exemple:
saisir des valeurs, les traiter, et sarrter la saisie de
la valeur darrt 1 ou aprs avoir saisi 5 donnes.
Constantes (STOP : entier) -1
(MAX : entier) 5
Variables nbVal, val : entiers
Dbut
nbVal0 {compte les saisies traites}
saisir(val) {saisie de la 1re donne}
tant que val STOP et nbVal< MAX faire
nbValnbVal+ 1{traitement de la valeur saisie}
saisir(val) {relance}
Ftq
afficher(val, nbVal) {valeurs en sortie de boucle}
20
12/03/2013
COMPARAISON BOUCLES
POUR ET TANT QUE (1)
pour cpt 1 nbVal faire
afficher("Donnez une valeur :")
saisir(valeur)
totalValeurstotalValeurs+ valeur {cumul}
fpour
Est quivalent
cpt 0
tant que cpt <nbVal faire
afficher("Donnez une valeur :")
saisir(valeur)
totalValeurstotalValeurs+ valeur {cumul}
cpt cpt + 1 {compte le nombre de valeurs traites}
ftq
MAP - UNS 42
21
12/03/2013
COMPARAISON BOUCLES
POUR ET TANT QUE (2)
MAP - UNS 43
QUAND CHOISIR
POUR OU TANT QUE ?
MAP - UNS 44
22
12/03/2013
Algorithme Essai
{Cet algorithme a besoin dune valeur positive paire}
Variables valeur : entier
Dbut
Rpter
afficher("Donnez une valeur positive non nulle : ")
saisir(valeur)
tant que valeur 0
afficher("La valeur positive non nulle que vous avez saisie est ")
afficher( valeur ){traitement de la valeur saisie}
fin
MAP - UNS 45
Rpter
(r)affectation de la (des) variable(s) de condition
traitement
Tant que <expression logique (vraie)>
MAP - UNS 46
23
12/03/2013
COMPARAISON
RPTER ET TANT QUE
Rpter
afficher("Donnez une valeur positive paire :")
saisir(valeur)
tant que(valeur < 0 ou(valeur % 2) 0)
quivaut
MAP - UNS 47
COMPARAISON
RPTER ET TANT QUE
MAP - UNS 48
24
12/03/2013
DE LNONC LA BOUCLE
saisir(val)
somme val
tant que somme 500 faire
saisir(val)
somme somme + val
ftq
MAP - UNS 49
DE LNONC LA BOUCLE
MAP - UNS 50
25