Partage

[Exercices] Venez vous entraîner !

(v2)

6 janvier 2017 à 16:05:22

Kelerm a écrit:

Cependant je ne suis pas sur que ton intervention va aider Stephane.

(Non mais pour ça, il faut lire les règles d'utilisation du forum, et poster à un endroit approprié).

Kelerm a écrit:

De plus si ce cours est tout pouris comme tu le signale il faudrais peut être qu'il soit retiré.

Déjà signalé. Mais on ne vend plus de livres quand on a une mauvaise pub du genre "le cours à ne surtout pas suivre".

Posez vos questions ou discutez informatique, sur le Discord NaN | Tuto : Preuve de programmes C
9 janvier 2017 à 9:24:44

Du coup, je rebondit sur tes réponses car je souhaitais suivre le cours pour l'utilisation de QT, je désir faire un pti truc en interface graphique, Du coup aurais tu un autre cours a me conseiller sur Qt ? Comme tu déconseille de suivre le cours d'openclassroom!!
Car a mon niveau je ne peux pas vraiment juger pour savoir si un cour vaut le coup..
9 janvier 2017 à 10:18:29

Je n'utilise absolument pas Qt. Donc je vais avoir du mal à donner un avis.

Posez vos questions ou discutez informatique, sur le Discord NaN | Tuto : Preuve de programmes C
9 janvier 2017 à 10:31:25

Nouvelle question -> nouveau fil!

Ici, c'est juste pour proposer des exos et des corrections. Merci.

C++: Blog|FAQ C++ dvpz|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS| Bons livres sur le C++| PS: Je ne réponds pas aux questions techniques par MP.
10 janvier 2017 à 19:38:59

Bonjours

je viens de commencer le c++ et je suis le cour suivant sur openClasseroom

https://openclassrooms.com/courses/programmez-avec-le-langage-c/les-classes-partie-2-2 

ceci est le chapitre que je viens de finir et sur lequelle je suis coince.


et je voudrais ameliore le code avec ceci :

  • Rajoutez des cout dans les autres méthodes de Personnage pour indiquer à chaque fois ce qui est en train de se passer (« machin boit une potion qui lui redonne 20 points de vie »).

  • Rajoutez d'autres méthodes au gré de votre imagination… et pourquoi pas des attaques magiques qui utilisent du mana ?

  • Enfin, pour l'instant, le combat est écrit dans le main() mais vous pourriez laisser le joueur choisir les attaques dans la console à l'aide de cin.

mais je ne sais pas comment faire si une personne pouvais m'aide avec quelque indications surtout pour le dernier point avec une petite corection pour que je coprenne .

je vous remercie

31 janvier 2017 à 14:39:52

lmghs a écrit:

Nouvelle question -> nouveau fil!

Ici, c'est juste pour proposer des exos et des corrections. Merci.

(Bon sinon C++ Primer de S.Lippman 5th Edition).

Posez vos questions ou discutez informatique, sur le Discord NaN | Tuto : Preuve de programmes C
1 mars 2017 à 0:54:55

Bonjour jo_link  je débute en programmation et j'ai certains problèmes comme:

Restreindre une variable sur un type précis (faire que la variable ne puisse être qu'un entier par exemple et pas une autre valeur sinon message d'erreur)

Limite le nombre de valeurs pris par un variable (par exemple si je veux qu'une variable a puisse être comprise entre 1 et 5 sinon erreur)

Faire la somme des entiers de 1 à 100 sans la formule n(n+1)/2

Et considérer sans avoir déclarer au préalable une valeur entrer par l'utilisateur comme une variable par exemple j'ai fais un programme qui calcule les matrices 2×2 et 3×3 or je ne peux pas continuer puisque qu'il me faudra déclarer énormément de variables j'ai besoin de ton aide pour terminer ce programme.

Ps: Pour chaque réponse tient compte du fait que je débute encore!

Merci...!

1 mars 2017 à 7:17:21

lmghs a écrit:

Nouvelle question -> nouveau fil!

Ici, c'est juste pour proposer des exos et des corrections. Merci.

Posez vos questions ou discutez informatique, sur le Discord NaN | Tuto : Preuve de programmes C
Staff 1 mars 2017 à 7:41:58

marcNgaba > comme le précise Ksass`Peuk (et iel le précisait même avant ton message), ici c'est pour proposer des exercices et des corrections, pas en demander. Merci de créer ton propre sujet.

Pas d'aide concernant le code par MP ni par mail, le forum est là pour ça :) Postez votre code html et css (bouton '</>') !!
18 mars 2017 à 13:07:15

Bonjour à tous, je souhaite trouver une documentation officielle complète du langage C++. Aidez moi s'il vous plaît.
Staff 18 mars 2017 à 13:11:38

StephaneWamba > comme le précise Ksass`Peuk (et iel le précisait même avant ton message), ici c'est pour proposer des exercices et des corrections, pas en demander. Merci de créer ton propre sujet (et avant ça, cherche sur le net : https://duckduckgo.com/?q=documentation c++).

Pas d'aide concernant le code par MP ni par mail, le forum est là pour ça :) Postez votre code html et css (bouton '</>') !!
25 mai 2017 à 19:23:24

Bonjour tout le monde,

ma question est un peut particulière car je cherche des exercices de suite arithmétique et géométrique en C++,

Merci d'avance.

Staff 25 mai 2017 à 20:31:12

Lamecarlate a écrit:

Ici c'est pour proposer des exercices et des corrections, pas en demander. Merci de créer ton propre sujet (et avant ça, cherche sur le net : https://duckduckgo.com/?q=documentation c++).



-
Edité par Lamecarlate 25 mai 2017 à 20:32:04

Pas d'aide concernant le code par MP ni par mail, le forum est là pour ça :) Postez votre code html et css (bouton '</>') !!
2 juillet 2017 à 18:40:45 - Message modéré pour le motif suivant : Message complètement hors sujet


Staff 2 juillet 2017 à 20:58:01

Ok, à partir de maintenant, je supprime les messages demandant de l'aide : ici c'est un sujet pour proposer des exercices. Si vous avez un problème, créez un nouveau sujet, merci d'avance.

Pas d'aide concernant le code par MP ni par mail, le forum est là pour ça :) Postez votre code html et css (bouton '</>') !!
6 octobre 2017 à 1:48:53

Lamecarlate a écrit:

Ok, à partir de maintenant, je supprime les messages demandant de l'aide : ici c'est un sujet pour proposer des exercices. Si vous avez un problème, créez un nouveau sujet, merci d'avance.

Mais ce que j'ai ecrit peux etre bien pris comme un exercice je crois en tout cas ce n'est pas un problème

J'ai un exo pour le Topic 

--Réaliser un Programme qui calcule le déterminant d'une Matrice carrée dont la taille est entrée par l'utilisateur.

Ex: ---------------------Progreamme de calcul de matrice-------------------------

Entrez la taille la matrice:

//Dès que c'est fait il entre les valeurs des cases du tableau(matrice qui a été dimensionné par la taille entrée premièrement) et le programme trouve et renvoit le déterminant.

Allez les Codeurs C++ à Vos Editeurs!!!!!;)

6 octobre 2017 à 13:21:55

@marcNgaba tu y vas un peu fort.

Il vaut mieux y aller pas à pas ne serait-ce que pour formaliser comment tu attends que ta matrice soit créée et remplie. Rien que ça, c'est un sujet à part entière.

Sinon, personnellement avec mes élèves/stagiaires/collègues, je commence par "voici l'exo fil rouge, ceci devra compiler et produire les résultats attendus; nous allons commencer par création, remplissage et affichage"

int main()
{
    // Création d'une matrice Identité
    Matrix id(3,3);
    for (size_t i=0; i!=3; ++i)
        id(i,i) = 1.0;
    std::cout << "Matrice Id " << id.N() << "x" << id.M() << ":\n" << id << "\n";

    // Création d'une matrice dont a(i,j) = i+j
    Matrix a(3,3);
    for (size_t i=0 ; i!=a.N() ; ++i)
        for (size_t j=0 ; j!=a.M() ; ++j)
            a(i,j) = i+j;

    // Affichage de leur somme
    std::cout << "\n" << (id + a) << "\n";

    return 0;
}

Et là, cela fait obligatoirement travailler :
- alloc ou manip vecteur -- et ce qui est nécessaire pour une sémantique de valeur.
- surcharge 1 opérateur de flux (op<<)
- surcharge 1 opérateur mathématique (op+) -- avec éventuellement (recommandé) son composé (op+=)
- surcharges 2 opérateur d'accès (op() et op())
- const-correctness
- encapsulation

Cela peut permettre de travailler std::copy et std::fill_n si on impose l'interdiction d'utiliser for() dans le code de la classe matrice.

Le calcul de déterminant, c'est un détail à côté de ça: juste une (double?) boucle à écrire correctement.

La V2 de l'exo, c'est le passage au générique

Dans les formations que je donne, je ne vais jamais au delà de cet aspect. Le reste, c'est du très avancé qui n'a pas grand intérêt en industrie vu l'existence de choses comme Eigen ou Blaze qui savent aussi fonctionner comme des surcouches à la MKL d'Intel.

V3: Utilisation de la sémantique de mouvement pour réduire les créations/destructions -> 4 surcharges de op+

V.perf: écriture efficace d'un point de vue HPC de la multiplication matricielle (typiquement, inversion de boucle, alignement, travail par blocs)

V4: expression templates (ET) pour éliminer complètement les temporaires

V5: et cela se complique avec ET pour réaliser des multiplications matricelles

V6: ET compatible avec auto

-
Edité par lmghs 6 octobre 2017 à 13:24:12

C++: Blog|FAQ C++ dvpz|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS| Bons livres sur le C++| PS: Je ne réponds pas aux questions techniques par MP.
6 octobre 2017 à 14:46:21

@lmghs En fait je m'étais déja posé un bon nombre de question concernant cet exercice Je suis arrivé à remplir un tableau à 2D et faire la Verification de la position des valeurs entrées juste en me servant de boucle et d'un tableau. Mais le problème vient du calcul du déterminant il y'a une panoplie de façon d'y arriver mais au niveau de l'implementer en C++ c'est une autre histoire!!! Et le pire c'est quand on ne maîtrise qu'une méthode.

Moi je calcul le déterminant par les cofacteurs de façon manuelle. Et j'aimerais pouvoir reussir à faire ce programme par une méthode non seulement plus simple et plus optimale mais aussi le réaliser avec les bases du C++ ce qui je crois est possible et EN LISANT TON MESSAGE JE VOIS QUE OUI LE DETERMINANT C'EST UNE AFFAIRE DE BOUCLE. je ne crois pas que ce soit aussi compliqué surtout quand on est bien entouré!!:D

A NOS EDITEURS!!!

6 octobre 2017 à 15:14:43

@marcNgaba: si les exo on les propose ici, et si les corrections viennent des semaines plus tard, discussions et résolution se font dans le forum -> cliquer sur "nouveau message" ou équivalent.

Donc, je t'invite à ouvrir une nouvelle discussion et nous montrer ce que tu as déjà fait. Nous pourrons alors t'aider.

C++: Blog|FAQ C++ dvpz|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS| Bons livres sur le C++| PS: Je ne réponds pas aux questions techniques par MP.
7 octobre 2017 à 21:07:00

Exercice- Location de vélos

Le but de cet exercice est de permettre à un service de location de vélos (online, tournant 24 heures sur 24 ) de facturer ses clients.

1.1 Fichier fournie

#include <iostream>
using namespace std;

int main()
{
  cout << "Donnez l'heure de début de la location (un entier) : ";
  int debut;
  cin >> debut;

  cout << "Donnez l'heure de fin de la location (un entier) : ";
  int fin;
  cin >> fin;

  /*****************************************************
   * Compléter le code à partir d'ici
   *****************************************************/
	
  /*******************************************
   * Ne rien modifier après cette ligne.
   *******************************************/

  return 0;
}

ATTENTION : vous ne devez en aucun cas le début ni la fin du programme fourni, juste ajouter vos propre lignes à l'endroit indiqué. Il est donc impératif de respecter la procédure suivante :

1.-Sauvegarder le fichier sous le nom de location_velos.cc ou location_velos.cpp

2.-Ecrire le code entre ces deux commentaires :

/*****************************************************

* Compléter le code à partir d’ici

*****************************************************/

/*******************************************

* Ne rien modifier après cette ligne.

*******************************************/

3.-Sauvegarder et tester son programme pour etre sur qu'il fonctionne correctement, par exemple avec les valeurs utilisées dans l'exemple de déroulemnt donné plus bas;

1.2 Instruction

Les tarifs de locations sont définis comme suit :

— 1 franc par heure si le vélo est loué entre 0h et 7h ou entre 17h et 24h;

— 2 francs par heure si le vélo est loué entre 7h et 17h.

Votre programme demandera à l’utilisateur de quelle heure à quelle heure se fait la location (code fourni) et calculera le prix de la location en conséquence.

Vous adopterez les simplifications suivantes :

— les heures de début et fin de location sont des entiers (pas de demi ni de quart, toute heure entamée est due);

— l’heure du début de la location est toujours inférieure à l’heure de la fin de la location;  cela implique que la location ne peut pas se faire sur plus de 24 heures; elle doit se faire dans la même journée.

Si les données introduites sont correctes, votre programme affichera simplement le coût de la location en respectant strictement les formats donnés dans les exemples de déroulement ci-dessous.

En cas de donnée incorrecte, votre programme devra afficher un message d’erreur et s’arrêter. Utilisez strictement les messages suivants :

— « Les heures doivent être comprises entre 0 et 24 ! » suivi d’un saut de ligne, si une des heures introduites par l’utilisateur n’est pas comprise entre 0 et 24 (inclus);

— « Bizarre, vous n’avez pas loué votre vélo bien longtemps ! » suivi d’un saut de ligne, si les heures de début et fin de location sont identiques;

— et « Bizarre, le début de la location est après la fin ... » suivi d’un saut de ligne si l’heure de début de la location est supérieure à l’heure de fin.

Le code fourni contient des instructions à utiliser telles quelles (en les plaçant aux bons endroits) pour produire les affichages souhaités.

1.3 Exemples de déroulement

Il est impératif que votre code respecte le format de réponse suivant :

1) Exemple où la durée de location implique les deux tarifs : 

Donnez l’heure de début de la location (un entier) : 10

Donnez l’heure de fin de la location (un entier) : 19

Vous avez loué votre vélo pendant

2 heure(s) au tarif horaire de 1 franc(s)

7 heure(s) au tarif horaire de 2 franc(s)

Le montant total à payer est de 16 franc(s). 

2) Exemple où la durée de location n’implique qu’un seul tarif : 

Donnez l’heure de début de la location (un entier) : 18

Donnez l’heure de fin de la location (un entier) : 20

Vous avez loué votre vélo pendant

2 heure(s) au tarif horaire de 1 franc(s)

Le montant total à payer est de 2 franc(s). 

Bonne chance a tous;)

7 octobre 2017 à 23:21:30

Ca fait très vieil exo de prof recopié tel quel... Il y a des francs (qui à moins d'être Suisses sont un peu désuets), des commentaires qui se servent à rien, des consignes sur comment les fichiers doivent être remplis. Des formats précis d'I/O à respecter, probablement pour que le prof plugge son outil de test et donne une note basée sur le résultat de `grep`.

Je ne cache pas que cela me gêne pas mal. OK pour participer avec des exos, mais ces contraintes n'ont pas leur place, et je ne peux qu'inviter toute réponse à violer volontairement les contraintes imposées pour ne pas permettre à des élèves fainéants de repomper une solution qui n'est pas la leur. Une aide aux exos, ça se mérite.

C++: Blog|FAQ C++ dvpz|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS| Bons livres sur le C++| PS: Je ne réponds pas aux questions techniques par MP.
20 janvier 2018 à 9:16:13

Exercices Cpp a écrit:

Equinoxe : Corrigé la typo (Polinômes >>> Polynômes) annoncée par lmghs.
Equinoxe : Modifié le format de la difficulté, por éviter qu'elle soit considérée comme une note de "qualité".
Equinoxe : Envoyé l'image de difficulté (source) : Image utilisateur



KJ
28 avril 2018 à 1:03:51 - Message modéré pour le motif suivant : Message complètement hors sujet


1 ou 0 ? Tel est la question.
19 mai 2018 à 19:07:25

Les ruptures

Catégorie : les boucles et les flux d'exécution

Le context:

Je suis un homme d'affaire qui dirige une société internationale, présente dans plusieurs ville de la plupart des pays de tous les continents.  Et il se peut même que j'aie plusieurs succursales dans certaines villes.

Tous les mois, je reçois un listing qui reprend le chiffre d'affaire journalier de toutes les succursales de ma société sous une forme proche de

continent; pays; ville; adresse; jour; montant;

et toutes les entrées de ce listing sont triées

  • par contient : on trouveras d'abord les succursales d'Afrique, puis celle d'Amérique, suivies de celle d'Antartique, de celles d'Asie, de celles d'Europe pour terminer par celle d'Océanie
  • par pays : pour chaque continent les pays sont classés par ordre alphabétique
  • par ville : les succursales de chaque pays sont classées par ordre alphabétique
  • par succursales : si plusieurs succursales sont présentes dans une même ville, elles seront classées par ordre alphabétique en fonction de leur adresse
  • par date: on a toutes les chiffres d'affaires du mois courant pour une succursale, classés par ordre chronologique avant de passer à la succursale suivante

 Avec une moyenne de 22 jours ouvrés par mois, et donc de 22 lignes par succursales et par mois, et parce que j'ai systématiquement au minimum trois succursales par ville dans laquelle je suis présent, et que je suis systématiquement présent dans minimum dix villes de chaque pays, vous vous doutez bien que ce fichier est tout simplement énorme!

J'ai donc besoin d'un programme qui puisse me calculer le chiffre d'affaire mensuel total de chacune de mes succursales, mais qui puisse également me fournir

  • le chiffre d'affaire total pour chaque ville dans laquelle j'ai une (ou plusieurs) succursale(s)
  • le chiffre d'affaire total pour chaque pays
  • le chiffre d'affaire total pour chaque continent
  • le chiffre d'affaire total global.

Quelques indices:

  • Il est utile de garder en mémoire la valeur de l'information que l'on a obtenue lors du "passage précédant" dans chaque boucle
  • Les boucles étant imbriquées (sous une forme ou une autre), la condition de sortie d'une boucle correspond à un test spécifique de plus que la condition de sortie de la boucle dans laquelle elle est imbriquée
  • Pour ceux qui connaissent : la représentation sous forme de diagramme Jackson peut aider à "déblayer le terrain"

Amusez vous bien!

Question subsidiaire :

Pourriez vous me classer les continents, les pays, les villes et les succursales en fonction de leur chiffre d'affaire (les plus élevés en premier) ?

-
Edité par koala01 19 mai 2018 à 20:14:33

Ce qui se conçoit bien s'énonce clairement. Et les mots pour le dire viennent aisément.Mon nouveau livre : Coder efficacement - Bonnes pratiques et erreurs  à éviter (en C++)Avant de faire ce que tu ne pourras défaire, penses à tout ce que tu ne pourras plus faire une fois que tu l'auras fait
2 juin 2018 à 10:24:40 - Message modéré pour le motif suivant : Message complètement hors sujet


28 juin 2018 à 22:49:57 - Message modéré pour le motif suivant : Message complètement hors sujet


30 juin 2018 à 4:41:06

vous ne trouvez pas que c'est juste un peu trop facile c'est exercice ?

essayons quelque chose qui demande un peu plus d'imagination ,mais pas trop quand meme.

c'est juste une suggestion.(pas oblige de m'ecouter)

parceque ce que je venais de voir il y avait une grande parti ou il y avait des fonctions complexes(que je ne comprenais pas ) et tout ca c'est quand meme magnifique et j'essaie d'en apprendre grace a ces choses la.

(et pourriez vous me donnez un lien ou plusieurs vers des cours en c++ qui sont sorties cette annes)

(je parle de locations de velos)

MERCI

-
Edité par Fabien@medee 30 juin 2018 à 5:14:00

1 ou 0 ? Tel est la question.
2 octobre 2018 à 22:36:13 - Message modéré pour le motif suivant : Message complètement hors sujet


2 octobre 2018 à 22:58:55 - Message modéré pour le motif suivant : Réponse à un message modéré


Ce qui se conçoit bien s'énonce clairement. Et les mots pour le dire viennent aisément.Mon nouveau livre : Coder efficacement - Bonnes pratiques et erreurs  à éviter (en C++)Avant de faire ce que tu ne pourras défaire, penses à tout ce que tu ne pourras plus faire une fois que tu l'auras fait
29 octobre 2018 à 12:27:08

Voici un exercice sur les catégories de valeurs (lvalue, rvalue), la surcharge de fonction avec les lvalue et rvalue references, et le perfect forwarding. En soi, cette serie d'excercices (a faire dans l'ordre) n'est pas complexe si on a compris ces notions (le code a ecrire faire une dizaine de ligne), mais cela permet justement de vérifier si vous avez compris ces notions.

---------------------------------------- 

1. Ecrire un code qui permet de "voir" les categories de valeur

Modifies le code suivant, de façon a afficher si la fonction f est appélée avec une lvalue ou une rvalue. Il n'est pas nécessaire d'ajouter d'autres include. Il ne faut pas non plus ajouter d'autres fonction que f. (Mais attention, comme dit dans l'introduction, il peut y avoir des surcharges de cette fonction f).

#include <iostream>

// declaration de f
void f(...) { ... }

int main() {
    // appel de f avec une lvalue
    f(...);

    // appel de f avec une rvalue
    f(...);
}

Et il faut que ce code affiche :

f a ete appele avec une lvalue
f a ete appele avec une rvalue

2. La transmission

Modifies le code de facon a ce que f soit appellé via une fonction g (sans modifier le code de f, et en remplaçant uniquement f par g dans main)

#include <iostream>

// declaration de f
void f(...) { ... }

// declaration de g

void g(...) { f(...); } 

int main() {
    // appel de g avec une lvalue
    g(...);

    // appel de g avec une rvalue
    g(...);
}

Quel est le problème dans ce qui est affiché ?

3. Perfect forwarding

Corriger le code en utilisant le perfect forwarding de façon a afficher le résultat attendu.

Pour poser des questions ou simplement discuter informatique, vous pouvez rejoindre le discord NaN.

[Exercices] Venez vous entraîner !

× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
  • Editeur
  • Markdown