![]() |
ApprentissageProgrammationCpp
..
|
On vous conseille dans un premier temps de ne lire que la section Objectif de l'exercice et de réfléchir soigneusement à la réalisation du code chacun de votre côté. N'adoptez surtout pas pour aller plus vite les idées des autres, vous devez imaginer par vous même les choses à faire, vous pouvez vous tromper et poser des questions à vos enseignants, et recommencer... mais si vous codez la solution de votre voisin, vous vous mettriez dans un simple rôle d'exécutant qui vous empêchera de progressez.
Ceux qui sont vraiment bloqués, peuvent ensuite lire la section Quelques conseils pour bien débuter.
Vous pouvez tous lire la section Quelques remarques.
Écrire un programme qui affiche le message suivant à l'execution
Écrire un programme qui demande à l'utilisateur de saisir deux dimensions longueur et largeur et affiche en retour l'air et le périmètre du rectangle.
Par exemple :
Écrire un programme qui demande à l'utilisateur de saisir 5 entiers et qui en calcul la moyenne. Vous ne devez définir que deux variables int
dans votre programme.
Ecrire un programme qui demande à l'utilisateur de renseigner le prix HT d'un produit, le nombre de produit acheté et la TVA applicable et qui affiche en retour le montant TTC total à payer.
Variante: Refaire le même programme mais où les trois valeurs d'entrée sont fournies à la ligne de commande au lancement du programme.
Écrire un programme qui demande à l'utilisateur de saisir N
entiers, N
étant fourni par l'utilisateur et qui affiche la somme de ces N
entiers.
Écrire un programme qui demande à l'utilisateur de saisir N
entiers positifs, N
étant fourni par l'utilisateur et qui affiche la somme de ces N
entiers. Si l'utilisateur fourni un nombre négatif alors le programme doit afficher un message d'erreur et offrir la possibilité à l'utilisateur de saisir une nouvelle valeur.
Écrire un programme qui demande à l'utilisateur de saisir un entier N et qui affiche la figure suivante.
On considère la suite hongroise : u(0)=a
(a entier) si u(n)
pair alors u(n+1)=u(n)/2
sinon u(n+1)=3*u(n)+1
Pour toutes les valeurs a
, il existe un entier N
tel que u(N)=1
.
Partie 1 Écrire un programme qui demande à l'utilisateur de taper a
et qui affiche toutes les valeurs de u(n)
de n=1 à n=N.
Partie 2 Écrire un programme qui demande à l'utilisateur de taper un entier M puis qui cherche la valeur de a comprise entre 2 et M qui maximise la valeur de N. On appelle A cette valeur. La programme doit afficher la valeur A et la valeur N correspondante.
Écrire un programme C++
qui évalue une expression arithmétique fournie en notation polonaise inversée en argument à votre programme (i.e. sur la ligne de commande le programme), et affiche le résultat sur la sortie standard.
En notation polonaise inversée (**R**everse **P**olish **N**otation) les opérateurs suivent leurs opérandes et il n'est donc pas nécessaire de parenthéser les sous-expressions. Par exemple, 3+4*5
devient 3 4 5 x +
en polonaise inversée et 2*5+4/2
devient 2 5 x 4 2 / +
Supposons que votre exécutable s'appelle rpn_cpp
.
La première expression sera évaluée comme cela:
La seconde comme cela:
./rpn_cpp 3 5+
OUI ./rpn_cpp 3 5 +
x
pour la multiplication et pas *
(parce que *
est un caractère spécial quand il est sur la ligne de commande)!
pour le moins unaire et pas -
ainsi 2*-2
sera 2 2 ! *
3 5 x
?3
(il ne sait rien calculer, il doit le garder)5
(il ne sait rien calculer, il doit le garder)x
(il sait que c'est la multiplication binaire dont il possède déjà les deux opérandes; il sait aussi qu'il n'aura plus besoin des deux opérandes mais du résultat du calcul ici 15
)15
L'objectif de cet exercice est de développer le code permettant d'afficher la spirale d'archimède. La sortie doit se faire sous la forme d'une image au format PPM
L'objectif est de développer le code permettant de tracer la célèbre image de l'ensemble de mandelbrot
L'objectif de cet exercice est que vous fassiez votre propre implémentation de la liste chaînée. Les fonctionnalitées attendues sont les suivantes :
L'objectif de cet exercice est que vous fassiez votre propre implémentation de la liste doublement chaînée. Les fonctionnalitées attendues sont les suivantes :
L'objectif de cette exercice est de mettre en place un système d'évaluation d'expression mathématique. Par exemple le code attendu pour l'évaluation de l'expression y*(10+x) est le suivant :
Pour cela il vous faut définir une hiérarchie de classes avec les bonnes interfaces. Enjoy ;)
Dans cet exercice on vous propose de mettre en place une fonction pour réaliser un produit matrice vecteur. On vous fourni le squelette de code suivant :
L'objectif est de faire la version parallèle en utilisant des std::thread
ou de l'OpenMP.