Algorithmique
Les tableaux. Nicolas Delestre et Michel Mainguenaud. {Nicolas.DelestreMichel.Mainguenaud}@insa-rouen.fr. Adapté pour l'ENSICAEN par. Luc Brun.
Les algorithmes de tri
luc.brun@ensicaen.fr. Tableaux – p.1/23 Les tableaux permettent de stocker plusieurs éléments de même type au sein d'une seule entité.
Les tableaux
Les tableaux. Nicolas Delestre et Michel Mainguenaud. {Nicolas.DelestreMichel.Mainguenaud}@insa-rouen.fr Adapté pour l'ENSICAEN par. Luc Brun.
Création de pages Web Dynamiques
head : Définitions générales sur le document : Informations non affichées body : corps du document. textes
Pyramides irrégulières descendantes pour la segmentation de
7 jan. 2012 Je tiens avant-tout à remercier Luc Brun et Guillaume Damiand pour ... les cellules du complexe à l'aide d'un tableau de dimension 2n + 1 ...
Variables (locales et globales) fonctions et procédures
luc.brun@greyc.ensicaen.fr Remplir un tableau de naturels avec des notes saisies par l'utilisateur ... Trouver le plus petit naturel d'un tableau.
Traitement dimages Couleur
Si l'on doit calculer les tableaux c1c2 et c3 au début de l'algorithme
Algorthmique
luc.brun@greyc.ensicaen.fr. Sources: Habib Abdulrab (INSA Rouen) Un tableau de taille MAX
Approche structurelle pour la ré-identification de personnes
13 sept. 2019 Amal Mahboubi Luc Brun
20-21 Mai 2011
Coordination : Jean-Luc Brun dans le tableau 1 ne concernaient ... Tableau 1 : Influence de la brèche endométriale sur les résultats de la FIV après ...
Algorithmique
Concepts de base
Nicolas Delestre, Michel Mainguenaud
Modie pour l'ENSICAEN par
Luc Brun
luc.brun@ensicaen.fr1 / 298Plan... ILe formalisme utilise
IQu'est ce qu'une variable?
IQu'est ce qu'un type?
IQu'est ce qu'une expression?
IQu'est ce qu'une aectation
ILes entrees / sorties?
2 / 298Formalisme...
I Un algorithme doit ^etre lisible et comprehensible par plusieurs personnes IIl doit donc suivre des regles
IIl est compose d'une ent^ete et d'un corps :
I l'ent^ete, qui specie : I le nom de l'algorithme ( Nom :) I son utilite ( R^ole :) I les donnees \en entree", c'est-a-dire les elements qui sont indispensables a son bon fonctionnement (Entree :) I les donnees \en sortie", c'est-a-dire les elements calcules, produits, par l'algorithme (Sortie :) I les donnees locales a l'algorithmique qui lui sont indispensables (Declaration :)3 / 298Formalisme...
I le corps, qui est compose : I du mot clefdebutId'une suite d'instructionsindentees
Idu mot clefn
4 / 298NotesNotesNotesNotes
Formalisme...
IExemple de code :
Nom:ajoutDeuxEntiers
Role:Additionner deux entiers a et b et mettre le resultat dans cEntree:a,b : entier
Sortie:c : entier
Declaration:-
debut c←a+b n5 / 298Qu'est ce qu'une variable...
IUne variable est une entite qui
contient une inf ormation: I une variable possede un nom, on parled'identiant I une variable possede une valeur I une variable possede un type qui caracterise l'ensemble des valeurs que peut prendre la variable I L'ensemble des variables sont stockees dans la memoire de l'ordinateur6 / 298Nomm^age des variables
I Le nom d'une variable ne doit pas comporter d'espaces, I Il doit ^etresignicatif(sauf pour les variables de boucle). I Les noms de variables doit ^etre construit en fonction de regles et ^etresystematique: ILa regle :
Lo wercaseMixedCapital.
I Premier mot qui compose le nom de la variable en minuscule, I chaque mot suivant qui compose le nom de la variable prend une capitale.Exemple : ajoutDeuxEntiers, estPremier...
IAutre regle :
ITout en minuscule,
I mots separes par des soulignes ().Exemple : ajout
deuxentiers, estpremier...7 / 298Qu'est ce qu'une variable...
IOn peut faire l'analogie avec une
a rmoire qui contiendrait des tiroirs etiquetes : I l'armoire serait la memoire de l'ordinateur I les tiroirs seraient les variables (l'etiquette correspondrait a l'identiant) I le contenu d'un tiroir serait la valeur de la variable correspondante I la couleur du tiroir serait le type de la variable (bleu pour les factures, rouge pour les bons de commande, etc.)8 / 298NotesNotesNotesNotes
Qu'est ce qu'un type de donnees...
ILe type d'une variable caracterise :
I l'ensemble des valeurs que peut prendre la variable I l'ensemble des actions que l'on peut eectuer sur une variable I Lorsqu'une variable appara^t dans l'ent^ete d'un algorithme on lui associe un type en utilisant la syntaxe suivante IIdentifiant de la variable : Son type
IPar exemple :
I age : Naturel I nom : Chaine de Caracteres I Une fois qu'un type de donnees est associe a une variable, cette variable ne peut plus en changer I Une fois qu'un type de donnees est associe a une variable lecontenu de cette variable doitobligatoirement^etre du m^eme type9 / 298Qu'est ce qu'un type de donnees...
I Par exemple, dans l'exemple precedent on a declareaetbcomme des entiers I aetbdans cet algorithme ne pourront pas stocker des reels I aetbdans cet algorithme ne pourront pas changer de type IIl y a deux grandes categories de type :
I les types simples I les types complexes (que nous verrons dans la suite du cours)10 / 298Les types simples...
IIl y a deux grandes categories de type simple :
I Ceux dont le nombres d'elements est ni, lesdenombrables I Ceux dont le nombre d'elements est inni, lesindenombrables11 / 298Les types simples denombrables...
I booleen, les variables ne peuvent prendre que les valeurs VRAI ou FAUX I intervalle, les variables ne peuvent prendre que les valeurs entieres denies dans cet intervalle, par exemple 1..10 I enumere, les variables ne peuvent prendre que les valeurs explicitees, par exemple les jours de la semaine (du lundi au dimanche) I Ce sont les seuls types simples qui peuvent ^etre denis par l'informaticien I caracteres IExemples :
masculin : booleen mois : 1..12 jour : JoursDeLaSemaine Notez les regles pour le nom du typeJoursDeLaSemaine.12 / 298NotesNotesNotesNotes
Cas des enumeres...
I Si l'informaticien veut utiliser des enumeres, il doit denir le type dans l'ent^ete de l'algorithme en explicitant toutes les valeurs de ce type de la facon suivante : I nom du type={valeur1, valeur2, ..., valeurn} IPar exemple :
I JoursDeLaSemaine ={Lundi, Mardi, Mercredi, Jeudi, Vendredi, Samedi,Dimanche}
13 / 298Les types simples indenombrables...
I entier(positifs et negatifs) I naturel(entiers positifs) I reel I cha^ne de caracteres, par exemple 'cours' ou 'algorithmique' IExemples :
age : naturel taille : reel nom : chaine de caracteres14 / 298Operateur, operande et expression...
I Unoperateurest un symbole d'operation qui permet d'agir sur des variables ou de faire des \calculs" I Uneoperandeest une entite (variable, constante ou expression) utilisee par un operateur I Uneexpressionest une combinaison d'operateur(s) et d'operande(s), elle est evaluee durant l'execution de l'algorithme, et possede une valeur (son interpretation) et un type15 / 298Operateur, operande et expression...
IPar exemple dansa+b:
I aest l'operande gauche I +est l'operateur I best l'operande droite I a+best appele une expression ISi par exempleavaut 2 etb3, l'expressiona+bvaut 5
I Si par exempleaetbsont des entiers, l'expressiona+best un entier16 / 298NotesNotesNotesNotes
Operateur...
IUn operateur peut ^etre unaire ou binaire :
I Unaires'il n'admet qu'une seule operande, par exemple l'operateurnon I Binaires'il admet deux operandes, par exemple l'operateur+ I Un operateur est associe auntype de donnee et ne peut ^etre utilise qu'avec des variables, des constantes, ou des expressions de cetype I Par exemple l'operateur+ne peut ^etre utilise qu'avec les types arithmetiques (naturel, entier et reel) ou (exclusif) le type cha^ne de caracteres I On ne peut pas additionner un entier et un caractere I Toutefoisexceptionnellementdans certains cas on accepte d'utiliser un operateur avec deux operandes de types dierents, c'est par exemple le cas avec les types arithmetiques (2+3.5)17 / 298Operateur...
I La signication d'un operateur peut changer en fonction du type des operandes I Par exemple l'operateur+avec des entiers aura pour sens l'addition, mais avec des cha^nes de caracteres aura pour sens laconcatenation I2+3vaut5
I "bonjour" + " tout le monde"vaut"bonjour tout le monde"18 / 298Les operateurs booleens...
I Pour les booleens nous avons les operateursnon,et,ou, ouExclusif I nonanon aVraiFaux
FauxVrai
I etaba et bVraiVraiVrai
VraiFauxFaux
FauxVraiFaux
FauxFauxFaux
19 / 298Les operateurs booleens...
I ouaba ou bVraiVraiVrai
VraiFauxVrai
FauxVraiVrai
FauxFauxFaux
I ouExclusifaba ouExclusif bVraiVraiFaux
VraiFauxVrai
FauxVraiVrai
FauxFauxFaux
20 / 298NotesNotesNotesNotes
Les operateurs sur les enumeres...
I Pour les enumeres nous avons trois operateurssucc,pred,ord: I succpermet d'obtenir le successeur, par exemple avec le typeJourDeLaSemaine:
I succ LundivautMardi I succ DimanchevautLundi I predpermet d'obtenir le predecesseur, par exemple avec le typeJourDeLaSemaine:
I pred MardivautLundi I pred LundivautDimanche I ordpermet d'obtenir le naturel de l'enumere specie dans la bijection du type enumere vers les naturels, par exemple avec le typeJourDeLaSemaine: I ord Lundivaut0 I ord Dimanchevaut621 / 298Les operateurs sur les caracteres...
I Pour les caracteres on retrouve les trois operateurs des enumeres avec en plus un quatrieme operateur nommecarqui est le dual de l'operateurordavec comme fonction de bijection la table de correspondance de la norme ASCII I Cf. http ://www.commentcamarche.net/base/ascii.htm IPar exemple
I ord Avaut65 I car 65vautA I pred Avaut@ IL'operateur pour les cha^nes de caracteres
I C'est l'operateur de concatenation vu precedemment qui est+22 / 298Les operateurs sur les naturels, entiers et
reels...IOn retrouve tout naturellement+,-,/,*
I Avec en plus pour les naturels et les entiersdivetmod, qui permettent respectivement de calculer une division entiere et le reste de cette division, par exemple : I11 div 2vaut5
I11 mod 2vaut1
23 / 298L'operateur d'egalite, d'inegalite, etc...
IL'operateur d'egalite
I C'est l'operateur que l'on retrouve chez tous les types simples qui permet de savoir si les deux operandes sont egales ICet operateur est represente par le caractere =
I Une expression contenant cet operateur est un booleen IOn a aussi l'operateur d'inegalite?=
I Et pour les types possedant un ordre les operateurs de comparaison24 / 298NotesNotesNotesNotes
Priorite des operateurs...
I Tout comme en arithmetique les operateurs ont des priorites IPar exemple
* et / sont p rioritairessur + et - I Pour les booleens, la priorite des operateurs estnon,et, ouExclusifetou I Pour clarier les choses (ou pour dans certains cas supprimer toutes ambiguites) on peut utiliser des parentheses25 / 298Actions sur les variables...
I On ne peut faire que deux choses avec une variable : 1. O btenirson contenu ( regarder le contenu du tiroir) ICela s'eectue simplement en nommant la variable
2. A ecterun (nouveau) c ontenu(mettre une (nouvelle) info rmationdans le tiroir) I Cela s'eectue en utilisant l'operateur d'aectation representer par le symbole I La syntaxe de cet operateur est :identifiant de la variable←expression sans operateur d'affectation26 / 298Actions sur les variables...
I Par exemple l'expressionc←a + bse comprend de la facon suivante : IOn prend la valeur contenue dans la variablea
IOn prend la valeur contenue dans la variableb
IOn additionne ces deux valeurs
IOn met ce resultat dans la variablec
I Sicavait auparavant une valeur, cette derniere est perdue!27 / 298Les entrees/sorties...
I Un algorithme peut avoir des interactions avec l'utilisateur I Il peut acher un resultat (du texte ou le contenu d'une variable) et demander a l'utilisateur de saisir une information an de la stocker dans une variable I En tant qu' informaticien on raisonne en se mettant\a la place de la machine", donc : I Pour acher une information on utilise la commandeecriresuivie entre parentheses de la cha^ne de caracteres entre guillemets et/ou des variables de type simple a acher separees par des virgules, par exemple : I ecrire("Le valeur de la variable a est", a) I Pour donner la possibilite a l'utilisateur de saisir une information on utilise la commandeliresuivie entre parentheses de la variable de type simple qui va recevoir la valeur saisie par l'utilisateur, par exemple : I lire(b)28 / 298NotesNotesNotesNotes
Exemple d'algorithme...
Nom:euroVersFranc1
Role:Convertisseur des sommes en euros vers le franc, avec saisie de la somme en euro et achage de la somme en francEntree:-
Sortie:-
Declaration:valeurEnEuro,valeurEnFranc,tauxConversion : Reel debut tauxConversion←6.55957 ecrire("Votre valeur en euro :") lire(valeurEnEuro) valeurEnFranc←valeurEnEuro * tauxConversion ecrire(valeurEnEuro," euros = ",valeurEnFranc," Frs") n29 / 298Exemple d'algorithme...
Nom:euroVersFranc2
Role:Convertisseur des sommes en euros vers le francEntree:valeurEnEuro : Reel
Sortie:valeurEnFranc : Reel
Declaration:tauxConversion : Reel
debut tauxConversion←6.55957 valeurEnFranc←valeurEnEuro * tauxConversion nquotesdbs_dbs22.pdfusesText_28[PDF] Terminale S Exercices sur les suites Exercice 1 On consid`ere la
[PDF] Cours d algorithmique BTS SIO première année - Bienvenue sur le
[PDF] Algorithmique et programmation, un levier pour développer des
[PDF] Algorithmique et Structures de Données
[PDF] ORME 212 : Algorithmique en seconde avec Python
[PDF] Ali baba et les quarante voleurs - Gomme Gribouillages
[PDF] Commentaire de l 'article 26 du code de droit international privé
[PDF] 1 Biliographie générale : Droit international privé - Droit du
[PDF] Les différences de retraite entre salariés du privé et fonctionnaires
[PDF] 2 Le rôle des aliments - Académie de Nancy-Metz
[PDF] Usines complètes de production d aliments pour - Amandus Kahl
[PDF] La nutrition active pour prévenir et traiter l 'anémie par déficience en fer
[PDF] Ces aliments qui favorisent le bon cholestérol - Mutualp
[PDF] le ba ba de la vitamine c - RTS