Skip to content

Latest commit

 

History

History
189 lines (162 loc) · 9 KB

99.md

File metadata and controls

189 lines (162 loc) · 9 KB

99 problèmes pour débuter en programmation impérative

Ces problèmes servent notamment pour le cours de complément au cours 101.1 donné à la HES-SO Valais.

Ces exercices servent à exercer les concepts de base de la programmation impérative. Ils sont classés par catégoriges et chaque problème est annoté avec son niveau de difficulté estimé (nombre d'étoiles ⭐): Attention, ce nombre d'étoiles est indicatif et il est possible que vous ayez une opinion différente de moi !

L'idée de base de ces 99 problèmes est reprise des Ninety-Nine Prolog Problems écrits par Werner Hett de la HES-SO de Berne. Les problèmes sont ici différents car ils sont destinés à des personnes débutant la programmation.

Fonctions générales

P01 - Écrivez une fonction retournant la somme de deux nombres entiers (:star:)

p1(3, 5) returns 8
p1(-4, 3) returns -1

P02 - Écrivez une fonction retournant si deux nombres entiers sont égaux (:star:)

p2(3, 5) returns false
p2(-4, 3) returns false
p2(0, 0) returns true
p2(5, 5) returns true

P03.a - Écrivez une fonction retournant le plus petit de deux nombres entiers (:star:)

p3(3, 5) returns 3
p3(-4, 3) returns -4
p3(0, 0) returns 0
p3(5, 34321) returns 5

P03.b - Écrivez une fonction retournant le plus petit de trois nombres entiers. Utilisez la fonction P3 ci-dessus (:star:)

p3b(3, 5, 1) returns 1
p3b(-4, 3, 2) returns -4
p3b(0, 0, 0) returns 0
p3b(5, 34321, -5) returns -5

P04 - Écrivez une fonction retournant si un entier est une multiple de 4 (:star:)

p4(5) returns false
p4(4) returns true
p4(4 * 34371) returns true
p4(3 * 7) returns false
p4(-40) returns true
p4(0) returns true

P05 - Écrivez une fonction retournant si un entier est un multiple d'un autre entier (:star:)

p5(5, 4) returns false
p5(12, 3) returns true
p5(3, 12) returns false
p5(0, 26262) returns true
p5(-4, 4) returns true

P06 - Écrivez une fonction prenant deux nombres et un booléen en argument (:star:)

Si le boolean est faux, la fonction retourne la somme des deux nombres et autrement la fontion retourne le produit des deux nombres.

p6(3, 4, false) returns 7
p6(3, 4, true) returns 12
p6(-6, 6, false) returns 0
p6(-6, 6, true) returns 36

P07 - Écrivez une fonction prenant un double en argument et retournant le nombre arrondi en entier (:star:)

p7(3.2) returns 3
p7(3.6) returns 4
p7(3.5) returns 4
p7(-0.3) returns 0
p7(-0.8) returns -1

P08 - Écrivez une fonction prenant un double en argument et retournant ce nombre arrondi à un chiffre après la virgule (:star: :star:)

p8(3.27) returns 3.3
p8(3.61) returns 3.6
p8(3.65) returns 3.7
p8(-0.32311) returns -0.3

P09 - Écrivez une fonction retournant si une lettre passée en argument est une voyelle (:star:)

Considérez que seules des lettres minuscules sont passées à cette fonction

p9('a') returns true
p9('b') returns false
p9('z') returns false
p9('i') returns true

P10 - Écrivez une fonction prenant une lettre en argument et qui retourne la lettre suivante de l'alphabet (:star:)

Retournez la première lettre de l'alphabet pour 'z' et considérez que l'on reçoit uniquement des lettres en minuscule pour cet exercice.

p10('a') returns 'b'
p10('e') returns 'f'
p10('y') returns 'z'
p10('z') returns 'a'

P11 - Écrivez une fonction qui retourne la puissance de 10 d'un nombre positif (:star:)

On considère que la fonction ne reçoit que des nombres strictement positifs (> 0).

p11(134) returns 2
p11(166) returns 2
p11(34) returns 1
p11(16777216) returns 7

:danger: Done rejuvenation up to here

Boucles

  1. Écrivez une fonction affichant sur la console tous les nombres de 1 à 10
  2. Écrivez une fonction affichant sur la console tous les nombres impairs de 1 à n
  3. Écrivez une fonction affichant sur la console tous les nombres de n à k Attention, n et k peuvent être dans n'importe quel ordre
  4. Écrivez une fonction affichant sur a console les puissances de 2 allant de 2^1 à 2^n
  5. Écrivez une fonction affichant sur la console n nombres aléatoires (entiers) compris entre 1 et k
  6. Écrivez une fonction utilisant des boucles pour créer un motif de n étoile Selon le motif suivant
*
**
***
****
*****
  1. Écrivez une fonction retournant la somme des n premiers nombres pairs positifs (sans le 0).
  2. Écrivez une fonction qui calcule la somme des chiffres dans un nombre entier
  3. Écrivez une fonction qui énumère toutes les permutations de 2 dés à 6 faces.

Expressions et binaire

  1. Écrivez une fonction qui retourne le nombre de 1 présents dans un nombre (par exemple 1123 contient deux un).
  2. Écrivez une fonction qui retourne le complément à deux d'un nombre binaire.
  3. Écrivez une fonction qui retourne le nombre de bits à 1 présents dans un nombre (par exemple dans 7 et dans 14 il y a 3 bits à 1).
  4. Écrivez une fonction qui retourne si deux nombres ont la même puissance de 10 (cf exo ci-dessus).

Strings dans des fonctions

  1. Écrivez une fonction qui retourne si deux chaînes de caractères ont le même nombre de lettres.
  2. Écrivez une fonction qui retourne la plus longue de deux chaînes de caractères.
  3. Écrivez une fonction qui retourne le nombre d'espaces dans une chaîne de caractères.
  4. Écrivez une fonction qui retourne le nombre de voyelles dans une chaîne de caractères.
  5. Écrivez une fonction qui retourne une version en minuscule d'une chaîne de caractère.
  6. Écrivez une fonction qui retourne une chaîne de caractères dont les premières lettres après un espace doivent être en majuscules.
  7. Écrivez une fonction qui met en majuscule toutes les voyelles d'une chaîne de caractères.
  8. Écrivez une fonction qui retourne une chaîne de caractère dont la casse (majuscule/minuscule) change une lettre sur deux.
  9. Écrivez une fonction qui prend une lettre et un chiffre n en argument et qui retourne cette lettre répétée n fois.
  10. Écrivez une fonction qui retourne une chaîne de caractères renversée (écrite à l'envers).
  11. Écrivez une fonction qui retourne si une chaîne de caractères est un palindrome (même chose en lisant de droite à gauche que de gauche à droite).
  12. Écrivez une fonction qui compte le nombre de mots (séparés par un espace dans un String)
  13. Écrivez une fonction permettant de déterminer si un String donné est un mot de passe valide (càd avoir au moins 10 caractères, uniquement des lettres et des chiffres et doit avoir au moins deux chiffres).

Fonctions avec tableaux

  1. Écrivez une fonction permettant de sommer toutes les valeurs d'un tableau d'entier (*)
  2. Écrivez une fonction qui renvoie l'élément le plus petit d'un tableau d'entiers (*)
  3. Écrivez une fonction permettant de trouver l'indice d'un élément dans un tableau (*)
  4. Écrivez une fonction permettant de tester si une valeur donnée se trouve dans un tableau de String (*)
  5. Écrivez une fonction permettant d'enlever le premier élément du tableau (**)
  6. Écrivez une fonction permettant d'ajouter un élément à la fin du tableau (**)
  7. Écrivez une fonction permettant d'enlever un élément spécifique d'un tableau (***)
  8. Écrivez une fonction permettant d'ajouter un élément à une position spécifique d'un tableau (***)
  9. Écrivez une fonction permettant d'enlever les éléments à double d'un tableau (****)
  10. Écrivez une fonction permettant de trouver un élément manquant d'un tableau de nombres consécutifs (**)
  11. Écrivez une fonction qui retourne les nombres pairs se trouvant dans un tableau d'entiers (*)
  12. Écrivez une fonction retournant les n premiers nombres pairs positifs (*).
  13. Écrivez une fonction retournant les n premiers nombres nombres divisibles par 3 (*).
  14. Écrivez une fonction qui prend un tableau de strings en argument et qui retourne le String le plus court du tableau (*).
  15. Écrivez une fonction qui retourne le plus petit nombre d'un tableau d'entiers (**).
  16. Écrivez une fonction qui retourne combien de fois apparaît un nombre donné dans un tableau (*).
  17. Écrivez une fonction prenant deux tableaux en argument et qui retourne le nombre le plus petit des deux tableaux (*).
  18. Écrivez une fonction prenant deux tableaux en argument et qui retourne tous les nombres présents dans les deux tableaux (**).

Tris

  1. Écrivez une fonction qui prend un tableau de String en argument et qui retourne le tableau triée par taille croissante des strings.
  2. Écrivez une fonction prenant deux tableaux d'entiers en argument et qui retourne un tableau trié contenant les valeurs des deux tableaux. Chaque chiffre ne peut apparaître qu'une seule fois.

Fichiers entrée / sortie

  1. Écrivez une fonction qui reçoit le nom d'un fichier en argument et qui écrit dans celui-ci le contenu suivant:
  2. Écrivez une fonction stockant la table de multiplication d'un nombre donné (jusqu'à 12).

(to be added, some from https://tech.tonyballantyne.com/java/99-java-problems/)