SlideShare une entreprise Scribd logo
1  sur  21
Session 3/3
Olivier Rovellotti
ALGORITHMIE
Plan • Histoire
• Module/Fonctions
• Exercices
• Classe/Objets
• Héritage
• Polymorphisme
• Interface
• Exercices
• Conception
• MVC
• Design Pattern
• SOA
Histoire
MachineMACHINE
PAS VOUS 
Assembleur
La réutilisation de code désigne l'utilisation du code source existant, pour créer de nouveaux logiciels.
PROCEDURAL
PROCEDURAL
Globalement, le procédural travaille sur l'action ou le verbe.
Par exemple, pour calculer la vitesse d'une voiture, la
philosophie du procédural conduira à faire :
calculVitesse(voiture) partout où cela est nécessaire.
complexité cyclomatique
• La complexité cyclomatique d'une méthode est définie
par le nombre de chemins linéairement indépendants
qu'il est possible d'emprunter dans cette méthode.
• Plus simplement, il s'agit du nombre de points de
décision de la méthode (if, case, while, ...) + 1 (le
chemin principal).
• La complexité cyclomatique d'une méthode vaut au
minimum 1, puisqu'il y a toujours au moins un
chemin.
Une complexité cyclomatique trop élevée (supérieure à 30) indique qu'il faut refactoriser la méthode.
Une complexité cyclomatique inférieure à 30 peut être acceptable si la méthode est suffisament testée.
6
OBJECTS
Classe/Objets
L'Orienté Objet ( ou OO ) où on manipule uniquement des
objets c'est-à-dire des ensembles groupés de variables et
de méthodes associées à des entités intégrant
naturellement ces variables et ces méthodes.
Dans cette configuration, le sujet est prépondérant:
disposant d'un objet Voiture, on effectuera spontanément :
Voiture.calculVitesse().
Heritage
Polymorphisme
Granularite
• Exercice 1
Écrivez une fonction qui renvoie la somme de cinq nombres fournis en argument.
• Exercice 2
Écrivez une fonction qui renvoie le nombre de voyelles contenues dans une chaîne de caractères passée en argument. Au passage, notez qu'une fonction a tout à fait le
droit d'appeler une autre fonction.
• Exercice 3
Réécrivez la fonction Trouve, vue précédemment, à l’aide des fonctions Mid et Len (comme quoi, Trouve, à la différence de Mid et Len, n’est pas une fonction
indispensable dans un langage).
• Exercice 4
Ecrivez une fonction qui purge une chaîne d'un caractère, la chaîne comme le caractère étant passés en argument. Si le caractère spécifié ne fait pas partie de la
chaîne, celle-ci devra être retournée intacte. Par exemple :
Purge("Bonjour","o") renverra "Bnjur"
Purge("J'ai horreur des espaces"," ") renverra "J'aihorreurdesespaces"
Purge("Moi, je m'en fous", "y") renverra "Moi, je m'en fous"
• Exercice 5
Ecrire un traitement qui effectue le tri d'un tableau envoyé en argument (on considère que le code appelant
devra également fournir le nombre d'éléments du tableau).
• Exercice 7
Ecrire un traitement qui informe si un un tableau envoyé en argument est formé ou non d'éléments tous
rangés en ordre croissant.
• Exercice 8
Ecrire un traitement qui inverse le contenu de deux valeurs passées en argument.
Twitter: @orovellotti
www.natural-solutions.eu
Merci
Olivier_rovellotti@natural-solutions.eu

Contenu connexe

Tendances

Formation python micro club.net
Formation python micro club.netFormation python micro club.net
Formation python micro club.netZakaria SMAHI
 
Mémento caml
Mémento camlMémento caml
Mémento camlzan
 
La programmation modulaire en Python
La programmation modulaire en PythonLa programmation modulaire en Python
La programmation modulaire en PythonABDESSELAM ARROU
 
Initiation au code : Ateliers en C# (applications desktop et mobile native)
Initiation au code : Ateliers en C# (applications desktop et mobile native)Initiation au code : Ateliers en C# (applications desktop et mobile native)
Initiation au code : Ateliers en C# (applications desktop et mobile native)Stéphanie Hertrich
 
Les instructions simples en pascal p1
Les instructions simples en pascal p1Les instructions simples en pascal p1
Les instructions simples en pascal p1دليل الحياة
 
Cours algorithme: structures répétitives
Cours algorithme: structures répétitivesCours algorithme: structures répétitives
Cours algorithme: structures répétitivesInforMatica34
 
Cours de C++, en français, 2002 - Cours 1.5
Cours de C++, en français, 2002 - Cours 1.5Cours de C++, en français, 2002 - Cours 1.5
Cours de C++, en français, 2002 - Cours 1.5Laurent BUNIET
 
Chap7 simulation numérique
Chap7 simulation numériqueChap7 simulation numérique
Chap7 simulation numériqueMariem ZAOUALI
 
Chap2 Les conteneurs en python
Chap2 Les conteneurs en pythonChap2 Les conteneurs en python
Chap2 Les conteneurs en pythonMariem ZAOUALI
 
Introduction a la compilation Aperçu de la compilation / Assembleur MIPS - C1
Introduction a la compilation  Aperçu de la compilation / Assembleur MIPS - C1Introduction a la compilation  Aperçu de la compilation / Assembleur MIPS - C1
Introduction a la compilation Aperçu de la compilation / Assembleur MIPS - C1Beligh HAMDI
 
Chap5 La manipulation des iterables en python
Chap5 La manipulation des iterables en pythonChap5 La manipulation des iterables en python
Chap5 La manipulation des iterables en pythonMariem ZAOUALI
 

Tendances (20)

Formation python micro club.net
Formation python micro club.netFormation python micro club.net
Formation python micro club.net
 
Chapitre 02 : Variables, Expressions et Instructions
Chapitre 02 : Variables, Expressions et InstructionsChapitre 02 : Variables, Expressions et Instructions
Chapitre 02 : Variables, Expressions et Instructions
 
Mémento caml
Mémento camlMémento caml
Mémento caml
 
La programmation modulaire en Python
La programmation modulaire en PythonLa programmation modulaire en Python
La programmation modulaire en Python
 
TP C++ : enoncé
TP C++ : enoncéTP C++ : enoncé
TP C++ : enoncé
 
1763685
17636851763685
1763685
 
Chapitre1
Chapitre1Chapitre1
Chapitre1
 
Theme 6
Theme 6Theme 6
Theme 6
 
algorithmique
algorithmiquealgorithmique
algorithmique
 
Initiation au code : Ateliers en C# (applications desktop et mobile native)
Initiation au code : Ateliers en C# (applications desktop et mobile native)Initiation au code : Ateliers en C# (applications desktop et mobile native)
Initiation au code : Ateliers en C# (applications desktop et mobile native)
 
Algorithmique
AlgorithmiqueAlgorithmique
Algorithmique
 
Algorithmique
AlgorithmiqueAlgorithmique
Algorithmique
 
Les instructions simples en pascal p1
Les instructions simples en pascal p1Les instructions simples en pascal p1
Les instructions simples en pascal p1
 
Cours algorithme: structures répétitives
Cours algorithme: structures répétitivesCours algorithme: structures répétitives
Cours algorithme: structures répétitives
 
Cours de C++, en français, 2002 - Cours 1.5
Cours de C++, en français, 2002 - Cours 1.5Cours de C++, en français, 2002 - Cours 1.5
Cours de C++, en français, 2002 - Cours 1.5
 
Chap7 simulation numérique
Chap7 simulation numériqueChap7 simulation numérique
Chap7 simulation numérique
 
TP C++ : Correction
TP C++ : CorrectionTP C++ : Correction
TP C++ : Correction
 
Chap2 Les conteneurs en python
Chap2 Les conteneurs en pythonChap2 Les conteneurs en python
Chap2 Les conteneurs en python
 
Introduction a la compilation Aperçu de la compilation / Assembleur MIPS - C1
Introduction a la compilation  Aperçu de la compilation / Assembleur MIPS - C1Introduction a la compilation  Aperçu de la compilation / Assembleur MIPS - C1
Introduction a la compilation Aperçu de la compilation / Assembleur MIPS - C1
 
Chap5 La manipulation des iterables en python
Chap5 La manipulation des iterables en pythonChap5 La manipulation des iterables en python
Chap5 La manipulation des iterables en python
 

Similaire à Ns algo 3

Eric Moreau: AOP in .Net sing PostSharp
Eric Moreau: AOP in .Net sing PostSharpEric Moreau: AOP in .Net sing PostSharp
Eric Moreau: AOP in .Net sing PostSharpMSDEVMTL
 
Patrons de conception de la programmation fonctionnelle
Patrons de conception de la programmation fonctionnellePatrons de conception de la programmation fonctionnelle
Patrons de conception de la programmation fonctionnelleAssociation Agile Nantes
 
2015: L'année d'Elixir, Code, écosystème et communauté
2015: L'année d'Elixir, Code, écosystème et communauté2015: L'année d'Elixir, Code, écosystème et communauté
2015: L'année d'Elixir, Code, écosystème et communautéMickaël Rémond
 
Introduction au langage python notion de base
Introduction au langage python notion de baseIntroduction au langage python notion de base
Introduction au langage python notion de basemohamedAitomar1
 
Introduction au langage python (Notion de base)
Introduction au langage python (Notion de base)Introduction au langage python (Notion de base)
Introduction au langage python (Notion de base)mohamedAitomar1
 
Chapitre 2-Concepts de base de l'algorithme-2024.pdf
Chapitre 2-Concepts de base de l'algorithme-2024.pdfChapitre 2-Concepts de base de l'algorithme-2024.pdf
Chapitre 2-Concepts de base de l'algorithme-2024.pdfAdjimbawNDIAYE
 
Chap3 programmation modulaire en python
Chap3 programmation modulaire en pythonChap3 programmation modulaire en python
Chap3 programmation modulaire en pythonMariem ZAOUALI
 
cpp1 : Quelques elements de base du C++
cpp1 : Quelques elements de base du C++cpp1 : Quelques elements de base du C++
cpp1 : Quelques elements de base du C++Abdoulaye Dieng
 
Introduction à scala
Introduction à scalaIntroduction à scala
Introduction à scalaSOAT
 
03_Prog_C_Fonctions.pdf
03_Prog_C_Fonctions.pdf03_Prog_C_Fonctions.pdf
03_Prog_C_Fonctions.pdfAhmed12314
 
Mix it 2011 - Clojure
Mix it 2011 - ClojureMix it 2011 - Clojure
Mix it 2011 - Clojurelolopetit
 
Meilleur du typage fort (AFUP Day, 2020)
Meilleur du typage fort (AFUP Day, 2020)Meilleur du typage fort (AFUP Day, 2020)
Meilleur du typage fort (AFUP Day, 2020)Damien Seguy
 
intro-csharp developement master 2 IF APP
intro-csharp developement master 2 IF APPintro-csharp developement master 2 IF APP
intro-csharp developement master 2 IF APPfrwebhelp
 
Les fondamentaux de langage C#
Les fondamentaux de langage C#Les fondamentaux de langage C#
Les fondamentaux de langage C#Youness Boukouchi
 
Langage de programmation analyse-(lex).pdf
Langage de programmation analyse-(lex).pdfLangage de programmation analyse-(lex).pdf
Langage de programmation analyse-(lex).pdfAchrafBouyadmar
 

Similaire à Ns algo 3 (20)

La programmation fonctionnelle en javascript / PF
La programmation fonctionnelle en javascript / PFLa programmation fonctionnelle en javascript / PF
La programmation fonctionnelle en javascript / PF
 
Algo inf102 2007
Algo inf102 2007Algo inf102 2007
Algo inf102 2007
 
Eric Moreau: AOP in .Net sing PostSharp
Eric Moreau: AOP in .Net sing PostSharpEric Moreau: AOP in .Net sing PostSharp
Eric Moreau: AOP in .Net sing PostSharp
 
Patrons de conception de la programmation fonctionnelle
Patrons de conception de la programmation fonctionnellePatrons de conception de la programmation fonctionnelle
Patrons de conception de la programmation fonctionnelle
 
2015: L'année d'Elixir, Code, écosystème et communauté
2015: L'année d'Elixir, Code, écosystème et communauté2015: L'année d'Elixir, Code, écosystème et communauté
2015: L'année d'Elixir, Code, écosystème et communauté
 
Introduction au langage python notion de base
Introduction au langage python notion de baseIntroduction au langage python notion de base
Introduction au langage python notion de base
 
Introduction au langage python (Notion de base)
Introduction au langage python (Notion de base)Introduction au langage python (Notion de base)
Introduction au langage python (Notion de base)
 
Chapitre 2-Concepts de base de l'algorithme-2024.pdf
Chapitre 2-Concepts de base de l'algorithme-2024.pdfChapitre 2-Concepts de base de l'algorithme-2024.pdf
Chapitre 2-Concepts de base de l'algorithme-2024.pdf
 
Chap3 programmation modulaire en python
Chap3 programmation modulaire en pythonChap3 programmation modulaire en python
Chap3 programmation modulaire en python
 
cpp1 : Quelques elements de base du C++
cpp1 : Quelques elements de base du C++cpp1 : Quelques elements de base du C++
cpp1 : Quelques elements de base du C++
 
Introduction à scala
Introduction à scalaIntroduction à scala
Introduction à scala
 
03_Prog_C_Fonctions.pdf
03_Prog_C_Fonctions.pdf03_Prog_C_Fonctions.pdf
03_Prog_C_Fonctions.pdf
 
Mix it 2011 - Clojure
Mix it 2011 - ClojureMix it 2011 - Clojure
Mix it 2011 - Clojure
 
Cours java
Cours javaCours java
Cours java
 
langage C++
langage C++langage C++
langage C++
 
Meilleur du typage fort (AFUP Day, 2020)
Meilleur du typage fort (AFUP Day, 2020)Meilleur du typage fort (AFUP Day, 2020)
Meilleur du typage fort (AFUP Day, 2020)
 
intro-csharp developement master 2 IF APP
intro-csharp developement master 2 IF APPintro-csharp developement master 2 IF APP
intro-csharp developement master 2 IF APP
 
Introduction à Python
Introduction à PythonIntroduction à Python
Introduction à Python
 
Les fondamentaux de langage C#
Les fondamentaux de langage C#Les fondamentaux de langage C#
Les fondamentaux de langage C#
 
Langage de programmation analyse-(lex).pdf
Langage de programmation analyse-(lex).pdfLangage de programmation analyse-(lex).pdf
Langage de programmation analyse-(lex).pdf
 

Plus de Olivier Rovellotti (20)

Hack4 nature Tree from satellite
Hack4 nature Tree from satelliteHack4 nature Tree from satellite
Hack4 nature Tree from satellite
 
Etoile du berger
Etoile du bergerEtoile du berger
Etoile du berger
 
Methode ux
Methode uxMethode ux
Methode ux
 
Opendata arles
Opendata arlesOpendata arles
Opendata arles
 
Ns biodiversity next julien corny rovellotti olivier 2
Ns biodiversity next julien corny rovellotti olivier 2Ns biodiversity next julien corny rovellotti olivier 2
Ns biodiversity next julien corny rovellotti olivier 2
 
The quest for new empowered citizen scientists
The quest for new empowered citizen scientistsThe quest for new empowered citizen scientists
The quest for new empowered citizen scientists
 
A la découverte de l'ux design
A la découverte de l'ux designA la découverte de l'ux design
A la découverte de l'ux design
 
Gamification, Ludification de l’expérience énergie
Gamification, Ludification de l’expérience énergie Gamification, Ludification de l’expérience énergie
Gamification, Ludification de l’expérience énergie
 
Le donut tour metropole
Le donut tour metropoleLe donut tour metropole
Le donut tour metropole
 
Ns ux-emotion
Ns ux-emotionNs ux-emotion
Ns ux-emotion
 
Ns ux-ethique
Ns ux-ethiqueNs ux-ethique
Ns ux-ethique
 
Datasud barcamp
Datasud barcampDatasud barcamp
Datasud barcamp
 
Datasud barcamp 2
Datasud barcamp 2Datasud barcamp 2
Datasud barcamp 2
 
Scapin et bastien
Scapin et bastienScapin et bastien
Scapin et bastien
 
Ns cleo lodel ux
Ns cleo lodel uxNs cleo lodel ux
Ns cleo lodel ux
 
Ns python flask 3
Ns python flask 3Ns python flask 3
Ns python flask 3
 
Ns python flask 2
Ns python flask 2Ns python flask 2
Ns python flask 2
 
Ns python-flask
Ns python-flaskNs python-flask
Ns python-flask
 
Ns python web 1
Ns python web 1Ns python web 1
Ns python web 1
 
Ns python-exercices
Ns python-exercicesNs python-exercices
Ns python-exercices
 

Ns algo 3

  • 2. Plan • Histoire • Module/Fonctions • Exercices • Classe/Objets • Héritage • Polymorphisme • Interface • Exercices • Conception • MVC • Design Pattern • SOA
  • 7. La réutilisation de code désigne l'utilisation du code source existant, pour créer de nouveaux logiciels.
  • 9. PROCEDURAL Globalement, le procédural travaille sur l'action ou le verbe. Par exemple, pour calculer la vitesse d'une voiture, la philosophie du procédural conduira à faire : calculVitesse(voiture) partout où cela est nécessaire.
  • 10.
  • 11. complexité cyclomatique • La complexité cyclomatique d'une méthode est définie par le nombre de chemins linéairement indépendants qu'il est possible d'emprunter dans cette méthode. • Plus simplement, il s'agit du nombre de points de décision de la méthode (if, case, while, ...) + 1 (le chemin principal). • La complexité cyclomatique d'une méthode vaut au minimum 1, puisqu'il y a toujours au moins un chemin. Une complexité cyclomatique trop élevée (supérieure à 30) indique qu'il faut refactoriser la méthode. Une complexité cyclomatique inférieure à 30 peut être acceptable si la méthode est suffisament testée.
  • 12. 6
  • 13.
  • 15. Classe/Objets L'Orienté Objet ( ou OO ) où on manipule uniquement des objets c'est-à-dire des ensembles groupés de variables et de méthodes associées à des entités intégrant naturellement ces variables et ces méthodes. Dans cette configuration, le sujet est prépondérant: disposant d'un objet Voiture, on effectuera spontanément : Voiture.calculVitesse().
  • 19. • Exercice 1 Écrivez une fonction qui renvoie la somme de cinq nombres fournis en argument. • Exercice 2 Écrivez une fonction qui renvoie le nombre de voyelles contenues dans une chaîne de caractères passée en argument. Au passage, notez qu'une fonction a tout à fait le droit d'appeler une autre fonction. • Exercice 3 Réécrivez la fonction Trouve, vue précédemment, à l’aide des fonctions Mid et Len (comme quoi, Trouve, à la différence de Mid et Len, n’est pas une fonction indispensable dans un langage). • Exercice 4 Ecrivez une fonction qui purge une chaîne d'un caractère, la chaîne comme le caractère étant passés en argument. Si le caractère spécifié ne fait pas partie de la chaîne, celle-ci devra être retournée intacte. Par exemple : Purge("Bonjour","o") renverra "Bnjur" Purge("J'ai horreur des espaces"," ") renverra "J'aihorreurdesespaces" Purge("Moi, je m'en fous", "y") renverra "Moi, je m'en fous"
  • 20. • Exercice 5 Ecrire un traitement qui effectue le tri d'un tableau envoyé en argument (on considère que le code appelant devra également fournir le nombre d'éléments du tableau). • Exercice 7 Ecrire un traitement qui informe si un un tableau envoyé en argument est formé ou non d'éléments tous rangés en ordre croissant. • Exercice 8 Ecrire un traitement qui inverse le contenu de deux valeurs passées en argument.