Ces problèmes servent notamment pour le cours de complément au cours INF1 que je donne à 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.
p1(3, 5) returns 8
p1(-4, 3) returns -1
p2(3, 5) returns false
p2(-4, 3) returns false
p2(0, 0) returns true
p2(5, 5) returns true
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
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
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
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
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'
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
- Écrivez une fonction affichant sur la console tous les nombres de 1 à 10
- Écrivez une fonction affichant sur la console tous les nombres impairs de 1 à n
- Écrivez une fonction affichant sur la console tous les nombres de n à k Attention, n et k peuvent être dans n'importe quel ordre
- Écrivez une fonction affichant sur a console les puissances de 2 allant de 2^1 à 2^n
- Écrivez une fonction affichant sur la console n nombres aléatoires (entiers) compris entre 1 et k
- Écrivez une fonction utilisant des boucles pour créer un motif de n étoile Selon le motif suivant
*
**
***
****
*****
- Écrivez une fonction retournant la somme des
n
premiers nombres pairs positifs (sans le 0). - Écrivez une fonction qui calcule la somme des chiffres dans un nombre entier
- Écrivez une fonction qui énumère toutes les permutations de 2 dés à 6 faces.
- Écrivez une fonction qui retourne le nombre de 1 présents dans un nombre (par exemple 1123 contient deux un).
- Écrivez une fonction qui retourne le complément à deux d'un nombre binaire.
- É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).
- Écrivez une fonction qui retourne si deux nombres ont la même puissance de 10 (cf exo ci-dessus).
- Écrivez une fonction qui retourne si deux chaînes de caractères ont le même nombre de lettres.
- Écrivez une fonction qui retourne la plus longue de deux chaînes de caractères.
- Écrivez une fonction qui retourne le nombre d'espaces dans une chaîne de caractères.
- Écrivez une fonction qui retourne le nombre de voyelles dans une chaîne de caractères.
- Écrivez une fonction qui retourne une version en minuscule d'une chaîne de caractère.
- Écrivez une fonction qui retourne une chaîne de caractères dont les premières lettres après un espace doivent être en majuscules.
- Écrivez une fonction qui met en majuscule toutes les voyelles d'une chaîne de caractères.
- Écrivez une fonction qui retourne une chaîne de caractère dont la casse (majuscule/minuscule) change une lettre sur deux.
- Écrivez une fonction qui prend une lettre et un chiffre
n
en argument et qui retourne cette lettre répétéen
fois. - Écrivez une fonction qui retourne une chaîne de caractères renversée (écrite à l'envers).
- É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).
- Écrivez une fonction qui compte le nombre de mots (séparés par un espace dans un
String
) - É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).
- Écrivez une fonction permettant de sommer toutes les valeurs d'un tableau d'entier (*)
- Écrivez une fonction qui renvoie l'élément le plus petit d'un tableau d'entiers (*)
- Écrivez une fonction permettant de trouver l'indice d'un élément dans un tableau (*)
- Écrivez une fonction permettant de tester si une valeur donnée se trouve dans un tableau de
String
(*) - Écrivez une fonction permettant d'enlever le premier élément du tableau (**)
- Écrivez une fonction permettant d'ajouter un élément à la fin du tableau (**)
- Écrivez une fonction permettant d'enlever un élément spécifique d'un tableau (***)
- Écrivez une fonction permettant d'ajouter un élément à une position spécifique d'un tableau (***)
- Écrivez une fonction permettant d'enlever les éléments à double d'un tableau (****)
- Écrivez une fonction permettant de trouver un élément manquant d'un tableau de nombres consécutifs (**)
- Écrivez une fonction qui retourne les nombres pairs se trouvant dans un tableau d'entiers (*)
- Écrivez une fonction retournant les n premiers nombres pairs positifs (*).
- Écrivez une fonction retournant les n premiers nombres nombres divisibles par 3 (*).
- Écrivez une fonction qui prend un tableau de strings en argument et qui retourne le
String
le plus court du tableau (*). - Écrivez une fonction qui retourne le plus petit nombre d'un tableau d'entiers (**).
- Écrivez une fonction qui retourne combien de fois apparaît un nombre donné dans un tableau (*).
- Écrivez une fonction prenant deux tableaux en argument et qui retourne le nombre le plus petit des deux tableaux (*).
- Écrivez une fonction prenant deux tableaux en argument et qui retourne tous les nombres présents dans les deux tableaux (**).
- Écrivez une fonction qui prend un tableau de
String
en argument et qui retourne le tableau triée par taille croissante des strings. - É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.
- Écrivez une fonction qui reçoit le nom d'un fichier en argument et qui écrit dans celui-ci le contenu suivant:
- É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/)