Ici se trouve une série d'exercices d'algorithmique.
Le but est de se familiariser avec des exercices simples au début.
Vers la fin, des exercices de l'épreuve pratique du baccalauréat de fin de terminale sont présentés.
Écrire une fonction Python ajouter_deux
qui prend un nombre en entrée et renvoie ce nombre augmenté de 2.
Tests :
# Tests
Affichage :
Console:
Complète la fonction calculer_surface_disque(rayon)
qui prend en entrée le rayon d’un disque et retourne sa surface.
💡 Rappel : la surface d’un disque de rayon r
se calcule avec la formule :
$$ \text{Surface} = \pi \times r^2 $$
Tu peux utiliser math.pi
pour représenter la valeur de π.
Tests :
# Tests
Affichage :
Console:
Complétez un programme Python qui affiche les nombres de 1 à 100 en utilisant une boucle for
.
Tests :
# Tests
Affichage :
Console:
Complétez un programme Python qui affiche les nombres de 25 à 134 en utilisant une boucle for
.
Tests :
# Tests
Affichage :
Console:
Complétez la boucle précédente pour afficher les nombres impairs de 1 à 101.
Tests :
# Tests
Affichage :
Console:
Complétez un programme Python qui affiche les nombres de 10 à 0 compris par ordre décroissant en utilisant une boucle for
.
Tests :
# Tests
Affichage :
Console:
Complétez une fonction Python appelée calculer_carre
qui prend un nombre en entrée et renvoie son carré.
Tests :
# Tests
Affichage :
Console:
Complétez la fonction compte_a
qui prend comme argument un string texte
et qui renvoie le nombre de caractères 'a'
de ce string.
Tests :
# Tests
Affichage :
Console:
Complétez une fonction Python nommée est_majeur
qui prend l'âge d'une personne en entrée et renvoie True
si elle est majeure (18 ans ou plus), sinon renvoie False
.
Tests :
# Tests
Affichage :
Console:
Complétez la fonction nombre_de_majuscules(chaine)
qui prend en paramètre une chaine de caractères et qui renvoie le nombre de majuscules présentes dans cette chaine.
Tests :
# Tests
Affichage :
Console:
Écris une fonction somme_de_0_a_n(n)
qui retourne la somme des entiers de 0 à n
inclus.
⭐ Exemple : somme_de_0_a_n(5)
doit renvoyer 15
(car 0+1+2+3+4+5 = 15).
Tests :
# Tests
Affichage :
Console:
Écris une fonction doubler_elements(liste)
qui prend en entrée une liste de nombres et retourne une nouvelle liste où chaque élément est multiplié par 2.
⭐ Exemple : doubler_elements([5, 3, 8])
doit renvoyer [10, 6, 16]
.
Tests :
# Tests
Affichage :
Console:
Écris une fonction multiples_de_5(n)
qui retourne une liste contenant tous les multiples de 5 compris entre 0 et n
inclus.
⭐ Exemple : multiples_de_5(20)
doit renvoyer [0, 5, 10, 15, 20]
.
Tests :
# Tests
Affichage :
Console:
Écris une fonction puissances_de_2(n)
qui retourne une liste contenant les valeurs de 2^0
jusqu’à 2^n
.
Utilise une boucle for
avec range(0, n+1)
et calcule chaque puissance avec l’opérateur **
.
⭐ Exemple : puissances_de_2(5)
doit renvoyer [1, 2, 4, 8, 16, 32]
.
Tests :
# Tests
Affichage :
Console:
Écris une fonction carres_jusqua_n(n)
qui prend en entrée un entier positif n
et retourne une liste contenant tous les carrés parfaits inférieurs ou égaux à n
.
Utilise une boucle while
pour construire progressivement la liste.
⭐ Exemple :
carres_jusqua_n(10)
doit renvoyer [1, 4, 9]
;carres_jusqua_n(102)
doit renvoyer [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
.Tests :
# Tests
Affichage :
Console:
Écris une fonction table_multi(n)
qui prend en paramètre un entier n
et affiche sa table de multiplication de 1 à 10.
⭐ Exemple : pour n = 3
, la fonction doit afficher :
3*1=3
3*2=6
3*3=9
...
3*10=30
Tests :
# Tests
Affichage :
Console:
Programmer la fonction moyenne
prenant en paramètre un tableau d'entiers tab
(de type list
) qui renvoie la moyenne de ses éléments si le tableau est non vide. Proposer une façon de traiter le cas où le tableau passé en paramètre est vide.
Dans cet exercice, on s’interdira d’utiliser la fonction Python sum
.
Exemples :
>>> moyenne([5, 3, 8])
5.333333333333333
>>> moyenne([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
5.5
>>> moyenne([])
# Comportement différent suivant le traitement proposé.
Tests :
Affichage :
Console:
Dans cet exercice, les nombres sont des entiers ou des flottants.
Écrire une fonction moyenne
renvoyant la moyenne pondérée d’une liste non vide, passée en paramètre,
de tuples à deux éléments de la forme (valeur, coefficient)
où valeur et coefficient sont des
nombres positifs ou nuls.
Si la somme des coefficients est nulle, la fonction renvoie None
, si la somme des coefficients est
non nulle, la fonction renvoie, sous forme de flottant, la moyenne des valeurs affectées de leur coefficient.
Exemples :
>>> moyenne([(8, 2), (12, 0), (13.5, 1), (5, 0.5)])
9.142857142857142
>>> moyenne([(3, 0), (5, 0)])
None
Tests :
Affichage :
Console:
Complète la fonction compter_caractere(chaine, carac)
qui prend en entrée une chaîne de caractères chaine
et un caractère carac
. Elle doit retourner le nombre de fois où carac
apparaît dans chaine
.
⭐ Exemple : compter_caractere("programmation", "m")
doit renvoyer 2
.
Tests :
# Tests
Console:
Écris une fonction affiche_carre(n)
qui affiche un carré de caractères #
de taille n
.
⭐ Exemple :
>>> affiche_carre(5)
#####
#####
#####
#####
#####
>>> affiche_carre(3)
###
###
###
Tests :
# Tests
Affichage :
Console:
On rappelle que l’opérateur %
renvoie le reste de la division entière :
7 % 2 = 1
car 7 = 3 × 2 + 18 % 2 = 0
car 8 = 4 × 2 + 0Ainsi, un nombre est pair si nombre % 2 == 0
, et impair sinon.
Complète une fonction est_pair(nombre)
qui prend un nombre entier en entrée et renvoie True
s’il est pair, sinon False
.
Améliore cette fonction en écrivant est_pair_court(nombre)
en une seule ligne.
Tests :
# Tests
Affichage :
Console:
Complétez une fonction Python nommée compter_voyelles
qui prend une chaîne de caractères en entrée et renvoie le nombre de voyelles qu'elle contient. On considère comme voyelles : a, e, i, o, u, y
ainsi que leurs variantes accentuées (ex. é
, è
, à
, ï
, etc.), en minuscules et majuscules. On comptera aussi æ
/Æ
et œ
/Œ
.
Tests :
Affichage :
Console:
En mathématiques, la factorielle d'un nombre entier positif \( n \) est le produit de tous les nombres entiers positifs inférieurs ou égaux à \( n \). Elle est notée \( n! \) (lire « \( n \) factorielle »).
La factorielle d'un entier \( n \) est définie comme suit :
Exemples :
Écrivez une fonction Python appelée calculer_factorielle
qui prend un nombre en entrée et renvoie sa factorielle à l'aide d'une boucle for
.
Tests :
Affichage :
Console:
Déclarez une fonction Python nommée est_divisible
qui prend deux nombres en entrée, nombre
et diviseur
, et renvoie True
si nombre
est divisible par diviseur
, sinon renvoie False
.
Écrivez également une version plus concise appelée est_divisible_court
qui réalise la même opération mais en une seule ligne avec un return
.
Tests :
Affichage :
Console:
Complétez fonction Python appelée pgcd
qui prend en paramètres deux entiers strictement positifs et renvoie leur PGCD sous la forme d'un entier.
Exemples :
pgcd(12,18) renvoie 6
pgcd(7,13) renvoie 1
pgcd(20,30) renvoie 10
Tests :
# Tests
Affichage :
Console:
Écrivez une fonction Python appelée convertir_temps
qui prend un nombre de minutes en entrée et renvoie une chaîne de caractères représentant le temps en heures et minutes.
Rappel : pour obtenir le nombre d'heures, vous pouvez utiliser la division entière // 60
.
Pour obtenir les minutes restantes, vous pouvez utiliser le reste de la division % 60
.
Exemples :
convertir_temps(150) renvoie "2h 30min"
convertir_temps(45) renvoie "0h 45min"
convertir_temps(200) renvoie "3h 20min"
Tests :
Affichage :
Console:
Complétez une fonction Python appelée est_premier
qui prend un nombre en entrée et renvoie True
s'il est premier, sinon renvoie False
.
Méthode :
nombre-1
.Exemples :
est_premier(7) renvoie True
est_premier(10) renvoie False
est_premier(2) renvoie True
Tests :
Affichage :
Console:
Complétez une fonction Python appelée calculer_moyenne_ponderee
qui prend deux listes en entrée : une liste de valeurs et une liste de poids correspondants, et renvoie la moyenne pondérée.
Rappel : la moyenne pondérée se calcule en multipliant chaque valeur par son poids, en additionnant le tout, puis en divisant par la somme des poids.
Exemples :
calculer_moyenne_ponderee([10, 15, 20], [1, 2, 1]) renvoie 15.0
calculer_moyenne_ponderee([12, 14], [3, 1]) renvoie 12.5
Tests :
Affichage :
Console:
Complétez une fonction Python appelée doublons_liste
qui prend une liste en entrée et renvoie une nouvelle liste contenant uniquement les éléments qui apparaissent plus d'une fois dans la liste.
Indice : on peut utiliser deux listes auxiliaires :
liste_elements_vus
pour stocker les éléments déjà rencontrés une première fois,liste_doublons
pour stocker les éléments rencontrés plusieurs fois.Exemples :
doublons_liste([1,2,3,2,4,1,5]) renvoie [2,1]
doublons_liste(["a","b","a","c","b","b"]) renvoie ["a","b"]
Tests :
Affichage :
Console:
Écris une fonction occurrences(caractere, chaine)
qui prend en paramètres :
caractere
: une chaîne de longueur 1,chaine
: une chaîne de caractères,et retourne le nombre de fois où caractere
apparaît dans chaine
.
⭐ Exemples :
>>> occurrences('e', "sciences")
2
>>> occurrences('i', "mississippi")
4
>>> occurrences('a', "mississippi")
0
Tests :
Affichage :
Console:
Écris une fonction compte_occurrences(x, tab)
qui prend en paramètres :
x
: une valeur,tab
: une liste,et retourne le nombre d’occurrences de x
dans tab
.
⚠️ Il est interdit d’utiliser la méthode count
des listes Python.
⭐ Exemples :
>>> compte_occurrences(5, [])
0
>>> compte_occurrences(5, [-2, 3, 1, 5, 3, 7, 4])
1
>>> compte_occurrences('a', ['a','b','c','a','d','e','a'])
3
Tests :
Affichage :
Console:
Écris une fonction maximum_tableau(tab)
qui prend en paramètre une liste non vide de nombres tab
et retourne le plus grand élément de cette liste.
⭐ Exemple :
>>> maximum_tableau([98, 12, 104, 23, 131, 9])
131
>>> maximum_tableau([-27, 24, -3, 15])
24
Tests :
Affichage :
Console:
Écris une fonction nb_repetitions(elt, tab)
qui prend en paramètres :
elt
: un élément,tab
: une liste d’éléments du même type,et retourne le nombre de fois où elt
apparaît dans tab
.
⭐ Exemples :
>>> nb_repetitions(5, [2, 5, 3, 5, 6, 9, 5])
3
>>> nb_repetitions('A', ['B', 'A', 'B', 'A', 'R'])
2
>>> nb_repetitions(12, [1, '!', 7, 21, 36, 44])
0
Tests :
Affichage :
Console:
Écris une fonction verifie(tab)
qui prend en paramètre une liste de valeurs numériques et retourne True
si la liste est triée dans l’ordre croissant, False
sinon.
Un tableau vide est considéré comme trié.
⭐ Exemples :
>>> verifie([0, 5, 8, 9])
True
>>> verifie([8, 12, 4])
False
>>> verifie([-1, 4])
True
>>> verifie([])
True
>>> verifie([5])
True
Tests :
Affichage :
Console:
On considère des tables (des listes de dictionnaires) qui contiennent des enregistrements relatifs à des animaux hébergés dans un refuge. Les attributs de chaque enregistrement sont 'nom'
, 'espece'
, 'age'
, 'enclos'
.
Exemple :
animaux = [
{'nom':'Medor', 'espece':'chien', 'age':5, 'enclos':2},
{'nom':'Titine', 'espece':'chat', 'age':2, 'enclos':5},
{'nom':'Tom', 'espece':'chat', 'age':7, 'enclos':4},
{'nom':'Belle', 'espece':'chien', 'age':6, 'enclos':3},
{'nom':'Mirza', 'espece':'chat', 'age':6, 'enclos':5}
]
Programme une fonction selection_enclos(table_animaux, num_enclos)
qui :
table_animaux
(liste de dictionnaires) et un numéro d’enclos num_enclos
,'enclos'
est égal à num_enclos
.⭐ Exemples :
>>> selection_enclos(animaux, 5)
[{'nom':'Titine', 'espece':'chat', 'age':2, 'enclos':5},
{'nom':'Mirza', 'espece':'chat', 'age':6, 'enclos':5}]
>>> selection_enclos(animaux, 2)
[{'nom':'Medor', 'espece':'chien', 'age':5, 'enclos':2}]
>>> selection_enclos(animaux, 7)
[]
Tests :
Affichage :
Console:
Programme une fonction renverse(mot)
qui prend en paramètre une chaîne de caractères mot
et retourne cette chaîne en ordre inverse.
⭐ Exemples :
>>> renverse("")
""
>>> renverse("abc")
"cba"
>>> renverse("informatique")
"euqitamrofni"
Tests :
Affichage :
Console:
Un palindrome se lit de la même façon de gauche à droite ou de droite à gauche.
Exemples de mots palindromes : bob
, radar
, non
.
Exemples de nombres palindromes : 33
, 121
, 345543
.
Complète les trois fonctions ci-dessous :
inverse_chaine
: inverse une chaîne de caractères et renvoie la chaîne inversée ;est_palindrome
: renvoie True
si la chaîne est un palindrome, False
sinon ;est_nbre_palindrome
: renvoie True
si un nombre est palindrome, False
sinon.⭐ Exemples :
>>> inverse_chaine('bac')
'cab'
>>> est_palindrome('NSI')
False
>>> est_palindrome('ISN-NSI')
True
>>> est_nbre_palindrome(214312)
False
>>> est_nbre_palindrome(213312)
True
Tests :
Affichage :
Console:
Écris une fonction recherche(elt, tab)
qui prend en paramètres :
elt
: un nombre entiertab
: une liste d’entiersLa fonction doit retourner l’indice de la première occurrence de elt
dans tab
si elt
est présent, et None
sinon.
⚠️ Il est interdit d’utiliser la méthode index()
de Python : la solution doit parcourir la liste avec une boucle.
⭐ Exemples :
>>> recherche(1, [2, 3, 4])
None
>>> recherche(1, [10, 12, 1, 56])
2
>>> recherche(50, [1, 50, 1])
1
>>> recherche(15, [8, 9, 10, 15])
3
Tests :
Affichage :
Console:
Écris une fonction recherche(elt, tab)
qui prend en paramètres :
elt
: un entier,tab
: une liste d’entiers,et retourne l’indice de la dernière occurrence de elt
dans tab
si elt
est présent, ou None
sinon.
⭐ Exemples :
>>> recherche(1, [2, 3, 4])
None
>>> recherche(1, [10, 12, 1, 56])
2
>>> recherche(1, [1, 0, 42, 7])
0
>>> recherche(1, [1, 50, 1])
2
>>> recherche(1, [8, 1, 10, 1, 7, 1, 8])
5
Tests :
Affichage :
Console:
On considère des mots à trous : ce sont des chaînes de caractères contenant uniquement des majuscules et des caractères '*'
. Par exemple 'INFO*MA*IQUE'
, '***I***E**'
et '*S*'
sont des mots à trous.
Programme une fonction correspond(mot, mot_a_trous)
qui :
mot
et mot_a_trous
,True
si on peut obtenir mot
en remplaçant convenablement les caractères '*'
de mot_a_trous
,False
sinon.⭐ Exemples :
>>> correspond("INFORMATIQUE", "INFO*MA*IQUE")
True
>>> correspond("AUTOMATIQUE", "INFO*MA*IQUE")
False
>>> correspond("STOP", "S*")
False
>>> correspond("AUTO", "*UT*")
True
Tests :
Affichage :
Console:
Écris une fonction enumere(tab)
qui prend en paramètre une liste tab
et renvoie un dictionnaire dont :
tab
,tab
.⭐ Exemples :
>>> enumere([])
{}
>>> enumere([1, 2, 3])
{1: [0], 2: [1], 3: [2]}
>>> enumere([1, 1, 2, 3, 2, 1])
{1: [0, 1, 5], 2: [2, 4], 3: [3]}
Tests :
Affichage :
Console:
Le nombre d’occurrences d’un caractère dans une chaîne de caractères est le nombre d’apparitions de ce caractère dans la chaîne.
Exemples :
'o'
dans 'bonjour'
est 2 ;'b'
dans 'Bébé'
est 1 ;'B'
dans 'Bébé'
est 1 ;' '
dans 'Hello world !'
est 2.On souhaite écrire une fonction nbr_occurrences(chaine)
qui construit un dictionnaire dont :
chaine
,⭐ Exemple :
>>> nbr_occurrences("Hello world !")
{'H': 1, 'e': 1, 'l': 3, 'o': 2, ' ': 2, 'w': 1, 'r': 1, 'd': 1, '!': 1}
L’ordre des clés dans le dictionnaire n’a pas d’importance.
Tests :
Affichage :
Console:
L'opérateur « ou exclusif » entre deux bits renvoie 0 si les deux bits sont égaux et 1 s'ils sont différents. Il est symbolisé par le caractère \( \oplus \).
Ainsi :
On représente ici une suite de bits par un tableau contenant des 0 et des 1.
Exemples :
a = [1, 0, 1, 0, 1, 1, 0, 1]
b = [0, 1, 1, 1, 0, 1, 0, 0]
c = [1, 1, 0, 1]
d = [0, 0, 1, 1]
Écris la fonction ou_exclusif
qui prend en paramètres deux tableaux de même longueur et qui renvoie un tableau où l’élément situé à la position i
est le résultat de \( tab1[i] \oplus tab2[i] \).
Avec les exemples ci-dessus, cette fonction doit donner :
>>> ou_exclusif(a, b)
[1, 1, 0, 1, 1, 0, 0, 1]
>>> ou_exclusif(c, d)
[1, 1, 1, 0]
Tests :
Affichage :
Console:
Le codage par différence (delta encoding en anglais) permet de compresser un tableau de données en indiquant pour chaque valeur sa différence avec la précédente (plutôt que la valeur elle-même). Cette méthode est efficace lorsque les valeurs consécutives sont proches.
Écris la fonction delta(liste)
qui prend en paramètre une liste non vide d’entiers et renvoie la liste compressée avec cette technique.
⭐ Exemples :
>>> delta([1000, 800, 802, 1000, 1003])
[1000, -200, 2, 198, 3]
>>> delta([42])
[42]
Tests :
Affichage :
Console:
On a relevé les valeurs moyennes annuelles des températures à Paris pour la période 2013–2019. Les résultats sont stockés dans deux listes : l’une pour les températures, l’autre pour les années.
t_moy = [14.9, 13.3, 13.1, 12.5, 13.0, 13.6, 13.7]
annees = [2013, 2014, 2015, 2016, 2017, 2018, 2019]
Écris la fonction annee_temperature_minimale
qui prend en paramètres ces deux listes et qui renvoie la plus petite température relevée au cours de la période et l’année correspondante.
On suppose que la température minimale est atteinte une seule fois.
⭐ Exemple :
>>> annee_temperature_minimale(t_moy, annees)
(12.5, 2016)
Tests :
Affichage :
Console:
On appelle « mot » une chaîne composée uniquement de lettres (minuscules ou majuscules).
On appelle « phrase » une chaîne qui :
' '
,'.'
collé au dernier mot,'!'
ou d’interrogation '?'
séparé du dernier mot par un espace.Exemples de phrases :
'Cet exercice est simple.'
'Le point d exclamation est separe !'
Programme la fonction nombre_de_mots
qui prend en paramètre une phrase et renvoie le nombre de mots qu’elle contient.
⭐ Exemples :
>>> nombre_de_mots('Cet exercice est simple.')
4
>>> nombre_de_mots('Le point d exclamation est separe !')
6
>>> nombre_de_mots('Combien de mots y a t il dans cette phrase ?')
10
>>> nombre_de_mots('Fin.')
1
Tests :
Affichage :
Console:
Écris une fonction recherche_min
qui prend en paramètre une liste tab
non vide de nombres (non triés) et qui renvoie l’indice de la première occurrence du minimum de la liste.
⭐ Exemples :
>>> recherche_min([5])
0
>>> recherche_min([2, 4, 1])
2
>>> recherche_min([5, 3, 2, 2, 4])
2
>>> recherche_min([-1, -2, -3, -3])
2
Tests :
Affichage :
Console:
Écris une fonction indices_maxi
qui prend en paramètre une liste tab
non vide de nombres entiers et qui renvoie un couple :
tab
.⭐ Exemples :
>>> indices_maxi([1, 5, 6, 9, 1, 2, 3, 7, 9, 8])
(9, [3, 8])
>>> indices_maxi([7])
(7, [0])
Tests :
Affichage :
Console:
Écris une fonction a_doublon
qui prend en paramètre une liste triée de nombres et renvoie True
si la liste contient au moins deux nombres identiques, False
sinon.
⭐ Exemples :
>>> a_doublon([])
False
>>> a_doublon([1])
False
>>> a_doublon([1, 2, 4, 6, 6])
True
>>> a_doublon([2, 5, 7, 7, 7, 9])
True
>>> a_doublon([0, 2, 3])
False
Tests :
Affichage :
Console:
Écris une fonction ajoute_dictionnaires
qui prend en paramètres deux dictionnaires d1
et d2
dont les clés sont des nombres, et qui renvoie un dictionnaire d
défini ainsi :
d
sont celles de d1
et d2
réunies.d1
et d2
.⭐ Exemples :
>>> ajoute_dictionnaires({1: 5, 2: 7}, {2: 9, 3: 11})
{1: 5, 2: 16, 3: 11}
>>> ajoute_dictionnaires({}, {2: 9, 3: 11})
{2: 9, 3: 11}
>>> ajoute_dictionnaires({1: 5, 2: 7}, {})
{1: 5, 2: 7}
Tests :
Affichage :
Console:
On considère la fonction separe
qui prend en argument un tableau tab
dont les éléments sont des 0
et des 1
et qui sépare les 0
des 1
en plaçant les 0
en début de tableau et les 1
à la suite.
Exemples :
>>> separe([1, 0, 1, 0, 1, 0, 1, 0])
[0, 0, 0, 0, 1, 1, 1, 1]
>>> separe([1, 0, 0, 0, 1, 1, 0, 1, 1, 0, 1, 0, 1, 1, 1, 0])
[0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1]
Description des étapes pour tab = [1, 0, 1, 0, 1, 0, 1, 0]
:
Étape 1 : on regarde la première case, qui contient un 1 : on l’échange avec la dernière case.
tab = [0, 0, 1, 0, 1, 0, 1, 1]
Étape 2 : la première case contient 0 : elle est bien placée, on avance à la case suivante.
tab = [0, 0, 1, 0, 1, 0, 1, 1]
Étape 3 : la seconde case contient 0 : elle est bien placée, on avance.
tab = [0, 0, 1, 0, 1, 0, 1, 1]
Étape 4 : la troisième case contient 1 : on l’échange avec l’avant-dernière case.
tab = [0, 0, 1, 0, 1, 0, 1, 1]
Et ainsi de suite …
tab = [0, 0, 0, 0, 1, 1, 1, 1]
Tests :
Affichage :
Console:
On rappelle que :
t[-1]
permet d’accéder au dernier élément d’une liste t
.Dans cet exercice, l’opérateur **
et la fonction pow
ne sont pas autorisés.
Programme :
liste_puissances(a, n)
qui prend en paramètres un entier a
et un entier strictement positif n
, et qui renvoie la liste [a¹, a², …, aⁿ]
.liste_puissances_borne(a, borne)
qui prend en paramètres un entier a ≥ 2
et un entier borne
, et qui renvoie la liste des puissances de a
, à l’exclusion de \(a^0\), strictement inférieures à borne
.⭐ Exemples :
>>> liste_puissances(3, 5)
[3, 9, 27, 81, 243]
>>> liste_puissances(-2, 4)
[-2, 4, -8, 16]
>>> liste_puissances_borne(2, 16)
[2, 4, 8]
>>> liste_puissances_borne(2, 17)
[2, 4, 8, 16]
>>> liste_puissances_borne(5, 5)
[]
Tests :
Affichage :
Console:
Écrire une fonction recherche_indices_classement
qui prend en paramètres un
entier elt
et une liste d’entiers tab
, et qui renvoie trois listes :
tab
strictement inférieures à elt
;tab
égales à elt
;tab
strictement supérieures à elt
.Exemples :
>>> recherche_indices_classement(3, [1, 3, 4, 2, 4, 6, 3, 0])
([0, 3, 7], [1, 6], [2, 4, 5])
>>> recherche_indices_classement(3, [1, 4, 2, 4, 6, 0])
([0, 2, 5], [], [1, 3, 4])
>>> recherche_indices_classement(3, [1, 1, 1, 1])
([0, 1, 2, 3], [], [])
>>> recherche_indices_classement(3, [])
([], [], [])
Tests :
Affichage :
Console:
On rappelle que les tableaux sont représentés par des listes Python (list
).
Le but de cet exercice est d’écrire une fonction ajoute
qui prend en paramètres trois
arguments indice
, element
et tab
et renvoie un tableau tab_ins
dans lequel les
éléments sont ceux du tableau tab
avec, en plus, l’élément element
à l’indice indice
.
On considère que les variables indice
et element
sont des entiers positifs et que les
éléments de tab
sont également des entiers.
En réalisant cette insertion, Les éléments du tableau tab
dont les indices sont supérieurs
ou égaux à indice
apparaissent décalés vers la droite dans le tableau tab_ins
.
Si indice
est égal au nombre d’éléments du tableau tab
, l’élément element est ajouté
dans tab_ins
après tous les éléments du tableau tab
.
Exemples :
>>> ajoute(1, 4, [7, 8, 9])
[7, 4, 8, 9]
>>> ajoute(3, 4, [7, 8, 9])
[7, 8, 9, 4]
>>> ajoute(0, 4, [7, 8, 9])
[4, 7, 8, 9]
Complète puis teste le code ci-dessous :
Tests :
Affichage :
Console:
On considère la fonction binaire
ci-dessous. Cette fonction prend en paramètre
un entier positif a
en écriture décimale et renvoie son écriture binaire sous la forme d’une
chaine de caractères.
L’algorithme utilise la méthode des divisions euclidiennes successives comme l’illustre l’exemple ci-après.
Compléter le code de la fonction binaire
.
Exemples :
>>> binaire(83)
'1010011'
>>> binaire(127)
'1111111'
>>> binaire(0)
'0'
Tests :
Affichage :
Console:
Une professeure de NSI décide de gérer les résultats de sa classe sous la forme d’un dictionnaire :
Avec :
resultats = {'Dupont': {
'DS1': [15.5, 4],
'DM1': [14.5, 1],
'DS2': [13, 4],
'PROJET1': [16, 3],
'DS3': [14, 4]
},
'Durand': {
'DS1': [6 , 4],
'DM1': [14.5, 1],
'DS2': [8, 4],
'PROJET1': [9, 3],
'IE1': [7, 2],
'DS3': [8, 4],
'DS4':[15, 4]
}
}
L’élève dont le nom est Durand a ainsi obtenu au DS2 la note de 8 avec un coefficient 4.
Le professeur crée une fonction moyenne
qui prend en paramètre le nom d’un de ses
élèves et renvoie sa moyenne arrondie au dixième.
Si l’élève n’a pas de notes, on considère
que sa moyenne est nulle. Si le nom donné n’est pas dans les résultats, la fonction renvoie
None
.
Tests :
Affichage :
Console:
On souhaite programmer une fonction indiquant le point le plus proche d’un point de départ dans un tableau de points non vide. Les points sont tous à coordonnées entières et sont donnés sous la forme d’un tuple de deux entiers. Le tableau des points à traiter est donc un tableau de tuples.
On rappelle que la distance \(d\) entre deux points du plan de coordonnées \((x; y)\) et \((x'; y')\) vérifie la formule :
\( d^2 = (x - x')^2 + (y - y')^2 \)
Compléter le code des fonctions distance_carre
et point_le_plus_proche
fournies ci-dessous pour qu’elles répondent à leurs spécifications.
Exemples:
>>> distance_carre((1, 0), (5, 3))
25
>>> distance_carre((1, 0), (0, 1))
2
>>> point_le_plus_proche((0, 0), [(7, 9), (2, 5), (5, 2)])
(2, 5)
>>> point_le_plus_proche((5, 2), [(7, 9), (2, 5), (5, 2)])
(5, 2)
Tests :
Affichage :
Console:
On considère la fonction insere
ci-dessous qui prend en argument un tableau tab
d’entiers triés par ordre croissant et un entier a
. Cette fonction crée et renvoie un nouveau tableau tab
d’entiers triés par ordre croissant.
Cette fonction crée et renvoie un nouveau tableau à partir de celui fourni en paramètre en y insérant la valeur a
de sorte que le tableau renvoyé soit encore trié par ordre croissant. Les tableaux seront représentés sous la forme de listes Python.
Compléter la fonction insere
ci-dessous.
Exemples :
>>> insere([1, 2, 4, 5], 3)
[1, 2, 3, 4, 5]
>>> insere([1, 2, 7, 12, 14, 25], 30)
[1, 2, 7, 12, 14, 25, 30]
>>> insere([2, 3, 4], 1)
[1, 2, 3, 4]
>>> insere([], 1)
[1]
Tests :
Affichage :
Console:
Dans cet exercice on cherche à calculer la moyenne pondérée d’un élève dans une matière donnée. Chaque note est associée à un coefficient qui la pondère.
Par exemple, si ses notes sont : 14 avec coefficient 3, 12 avec coefficient 1 et 16 avec coefficient 2, sa moyenne pondérée sera donnée par :
\( \dfrac{14 \times 3 + 12 \times 1 + 16 \times 2}{3+1+2} = 14,333...\)
Écrire une fonction moyenne
:
notes
non vide de tuples à deux éléments entiers de la forme (note, coefficient)
(int
ou float
) positifs ou nuls ;None
sinon.Exemple :
>>> moyenne([(8, 2), (12, 0), (13.5, 1), (5, 0.5)])
9.142857142857142
>>> moyenne([(3, 0), (5, 0)])
None
Tests :
Affichage :
Console:
Sur le réseau social TipTop, on s’intéresse au nombre de « like » des abonnés. Les données sont stockées dans des dictionnaires où les clés sont les pseudos et les valeurs correspondantes sont les nombres de « like » comme ci-dessous :
{'Bob': 102, 'Ada': 201, 'Alice': 103, 'Tim': 50}
Écrire une fonction max_dico
qui :
dico
non vide dont les clés sont des chaînes de caractères et les valeurs associées sont des entiers positifs ou nuls ;Exemples :
>>> max_dico({'Bob': 102, 'Ada': 201, 'Alice': 103, 'Tim': 50})
('Ada', 201)
>>> max_dico({'Alan': 222, 'Ada': 201, 'Eve': 220, 'Tim': 50})
('Alan', 222)
Tests :
Affichage :
Console:
Programmer la fonction multiplication
prenant en paramètres deux nombres entiers relatifs n1
et n2
, et qui renvoie le produit de ces deux nombres.
Les seules opérations autorisées sont l’addition et la soustraction.
Exemples :
>>> multiplication(3, 5)
15
>>> multiplication(-4, -8)
32
>>> multiplication(-2, 6)
-12
>>> multiplication(-2, 0)
0
Tests :
Affichage :
Console:
On modélise la représentation binaire d'un entier non signé par un tableau d'entiers dont les éléments sont 0 ou 1.
Par exemple, le tableau [1, 0, 1, 0, 0, 1, 1]
représente l'écriture binaire de l'entier dont l'écriture décimale est :
$$ 2^6 + 2^4 + 2^1+2^0 = 83 $$
A l'aide d'un parcours séquentiel, écrire la fonction convertir
répondant aux spécifications suivantes :
def convertir(tab):
"""
tab est un tableau d'entiers, dont les éléments sont 0 ou 1,
et représentant un entier écrit en binaire.
Renvoie l'écriture décimale de l'entier positif dont la
représentation binaire est donnée par le tableau tab
"""
Exemples :
>>> convertir([1, 0, 1, 0, 0, 1, 1])
83
>>> convertir([1, 0, 0, 0, 0, 0, 1, 0])
130
Tests :
Affichage :
Console: