VaultBy ENSAMIENParrainage
Note2024-11-01

Les fonctions (sous-algorithmes)

CHOUBIK Houssam

Il y a deux types de programmation : - La programmation séquentielle - Il n'a pas de fonction. - La programmation est dite monolithique c-à-d quelle constitue un seul et unique bloc. - La programmation modulaire - Utilisation des fonctions. - Code plus compréhensible. - Code structuré.

nb ! : Dans le cas de la programmation modulaire la maitenance est une opération césarienne / pointue.

Une fonction retourne qu'une seule valeur ou variable.

Exemple d'utilsation de fonction :

Exercice 4 TD 2

Enoncé : Ecrire un algorithme qui demande à l’utilisateur de fournir deux nombres entiers n et p, tel que 𝒏 ≥ 𝒑. Puis, il calcul le nombre de combinaisons de p par n.

Solution 1 : on utilisera trois boucles pour pour n! , p! et (n-p)!

Solution 2 :

On déclare d'abord la fonction factorielle :

/* L'édition de fonction */
fonction factorielle(a:ENTIER): ENTIER /* entête de fonction */
i,F_a : ENTIER
DEBUT
    F_a <- 1
    pour( i<-1 , i<a , i<-i+1 )
        F_a <- F_a*i
    finpour
    retourner(F_a)
FINFCT /* Corps de la fonction */

Maintenant on peut écrire notre algorithme :

ALGORITHME combinaison_np
n,p,Cpn:ENTIER
DEBUT
FAIRE 
    AFFICHER("donner la valeur de n et p:")
    LIRE(n,p)
TANT QUE((n<0) OU (p<0) OU (n<p))

Cpn <- factorielle(n)/(factorielle(p)*factorielle(n-p))
AFFICHER("Le Cpn est égale à :",Cpn)
FIN

Exercice : un programme qui demande à l'utilisateur un polynôme (degré, coefficients) et une valeur x, puis calcule P(x).

/*

Polynome
 <- degré >= 0 : ENTIER done
 <- les coefficients : REEL done
 <- la valeur de X : REEL

*/

Méthode 1 : En utilisant la puissance.

/* definitions de fonctions */

FONCTION puissance(x: REEL, n:ENTIER) :ENTIER
DEBUT
    P<-1
    POUR(i<-0, i<n,i<-i+1)
        P<-P*x
    FINPOUR
    RETOURNER(P)
FINFCT

/* début d'algorithme */

ALGORITHME polynome
i:ENTIER
p:REEL
DEBUT
    FAIRE
        AFFICHER("Donner le degré du polynome")
        LIRE(d)
        SI (d<0) ALORS
            AFFICHER("Le degré doit être positif")
        FINSI
    TANTQUE(d<0)

    AFFICHER("Donner les coefficients")
    POUR(i<-0, i<=n, i<-i+1)
        AFFICHER("Co(",i,")=")
        LIRE(Coef[i])
    FINPOUR
    AFFICHER("Donner la valeur de x")
    LIRE(x)
    /* Fin introduction de données */

    /*Traitement et calcul*/

    pol<-0
    POUR(i<-0, i<=, i<-i+1)
        pol<- pol+coef[i]*Puissance(x,i) 
    FINPOUR

    /* Affichage de résultat */

    AFFICHER("la valeur du polynome est",pol)

FIN

Méthode 2 : En utilisant la méthode d'Horner.

La méthode d'Horner est la suivante : - Prenons par exemple un polynome P

P(x)= ax^3 + bx^2 + cx + d

c'est équivalent à :

P(x)= ((ax+b)x+c)x+d

/* début d'algorithme */

ALGORITHME polynome
N[q]:REEL
x : REEL
i,d,q : ENTIER
DEBUT
    FAIRE
        AFFICHER("Donner le degré du polynome")
        LIRE(d)
        SI (d<0) ALORS
            AFFICHER("Le degré doit être positif")
        FINSI
    TANTQUE(d<0)

    q <- d+1
    AFFICHER("Veuillez saisir les coefficients du polynomes:")
    POUR (i<-1, i<=q,i<i+1)
        AFFICHER("Le coffecifient",i)
        LIRE(N[i])
    FINPOUR
    AFFICHER("Veuillez saisir la valeur de x")
    LIRE(x)
    p <-  N[1]
    POUR(i<-1, i<=d,i<i+1)
        p <- p*x +  N[i]
    FINPOUR
    AFFICHER("la valeur du polynome est:",p)
FIN

    Type at least 2 letters. ↑ ↓ to move, Enter to open.