Algorithmes et structures de données Cours 7

Slides:



Advertisements
Présentations similaires
Algorithmes et structures de données (avancées) Cours 1+2
Advertisements

La boucle for : init7.c et init71.c
Chap. 4 Recherche en Table
Conception de Site Webs dynamiques Cours 5
Algorithmes et structures de données 7ème cours
Algorithmes et structures de données 3ème cours Patrick Reuter
Algorithmes et structures de données
Algorithmes et structures de données Cours 8
Algorithmes et structures de données Cours 3
Algorithmes et structures de données Cours 10 Patrick Reuter
Algorithmes et structures de données avancées Partie Conception de Sites Web dynamiques Cours 9 Patrick Reuter.
C++ 6ème cours Patrick Reuter maître de conférences
Algorithmes et structures de données Cours 9 Patrick Reuter
Algorithmes et structures de données Cours 2
DECLARATION DE VARIABLES
La classe String Attention ce n’est pas un type de base. Il s'agit d'une classe défini dans l’API Java (Dans le package java.lang) String s="aaa"; // s.
(Classes prédéfinies – API Java)
L’ interruption de boucle
Cours n°2M2. IST-IE (S. Sidhom) UE 303 Promo. M2 IST-IE 2005/06 Conception dun système d'information multimédia Architecture trois-tiers : PHP/MySQL &
Exercices Algorithmiques
M. BENJELLOUN : Info II Mohammed BENJELLOUN Service dInformatique Faculté Polytechnique de Mons
ESIEE Paris © Denis BUREAU I N Initiation à la programmation avec le langage Java.
Algorithmique et Structures de données
Lycée Louis Vincent SEANCE 6 Python Les listes Lundi 25 novembre 2013.
CPI/BTS 2 Programmation Web Introduction au PHP
Cours 7 - Les pointeurs, l'allocation dynamique, les listes chaînées
Récursivité.
44 Contrôle du déroulement du programme. 4-2 Objectifs A la fin de ce cours, vous serez capables de : Utiliser les constructions de prise de décision.
Introduction à l’algorithmique
Les méthodes en java Une méthode est un regroupement d’instructions ayant pour but de faire un traitement bien précis. Une méthode pour être utilisée.
RESUMES Module II1 SOMMAIRE CYCLE 1 : Saisir – Afficher – Données
Introduction à la programmation (Java)
Base de programmation Script unity en c#.
Introduction à l’algorithmique
Perl, un langage de programmation pour les données textuelles
Principes de programmation
Contrôle de types Les types en programmation Expressions de types Un contrôleur de types Equivalence de types Conversions de types Généricité.
IFT 6800 Atelier en Technologies d’information
LIFI-Java 2004 Séance du Jeudi 9 sept. Cours 1. La notion de langage Décrire une tâche à effectuer –programme Écrire à un haut niveau –facile pour lutilisateur.
La programmation en langage C
Chapitre 9 Les sous-programmes.
Chapitre 3 Syntaxe et sémantique.
Procédures et fonctions
Les méthodes en java • Une méthode est un regroupement d’instructions ayant pour but de faire un traitement bien précis. • Une méthode pour être utilisée.
Types de données fondamentaux
L’essentiel du langage C
Python Fonction et procédure
Animateur : Med HAIJOUBI
Javascript 1° PARTIE : LES BASES
LES PILES ET FILES.
SIF-1053 Architecture des ordinateurs
TD0 - Rappels. Acquis du programme 1 ère année Analyser et modéliser : un problème, une situation ; Imaginer et concevoir : une solution algorithmique.
Algorithmes de tri et de recherche
Un survol du language C.
Méthodes de tri.
Master 1 SIGLIS Java Lecteur Stéphane Tallard Les erreurs communes en Java.
CSI2520 Un langage de programmation par scripting orienté-objet (et fonctionnel)
Introduction au langage C Les entrées-sorties
Introduction au langage C : Structures de contrôle 1 ère année Génie Informatique Dr Daouda Traoré Université de Ségou
Les bases de l’algorithmique
Algorithmique Tableaux de données
Introduction à l’utilitaire
Philippe Gandy - 8 septembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
Philippe Gandy - 15 septembre 2015 Basé sur les notes de cours de Daniel Morin et Roch Leclerc.
L'exécution d'un programme nécessite l'utilisation des ressources de l'ordinateur : temps de calcul pour exécuter les opérations, et l'occupation de la.
PhP 2. Tableaux et structures de contrôle. Les tableaux Définition –Rassemblement d’un ensemble de valeurs portant le même nom de variable –Types de tableaux.
Variables : notion Une variable permet de stocker/manipuler une donnée dans un programme avec un nom explicite Caractériser par son type (entier, flottant,...)
Introduction à la programmation
BASE DE L’ALGORITHMIE.  Un système d’instructions.  Pour résoudre d’un problème ou d’une classe de problèmes  Recette de cuisine pour faire un gâteau.
Transcription de la présentation:

Algorithmes et structures de données Cours 7 Patrick Reuter http://www.labri.fr/~preuter

Motivation Niklaus Wirth, ETH Zuerich, 1976 « Algorithms + Data Structures = Programs »

Algorithme L'algorithmique : Science des algorithmes, visant à étudier les opérations nécessaires à la réalisation d'un calcul. René Descartes dans le Discours de la Méthode : « diviser chacune des difficultés que j'examinerois, en autant de parcelles qu'il se pourroit, et qu'il seroit requis pour les mieux résoudre. ». examinerois, pourroit, seroit, / examine, peut, est, (ici « autant que » est une comparaison donc pas de subjonctif, différent des phrases du type « quitte à s’être levé, autant que ce soit pour aller en cours) ; pour les mieux résoudre / pour mieux les résoudre ; problème / problèmes

Algorithme Plus ou moins détaillé selon le niveau d'abstraction du langage utilisé  autrement dit : une recette de cuisine doit être plus ou moins détaillée en fonction de l'expérience du cuisinier examinerois, pourroit, seroit, / examine, peut, est, (ici « autant que » est une comparaison donc pas de subjonctif, différent des phrases du type « quitte à s’être levé, autant que ce soit pour aller en cours) ; pour les mieux résoudre / pour mieux les résoudre ; problème / problèmes

Structure de données Définition Wikipedia (12/9/2005) une structure logique destinée à contenir des données afin de leur donner une organisation permettant de simplifier leur traitement. Exemple : On peut présenter des numéros de téléphone * - par département, - par nom - par profession (pages jaunes), - par numéro téléphonique (annuaires destinés au télémarketing), - par rue et/ou - une combinaison quelconque de ces classements. À chaque usage correspondra une structure d'annuaire appropriée.

Algorithme et programmes Moyen d’atteindre un but en répétant un nombre fini de fois un nombre fini d’instructions. Donc, un algorithme se termine en un temps fini. Programme Un programme est la traduction d’un algorithme en un langage compilable ou interprétable par un ordinateur.

http://www.cifen.ulg.ac.be/inforef/swi/download/python_notes.pdf

Variables Permet de stocker des données au cours d’un algorithme  Structure de données la plus élémenataire Caractérisé par leur nom et leur type

Variables Caractérisé par leur nom et leur type Noms : Les noms des variables sont conventionnellement écrits en minuscule. Ils commencent par une lettre ou le caractère souligné (_), puis éventuellement, des lettres, des chiffres ou le caract`ere souligné. Ils doivent être diff´erents des mots réservés de Python.

Variables Caractérisé par leur nom et leur type Nom : x y z i pointsJoueur1 pointsJoueur2

Variables Mais non pas : 3x (doivent commencer par une lettre) entrée (pas de caractère spéciaux) and def finally in print yield as del for is raise assert elif from lambda return break else global not try class except if or while continue exec import pass with

Variables Type Motivation : Calculer la division entiére par 60 secondes = minutes/60; Calculer les intérets de 10 % d'une somme de 100 euros somme = 100 somme = somme + somme * 5/100

Variables Type simples: Type booléen Type entier Type flottant Vrai/faux (p.ex. TRUE, boolean) Type entier Nombre entier (p.ex. 5, int) Type flottant Nombre à virgule flottant (p.ex. 5.12, float)

Types simples Type booléen Deux valeurs possibles : FAUX (False), VRAI (True) Opérateurs de comparaison : ==, !=, >, >=, <, <= 2 > 8 # faux 2 <= 8 # vrai Opérateurs logiques : NON (not), OU (or), ET (and) (3 == 3) or (9 > 24) # vrai (9 > 24) and (3 == 3) # faux not(2==2) # faux

Types simples Type entier 20 + 3 # 23 20 - 3 # 17 20 * 3 # 60 20 + 3 # 23 20 - 3 # 17 20 * 3 # 60 20 ** 3 # 8000 20 / 3 # 6 (division entière) 20 % 3 # 2 (modulo (reste de la division entière)

Types simples Type entier long Les entiers longs (seulement limités par la mémoire vive) 2 ** 40 # 1099511627776L 3 * 72L # 216L

Types simples Type flottant Les flottants sont not´es avec un « point d´ecimal » ou en notation exponentielle : 2.718 # 3e8 # 3 * 108 6.023e23 # 6.023 * 1023 2. # 2 3.0 # 3 Ils supportent les mêmes opérations que les entiers, sauf : 20.0 / 3 # 6.666666666666667 20.0 // 3 # 6 (division entière forcée)

Variables Type Motivation : Calculer la division entiére par 60 secondes = minutes/60; Calculer les intérets de 10 % d'une somme de 100 euros somme = 100.0 somme = somme + somme * 5.0/100.0

Excursion Typage statique p.ex. Java int a; a = 3; a = 3.5; // ERREUR Typage dynamique p.ex. python a = 3.5; // OK

Pour connaître le type d'une variable : print type(a) b = 3.5 print type(b)

Les chaînes de caractères Notations : Les guillemets c1 = "L’eau de l'océan"

Longueur : s = "abcde" print len(s) # 5 Concat´enation : s1 = "abc" s2 = "defg" s3 = s1 + s2 # ’abcdefg’

On indique, entre crochets, la position d’un caractère par un indice qui commence à 0 s = "abcdefg" print s[0] # a print s[2] # c

On peut extraire une sous-chaîne par découpage : s = "abcdefg" s[1:3] # ’bc’ s[3:] # ’defg’ s[:3] # ’abc’

Les listes

Les listes Collection hétérogène, ordonnée et modifiable d’éléments séparés par des virgules, et entourée de crochets. nombres = [17, 38, 10, 25, 72] print nombres[0] # 17 print nombres[4] # 72 print len(nombres) # 5

Les listes Collection hétérogène, ordonnée et modifiable d’éléments séparés par des virgules, et entourée de crochets. nombres = [17, 38, 10, 25, 72]

Afficher tout les nombres :

Afficher tout les nombres : TANT QUE i < len(nombres) FAIRE afficherLigne(nombres[i]) i = i + 1 FIN TANT QUE

Afficher uniquement les nombres pairs :

Afficher uniquement les nombres pairs : TANT QUE i < len(nombres) FAIRE SI nombres[i] % 2 == 0 ALORS afficherLigne(nombres[i]) FIN SI i = i + 1 FIN TANT QUE

Jeux de cartes

Homogène cartes = ["7", "8", "9", "10", "vallée", "dame", "roi", "as"] Hétérogène cartes = [7, 8, 9, 10, "vallée", "dame", "roi", "as"]