Journal de question personnel sur le c++

Mes rapport, questions, impressions... sur mon apprentissage du c++

Le problème exposé dans ce sujet a été résolu.

Bonjour, pour éviter de polluer le sujet qui concerne directement le cours, j’ai donc créé un sujet, pour rassembler toutes mes questions. J’éviterai aussi de trop poster dès lors que j’ai des doutes, ou des interrogations sur certains points, mais plutôt attendre d’avoir beaucoup à dire.

Du coup j’ai commencé il y a quelques jours, j’en suis actuellement au chapitre sur les itérateurs le I-9, et je commence à avoir de plus en plus de mal. En faite, je comprend bien tout ce qui est expliqué, c’est très clair, le gros soucis, vient lors des exercices, je suis comme perdu, vu qu’il y a de plus en plus de notion qui s’ajoute, j’ai du mal à réfléchir et à me dire, je dois utiliser ça, ça et ça, et l’organiser de tel façon…

J’ai tenté la feuille de papier, pour établir un " plan " mais c’est toujours aussi confus dans ma tête, pourtant je le répète tout ce que j’ai pu voir comme notions jusqu’à maintenant c’est assez clair, mais j’ai pas encore acquis cette logique "instinctive"… Bref donc je sais pas trop si c’est normal ou non, j’ai envie de dire oui, c’est pas en 5 jours qu’on code tout ce qu’on veut mais je commence a émettre certains doute sur ma progression, là par exemple, j’étais sur l’exercice du std::find, ou on doit compter le nombre de e dans chaque mot… Et j’ai du regarder la solution, que j’ai très bien comprise mais même après quelques dizaines de minutes en retentant l’exo tout seul j’étais perdu. Je me suis plus servi de ma mémoire visuelle qui me rappelait ce que j’avais vu plutôt que de ma logique, et de la logique de la correction.

Je vais éviter de me replonger dedans directement, je vais faire une petite pause d’une heure, mais voila si vous avez des conseils ou des méthodes pour améliorer mes capacités a utiliser ce que j’apprends je suis preneur ;)

Actuellement ce que je me suis mis a faire, c’est d’écrire des "leçons" personnelles qui sont des condensées du cours, sur chaque exemple je me pose 2mn pour le C/C dans mon IDE et je le "traduis" en français, j’essaie de m’expliquer en quelque sorte qu’est ce qu’il se passe à chaque étape. Je sais pas si je devrai peut être aller plus loin dans la recherche personnelle en "m’inventant" des propres exercices sur chaque notion que l’on voit…

Merci d’avance pour tout ceux qui s’investiront dans ma progression ! ;)

Salut ! Effectivement, c’est normal car l’apprentissage de la programmation prend du temps ! Il faut que tu te laisses du temps pour absorber les notions petit à petit, ce n’est pas facile mais en te donnant du temps tu finiras par avoir plus de réflexes.

Le cours ne contient peut-être pas assez d’exercices en l’état, et plus de pratique aiderait lez débutants à mieux se lancer. Il faudra peut-être un jour qu’on écrive un recueil d’exercices avec plusieurs exercices non corrigés par chapitre (et des projets de plus longue durée ?). De cette manière, les lecteurs auraient plus de matière pour pratiquer et progresser, et demanderaient de l’aide sur ces exercices sur le forum.

+0 -0

Effectivement une section avec plusieurs exercices ne serait pas de refus, surtout des exercices qui au fur et a mesure que l’on avance dans le cours, combine chaque notion que l’on voit, et qu’on ai l’opportunité de développer cette logique là. Même si ce n’est que l’énoncé qui change avec quelques détails, et que la logique est la même ça serait intéressant d’avoir beaucoup d’exercice histoire de répéter, pour que ça devienne limite une habitude. J’avais bien aimé la série d’exo sur les tableaux par exemple.

Là, le soucis je pense c’est que j’ai eu a assimiler beaucoup de chose, surtout que l’écriture est " visuellement " plus complexe et amène facilement a la confusion… Après c’est un ressentie, je vis clairement pas mon meilleur chapitre, le cerveau chauffe mais bon je m’accroche, j’imagine que je suis encore dans le petit bassin, et que ce que le plus dur reste a venir ^^

J’y retourne :p

Bonjour, je viens donc faire un petit retour concernant les exos et quelques questions, j’ai fais une petite pause, donc j’ai a peine fini le chapitre 8.

  • Est ce que ajouter plein de #include si elles sont inutiles dans le code, est une mauvaise pratique? Car depuis le début en général, j’accumule les #include sans jamais les supprimer. Alors la, je code pas vraiment, c’est surtout un support pour les exos et exemple, mais est ce qu’a force ça peut amener à des soucis, si j’inclus des bibliothèques qui ne sont pas utilisées ? Ou c’est pas grave mais vaut mieux éviter tout simplement pour optimiser et avoir quelque chose de propre ?

  • Dans l’exemple "Prédicats pour caractères" Pour quoi le 7 renvoit 4 a isdigit ? ça devrait renvoyer 1 logiquement ?

`char const chiffre { '7' };

std::cout << "Est-ce que " << chiffre << " est un chiffre ? " << isdigit(chiffre) << std::endl;`
  • Pour l’exercice des palindromes, j’ai encore fait quelque chose qui fonctionne mais qui n’est pas comme dans la correction, surtout que j’ai ajouté des choses, en pensant qu’il fallait qu’on rentre nous même un mot dans le programme. Même sans ça mon code n’a pas grand chose à voir avec celui de la correction. J’imagine que c’est forcément pas mieux, mais est ce que c’est au moins aussi bien ? ^^
`std::string mot{};
std::cout << "Rentre un mot :" << std::endl;
std::cin >> mot;


std::string palindrome = mot;
std::reverse(std::begin(mot), std::end(mot));

if (palindrome == mot)
{
    std::cout << "Votre mot est un palindrome !" << std::endl;
}
else
{
    std::cout << "Votre mot n'est pas un palindrome !" << std::endl;
}`
  • Pour le deuxième exercice " string_tim ", aucun soucis, j’ai juste échoué ^^

  • Le 3ème exo " Couper une chaîne " est vraiment très compliqué je trouve, j’ai absolument pas eu d’idée, autant en général j’arrive rédiger quelque chose autant la, j’ai eu 15mn de " code vide ". En lisant la correction je comprend la logique, mais wow, c’est dur, déjà la déclaration d’un vector contenant des string, je pensais pas ça possible, pour moi c’était std::string seul ou rien, mais effectivement en relisant le chapitre tableau, y’a bien précisé avec n’importe quel type, mais étant donné qu’on avait vu vector et string séparément, ça m’est pas venu a l’idée qu’ils puissent être "combinés". Après j’ai tout bien compris mais c’est vraiment pas simple ^^ Sinon pas de question, c’était juste pour le retour :p

Enfin bref, c’est un chapitre de fini, le plus dur pour l’instant, autant ça allait depuis le début, mais alors ce chapitre… Y’a aussi le fait que j’ai changé de méthode de travail comme je vous ai dis dans mon premier message et c’était une erreur de vouloir rédiger des " leçon " pour moi même, au final le cours est déjà bien comme ça, et à part me faire un mémo sur les noms de fonctions, d’algorithmes… je perd mon temps à tout ré écrire en " condensé " alors qu’au final j’écris quasiment tout donc 0 intérêt, le cours est déjà très bien en terme de taille, de plus, et c’est le pire, c’est que je me contentais uniquement de C/C les exemples, la maintenant, je les lis, je les comprend et j’essaye de les rétablir tout seul moi même, et je recommence du début tant que je n’y arrive pas, donc je pense retravailler encore un peu ce chapitre avec les différents exemples, histoire de pas avancer trop vite comme tu m’as dis, vaut mieux prendre le temps.

Merci !!! :)

Salut

1 - En quelque sorte, en laissant des includes inutiles tu augmente les risques de collision de nom, et tu allonges ton temps de compilation. Cependant je crois que le compilateur est assez intelligent pour éviter d’ajouter les fonctions non utiliser à ton exécutable.

2 - Normalement ça renvoie 1 oui, quel est ton environnement de developpement pour avoir 4 ? Après ça doit renvoyer quelque chose que veut dire "vrai", c’est à dire différent de 0, donc 4 est juste aussi, mais c’est étrange que ta libc soit comme ça

3 - Ton algorithme est moins efficace (plus d’opérations et copie), mais il est bien t’inquiète pas. Il a du sens, il est intuitif et donc facile à relire/maintenir, et il répond aux attentes. c’est ce qu’on attends d’un bon code, l’optimisation est secondaire, il faut se poser la question lorsqu’on a identifié où il y a besoin de performance, avant ça la clarté prime

4 - Si tu as échoué, il y a un soucis ^^" Qu’est-ce qui te fais dire que tu as échoué ?

5 - Courage, persévère, ça vaut le coup ;)

Je te conseille de faire de plus petits posts quitte à ce que ce soit plus fréquent, car c’est plus dur de répondre à un gros comme celui-ci

+1 -0

D’accord à l’avenir, je ferai plus de message alors, après mon gros soucis, c’est que j’ai souvent des tas de chose à dire et raconter, bref j’essaierai de faire ça.

2 - Mon IDE est Microsoft Visual Studio, et oui je sais pas trop à quoi c’est du mais bon, ça parait pas très grave.

4 - En faite, le soucis que j’ai eu, c’est que j’ai pas adopté la bonne logique, j’ai plus mon code sous les yeux mais en gros j’ai voulu faire en sorte que tant que le premier caractère était un espace alors il supprimait a chaque fois la première valeur. Mais j’y arrivais pas, j’avais tout le temps des erreurs. Mais en regardant la correction j’ai compris mon erreur.

Après je dis qu’il y aucun soucis, surtout dans le sens ou je sais que c’était juste un manque de logique, après vaudrait t’il pas mieux, que je poste un message, si j’échoue mais que j’ai quand même une idée de code ? Peut être que vous pourrez m’expliquer en quoi ma logique est mauvaise ou pas adapté? Je sais pas, j’ai pas non plus envie de spam dès que je galère à faire quelque chose et que j’ai une correction clair et que je comprends sous les yeux.

En tout cas merci pour ta réponse, ça m’aide grandement !

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte