Les sous programmes Une urne contient n boules numérotée de 1 à n. On tire simultanément p boules de U. On désire calculer le nombre de tirages possibles. Algorithme : tirage Début Répéter lire(n,k) jusqu’à 1≤k<n //calcul de factoriel de k Pk1 Pour i de 1 à n faire Pkpk*i Fin pour Le nombre de tirage possible est égale au nombre de combinaisons de p éléments parmi n. On désire écrire un programme qui permet de saisir deux entier n et k (avec 1≤k<n), de calculer et d’afficher le nombre tirage possible. Les tâches à faire : Saisir deux entiers n et k tel que 1≤k<n Calculer le nombre de combinaison C de n et k : o Calculer le factoriel de n o Calculer le factoriel de K o Calculer le factoriel de n-k Afficher le nombre de tirage. //calcul de factoriel de n Pn1 Pour i de 1 à n faire Pnpn*i Fin pour //calcul de factoriel de n-k Sn-k Pkn1 Pour i de 1 à n faire Pknpkn*i Fin pour Ecrire ("le nombre de tirage possible =" ,pn/(pk*pkn) Fin Objets Pn,pk,ipnk,n,k Type Entier Algorithme : tirage Début Répéter lire(n,k) jusqu’à 1≤k<n C fact(n)/(fact(k)*fact(n-k) Ecrire ("le nombre de tirage possible =" ,c) Fin Objets N,k Fact Remarque : Le traitement de calcul de factoriel a été effectué ou répété 3 fois Pour remédier à ce problème on utilise la notion de sous-programme. Solution qui utilise un sous-programme appelé factoriel qui va nous permettent d’écrire le traitement de calcul une seule fois mais on l’appelle 3 fois. Types Entier Foncion Fonction fact (h :entier) :entier Début P1 Pour i de 1 à h faire Pp*i Fin pour Retourner(p) Fin Objets Type P,i entier algorithme A- Types de sous programmes : 1- Définition : un sous-programme est un ensemble d’instruction, déclarer dans un programme ou dans un sousprogramme. Il peut être soit une fonction soit une procédure. Un sous-programme peut être exécuté plusieurs fois grâce à des appels. Un sous-programme est une entité indépendante dans un programme. a- Fonction : (algorithme) Une fonction est sous-programme qui permet de donner un seul résultat de type simple (sauf tableau) Remarque : en python seules les fonctions existent. b- Procédure : une procédure est un sous-programme qui permet de donner zéro à plusieurs résultats 2- Notions d’objets : Objets locales : un objet local est objet déclaré et connu seulement à l’intérieur d’un sous-programme. Objets globales : un objet global est déclaré dans la partie déclarative d’un programme principal. Cet objet est utilisé par le PP et par les différents autres sous-programmes. 3 Notion de paramètres : Les paramètres formels figurent dans l’entête de la définition d’un sous-programme Les paramètres effectifs figurent dans l’appel d’un sousprogramme. Les paramètres effectifs et les paramètres formels doivent s’accorder au point de vue nombre, ordre et type Leurs identificateurs ou noms peuvent êtres différents. 4- Mode de passage des paramètres : La substitution (remplacement)des paramètres effectifs aux paramètres formels s’appelle mode de passage des paramètres. Il s’agit d’un appel entre le sous-programme appelant ou PP et les sous programmes appelé. Il existe deux modes de passage de paramètres : Si le sous-programme ne change par la valeur d’un paramètre formel c’est mode de passage par valeur. Si le sous-programme change la valeur d’un paramètre formel et le programme appelant à besoin de cette nouvelle valeur c’est mode de passage par variable. Chaque paramètre formel doit être précédé par son mode de passage et suivi par son type en algorithme Chaque paramètre formel passé par variable doit être précédé par le signe @ en algorithme En python tous les paramètres passé par variable doivent être éliminer de l’entête et misent dans l’instruction return Les paramètres d’une fonction sont toujours passés par valeur. L’analyse modulaire : L’analyse modulaire consiste à diviser un problème en sous problème (en module ou sous-programme) de moindres difficultés. Exemple : Ecrire un programme qui permet de saisir deux tableaux T et V de n entier ( n dans [5..50]), de calculer et d’afficher la somme des élément de T et V dans un autre tableau K. Les taches à faire :