Les Fonctions

Informatique

Qui suis-je ?

Je suis Rémi Fonvieille, ex-étudiant en Licence EEA, je me suis tout naturellement dirigé vers un Master Robotique. Je suis moi-même passé par ces moments de recherche d’information sans réels trouvaille. C’est pour cela que j’ai fais ce travail pour vous !

1) La décomposition fonctionnelle:

Nous désirons écrire un programme qui va permettre d’afficher la liste des diviseurs du nom “n” ou “m”. Ayant le plus grand nombre de diviseurs. il va donc falloir définir les trois fonctions suivantes:

  • diviseur (d,n) retourne True si d est un diviseur de n.
  • n_diviseurs(n) compte et retourne le nombre de diviseurs de n.
  • liste_diviseurs(n) retourne la liste des diviseurs de n.

n=200 m=450 if n_diviseurs(n) > n_diviseurs(m): print(liste_diviseurs(n)) else: print (liste_diviseurs(m))

Maintenant vous allez devoir modifier le code présent ci-dessus en insérant la définition de ces trois fonctions et tester le programme.

             n=200
             m=450
             def diviseur (d,n):
                    return n%d==0
             def liste_diviseurs(n):
                   L=[]
                   For i in range(1, n+1):
                         if diviseur(i,n):
                             L.append(i)
                    return L
             def n_diviseurs(n):
                    eturnr len(liste_diviseurs(n))


             If n_diviseurs(n) > n_diviseurs(m):
                    print(liste_diviseurs(n))


             else:
                    print(liste_diviseurs(m))

[1, 2, 4, 5, 10, 19, 20, 25, 38, 50, 76, 95, 100, 190, 380, 475, 950, 1900]       

           

2) Fonctions python et fonctions géométriques

Si vous voulez utiliser les fonctions mathématiques “Log” et “Sin”, vous allez devoir importer les fonctions mathématiques de Python dans votre programme. Vous devrez utiliser la commande: from math import *.

  1. Ecrire une fonction f définie par: f(x) = 20*log(x)
  2. Dans le programme vous allez devoir écrire un algorithme qui va dessiner la fonction f avec Turtle dans l’intervalle [1,300]. Ensuite, dans une boucle, vous tracerez successivement tous les points de coordonnées (x, f(x)).
  3. Ecrire la g définie par: g(x) = x/2*sin(x/20).
  4. Ensuite vous devrez écrire une fonction min_fg qui pour une valeur d’abscisse x compare f(x) et g(x) puis retourner la plus petite valeur.
  5. Ecrire la fonction compose_fog qui aura comme valeur d’abscisse x retourne f o g(x).
  6. Pour finir vous devez écrire une procédure dessinée qui prend en paramètre une fonction et la dessine avec Turtle dans l’intervalle [1,300]. Tester en dessinant f,g,min_fg puis compose_fog.

      from turtle import * from math import * up() goto(-300,0) down() goto (300,0) up() goto(0,300) down() goto(0,300) 


             from turtle import  *
             from math import  *
             def f(x):
                    return 20*log(x)
             def g(x):
                    return x/2*sin(x/20)
             def min_fg (x):
                    if f(x)<g(x)
                         return f(x)

                    Else:
                         return g(x)
             def compose_fog(x):
                    return g(f(x))
             def dessiner(fonc):
                    up()
                    goto(0,0)
                    down()
                    for x in range (1,300):
                         goto (x, fonc (x))
             up()
             goto(-300,0)

             goto(300,0)
             up()
             goto(0,-300)
             down()
             goto(0,300)
             dessiner(f)
             dessiner(g)
             dessiner(min_fg)
             dessiner(compose_fog)
             exitonclick()

3) Fonctions simples

Il vous faut écrire une fonction f définie par: f(x) = 2 x^2 – 1. Dans le programme, vérifier que f(0) = -1, f(1) = 2 et f(5) = 74

             def f(x):
                    return 3*x**2-1
             print (f(0), f(1), f(5))

-1  2  74

Ensuite, vous devez écrire une fonction fahrenheit qui convertit en en °F une température d donnée en paramètre en °C, selon la formule tF = tC * 1,8 + 32. Combien font 20°C et -2°C en °F ?

             def farenheit (tc):
                    return tc*1.8+32
             print (farenheit(20), farenheit (-3))

68.0  26.6

Ecrire maintenant une fonction bissextile qui va prendre en compte un entier a et retourne True si l’année a est bissextile (et si ce n’est pas le cas: False). Petit rappel: une année bissextile est soit un multiple de 4 mais pas de 100, soit un multiple de 400. Les année 2002 et 2016 sont elles bissextiles?

             def bissextile(a):
                    return (a%4==0 and a%100!=0) or a%400==0
             print(bissextile(2002), bissextile(2016))

True False

Ecrire une fonction air_disque qui va prendre en compte un entier r et qui va renvoyer la surface du disque de rayon r, définie par S = πr^2 . La fonction pi définie un peu plus haut sera utilisée pour la valeur de π.

             pi=3.14

             def surface(r):
                    return pi*r**2
             print (surface(1.5))


7.065

Maintenant vous devez écrire une fonction prix_ttc qui va prendre en compte un entier prix_ht et qui va renvoyer le prix TTC selon la formule: prixTTC = prixHT * (1+TVA), où la TVA est égale à: 19.6%

Vous devez modifier la fonction pour que le taux de TVA soit également passé en paramètre de la fonction.

             def prix_ttc(prix_ht):
                    return prix_ht*(1+TVA/100)
             TVA=19.6
             print(prix_ttc(9.90))

          11.8404

Ecrire une fonction polynôme qui va accepter 4 paramètres a, b, c et x et qui va renvoyer le résultat de l’expression P(x) = ax^2 + bx + c. Avec P(x) = 2x^2 – x + 2. Vérifier que P(0) = 2, P(1) = 3 et P(2) = 8.

              def polynome(a,b,c,x):
                    return a*x**2+b*x+c
             print(polynome(2,-1,2,0), polynome(2,-1,2,1), polynome(2,-1,2,2))
 

2 3 8

Vous devez maintenant écrire une fonction max qui renvoi le maximum de deux nombres a et b.

             def max(a,b):
                    if a>=b:
                         max=a

                    Else:
                         max=b
                    return max
             print(max(3,2))

3

Ecrire une fonction val_abs qui retourne la valeur asbolue d’un nombre x passé en paramètre.

             def val_abs(x):        
                    if (x<0): 
                         return -x

                    Else:
                         return x
             print(cal_abs(2), val_abs(-2))

2 2

Maintenant il vous faut écrire une fonction signe qui évalue le signe d’un paramètre x et qui renvoie 0 si x = 0, 1 si x>0 et -1 si x < 0.

             def signe(x):         
                    if x>0:
                         return 1

                    Else:
                    if x<0:
                         return -1

                    Else:
                         return 0
             print(signe(0), signe(4), signe(-7))

0  1  -1

Ecrire une fonction factorielle qui va renvoyer la valeur factorielle de n, n étant passé en paramètre. Vérifier que 1! = 1 et 5! = 120

             def factorielle(n):        
                    fact=1 
                    for i in range(1,n+1):
                         fact=fact*i
                    return fact
             print(factorielle(1), factorielle(5))

1  120

4) Équation du second degré

Exercice 1:

Vous allez devoir rédiger une fonction delta qui retourne la valeur de Δ = b^2 – 4ac, les coefficients a, b et c seront passés en paramètre.

             def delta(a,b,c):      
                    return b**2-(4*a*c)   

Exercice 2:

Vous devez écrire une fonction solution qui calcule et renvoie sous forme de liste (contenant qu’un seul élément) la valeur de l’expression s = -b / 2a

             def solution(a,b):       
                    return -b/(2*a)  

Exercice 3:

Ecrire une fonction solution_deux qui va calculer et renvoyer sous forme de liste les valeurs des deux expressions s1= (- b -√Δ) / 2a et s2=( -b + √Δ) / 2a.

             def solution_double(a,b,c):   
                    return [(-b-delta(a,b,c)**0.5)/(2*a),(-b+delta(a,b,c)**0.5)/(2*a)]      

Exercice 4:

Vous devez écrire la fonction resoudre qui prend en compte les 3 coefficients a, b et c de l’équation ax^2 +bx +c = 0 et qui retournera la ou les solutions du résultat de l’équation sous forme de liste. Une liste vide sera renvoyée si l’équation admet aucune solution. Vous devez afficher les solutions des équations suivantes: x^2 – 2^x +1 = 0.2x^2 + x + 3 = 0 et x^2 – 1 =0

             def resoudre(a,b,c):      
                    d=delta(a,b,c)   
                    if d==0:
                         return solution(a,b)

                    else:
                         return []
             print(resoudre(1,-2,1))
             print(resoudre(2,1,3))
             print(resoudre(1,0,-1))

1.0
[]
[-1.0,  1.0]

5) Calcul d’une durée

Exercice 1:

Vous devez écrire une fonction seconde qui retourne en secondes une durée exprimée en heures, minutes et secondes. Vous allez devoir vérifier que 1h30m = 5400s et 3h20m15s = 12015s

             def hms_to_s(h,m,s):   
                         return h*3600+m*60+s
      
             print(hms_to_s(1,30,0), hms_to_s(3,20,15))

5400  12015

Exercice 2

Vous devez trouver un procédé pour afficher le temps (affichage) qui va prendre en compte une durée exprimée en seconde et qui va l’afficher en heures, minutes, secondes. Il faudra vérifier que affichage (5400) affiche 1h30m0s et que affichage (12015) affiche 3h20m15s

             def s_to_hms(s):         
                    heures=s//3600
                    minutes=(s%3600)//60
                    secondes=(s%3600)%60
                    return [heures, minutes, secondes]
             print(s_to_hms(5400), s_to_hms(12015))

[1,  30,  0]  [3,  20,  15]

             def affichage(hms):       
                         print(hms[0], ‘h’,hms[1], ‘m’, hms[2], ‘s’)  

Exercice 3:

Vous allez devoir écrire un programme qui affichera une seule ligne de code, le temps écoulé entre 13h58m et 15h31m30s

             affichage(s_to_hms(hms_to_s(15,31,30)-hms_to_s(13,58,0)))

1 h 33 m 30 s

Gagnez du temps pour être plus productif

Les meilleures méthodes d’organisation pour gagner du temps et être productif.

Vous souhaitez réussir votre Licence EEA ?

« Tes fiches m’ont permises d’approfondir mes cours nottament sur les équations différentielles »

Réussissez toutes vos équations différentielles

Une formation clé en main pour réussir toutes vos équations différentielles.

Pour vous aider à réviser, je vous offre :

✔️ 20 fiches de révision
✔️ 
annales corrigées
✔️
 
un accès au groupe privé
✔️
 
une notification lors de chaque publication d’article de cours

Pour vous aider à réviser, je vous offre :

✔️ 20 fiches de révision
✔️ 
annales corrigées
✔️
 
un accès au groupe privé
✔️
 
une notification lors de chaque publication d’article de cours

0 commentaires

Envie d'obtenir votre Licence EEA ?

Recevez des FICHES RECAPITULATIVES ainsi que des ANNALES CORRIGÉES 

You have Successfully Subscribed!

Envie d'obtenir votre Licence EEA ?

Recevez des FICHES RECAPITULATIVES ainsi que des ANNALES CORRIGÉES 

You have Successfully Subscribed!