• Aucun résultat trouvé

II - Boucles conditionnelles

N/A
N/A
Protected

Academic year: 2022

Partager "II - Boucles conditionnelles"

Copied!
3
0
0

Texte intégral

(1)

T.P. 2

Codage

I - Prédicats & Alternatives

Exercice 1. (Réduction étudiant,-)Écrire une fonction age(naissance,annee) qui, étant donnée l'année de naissance naissance du client et l'année courante annee renvoie son âge.

Exercice 2. (Implication logique,-)

1.Écrire une fonction booléenne divise(a,b), qui, étant donnés deux entiers a et b, renvoie True si et seulement si a divise b. La relation divise sera notée|.

2.Écrire une fonction booléenne implique(p,q) qui, étant donnés deux booléens p et q renvoie le booléen p ⇒ q.

3.Déterminer si. . . a)2|4 ⇒ 2|8. b)2|4 ⇒ 2|6.

c)2|4 ⇒ 2|7. d) 2|3 ⇒ 2|8.

Exercice 3. (-)Écrire une fonction ordre(x,y,z) qui renvoie True si x divise y et y divise z et False sinon.

Exercice 4. (Maximum de3entiers,-)

1.Écrire une fonction max2(x,y) qui renvoie le plus grand des deux nombresxety.

2.En utilisant la fonction max2, écrire une fonction max3 qui calcule le maximum de3nombres.

On dispose en Python d'une fonction prédénie max qui calcule le maximum d'un nombre quelconque d'arguments.

Il est bien sûr défendu de l'utiliser pour cet exercice ! Exercice 5. (Années bissextiles, !)

1.Écrire une fonction booléenne bissextile(annee) qui permet de tester si une année est bissextile.

On rappelle que les années bissextiles reviennent tous les4ans, sauf les années séculaires, si celles-ci ne sont pas multiples de400. Ainsi, 1900n'était pas une année bissextile, alors que2000l'était.

2. Écrire la même fonction bissextile_1 en utilisant uniquement (si ce n'est déjà fait) des opérateurs logiques (sans branchement condionnel).

Les années bissextiles actuelles sont dénies dans le calendrier grégorien, instauré en occident en 1582 par le pape Grégoire XIII en replacement du calendrier julien. En astronomie, une année vaut environ365,242198jours.

Dans le calendrier grégorien, la durée moyenne d'une année est de365,2425jours.

Exercice 6. (Trinômes)Écrire une fonction trinome(a,b,c) qui, étant donnés trois entiers a (diérent de 0), b et c, renvoie le nombre de solutions réelles du trinôme aX2+bX+c.

II - Boucles conditionnelles

Exercice 7. (-)Écrire une fonction seuil_som_car(m) qui, étant donné un entier m, renvoie le plus petit entier n tel que12+ 22+· · ·+n2>m.

Exercice 8. (Factorielle,-)Écrire une fonction booléenne est_fact(n) qui, étant donné un entier naturel n, détermine s'il existe un entierk tel que n=k!.

Exercice 9. (Recherche d’un caractère,♥)Écrire une fonction trouve(mot,lettre) qui, étant donnée une liste d'entiers mot et un entier lettre, renvoie l'indice de la première occurrence de lettre dans la liste mot. Si lettre n'est pas présent dans mot, la fonction renvoie -1.

La méthode index est implémentée en Python.

Exercice 10. (Palindromes,♥)

1.Écrire une fonction inverse(mot) qui, étant donnée une liste mot, la recopie en inversant l'ordre des éléments et renvoie le résultat.

La méthode reverse eectue cette opération en place.

2.En déduire une fonction booléenne palindrome(mot) qui teste si une liste est un palindrome.

3.Écrire une fonction palindrome_rapide(mot) qui appelle chacun des éléments de mot au plus une fois pour tester si mot est un palindrome.

Stanislas A. Camanes

(2)

T.P. 2 MPSI 1

III - Boucles itératives

Exercice 11. (Suite géométrique,-)Écrire une fonction somme_geom(q,n) qui, étant donnés un nombre q et un entier naturel n, renvoie la somme des n+ 1premiers termes de la suite géométrique de raison q et de premier terme1.

Exercice 12. (Parcours de listes,-)On suppose que les listes manipulées dans cet exercice sont des listes d'entiers.

1.Écrire une fonction somme(liste) qui retourne la somme des éléments de liste.

La fonction sum est implémentée en Python.

2. Écrire une fonction carre(liste) qui retourne, sans modier liste, la liste des éléments de liste élevés au carré.

3. Écrire une fonction pair(liste) qui retourne, sans modier liste, la liste des éléments pairs de liste.

Exercice 13. (Maximum,♥)Écrire une fonction maxi(liste) (resp. mini(liste)) qui, étant donnée une liste liste d'entiers, retourne le plus grand (resp. plus petit) de ses éléments.

Les fonctions max et min sont implémentées en Python.

Exercice 14. (Occurrences,♥)Écrire une fonction occurrences(mot,lettre) qui retrourne le nombre d'occurrences de l'entier lettre dans la liste d'entiers mot.

La méthode count est implémentée en Python.

Exercice 15. (Dénombrement)Écrire une fonction cartesien(n,m) qui, étant donnés deux entiers n et m, renvoie la liste des couples d'entiers de[0,n]×[0,m].

Exercice 16. (Interclassement, -) Écrire une fonction fusionne(liste1,liste2) qui interclasse les deux listes en commençant par liste1. Par exemple, l'appel fusionne([1,2,3],[4,4,5,6]) renverra [1,4,2,4,3,5,6].

Exercice 17. (Ensembles)

1. Écrire une fonction nettoie(liste) qui, étant donnée une liste liste, renvoie, sans la modier et sans modier l'ordre des éléments, une liste contenant les éléments de liste sans répétition.

2. Écrire une fonction est_egal(lite1, liste2) qui, étant donnée des listes sans répétition, renvoie True si et seulement si ces listes contiennent les mêmes éléments (à l'ordre près).

3.Écrire une fonction inter(liste1,liste2) qui, étant données deux listes liste1 et liste2, renvoie la liste des éléments communs à liste1 et liste2.

Le type set permet de modéliser les ensembles en Python.

Exercice 18.

1. Écrire une fonction somme_chiffres(n) qui, étant donné un entier naturel n, renvoie la somme des chires de2n.

2. Écrire une fonction somme_double(n) qui, étant donné un entier naturel n, renvoie la somme P

(i,j)∈N2 ;i+j=n(i2+j)(i+j2).

3. Écrire une fonction somme_double1(n) qui, étant donné un entier naturel n, renvoie la somme P

16i6j6n(j−i)3.

IV - Fonctionnelles

Exercice 19. (Liste image)

1.Écrire une fonction mapl(f,liste) qui, étant données une fonction f et une liste liste, retourne, sans modier liste, la liste constituée des images des éléments de liste par f sans en modier l'ordre.

La fonction map est implémentée en Python.

2.En déduire l'image de la liste [1, 4, 2] par la fonctionx7→x2+ 3x+ 10sans en modier l'ordre.

Stanislas A. Camanes

(3)

T.P. 2 MPSI 1

Le mot-clé lambda permet de dénir des fonctions anonymes. Par exemple, (lambda x : x**2)(3) renvoie 9.

Exercice 20. (Filtrage,-)Écrire une fonction filtre(liste,predicat) qui, étant données une liste liste et une fonction booléenne predicat, renvoie la liste des éléments de liste qui satisfont predicat.

La fonction filter est implémentée en Python.

Exercice 21. (-)Écrire une fonction iteree(n,u0,f) qui, étant donnés un entier naturel n, un nombre u0 et une fonction f, renvoie le terme de rang n de la suite dénie par

v0=u0, ∀m∈N?, vm=f(vm−1).

Exercice 22. (Composition de fonctions,!)

1.Écrire une fonction abs_fct(f) qui, étant donné une fonction f, renvoie sa valeur absolue.

2.Écrire une fonction compose(f,g) qui, pour deux fonctions f et g, renvoie leur composée f◦g.

V - Pour aller plus loin

Exercice 23. (Statistiques & Histogrammes)Les fonctions de cet exercice sont illustrées avec des résultats d'étudiants lors d'une évaluation.

1.Écrire une fonction moyenne(donnees) qui, étant donnée une liste donnees, renvoie sa valeur moyenne.

2.Écrire une fonction ecart_type(donnees) qui, étant donnée une liste donnees, renvoie son écart-type.

Rappelons que l'écart-type est la racine carrée de la moyenne des écarts quadratiques à la moyenne.

3. Écrire une fonction classes(a, b, n) qui, renvoie une liste de ottants a0 < · · · < an tels que a0=a, an=bet pour touti∈J0,n−1K, ai+1−ai=a1−a0.

4. Écrire une fonction histogramme(donnees,classe) qui, étant donnée une liste donnees et une liste classe de longueurn+1, renvoie une liste liste de longueurntelle que pour touti∈J0, n−1K, liste[i]

soit égal au nombre d'éléments de donnees appartenant à l'ensemble[classe[i],classe[i+ 1][.

Exercice 24. (!)Écrire une fonction booléenne date(jour,mois,annee) qui teste si un ensemble de trois chires correspond à une date. Faites attention aux années bissextiles !

On pourra utiliser le test in d'appartenance à une liste. La fonction type renvoie le type de son argument. Pour des raisons historiques, les entiers Python de commencent pas par un0.

Exercice 25. (Opérateur mystère,!)Écrire les nombres4,3et 2en base 2.

1.Calculer, sous Python,2∧4,4∧2et 3∧2. Écrire ces résultats en base 2puis déterminer la dénition de l'opérateur∧.

2.Calculer4∧2 + 3∧2puis interpréter le résultat.

3.Mêmes questions avec le symbole <<.

Exercice 26. (Triangle de Pascal)Écrire une fonction pascal(n) qui renvoie les n premières lignes du triangle de Pascal.

Par exemple, pascal(3) renverra [[1], [1,2,1], [1,3,3,1]].

Exercice 27. (Encadrement)Écrire une fonction encadrement(x,ecart) qui, étant donnés en réel positif x et un entier naturel ecart, renvoie le plus petit entier naturelbtel queb6x< b+ecart.

Exercice 28. (Aléatoire)En utilisant le module random, écrire une fonction de() qui simule le lancer d'un dé équilibré.

Stanislas A. Camanes

Références

Documents relatifs

[r]

L'avantage de la méthode boothroyd est complètement prédictive rapide et qu'elle peut être adaptée à différents matériaux, et nous avons conclu avec se modèle

Tout autre lieu public à l’usage du client (spa, piscine, centre d’entraînement, salle d’essayage, salon privé, bibliothèque, etc.). Animaux

Décrivez les mesures qui ont été prises pour assurer la plus large participation possible des communautés, des groupes et, le cas échéant, des individus ainsi que

Cet aperçu également mis à la disposition du public pour consultation en ligne, avec les rapports reçus dans la langue dans laquelle ils ont été soumis par les États

Dans les exercices qui suivent, vous pouvez supposer que tous les éléments d’une liste sont comparables, et que les types des données de deux listes différentes sont compatibles..

1 châssis XS-220 DOMINATOR comprenant 2 platines en full carbone 3 K japonais, (platine principale de 5 mm et platine supérieure de 2,0 mm) 4 entretoises en alu anodisé purple

• premièrement c’est avoir une idée approfondie sur l’application de l’approche théorique dans le milieu professionnel ce qui nous permettra de comprendre et de maîtriser