Il me semblait aussi qu'il y avait un quizz, mais je ne l'ai pas trouvé non plus
Je n'arrive pas à utiliser fliptext
La réponse proposée par lmghs est qu'il faut ajouter un assert, pour vérifier que les pointeurs ne sont pas null et qu'ils ne pointent pas sur la même adresse :
int set_and_add_values(int* a, int* b) {
assert(a != b && a != nullptr && b != nullptr);
*a = 1;
*b = 2;
return (*a + *b);
}
void foo(int* a, int* b) {
int value = set_and_add_values(a, b);
assert(value == 3);
}
Le problème de nullptr est un classique, la règle est de toujours tester si un pointeur n'est pas null avant de l'utiliser.
L'autre problème est plus pernicieux (ici, il était facile à identifier, mais ça ne sera pas forcement le cas si on utilise une référence, un tableau, etc). C'était effectivement ce que je voulais signaler et qui est moins connu que les pointeurs null, c'est le problème d'aliasing lorsque l'on utilise des pointeurs, c'est-à-dire le cas où l'on manipule sans le savoir la même variable.
[mode alabour=ON] / Lien de l'exercice : http://goo.gl/Afd0xQ
Principe KISS ! (bon, par contre, y'a un p'tit fail au niveau de l'instruction de sortie)
#include <iostream>
#include <fstream>
using namespace std; // Ergonomie "maximum"
int main(){
// Déclaration et initialisation des variables "principales"
char v[30000], l(' ');
int i = 29999;
string fName(" ");
while (i >= 0) { v[i] = 0; i--; }
i++; // Préparation du "pseudo-pointeur"
cout << "EXERCICE CPP - INTERPRETEUR BRAINF." << endl;
cout << "Entrez le nom du fichier TXT source (sans extension)" << endl;
cin >> fName;
cout << endl << "> ";
string ext(fName+".txt"); // Rapide concaténation
ifstream iStr(ext.c_str()); // On ouvre le flux de fichier
if (iStr) {
while (iStr.good()) { // Tant que le fichier est "bon" à la lecture, on lit
iStr.get(l);
switch (l) {
// Instructions de déplacement du pseudo-pointeur
case '<': if (i != 0) { i--; } break;
case '>': if (i != 29999) { i++; } break;
// Instructions de dé/incrémentation
case '+': v[i]++; break;
case '-': if (v[i] > 0) { v[i]--; } break;
// Instructions d'entrée/sortie de valeurs
case '.': cout << v[i]; break;
case ',': cin >> v[i]; break;
}
}
} else { // Si le fichier est illisible/introuvable
cout << endl << "ERREUR : Flux de fichier inutilisable" << endl;
}
cout << endl;
return 0;
}
Donc voilà, je pense que c'est tellement simple que ça parle de soi-même.
Par contre, deux cailloux : les boucles ([ et]) ne sont pas prises en compteet le dernier caractère "printé" est sorti deux fois (pas sûr pour les autres instructions).
Et oui, je suis (super) en retard sur le topic mais bon. M'a fallu quelques heures pour trouver une solution à peu près compréhensible
Voili voilou, y'a les deux points sus-nommés à "améliorer", et on pourrait ergonomiser encore un peu plus, mais bon.
@plop'
Polop all! =D C'moi, Sasukz, aussi connu sous les noms de... Algorithm, Evenkore, Ekeryvinz, Cyclonek, Nocturns, -K3yboard, etc.
je sais que la critique est facile mais l'art est difficile, cependant j'aurais quand même une requête:
serait-il possible de créer une section du forum pour les exos, 1 sujet post-it vérouillé pour le sommaire des exercices et 1 sujet par exercice plutôt qu'un méga long sujet plutôt bor.... ? Ce n'est pas très compliqué à réaliser par rapport au gain de lisibilité et de clarté. Mtnt s'il y a une bonne raison ne lisez pas plus loin et faites comme si vous m'aviez mis un pain et que je me taisais lol
Je propose ça seulement car je suis parti de la constatation qu'il est compliqué de retrouver les exos, même avec les liens et que les discussions se mélangent complètement. En fait voila, j'ai voulu faire l'exercice sur le polymorphisme "Le Site du Zéro", je clique sur le lien, Ctrl+F "site du zero" => 0 résultats.... je cherche plusieurs pages avant, rien non plus, il n'y a que la solution.....
Alors probablement que l'exercice est là, quelque part, attendant que je le trouve, mais c'est justement par soucis de clarté que je dis ça
Voila c'était tout, bien évidemment je sais que avez aussi votre vie, que vous n'avez pas forcément le temps, mais que vous faites malgré tout un boulot formidable, avec beaucoup d'investissement et surtout très pédagogique, ça c'est génial. Donc mon but n'est pas de décourager en pointant ce qui ne va pas, mais plutôt d'essayer de faire une critique constructive Merci encore
Les exercices auront "prochainement" leur propre module sur le site à part du forum (intégration au cours/tuto). Il faudra voir à ce moment là voir si il est possible d'importer ces exercices vers ce nouveau système. Je pense que tu peux quand même soumettre l'idée aux admins du site sur Twitter, ça ne coute rien.
Pour l'histoire:
De mémoire, la possibilité de rédiger des exercices sous forme de tutos avait été demandée en 2007 par Nanoc (depuis devenu co-auteur du cours sur le C++). Ca avait été refusé et Nanoc avait alors créé le premier sujet d'exercice C++ en 2008. Depuis ce temps, quelque part entre 2012 et aujourd'hui et d'après la Roadmap du site, il est prévue d'intégrer "quiz, exercices et devoirs corrigés entre étudiants à la plateforme de cours" (voir dans le paragraphe "Les nouveautés à venir").
Inkamath on GitHub - Interpréteur d'expressions mathématiques. Reprise du développement en cours.
Ah ok c'est super tout ça, merci de toutes ces précisions. ça fait presque.... politique tout ça, avec une décision qui peut prendre des années avant d'être entérinée par une commission de 5 membres désignés par vote, validée par divers forumulaires de toutes les couleurs et finalement mise en place lol
Mais bon je comprends, si c'est toute une structure qui doit être montée autant faire les choses bien et après tout intégrer d'un coup plutôt que faire les choses par petits bouts et qu'il faudra tout reprendre par la suite
Ok pour le lien Twitter, oui ça ne coûte rien (à part créer mon compte Twitter car je n'en ai pas, éh non lol)
Cette nouvelle solution en C++11 introduit sans excès quelques nouveaux concepts (std::begin, std::end, std::forward).
N'hésitez pas à me faire part de vos remarques voir même à forker la solution. Je rédigerai éventuellement une nouvelle description dans un deuxième temps.
Inkamath on GitHub - Interpréteur d'expressions mathématiques. Reprise du développement en cours.
Bonjour, travailler "les pointeurs de classes" Le groupe concerné est un groupe de débutant ayants au maximum appris jusqu'au chap 6 deuxième partie de c++. L'énoncé est :
Bonjour, Il y a des liens qui ne renvoie pas faire la bonne section du sujet, du coup c'est la galère pour trouver l'énoncer que l'on souhaite et les solutions aussi.
Le ministère de l'enseignement supérieur et de la recherche scientifique de ton pays veut accorder une bourse de 45 000 euro au étudiants de votre nationalité . Pour cela on saisie le matricule, le nom et prénoms, la moyenne e la série du bac de l'étudiant.
Pour être boursier il faut avoir le bac, être de la nationalité de ton pays , avoir obtenue 12 de moyenne au moins e être âgé au plus de 23 ans.
NB: La date de naissance et le code de nationalité doivent être saisie.
Je ne sais pas s'il y a un sujet spécial pour ce genre de questions, donc je viens la poser ici.
Dans le cadre d'un cours de programmation, on nous a donné des exercices pour nous entraîner, et sur l'un d'eux je bug, sans comprendre le pourquoi. Je viens solliciter vos connaissances et votre aide. Voici l'énoncé de l'exercice :
Créez un programme qui génère un suite de N nombres aléatoires réels compris entre a et b. Le programme va trier le tableau par valeur croissante. Dans ce but, chercher l’élément le plus grand du tableau et intervertissez le avec le dernier élément du tableau. Recommencez la même procédure avec les éléments restant jusqu’à ce que le tableau soit trié.
Ce qu'il se passe chez moi est que quand je lance le programme, il plante une fois arrivé au dernier for, puisque "test" s'affiche et quand je veux afficher le tableau enfin trié, la console ne l'affiche pas et ça plante. Je ne vois pas ce qu'il y a de mauvais dans ce que j'ai fait. Une idée ?
Kosovar il ne s'agit pas d'un exercice que tu proposes aux autres, mais tout simplement d'une question, dont tu aimerais de l'aide pour en trouver la solution.
Or le but de ce topic est de proposer des exercices. Je te demanderai donc de créer un nouveau topic pour y poser ta question.
Je supprimerai ces derniers messages une fois que tu auras eu le temps de récupérer le contenu de ton message (pour pas avoir à tout retaper quand tu en créera un nouveau).
Bonjour Je me lance tout juste dans la programmation mes j'avais une idée d'éxercice plustôt spécial mes je ne sais pas si celui ci est possible alors voilla le but est de faire un programme simple console mes qui fonctionne seulement avec une seul fonction jasi essayer et cela rend un code complexe a juste un nom de variable qui fait tout un programme
Fais un peu d'effort quand tu écris un message (au moins la ponctuation et un peu d'orthographe), se relire avant de poster ça te coûte une minute.
En ce qui concerne ton exercice je pense que ce n'est pas une bonne idée du tout car c'est une très mauvaise pratique de faire des fonctions longues. Une fonction, tu dois pouvoir comprendre ce qu'elle fait (pas nécessairement son fonctionnement), juste en lisant son nom, et tu dois vaguement savoir quelles étapes elle réalise en moins d'une minute de lecture.
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Discord NaN. Mon site.
Discord NaN. Mon site.
Posez vos questions ou discutez informatique, sur le Discord NaN | Tuto : Preuve de programmes C
Cours de C++ moderne
Posez vos questions ou discutez informatique, sur le Discord NaN | Tuto : Preuve de programmes C
Are you watching closely?
Posez vos questions ou discutez informatique, sur le Discord NaN | Tuto : Preuve de programmes C