Réaliser un programme convivial (à l'aide d'un menu sommaire) qui
permet de compléter un tableau d'entier de 10 cases, d'afficher son
contenu, de supprimer des valeurs.
Le menu comporte 4 options
Ajouter une valeur,
Enlever la dernière valeur introduite,
Afficher le contenu du tableau,
Quitter le programme.
Au départ le tableau doit être vide valeur 0
dans toutes les cases.
L'affichage lorsqu'il est demandé doit être sous la forme de,
par exemple <5, 3> nous remarquons
dans cet affichage que le tableau dispose de deux valeurs
entières respectivement 5 et 3.
Il faut protéger votre programme contre les mauvaises
manipulations. En effet, le tableau ne doit pas comporter plus de
dix valeurs, même si l'opérateur, sans le faire exprès, veut en
rajouter d'autre.
Il faut également avertir l'utilisateur si le choix qu'il
propose n'est pas correct.
Calcul de la moyenne de la valeur maxi et de la valeur mini d'un
ensemble de notes
Nous allons reprendre le projet de l'étude précédente. Il existe une
différence de taille. Cette fois-ci, je vous demande d'afficher
l'ensemble des notes saisies antérieurement, en plus de la moyenne et
des notes extrêmes.
ATTENTION, cette fois-ci, vous devez donner la moyenne
précisément, c'est-à-dire pas d'arrondi à 0,5 près.Procédure à suivre avant de commencer à coder
Respecter l'affichage proposé ci-dessous, notamment les lignes
intermédiaires vides entre les différentes zones. Par ailleurs,
remarquez bien la justification à droite des résultats, ces derniers
ont systématiquement 2 chiffres après la virgule.
Menu sur la gestion de notes : modes insertion et suppression
Encore une fois, nous reprenons le projet sur la gestion des notes.
Plutôt que d'imposer un nombre de note dès le départ, nous rajoutons
un simple menu à cette application qui nous permet d'ajouter, ou de
supprimer, une note quand nous le désirons. Pour simplifier le
traitement, la suppression concerne que la dernière note introduite.
Procédure à suivre avant de commencer à coder
Respecter l'affichage proposé ci-dessous, notamment les lignes
intermédiaires vides entre les différentes zones. Par ailleurs,
remarquez bien la justification à droite des résultats. Si la moyenne
ne tombe pas juste, il faut au maximum avoir deux chiffres après la
virgule.
Calcul de la longueur d'une chaîne de caractères
Vous allez mettre en oeuvre un petit programme qui permet de calculer
la longueur d'une chaîne de caractères saisie à partir du clavier.
Cette chaîne devra être relativement simple et ne pas comporter
d'espace problème avec l'objet cin.
Résultat
Concaténation de deux chaînes de caractères
À partir de deux chaînes de caractères saisies au clavier, vous allez
concaténer ces deux chaînes pour en faire une seule. La concaténation
consiste à fusionner les deux chaînes, l'une à la suite de l'autre
pour en faire une troisième.
Résultat
Suppression d'une partie de chaîne
À partir d'une chaîne de caractères saisie au clavier, vous allez
supprimer une partie de cette chaîne en demandant la position du
premier caractère à effacer ainsi que le nombre de caractères à
effacer à partir de cette position.
Résultat
Récupération d'une partie de chaîne
À partir d'une chaîne de caractères saisie au clavier, vous allez
récupérer une partie de cette chaîne en demandant la position du
premier caractère à récupérer ainsi que le nombre de caractères à
récupérer à partir de cette position.
Résultat
Insertion d'une chaîne dans une autre
À partir d'une chaîne de caractères saisie au clavier, vous allez
insérer une autre chaîne de caractères également saisie au
clavier en précisant la position désirée sur la première
chaîne de caractères.
Résultat
Calcul sur les nombres complexes
Dans cette application en mode console, vous allez mettre en oeuvre
un programme qui permet de retrouver l'addition et la soustraction de
deux nombres complexes. Ces nombres complexes sont des variables
issues d'une structure composée d'une partie réelle et d'une partie
imaginaire, comme nous l'avons vu en cours.
Procédure à suivre avant de commencer à coder
Cette structure doit être déclarée en dehors de la fonction main().
Déclarez autant de variables que nécessaire de cette structure pour
élaborer correctement votre algorithme.
Menu sur la gestion de notes : modes insertion et suppression d'une
note particulière
Par rapport au projet précédent, nous rajoutons le choix de la note à
supprimer. Respecter l'affichage proposé ci-dessous, notamment les
lignes intermédiaires vides entre les différentes zones. Par ailleurs,
remarquez bien la justification à droite des résultats. Si la moyenne
ne tombe pas juste, il faut au maximum avoir deux chiffres après la
virgule.
Résultat
Recherche des diviseurs d'un nombre entier positif
En vous aidant du traitement sur les nombres premiers, vous allez
mettre en oeuvre un programme qui permet de donner la liste des
diviseurs contituant un nombre entier. Chacun des diviseurs de la
liste doit systématiquement être un nombre premier, c'est-à-dire, ne
plus comporter lui-même de diviseurs. Si le nombre étudié ne comporte
pas de diviseurs, c'est qu'il est premier et vous devez avertir
l'utilisateur que c'est effectivement le cas.
Exemples
Récupération d'une valeur numérique issue d'une chaîne de caractères
Lorsque nous effectuons une saisie à partir du clavier, généralement
dans le programme, nous spécifions une variable dont le type
correspond exactement à la valeur attendue. Par exemple, si nous
attendons un entier, nous déclarons en conséquence une variable
entière qui récupèrera cette valeur. Pourtant, rien n'empêche
l'utilisateur de faire une mauvaise saisie en proposant un caractère à
la place de la valeur entière attendue.
Procédure à suivre avant de commencer à coder
Du coup, Il est souvent préférable de systématiquement attendre comme
valeur de saisie une chaîne de caractères. Cette chaîne est ensuite
analysée pour éventuellement avertir l'utilisateur de sa mauvaise
saisie. Par contre, il sera nécessaire de réaliser des changements de
type pour permettre, par exemple, la récupération d'une valeur
entière.
Conversion décimal à binaire
Le langage c++ ne permet pas d'avoir une représentation binaire d'une
valeur entière. Vous allez palier au problème en construisant un
programme qui permet de réaliser cette opération et qui convertit donc
une valeur décimale en son équivalent binaire.
Procédure à suivre avant de commencer à coder
Le résultat de cette conversion sera placé dans une chaîne de
caractères qu'il sera possible d'afficher.
Jeu : Recherche d'un nombre mystère
l'ordinateur tire au sort un nombre mystère entre 1 et une
valeur fixée par le joueur. Le joueur, par la suite, doit retrouver ce
nombre mystère en proposant une série de valeurs. À chaque valeur
proposée, l'ordinateur indique si le nombre mystère est supérieur ou
inférieur à celui proposé avec en plus la liste des coups déjà
effectués. Le joueur dispose de 10 essais au maximum.
Affichage et résultats
Le code morse
Le code Morse (du nom de Samuel Morse, son inventeur) est un code
télégraphique utilisant un alphabet conventionnel fait de traits et de
points, et, quant au son ou la lumière, de longues et de brèves. Ce
codage assigne ainsi à chaque lettre, chiffre et signe de ponctuation
une combinaison unique de signaux intermitants (d'impulsions courtes
et longues, représentés par des points et des tirets). Les caractères
seront séparés par un espace et les mots par un /.
Affichage et résultats
Jeu : MasterMind
L'ordinateur doit proposer une combinaison de 4 couleurs sur 6
possibles (Rouge, Jaune, Vert, Bleu, Cyan et Magenta) Le joueur doit
découvrir la combinaison sachant qu'il ne dispose que de 10 essais au
maximum. À chaque essai proposé par le joueur, l'ordinateur doit
indiquer le nombre de couleurs bien placées (pions noirs) et le nombre
de couleurs bonnes mais mal placées (pions blancs). Il est possible
d'avoir des couleurs identiques dans la combinaison proposée.
Affichage et résultats
Structure Élève
Dans cet exercice, vous allez mettre en œuvre un programme qui
comportera une structure Eleve. Cette structure doit être composée
d'un certain nombre de champs dans voici la liste :
Composition de la structure
nom : chaîne de 15 caractères.
prenom : chaîne de 15 caractères.
notes : tableau de 10 réels.
moyenne : calcul de la moyenne par rapport aux notes
introduites dans le tableau ci-dessus. Le résultat doit être un
réel.
nombreNotes : Indique le nombre de notes que l'élève
possède afin d'effectuer un calcul juste de la moyenne. Ce doit être
un entier court non signé.
Cette structure doit être déclarée en dehors de la fonction
main. Déclarez une variable eleve issue de cette structure.
Profitez-en pour l'initialiser correctement. Ensuite, proposez un menu
tel qu'il vous ait montré sur la droite. Systématiquement, avant
chaque menu, vous devez afficher l'intitulé complet de l'élève.
Contrôler une date saisie au clavier
Vous allez réaliser une application capable de contrôler la saisie
d'une date complète la saisie est réalisée en une seule fois
sur la même ligne en mode console.
Saisie à respecter en suivant l'ordre proposé
Le jour de la semaine sous forme de chaînes de caractères tout en
minuscule.
Le jour du mois, en respectant bien la limite imposée par la
valeur maximale possible.
Le mois exprimé sous forme de chaîne de caractères également tout
en minuscule mais avec les lettres accentuées.
L'année.
Déclarer les éléments suivant à l'extérieur de la
fonction main()
Déclaration de la constante JOUR_SEMAINE qui
représente un tableau de chaînes de caractères comprenant l'intitulé
en minuscule de chaque jour de la semaine du lundi au dimanche.
Déclaration de la structure Mois composée de deux
champs, le premier appelé nom qui représente l'intitulé
du mois sous forme d'une chaîne de caractères, l'autre
appelé nombreDeJours qui indique le nombre de jours
maxima possible sur le mois spécifié 28, 30 ou 31.
Déclaration d'une constante MOIS qui représente un
tableau de structure Mois comprenant l'ensemble des mois
de l'année avec leur nom respectif et le nombre de jours maxima
autorisés.
Déclaration de la structure Date composée de quatre
champs : jourSemaine, jourMois et mois
qui sont représentés par des entiers non signés et le champ annee
représenté par un entier.
Déclarer les variables suivantes à l'intérieur de la
fonction main()
Déclaration de la variable jourSemaine représentant
une chaîne de caractères.
Déclaration de la variable nomMois représentant une
chaîne de caractères.
Déclaration d'une variable aujourdhui qui représente
une structure Date qui servira à enregistrer les
différents éléments de la date saisie.
Déclaration d'une variable valide qui représente un
booléen qui permettra de donner le résultat des évaluations
respectives : de la bonne écriture du jour de la semaine, de la
bonne écriture du mois accent compris et de la
validité du jour du mois.
Quelques remarques avant de coder
D'après le scénario proposé ci-dessus, vous remarquez qu'il est
nécessaire de prévoir une itérative qui sera systématiquement
sollicité dès que l'un des éléments n'est pas valide. Par ailleurs,
dès qu'un seul des éléments n'est pas correct, on demande de
recommencer immédiatement la saisie. Effectivement, dans ce cas de
figure, ce n'est pas la peine de perdre son temps à évaluer un autre
élément alors que le premier n'est pas bon.
Un petit conseil qui me paraît utile. N'essayez pas de tout
coder d'un coup. Commencer par contrôler uniquement la saisie du jour
de la semaine. Une fois que cette partie sera validée, vous pourrez
rechercher les autres parties de l'algorithme général successivement,
petit à petit.Pour évaluer les chaînes de
caractères saisies, vous pouvez utiliser une fonction toute faite qui
permet de comparer deux chaînes entre-elles. Il s'agit de la fonction
strcmp(chaîne1, chaine2). Le retour de la fonction renvoie la
valeur 0 si les chaînes sont rigoureusement identique, -1
si la première est placée avant dans l'ordre alphabétique, et 1
si la première se situe après dans l'ordre alphabétique. Pour pouvoir
utiliser cette fonction, vous devez inclure le fichier en-tête string.h.
Recherche du jour de la semaine à partir d'une date quelconque
Nous allons nous servir de l'étude précédente afin de retrouver le
jour de la semaine d'une date saisie au clavier. La procédure à suivre
consiste à donner la date complète du jour en cours et de donner
ensuite la date de recherche, en ne spécifiant pas dans ce dernier
cas, bien entendu, le jour de la semaine puisque c'est l'élément à
rechercher.
Résultat
Afin de mener à bien l'élaboration de ce programme,
je vous propose de suivre les conseils suivants :
Revoyer la déclaration de la structure Date afin de
rajouter un champ supplémentaire joursAnnee représenté
également par un entier non signé qui, comme son nom l'indique,
permettra de connaître le nombre de jours déjà fait dans l'année
spécifiée.
A la fin de l'analyse de la date saisie, si elle est correcte,
vous calculerez effectivement le nombre de jours déjà écoulés dans
l'année en cours, en tenant compte, si possible, de l'année
bissextile le cas échéant.
Déclarer une nouvelle variable recherche de type Date
qui va servir à enregistrer la date à rechercher.
Réaliser la saisie de cette date de recherche en faisant une
analyse tout de suite après, comme lors de la saisie de la date
d'aujourd'hui vous pouvez faire un copier-coller et changer
le nom des variables utilisées. ATTENTION, le
jour de la semaine ne doit pas cette fois-ci être intégrée dans
l'évaluation, puisque c'est justement l'élément à rechercher.
Il ne vous reste plus ensuite qu'à retrouver le jour de la
semaine. Pour cela, l'algorithme de recherche consiste à calculer la
différence de jours qui existe entre la date de recherche et la date
d'aujourd'hui, en tenant compte si possible des années bissextiles.