Cherche adepte programation

Hello all , alors voila je suis un bleu absolue en programmation , je vient a peine de commencé il y a quelques jours , notamment grâce a un pdf pour débutant qui est vraiment bien.

Du coup je m’amuse un peut via des programme console , et j’ai déjà pigé les bases pour faire des calcule plus ou moins complexe en déclarant mes variables au préalable dans mon programme , le problème c’est que imaginons je veut faire un programme a priori assez simple , type :

A la fin de mes sessions je rentre le resultat , il les stock , puis si je veut il me les somme.

en vrai sa je peut le faire , via un fichier texte avec les commande ( ofstream et ifstream)d’ailleurs sa doit pas etre optimal ^^ , mais le problème c’est que je peut le faire que si je déclare des “case mémoire” pour mes variable , a savoir résultat soiré 1 , 2 , 3 etc …

En gros j’aimerais savoir comment puis-je faire si je veut que lorsque j’entre le résultat de ma sessions , cela crée une nouvelle case mémoire pour cette nouvelle valeur , sans que j’ai besoins de la déclaré au préalable dans le code source du programme ?

Je répete que je suis un bleu pur , et donc si quelqu’un peut répondre prenez le en compte , sinon je vais pas pigé ^^.

En esperant qu’il y ait quelques adepte parce que je surkiff deja et je vais sans doute avoir des milliard de problème de ce type ^^

Edit : Je suis sur code::block (version assez ancienne , j’avais des probleme avec la new , niveau compilateur je crois )

Up !

sa a l’air d’être une vrai bouteille a la mer le machin , de temps en temps je le ferais remonté.

Hmm, tu codes en quoi ? C++ la non ?
Si tu débutes j’aurais bien envie de te conseiller le python, ca te simplifiera beaucoup de choses.

Sinon, pour répondre plus spécifiquement à ta question, il va falloir que tu stockes les data qqpart (dans un fichier par exemple).
A chaque fois que tu rentres un chiffre, ca rajoute une ligne dans ton fichier.

Et apres tu peux le traiter comme tu veux pour sortir tes stats.

Yes merci nikoo , oué en c++ (effectivement faut que je prenne l’habitude de le mentionné ^^) .

pour l’instant je suis sur code block parce que le pdf que je suit utilise celui la , du coup c’est plutôt cool pour l’instant.

merci en tous cas, je vais allez checké sa sur internet , reste dans le coin on sait jamais :whistle:

Apprendre à programmer avec Python est un bon pdf pour débuter avec Python.
GL (good lecture :slight_smile: )

Bon je suis loin d’être un expert et ça fait plus d’un an que j’ai pas codé mais je pense que ce que tu cherche c’est à mettre une variable du type liste, tableau ou matrice que tu vas pouvoir incrémenté. Tu demande à ton programme de te créer une nouvelle entrée à ta liste (ou une nouvelle case à ton tableau) lorsque tu rajoute une valeur. Après tu peux accéder au élément de cette liste pour faire des opération dessus.

Edit : j’avais pas vu la réponse de nik000. Effectivement si tu veux garder les données d’une fois à l’autre va falloir les enregistrer dans un fichier (texte bloc note classique par ex) et dire à ton programme d’aller écrire ou lire des valeurs dedans.

Et si tu cherche à faire des programmes plus visuel et que tu veux continuer avec C++ je te conseil de te mettre à coder avec QT creator qui intègre des tonnes de fonctions toutes faites pour le côté programmation de l’interface. Y’a même un éditeur qui te permet de mettre en place la plupart des éléments sans avoir à écrire une ligne de code (même si va falloir coder pour que ton programme fasse quelque chose obv lol)

Bon je suis loin d’être un expert et ça fait plus d’un an que j’ai pas codé mais je pense que ce que tu cherche c’est à mettre une variable du type liste, tableau ou matrice que tu vas pouvoir incrémenté. Tu demande à ton programme de te créer une nouvelle entrée à ta liste (ou une nouvelle case à ton tableau) lorsque tu rajoute une valeur. Après tu peux accéder au élément de cette liste pour faire des opération dessus.

Edit : j’avais pas vu la réponse de nik000. Effectivement si tu veux garder les données d’une fois à l’autre va falloir les enregistrer dans un fichier (texte bloc note classique par ex) et dire à ton programme d’aller écrire ou lire des valeurs dedans.[/quote]

Oui en gros c’est sa que je veut faire , je sais stocké l’info via un fichier texte et je sais le récupéré , mais comme nik000 la compris , mon vrai problème c’est rajouté une ligne dans mon programme a chaque nouvelle valeur que je donne soir après soir.

D’ailleurs nik00 si tu repasse par la , les data qqpart sont des type de fichier particulier ? je n’ai pas trouvé grand chose sur internet avec ces notation.

mais j’ai quelques piste , facon j’ai le temps , après j’aime bien m’amusé en même temps que j’apprends des nouvelle chose , et j’ai eu l’idée de faire un simple prog de suivie de session, et ben non … ^^.

En tous cas merci a tous , hésité pas a donné des pdf/video (francais ^^) , et autres conseils.

Edit : pour débutant obv ^^

Quand nik000 dit : “il va falloir que tu stockes les data qqpart” il te dis que il va falloir que tu stockes les données quelque part --> dans un fichier (ce que tu a fait a priori). Il ne s’agit pas d’un type de fichier particulier.

Tu ne vas pas rajouter une ligne de code à ton programme à chaque nouvelle valeur car ton but c’est d’avoir un programme que tu ne vas pas toucher une fois qu’il est compilé (sinon autant faire les calculs à la mains ou utiliser excel).

La solution (une des solutions en tout cas) est de déclarer dans ton programme une variable de type liste à N entrées (N étant le nombre de donnée que tu à dans ton fichier qui les stocks). l’idée c’est que ton programme aille lire tes donnés dans ton fichier texte et les stockes dans ta liste qui va ressembler à quelque chose comme (valeur1, valeur2…, valeur N). Ensuite tu peux faire toutes les opérations que tu veux sur les éléments de ta liste.

[quote=“Simpson2500, post:901379”]Quand nik000 dit : “il va falloir que tu stockes les data qqpart” il te dis que il va falloir que tu stockes les données quelque part --> dans un fichier (ce que tu a fait a priori). Il ne s’agit pas d’un type de fichier particulier.

Tu ne vas pas rajouter une ligne de code à ton programme à chaque nouvelle valeur car ton but c’est d’avoir un programme que tu ne vas pas toucher une fois qu’il est compilé (sinon autant faire les calculs à la mains ou utiliser excel).

La solution (une des solutions en tout cas) est de déclarer dans ton programme une variable de type liste à N entrées (N étant le nombre de donnée que tu à dans ton fichier qui les stocks). l’idée c’est que ton programme aille lire tes donnés dans ton fichier texte et les stockes dans ta liste qui va ressembler à quelque chose comme (valeur1, valeur2…, valeur N). Ensuite tu peux faire toutes les opérations que tu veux sur les éléments de ta liste.[/quote]

Mdr , je me sens bien con , la notation qqpart :smiley: , passons …

Yes ok , un type liste c’est comme un tableaux ?

en tous cas je comprend l’idée , d’ailleurs une des piste que j’ai trouvé est la fontion malloc() et sizeof , a priori c’est en gros ce que tu m’explique , mais faut que je prenne le temps il y a pas mal de suptilité a comprendre ^^

bon avant je vais quand même essayé de passé par un simple type liste a N elements , sa parait plus simple ^^

merci en tous cas

Liste ou tableau tu dois pouvoir utiliser les deux. Une liste est finalement un tableau à une seul ligne

en gros faut que tu fasses genre :

FILE *f;
f = fopen(“mon_fichier.txt”, “rw”);
fwrite(f, “ma nouvelle ligne d’information”);
fclose(f)

j’ai plus les details y’a surement des erreurs ci dessus mais tu trouveras facilement des exemples.

De meme pour les traiter apres, tu vas ouvrir ton fichier, lire chaque ligne, extraire les donnees, et en faire ce que tu veux.

Mais j’insiste sur le fait que passer en python pour débuter serait le mieux pour toi (y’a plein de subtilites du C/C++ qui vont te causer des soucis vraiment relous)

En python ca donnerait :

resultats = []

with open("mon_fichier.txt", "r") as f:
  for line in f:
    resultats.append(int(line))

print "Total gagné :"
print sum(resultats)

[quote=“nik000, post:901382”]en gros faut que tu fasses genre :

FILE *f;
f = fopen(“mon_fichier.txt”, “rw”);
fwrite(f, “ma nouvelle ligne d’information”);
fclose(f)

j’ai plus les details y’a surement des erreurs ci dessus mais tu trouveras facilement des exemples.

De meme pour les traiter apres, tu vas ouvrir ton fichier, lire chaque ligne, extraire les donnees, et en faire ce que tu veux.

Mais j’insiste sur le fait que passer en python pour débuter serait le mieux pour toi (y’a plein de subtilites du C/C++ qui vont te causer des soucis vraiment relous)

En python ca donnerait :

[code]
resultats = []

with open(“mon_fichier.txt”, “r”) as f:
for line in f:
resultats.append(int(line))

print “Total gagné :”
print sum(resultats)
[/code][/quote]

Ok en gros :

tu crée un tableau pouvant accueillir les resultats
t’ouvre le fichier
tu rentre les resultat qui se mette ligne par ligne ?
et tu les affiches

sans avoir eu besoins de les déclaré au préalable juste parce que tu utilisé un [] ?

En gros c’est ce qu’explique simpson aussi

je me sens un peut con , parce que en faite j’ai essayé de le faire avec un tableaux mais comme un *** , j’ai pas pensé a le déclaré sans argument , en gros c’est simplement sa a faire ?

qd je cree ma variable python avec = [] je lui dis que c’est une liste, et python va tout gerer tout seul (gerer la memoire si besoin de plus, liberer qd tu n’as plus besoin, etc… tout est simple)

En C/C++ il va falloir que tu alloues toi meme la memoire (et donc que tu connaisses la taille necessaire a l’avance de maniere dynamique) et tu feras genre :

int * mon_tableau;

int ma_taille = … // des calculs pour trouver la taille

mon_tableau = new mon_tableau[ma_taille]

apres tu pourras l’utiliser

et a la fin tu devras faire delete[] mon_tableau pour liberer la RAM

Je pense pas pouvoir insister suffisamment sur le fait que le C/C++ est pas un bon choix pour débuter la programmation, ca va t’obliger à te prendre la tete avec des détails qui ne t’interessent pas et vont te compliquer la vie.
(C++ encore pire que le C en fait imo)

ceci dit, tu peux aussi declarer ton tableau non dynamiquement si tu connais une taille maximum :

int mon_tableau[256];

[quote=“nik000, post:901385”]qd je cree ma variable python avec = [] je lui dis que c’est une liste, et python va tout gerer tout seul (gerer la memoire si besoin de plus, liberer qd tu n’as plus besoin, etc… tout est simple)

En C/C++ il va falloir que tu alloues toi meme la memoire (et donc que tu connaisses la taille necessaire a l’avance de maniere dynamique) et tu feras genre :

int * mon_tableau;

int ma_taille = … // des calculs pour trouver la taille

mon_tableau = new mon_tableau[ma_taille]

apres tu pourras l’utiliser

et a la fin tu devras faire delete[] mon_tableau pour liberer la RAM

Je pense pas pouvoir insister suffisamment sur le fait que le C/C++ est pas un bon choix pour débuter la programmation, ca va t’obliger à te prendre la tete avec des détails qui ne t’interessent pas et vont te compliquer la vie.
(C++ encore pire que le C en fait imo)[/quote]

yes ok parfait , c’est bien la fonction malloc() (pour l’allocation) et sizeof ( pour la taille) en c++ , mais ok je vais te croire et je commencerais le pdf de balla et je prendrais python aussi , apres je vais aussi finir mon pdf en c++ , je prend un peut partout , même si c’est peut être pas le mieux.

En tous cas merci beaucoup encore une fois ,je sais ou cherché maintenant.

j’ai pas lu en details mais ca m’a l’air pas mal :

https://openclassrooms.com/courses/langage-python?status=published

Raaah écoutes pas nick000 et son python, le C++ c’est la Rolls Royce des langages de programmation. Déjà parce que tu n’auras jamais la moindre limitation avec contrairement aux langages objet un peu plus haut niveau comme le Python, le Visual Basic, le Java, Perl, etc qui sont plutôt destinés à des usages assez spécifiques.

Ensuite, et c’est de loin le plus important pour moi, si tu arrives à bien maîtriser le C++ tu pourras basculer ensuite sur n’importe quel autre langage sans la moindre difficulté. Tout ce que tu auras à faire c’est juste d’apprendre la syntaxe du langage en question et tu pourras coder dans tout ce que tu veux (à part en assembleur ou en C pur). Pour débuter la programmation je pense qu’il n’y a pas mieux que le C++ (à moins d’être motivé à passer un peu de temps à apprendre les rouages du C qui est la base de presque tous les langages).
Donc je te conseille de continuer à bosser en C++ pour l’instant afin de bien comprendre la plupart des mécanismes de programmation. Le meilleur site de tutos français pour la plupart des langages et librairies est sans aucun doute openclassrooms (anciennement “le site du zéro”). Là bas tu trouveras surement des tutos très bien fait sur tout ce qui t’intéresse.

Très bon choix aussi l’utilisation de Code::Blocks, c’est mon IDE préféré. Il intègre la plupart des librairies et API les plus utilisées, il est clair et très rapide avec le compilateur MingW intégré. Le seul reproche que je lui ferais c’est qu’il n’y a pas de “dictionnaire” des fonctions C++ directement accessible dans l’environnement comme avec VisualC++. Cela dit VC est devenu une grosse usine à gaz depuis l’introduction du C# et codeblocks a l’avantage d’être gratuit en version complète et souvent mis à jour.

Quand tu auras bien fait joujou avec le C++ et que tout ça sera un peu plus clair dans ton esprit tu pourras aller t’intéresser à certaines librairies complexes (API) ou à d’autres langages.
Une API que j’aime particulièrement c’est celle que mentionnait Simpson2500 : QT. Il s’agit d’un ensemble de librairies cross-plateforme, c’est à dire qu’elle te permet avec le même code d’obtenir un programme qui tournera sur la plupart des systèmes d’exploitation en changeant juste le compilateur. Tu peux ainsi développer un programme en C++ (ou C#, VisualBasic et je sais plus quoi d’autres) qui tourne sur Windows et avec très peu d’ajustements dans le code source et en changeant juste le compilateur ça tournera aussi sur Mac, Linux et Android ce qui est vachement classe !
C’est également une API destinée principalement à la création de fenêtres de façon très complète et plutôt simple. Ça donne des programmes un peu lourd (plus qu’avec l’utilisation de l’API windows ou de GTK par ex.) mais QT vient également avec son environnement de développement ce qui fait gagner beaucoup de temps pour le programmeur.

Sinon pour ton problème j’ai pas tout compris mais si tu souhaites écrire et lire dans des fichiers je te conseille d’aller jeter un œil à la classe CFile qui permet de faire tout ça très facilement. Si tu galères de trop, notifie moi sur le forum ou en MP et je jetterai un œil à ton code pour voir ce qui déconne.

[quote=“flibustier, post:901399”]Raaah écoutes pas nick000 et son python, le C++ c’est la Rolls Royce des langages de programmation. Déjà parce que tu n’auras jamais la moindre limitation avec contrairement aux langages objet un peu plus haut niveau comme le Python, le Visual Basic, le Java, Perl, etc qui sont plutôt destinés à des usages assez spécifiques.

Ensuite, et c’est de loin le plus important pour moi, si tu arrives à bien maîtriser le C++ tu pourras basculer ensuite sur n’importe quel autre langage sans la moindre difficulté. Tout ce que tu auras à faire c’est juste d’apprendre la syntaxe du langage en question et tu pourras coder dans tout ce que tu veux (à part en assembleur ou en C pur). Pour débuter la programmation je pense qu’il n’y a pas mieux que le C++ (à moins d’être motivé à passer un peu de temps à apprendre les rouages du C qui est la base de presque tous les langages).
Donc je te conseille de continuer à bosser en C++ pour l’instant afin de bien comprendre la plupart des mécanismes de programmation. Le meilleur site de tutos français pour la plupart des langages et librairies est sans aucun doute openclassrooms (anciennement “le site du zéro”). Là bas tu trouveras surement des tutos très bien fait sur tout ce qui t’intéresse.

Très bon choix aussi l’utilisation de Code::Blocks, c’est mon IDE préféré. Il intègre la plupart des librairies et API les plus utilisées, il est clair et très rapide avec le compilateur MingW intégré. Le seul reproche que je lui ferais c’est qu’il n’y a pas de “dictionnaire” des fonctions C++ directement accessible dans l’environnement comme avec VisualC++. Cela dit VC est devenu une grosse usine à gaz depuis l’introduction du C# et codeblocks a l’avantage d’être gratuit en version complète et souvent mis à jour.

Quand tu auras bien fait joujou avec le C++ et que tout ça sera un peu plus clair dans ton esprit tu pourras aller t’intéresser à certaines librairies complexes (API) ou à d’autres langages.
Une API que j’aime particulièrement c’est celle que mentionnait Simpson2500 : QT. Il s’agit d’un ensemble de librairies cross-plateforme, c’est à dire qu’elle te permet avec le même code d’obtenir un programme qui tournera sur la plupart des systèmes d’exploitation en changeant juste le compilateur. Tu peux ainsi développer un programme en C++ (ou C#, VisualBasic et je sais plus quoi d’autres) qui tourne sur Windows et avec très peu d’ajustements dans le code source et en changeant juste le compilateur ça tournera aussi sur Mac, Linux et Android ce qui est vachement classe !
C’est également une API destinée principalement à la création de fenêtres de façon très complète et plutôt simple. Ça donne des programmes un peu lourd (plus qu’avec l’utilisation de l’API windows ou de GTK par ex.) mais QT vient également avec son environnement de développement ce qui fait gagner beaucoup de temps pour le programmeur.

Sinon pour ton problème j’ai pas tout compris mais si tu souhaites écrire et lire dans des fichiers je te conseille d’aller jeter un œil à la classe CFile qui permet de faire tout ça très facilement. Si tu galères de trop, notifie moi sur le forum ou en MP et je jetterai un œil à ton code pour voir ce qui déconne.[/quote]

+1

flibustier a résumé le fond de ma pensé en détail alors que j’avais la flemme d’écrire tout ça lol.

quel troll :slight_smile:

J’aime beaucoup le C/C++ (et d’autres) mais faut etre honnete, il y quand meme beaucoup de concepts qui peuvent dégouter à vie un débutant…