RAPPEL Qu’est ce qu’une structure de contrôle itérative ?

Slides:



Advertisements
Présentations similaires
SUITES ET TYPES DE CROISSANCE ASSOCIÉS
Advertisements

Global Total Microcode Support (TMS ou GTMS) Microcode Management proactif pour System i, System p, System x et SAN.
Chapitre annexe. Récursivité
Les fonctions A quoi ça sert ?
Initiation à la programmation et algorithmique cours 2
Algorithmes et structures de données avancés
Fonctions & procédures
Introduction à l’Algorithmique
PROBLEMES OUVERTS QUESTIONS OUVERTES
Algorithmique Résume.
Chapitre I : Systèmes d’exploitation
3- Déclaration et accès aux objets
Programme d’une fête du fin de l’année
Les Structures de contrôles itératives
Chapitre 6: Les procédures et les fonctions
INTRODUCTION.
Introduction à la programmation (420-PK2-SL) cours 15 Gestion des applications Technologie de linformation (LEA.BW)
Les sous-programmes Chapitre n° 5: Objectifs : Activité:
Chapitre II.Rappels mathématiques et complexité
Les structures de contrôles itératives complètes
Les bases de l’Algorithmique
Initiation à la programmation et algorithmique
UNIVERSITE DES SCIENCES ET DE LA TECHNOLOGIE D’ORAN
Cours 7 - Les pointeurs, l'allocation dynamique, les listes chaînées
La structure conditionnelle simple
Récursivité.
Démarche de résolution de problèmes
Algorithmique et Programmation
Les structures de contrôle conditionnelles
Introduction à la récursivité
Algorithmique et Programmation
Les Fonctions. Définir une fonction Sections de code indépendantes que lon peut appeler à nimporte quel moment et dans nimporte quel ordre. Bout de code.
Introduction à la programmation I Fonctions Structures de contrôle Structures de données (arrays simples et indexés) Variables locales et globales.
Les Algorithmes de Tri Introduction Tri par Sélection
Programmation non procédurale Le projet ECOLE 2000
ASI 3 Méthodes numériques pour l’ingénieur
Structures de données IFT-2000 Abder Alikacem La récursivité Semaine 5 Département dinformatique et de génie logiciel Édition Septembre 2009.
Programmation linéaire en nombres entiers : les méthodes de troncature
Analyse des Algorithmes
Procédures et fonctions
Structures de données IFT-2000 Abder Alikacem La récursivité Département d’informatique et de génie logiciel Édition Septembre 2009.
Analyse d’algorithmes
Introduction à la programmation orientée objets
Informatique : formation pour débutants Deuxième partie : vocabulaire
ASI 3 Méthodes numériques pour l’ingénieur
Institut de Formation aux Métiers de l’industrie Automobile.
INTRODUCTION.
Les Structures De Contrôle Itératives Complètes
TD0 - Rappels. Acquis du programme 1 ère année Analyser et modéliser : un problème, une situation ; Imaginer et concevoir : une solution algorithmique.
Décomposition et paramétrage des algorithmes
Programmation linéaire en nombres entiers
2008/ Plan du cours 1.Introduction –Contenu du cours 2.Logique mathématique –Calcul propositionnel –Calcul des prédicats –Logique floue et aide à.
1 1 Huitième journée Quelques algorithmes. 2 Définition Description des tâches pour que celles-ci soient aisément programmables Différent d’une méthode.
Les algorithmes recursifs
Introduction à la récursivité
La Récursivité.
2005/2006 Structures de Données Introduction à la complexité des algorithmes.
La récursivité Mireille Goud HEG Vd AlgSD - Résurisivité.
CPI/BTS 2 Algorithmique & Programmation La récursivité Algo – Prog CPI/BTS2 – M. Dravet – 14/09/2003 Dernière modification: 14/09/2003.
Post-optimisation, analyse de sensibilité et paramétrage
Algorithmique Tableaux de données
Chapitre 4b La représentation des nombres.
Les Structures simples
Algorithmique Conditions et Itérations Cours de BTS/CPI 1ère année Algo – Prog CPI/BTS1 – M. Dravet – 17/09/2003 Dernière modification: 17/09/2003.
Algorithmique Boucles et Itérations
Introduction à l’Informatique chap 3 Licence SPI Mme Delmotte.
Chap. 3 Récursion et induction. Les définitions par récurrence consistent à construire des objets finis, à partir d'autres, selon certaines règles. Les.
Division euclidienne - décimale
Les stratégies de calcul 5 e et 6 e année. Addition.
La place du calcul mental et du calcul réfléchi dans la résolution de problème. Qu’est-ce que chercher?
Transcription de la présentation:

RAPPEL Qu’est ce qu’une structure de contrôle itérative ? Quand on utilise la structure de contrôle itérative complète ? Quand on utilise la structure de contrôle itérative Répéter? Quand on utilise la structure de contrôle itérative Tant que ? Diviser pour régner

Chapitre 12 : Les sous programmes 

Objectifs Décomposer un problème en module Présenter les solutions sous forme de sous programmes (procédure et fonction) Enfin écrire des algorithmes et des programmes solutions Diviser pour régner

Introduction Jusqu'ici nous avons vu comment résoudre des problèmes plus moins simples faisant appel à la structure de contrôle conditionnelle et a la structure de contrôle itérative au répétitive à savoir les boucles : pour ,répéter, tan que . Mais pour résoudre des problèmes complexes et/ou de grande taille, il est souvent préférable de les décomposer en sous problèmes indépendante et de taille réduite, par la suite on associe à chaque sous problème un module assurant sa résolution. Aujourd'hui nous allons voir comment: Décomposer un problème en module Présenter les solutions sous forme de sous programmes (procédure et fonction) Enfin écrire des algorithmes et des programmes solutions Diviser pour régner

Exemples Notre classe veut organiser une fêté de fin d'année Exemples Notre classe veut organiser une fêté de fin d'année .il est alors nécessaire de se partager le travail afin de réussir ce projet .dans ce but, un chef de projet et des groupes d'élèves seront constitués. Chaque groupe aura une tache bien précise et devra la programmer. Un groupe s'occupe de la décoration de la salle ; un autre s'occupe des invités ; ainsi de suite .le chef de projet synchronise et pilote l'ensemble des groupes. Diviser pour régner

Éviter les redondances A travers cet exemple, des notations importantes apparaissent tel que chef de projet est représenter en programmation par programme principale et les groupes par des sous programmes. Cette approche s’appelle analyse modulaire, qui présente les avantages suivantes: Éviter les redondances Concentrer sur la résolution d’un sous problème à la fois Détecter facilement les parties à modifier Réutiliser les modules On distingue deux types de sous programmes: Les fonctions Les procédures Diviser pour régner

Partie 1 : Les fonctions Diviser pour régner

activité1 Citez des fonctions standard que vous avez déjà utilisez , ainsi que ses paramètres. Que remarquez-vous? Pouvez-vous donner une définition d’une fonction? Diviser pour régner

1.Définition : Une fonction est un sous programme permettant de retourner un résultat unique à partir d’un ou plusieurs paramètres donnés. Diviser pour régner

1) Activité 2 : On se propose d'écrire un programme intitulé somme_fact qui permet de calculer et d'afficher la somme des Factorielle des chiffres d'un entier n (0 ≤n<50) Exemple Soit n=31 : 3!+1!=7 Soit n=5: 5!=120 Diviser pour régner

Analyse Algorithme: Diviser pour régner

Remarque : on a remarque la redondance de la partie calcul de la factorielle : celle ou on calcule la factorielle de n, puis celle du chiffre des dizaines D et enfin celle du chiffre des unités U. on peut éviter une telle redondance en définissant une fonction permettant de calculer la factorielle de n'importe quel entier naturel. Cette fonction sera appelée en cas de besoin Diviser pour régner

2. Vocabulaire et syntaxe : Analyse et Algorithme Algorithme de la fonction Nom-Fonction 0- Fonction Nom_Fonction (Liste des paramètres formels) : type du résultat 1- …………………………….. 2- …………………………….. Instructions de la fonction . n-1 - Nom_Fonction  résultat N- Fin Nom_Fonction Diviser pour régner

Pascal Function Nom_Fonction (Liste des paramètres formels) : type du résultat; {Déclarations locales} ; Begin ………………………….; ………………………….; ( Instructions de la fonction ) ……. Nom_Fonction := résultat ; End ; 14 Diviser pour régner

ANALYSE DU PROGRAMME PRINCIPALE: Résultat = écrire (" la Factorielle de", n,"est =", SF) SF= [ ] si (n dans [0..9]) alors SFFactorielle (n) Sinon Dn div 10 U n mod 10 SFFactorielle (D) +Factorielle (U) Fin si n = [ ] Répéter n = Donnée //saisi contrôler on utiliser répéter Jusqu’à n dans [0..50] Fin som_Fact Diviser pour régner

Tableau de déclaration des objets Type / Nature Factorielle SF D U N Fonction Entier entie Diviser pour régner

Algorithme du programme principal 0)début som_Fact 1)Répéter Ecrire ("introduire un entier compris entre 0 et 50"); Lire (n) Jusqu’à n dans [0..50] 2)si (n dans [0..9]) alors SFFN Factorielle (n) Sinon Dn div 10 Un mod10 SF FN Factorielle (D) + FN Factorielle (U) Fin si 3)écrire (" la factorielle de", n,"est =", SF) 4)fin som_Fact Diviser pour régner

Analyse de chaque module La fonction factorielle Résultat = fact [fact1] Pour i De 1 A x Répéter factfact*i Fin pour factorielle fact Fin factorielle Diviser pour régner

Tabl eau de déclaration des objets locaux Type / Nature fact I entier Diviser pour régner

Algorithme de la fonction factorielle 0)DEF FN factorielle (x : entier) : entier 1)Fact1 2)Pour i de 2 A x répéter FactFact*i Fin Pour 3)factorielle fact 4)Fin factorielle Diviser pour régner

Traduction en Pascal: Program som_fact; Uses wincrt; Var n,u,d,sf: integer Function factorielle( x:integer):integer; Var i,fact:integer; Begin Fact:=1; For i:=2 to x do Fact:=fact*i; Factorielle:= fact; End; {******* p p**********} Repeat Write ("donnée un entier "); Read (n); Until (n in [0..50]); If n in [0..9] then Sf:= factorielle (n); Else begin D:=n div 10 U:= n mod 10 Sf:=Factorielle (D) +Factorielle (U) Writeln (' la Factorielle de', n,'est =', Sf); Diviser pour régner

Une fonction est constituée de trois parties Remarques: Une fonction est constituée de trois parties La partie entête: de la fonction ou nous trouvons son nom qui est suivi, entre Parenthèses, des paramètres en entrée et leur mode de passage, puis du type du résultat. Ce type est un scalaire simple soit un entier, booléen, chaîne de caractère mais ne peut jamais être de type complexe comme les tableaux. La partie déclarative : ou tous les objets locaux de la fonction sont déclarés La partie instruction : où nous trouvons les instructions propres à la fonction Exemple: Function moyenne (coef1, note1, coef2, note2 : real) : real ; Toute objet utiliser dans une fonction est appelé objet local (i, f). Par contre toute objet déclaré dans le programme principale appelé objet global(n, u, d) Diviser pour régner

3. L'appel d'une fonction : Appel d'une fonction provoque l'activation de celle-ci . * une fonction dans son appel se comporte comme une variable. l’appel d’une fonction doit nécessairement se faire dans une expression : affichage : writeln(‘la moyenne de Ali est :‘ ,moyenne(c1,n1,c2,n2) ) ; condition : if moyenne (c1, n1, c2, n2)>10 then writeln(‘passable’) ; end ; Affectation : x := moyenne (c1, n1, c2, n2) ; x : est une variable de type réel. Nom_Fonction (Liste des paramètres effectifs)  Les paramètres effectifs et les paramètres formels doivent s’accorder du point de vue nombre, ordre, type. Diviser pour régner

Application: Diviser pour régner