Téléchargement d'épreuves

et

Cours gratuits

Les sous-programmes

Généralités

Lorsque la complexité d'un problème s'accroît, il devient nécessaire d'utiliser les sous-programmes pour alléger la tâche. Ces sous-programmes sont les procédures et les fonctions. De façon générale les sous programmes nous permettent:

  • D'éviter de copier un segment de code plusieurs fois dans un même algorithme.
  • De décomposer un grand problème en petit module ou sous problème, chacun effectuant une tâche bien précise. Les modules peuvent être écrites par plusieurs personnes de façon indépendante.
  • De constituer une bibliothèque sous-programme.

Définition

  • Le sous-programme est une suite d'instruction ordonnée que la machine n'exécute lorsque c'est nécessaire
  • La procédure est un sous programme qui peut calculer et mettre à la disposition de l'utilisation plusieurs valeurs
  • La fonction est un sous-programme qui calcule et met à la disposition de l'utilisateur une valeur unique. La valeur calculée est mise à la disposition de l'utilisateur par l'intermédiaire du nom de la fonction qui est une variable d'un type donné: celui de la valeur calculée.

Syntaxe des sous-programmes

Procédure: nom (liste des paramètres)
déclaration
début
corps de la procédure
fin

Exemple:

Ecrire une procédure qui prend en paramètre deux nombres "a" et "b", qui calcule la somme et la moyenne de ces nombres
Algorithme: somme(A, B, S, M: réel)
debut
S←A+B
M←S/2
fin

Syntaxe d'une fonction

Fonction: nom (liste des paramètres): type
déclaration
debut
corps de la fonction
nom_de_la_foncton←valeur_calculée
fin

Exemple:

Ecrire une fonction qui prend en paramètre deux nombres et renvoie la moyenne de ces nombres.
fonction moyenne(A, B: réel):réel
var m: réel
debut
m←(A+B)/2
moyenne←m
fin

 


Passage de paramètres

On distingue les paramètres effectifs et les paramètres formels.

  • Un paramètre formel est un paramètre utilisé dans la définition d'un sous programme.
  • Un paramètre effectif ou réel est un paramètre utilisé lors de l'appel d'un sous-programme.

Un sous-programme peut avoir trois types de paramètre:

  • Les paramètres d'entrée fournissent les données au sous-programme. Exemple: A et B étaient les paramètres d'entrée précédemment)
  • Les paramètres de sortie: les paramètres de sortie contiennent les résultats à la fin du déroulement du sous-programme. Exemple: S et M était les paramètres de sortie précédemment)
  • Les paramètres d'entrée-sortie jouent deux rôles: Il jouent le rôle de paramètre d'entré et celui de paramètre de sortie.

 


Introduction à l'analyse descendante

Soit un travail T décrit par un énoncé E, l'analyse descente du travail T consiste à trouver une décomposition de l’énoncer E en une suite d’énoncer E0, E1, ..., En-1 tel que la décomposition obtenue soit élémentaire.
La réalisation des travaux associées T0, T1, ..., Tn-1 réalise le travail T.
L'arbre hiérarchique ou arborescence hiérarchique correspondant respective à l'énoncé E et le travail T se présente comme suite:

a02
Chaque Ei ou Ti peut également être décomposé:

a03
La décomposition s'arrête lorsque l'on obtient des énoncés pouvant être réalisés simplement à l'aide d'action élémentaire.
Après la décomposition chaque énoncé peut être réalisé par un algorithme ou un sous-programme indépendant. L'enchaînement approprié de ces algorithmes ou sous-programme permet de réaliser le travail T.

 


Application

Problème 1

Ecrivons un algorithme qui permet de calculer Cpn avec P inférieur ou égal à n. Ce problème peut être décomposé en trois modules comme suite:

  • La lecture de "p" et "n" avec les conditions suivantes: n supérieur ou égale à 0; p supérieur ou égale à 0; p est inférieur ou égale à n.
  • Le calcule de la factoriel d'un nombre
  • Le calcul du quotient A/B*C

L'arborescence hiérarchique de ce problème est sous la forme:

a04

Résolution:

procédure: lecture(x, y: entier)
debut
répéter
lire(x)
jusqu'à x>=0
répéter
lire(y)
jusqu'à y>=0 et y<=n
fin

fonction: factorielle(m:entier):entier
var i, fact: entier
debut
si m=0 alors
fact←1
sinon
fact←1
pour i=1 à m faire
fact←fact*i
fin pour
fin si
factorielle←fact
fin

fonction: combinaison(a, b, c: entier):entier
var z: entier
debut
z←a div(b*c)
combinaison←z
fin

Algorithme: combinaison_P_N
var n, P, R, A, A, B, C: entier
debut
lecture(n,P)
A←factorielle(n)
B←factorielle(p)
C←factorielle(n-P)
R←combinaison(A,B,C)
écrire(R)
fin

Problème 2

Ecrire un algorithme qui permet de résoudre une équation du second degré de la forme ax2+bx+c=0 avec a différent de zéro.
Arborescence:

a05
Procédure: lecture(a,b,c: réel)
debut
répéter
lire(a)
jusqu'à a#0
lire(b,c)
fin

Fonction discriminant(a, b, c: réel):réel
var d: réel
debut
d←b**2-4*a*c
discriminant←d
fin

Procédure: solution(d:réel)
var x0, x1, x2: réel
debut
si d<0 alors
écrire('pas de solution')
sinon
si d=0 alors
x0← -b/2
écrire('la solution est x0= ',x)
sinon
x1←(-b-sqrt(d))/2*a
x2←(-b+sqrt(d))/2*a
écrire('les solutions sont: ', x1, x2)
fin si
fin si
fin

Algorithme: équation
var dit, a, b, c: réel
debut
lecture(a,b,c)
det←discriminant(a,b,c)
solution(det)
fin


NB: "sqrt" permet d'avoir la racine carrée d'un nombre

Consultez gratuitement nos différents cours

  • Aspects généraux (Français)

    La rédaction est l'art qui peut s'exprimer par l'écrit. Pour traiter un sujet de rédaction, il faut suivre une méthode de travail   Comprendre le sujet Pour comprendre le sujet, il faut le lire plusieurs fois et attentivement, vérifier le sens des mots, soulignés au crayon les mots importants, essayez d'exprimer dans son propre langage.   Trouver et réunir les idées On ne manque jamais d'idées devant un sujet. Nos idées sont nos souvenirs, c'est notre expérience, c'est-à-dire tout ce que la vie nous a...

    Lire la suite : Aspects généraux

  • Générateur Schunt (Machines électriques)

    Lorsque l'inducteur est monté en parallèle avec l'induit, on dit que la génératrice est Schunt.   Schéma de principe     Loi des noeuds: I = i + Ich   Equation de tensions -E + R.I + U = 0 ↔ E = U + R.I U = (Rh + r)i -(Rh + r)i - R.I + E = 0 ↔ E = (Rh + r)i + R.I Caractéristique d'une génératrice à excitation Schunt Caractéristique à vide: E=f(i) Même allure que pour la génératrice à excitation indépendante. NB: On la trace toujours lorsque la génératrice est connectée à excitation indépendante....

    Lire la suite : Générateur Schunt

  • La Chine de 1840 à 1949 (Histoire)

    A la fin du 19es (siècle), la Chine subit la pression des Européens et des Japonais. En outre elle connaît une division interne qui facilitera l'implantation des étrangers. Pays de vieilles civilisations, la Chine reste un empire faible. Représentation de la Chine au 19es Après 1840 la Chine dirigée par la dynastie Mandchourie est victime de l'impérialisme Européenne et Japonaise. Ces envahisseurs profitent de ses faiblesses (troubles sociaux, retards techniques, mésententes entre les...

    Lire la suite : La Chine de 1840 à 1949

  • Conducteurs et câbles (Technologie électrique)

    Constitution générale Un conducteur isolé est constitué par un ensemble comprenant: Une âme conductrice. Une enveloppe isolante. Un câble multiconducteur est un ensemble qui regroupe plusieurs conducteurs électriques distincts et mécaniquement solidaires généralement sous un ou des revêtements protecteurs externes. Un câble mono conducteur ne comporte qu'un conducteur isolé, revêtu d'une gaine de protection. Ame conductrice C'est la partie centrale et métallique d'un conducteur conduisant le...

    Lire la suite : Conducteurs et câbles