p = input(`Entrez un entier naturel p : `) somme = 0 k = 0 seuil = 10**p

publicité
F.JUNIER 2013/2014
DS n°2 durée 45 minutes
ISN
Exercice 1
Le script en Python ci-dessous doit répondre au problème suivant :
• prendre en entrée un entier p ;
• retourner le plus petit entier n tel que 12 + 22 + 32 + . . . + (n − 1)2 + n 2 > 10p .
Malheureusement ce script comporte plusieurs erreurs de syntaxe ou de conception.
Repérer et corriger ces erreurs.
1
2
3
4
5
6
7
p = input(’Entrez un entier naturel p : ’)
somme = 0
k = 0
seuil = 10**p
while somme>seuil:
somme = somme + k**2
print(’le seuil de %s est dépassé à partir de n=%s’%(seuil,k))
exo1.py
Exercice 2
½
u0 = 1
.
un+1 = 2un + n
Ecrire un script Python qui prend en entrée un entier n et qui retourne le terme de rang n de la suite (un ).
On considère la suite (un ) définie par
Exercice 3
Compléter le script Python ci-dessous qui prend en entrée une chaîne de caractères, la convertit en minuscules puis qui retourne
une nouvelle chaîne où les voyelles ont été triplées.
1
2
3
4
5
6
7
chaine = input(’Entrez une chaine de caractères :\n’)
#on convertit la chaine en minuscules
chaine = chaine.lower()
voyelles = [’a’,’o’,’i’,’u’,’e’,’y’,’é’,’ë’,’è’,’ä’,’à’,’î’,’ù’]
newchaine = ’’
for lettre in chaine:
......
exo3.py
1
2
3
4
Entrez une chaine de caractères :
Passer Noël sur une île au soleil.
Nouvelle chaine :
paaasseeer noooëëël suuur uuuneee îîîleee aaauuu soooleeeiiil.
exemple de sortie
Exercice 4
Compléter le script Python ci-dessous qui prend entrée une chaîne de caractères, la convertit en minuscules, puis construit la chaîne
inversée obtenue en parcourant la chaîne initiale de droite à gauche puis qui détermine si la chaîne initiale était un palindrome.
1
2
3
4
5
chaine = input(’Entrez une chaine de caractères :\n’)
chaine= chaine.lower()
invchaine = ’’
for lettre in chaine:
......
exo4.py
Page 1/2
F.JUNIER 2013/2014
1
2
DS n°2 durée 45 minutes
ISN
Entrez une chaine de caractères :
eluparcettecrapule
3
4
5
Chaîne lue à l’envers
eluparcettecrapule
6
7
C’est un palindrome
exemple de sortie
Exercice 5
1. Compléter le script ci-dessous qui prend en entrée une liste de 20 entiers choisis aléatoirement entre 1 et 10 et qui retourne
le minimum de cette liste :
1
from random import randint
2
3
4
5
liste = [randint(1,10) for i in range(20)]
print(liste)
.....
exo5Q1.py
1
2
[791, 941, 948, 974, 78, 178, 346, 727, 474, 463]
Le minimum de la liste d’entiers est 78
exemple de sortie
2. Modifier le script précédent pour qu’il retourne aussi la liste des index de la liste où le minimum est atteint.
1
2
3
[10, 5, 9, 3, 10, 2, 5, 9, 8, 8, 4, 6, 7, 6, 8, 4, 10, 4, 2, 6]
Le minimum de la liste d’entiers est 2
Le minimum est atteint aux index suivants : [5, 18]
exemple de sortie
Exercice 6
Certains entiers comme 50 peuvent s’écrire d’une ou plusieurs façons comme une somme de deux carrés d’entiers : 50 = 72 + 12 et
50 = 52 + 52 mais de telles décompositions n’existent pas pour tous les entiers.
Ecrire un script Python qui prend en entrée un entier naturel n et qui affiche en sortie toutes les décompositions existantes de n
comme somme de deux carrés et le nombre de décompositions ainsi obtenues. On pourra se limiter à l’affichage du nombre de
décompositions.
p
On pourra rechercher les décompositions de la forme n 2 = i 2 + j 2 avec des entiers i et j vérifiant 1 6 i 6 j 6 n. La condition i 6 j
permet d’éviter de compter deux fois la même décomposition, par exemple 50 = 72 + 12 = 12 + 72 .
1
2
3
4
5
Entrez un entier n : 925
925 = 5^2 + 30^2
925 = 14^2 + 27^2
925 = 21^2 + 22^2
Il y a 3 décompositions de 925 en somme de deux carrés d’entiers.
exemple de sortie
Page 2/2
Téléchargement