Previous Up
pdf - e-book - archive

2.5  Sous-programme

2.5.1  Géométrie

Ecrire un programme demandant à l’utilisateur de saisir une valeur numérique positive n et affichant un carré, une croix et un losange, tous de coté n. Par exemple, si n = 10, l’exécution donne

Saisissez la taille des figures
10
* * * * * * * * * *
*                 *
*                 *
*                 *
*                 *
*                 *
*                 *
*                 *
*                 *
* * * * * * * * * *
                  *
                *   *
              *       *
            *           *
          *               *
        *                   *
      *                       *
    *                           *
  *                               *
*                                   *
  *                               *
    *                           *
      *                       *
        *                   *
          *               *
            *           *
              *       *
                *   *
                  *
*                                   *
  *                               *
    *                           *
      *                       *
        *                   *
          *               *
            *           *
              *       *
                *   *
                  *
                *   *
              *       *
            *           *
          *               *
        *                   *
      *                       *
    *                           *
  *                               *
*                                   *

Vous définirez des sous-programmes de quelques lignes et au plus deux niveaux d’imbrication. Vous ferez attention à ne jamais écrire deux fois les mêmes instructions. Pour ce faire, complétez le code source suivant :

"""
Affiche le caractère c
"""

def afficheCaractere(c):
    return

"""
Affiche n fois le caractère c, ne revient pas à la ligne 
après le dernier caractère.
"""

def ligneSansReturn(n, c):
    return
"""
Affiche n fois le caractère c, revient à la ligne après 
le dernier caractère.
"""

def ligneAvecReturn(n, c):
    return

"""
Affiche n espaces.
"""
        
def espaces(n):
    return

"""
Affiche le caractère c a la colonne i, 
ne revient pas à la ligne après.
"""

def unCaractereSansReturn(i, c):
    return

"""
Affiche le caractère c à la colonne i, 
revient à la ligne après.
"""
        
def unCaractereAvecReturn(i, c):
    return

"""
Affiche le caractère c aux colonnes i et j, 
revient à la ligne après.
"""
        
def deuxCaracteres(i, j, c):
    return

"""
Affiche un carré de côté n.
"""

def carre(n):
    return

"""
Affiche un chapeau dont la pointe - non affichée - est 
sur la colonne centre, avec les caractères c.
"""

def chapeau(centre, c):
    return

"""
Affiche un chapeau à l'envers avec des caractères c, 
la pointe - non affichée - est à la colonne centre.
"""
        
def chapeauInverse(centre, c):
    return
            
"""
Affiche un losange de côté n.
"""

def losange(n):
    return

"""
Affiche une croix de côté n.
"""
        
def croix(n):
    return

taille = int(input("Saisissez la taille des figures : "))
carre(taille)
losange(taille)
croix(taille)

Télécharger le fichier

Corrigé

2.5.2  Arithmétique

Exercice 1 - chiffres et nombres

  1. Écrire la fonction unites(n) retournant le chiffre des unités du nombre n.
  2. Écrire la fonction dizaines(n) retournant le chiffre des dizaines du nombre n.
  3. Écrire la fonction extrait(n, p) retourant le p-ème chiffre de représentation décimale de n en partant des unités.
  4. Écrire la fonction nbChiffres(n) retournant le nombre de chiffres que comporte la représentation décimale de n.
  5. Écrire la fonction sommeChiffres(n) retournant la somme des chiffres de n.

Exercice 2 - Nombres amis

Soient a et b deux entiers strictement positifs. a est un diviseur strict de b si a divise b et ab. Par exemple, 3 est un diviseur strict de 6. Mais 6 n’est pas un diviseur strict 6. a et b sont des nombres amis si la somme des diviseurs stricts de a est b et si la somme des diviseurs de b est a. Le plus petit couple de nombres amis connu est 220 et 284.

  1. Écrire une fonction sommeDiviseursStricts(n), elle doit renvoyer la somme des diviseurs stricts de n.
  2. Écrire une fonction sontAmis(a, b), elle doit renvoyer True si a et b sont amis, False sinon.

Exercice 3 - Nombres parfaits

Un nombre parfait est un nombre égal à la somme de ses diviseurs stricts. Par exemple, 6 a pour diviseurs stricts 1, 2 et 3, comme 1 + 2 + 3 = 6, alors 6 est parfait.

  1. Est-ce que 18 est parfait ?
  2. Est-ce que 28 est parfait ?
  3. Que dire d’un nombre ami avec lui-même ?
  4. Écrire la fonction estParfait(n), elle doit retourner True ssi n est un nombre parfait.

Exercice 4 - Nombres de Kaprekar

Un nombre n est un nombre de Kaprekar en base 10, si la représentation décimale de n2 peut être séparée en une partie gauche u et une partie droite v tel que u + v = n. 452 = 2025, comme 20 + 25 = 45, 45 est aussi un nombre de Kaprekar. 48792 = 23804641, comme 238 + 04641 = 4879 (le 0 de 046641 est inutile, je l’ai juste placé pour éviter toute confusion), alors 4879 est encore un nombre de Kaprekar.

  1. Est-ce que 9 est un nombre de Kaprekar ?
  2. Écrire la fonction sommeParties(n, p) qui découpe n est deux nombres dont le deuxième comporte p chiffres, et qui retourne leur somme. Par exemple,
    sommeParties(12540, 2) = 125 + 40 = 165
  3. Écrire la fonction estKaprekar(int n)

Corrigé

2.5.3  Passage de tableaux en paramètre

Exercice 5 - Somme

Écrire une fonction somme(t) retournant la somme des éléments de t.

Exercice 6 - Minimum

Écrire une fonction min(t) retournant la valeur du plus petit élément de t.

Exercice 7 - Recherche

Écrire une fonction existe(t, k) retournant True si et seulement si k est un des éléments de t.

Exercice 8 - Somme des éléments pairs

Écrivez le corps de la fonction sommePairs(t), sommePairs(t) retourne la somme des éléments pairs de t. N’oubliez pas que a%b est le reste de la division entière de a par b.

Exercice 9 - Vérification

Écrivez le corps de la fonction estTrie(t), estTrie(t) retourne vrai si et seulement si les éléments de t sont triés dans l’ordre croissant.

Exercice 10 - Permutation circulaire

Écrire une fonction permutation(t) effectuant une permutation circulaire vers la droite des éléments de t.

Exercice 11 - Miroir

Écrire une fonction miroir(t inversant l’ordre des éléments de t.

Corrigé


Previous Up