Initiation à l'algorithmique

Notification de cookies

Nous utilisons des cookies pour améliorer votre expérience. En poursuivant votre navigation sur ce site, vous acceptez l'utilisation de cookies. Plus d'informations

Exercices corrigés sur les fonctions récursives-TD2-

Expliquez les fonctionnalités des fonctions suivantes :

Exercice 1

                FONCTION fct1(tab[],n)
                    x=-1
                    SI n=1 ALORS
                        retourne tab[0]
                    SINON
                        x=fct1(tab,n-1)
                    FINSI
                    
                    SI x> tab[n-1] ALORS
                        retourne x
                    SINON
                        retourne tab[n-1]
                    SINSI
                FINFONCTION
                
                def fct1(tab, n):
                    if n == 1:
                        return tab[0]
                    else:
                        x = fcttt(tab, n-1)
                
                    if x > tab[n-1]:
                        return x
                    else:
                        return tab[n-1]
                
Corrigé :
fct1() renvoie la valeur maximale dans le tableau d'entrée tab[] de taille n.

Exercice 2

                    FONCTION fct2(a,b)
                        SI b=0 ALORS
                            retourne 1
                        FINSI

                        SI (b mod 2) =0 ALORS
                            retourne fct2(a*a,b/2)
                        FINSI

                        retourne fct2(a*a,b/2)*a
                    FINFONCTION
                    
                    def fct2(a, b):
                        if b==0:
                            return 1
                        
                        if b%2 ==0:
                            return fct2(a*a,b//2)
                        
                        return fct2(a*a,b//2)*a
                    
Corrigé :
fct2() renvoie ab

Partager ce cours avec tes amis :

Rédigé par M. ESSADDOUKI

Learning a new programming language is an easy thing, but the most difficult thing is how to design efficient algorithms for real-world problems, so don't be a programmer, be a problems solver.

Cours Similaires :