CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

Mon premier programme utile (en C)

coolmancool
coolmancool
Niveau 7
03 avril 2012 à 14:16:07

Bonjour :)

Après une semaine de construction et de paufinement, tout en étant un débutant, je vous présente : une CALCULETTE :fete:

...Bon ok, c'est peut être pas la meilleur trouvaille du monde, mais j'estime que c'est quand même mieux que de mettre une copie "plus ou moins" du site du zéro ( tout en disant que je suis moi même entrain d'étudier le C sur ce site :fier: ).

En bref, ma calculette peut faire : des multiplications, des divisions, des additions, et des soustractions.
En gros des opérations de base.

Je souhaite avoir vos avis pour me dire les erreurs que j'ai fait, et les améliorations que je pourrait faire :-) .
Pour info, j'ai 13 ans, et je souhaite avant mes 15-17 ans savoir le C, le C++, et QT ( :rechercher: sur google si vous ne savez ce que c'est ).

Et pour ceux qui disent : "VIRUS A PLEIN NEZ", j'ai mis dans l'archive le fichier source, donc, si vous ne voulez pas utiliser l'executable, vous pourrez toujours le compiller :-)))

Le programme n'est pas très complet, c'est vrai.
Il ne gère pas les virgules par exemple ( signification : on ne peut pas placer de point ni de virgules, sous peine de voir le programme mettre la valeur "NULL" à l'écran, met il ne crash pas, on peut donc continuer à faire d'autres calculs... Mais ça ne veut pas dire que, par exemple pour les divisions, que si on met 5 divisé par 2, il ne va PAS afficher simplement 2 :oui: ), je compte sur vous pour m'expliquer comment faire :ok: !

Et voila, j'ai fini mon mini discourt, maintenant, testez-le !

Lien : http://www.toofiles.com/fr/oip/documents/rar/calculette.html

PS : J'avoue que je n'ai pas commenté le fichier source, je n'ai pour le moment ni le temps, ni la patience de le faire, mais je pense que vous pourrez le déchiffrer !

Bunyan
Bunyan
Niveau 17
03 avril 2012 à 14:54:12

Déjà, ne rêve pas trop :)

On dit généralement que la maîtrise du C++ prends aux environs de 5 ans. Si tu parles juste de la syntaxe, ce sera fait largement avant ton objectif.

Sur ton code source, vu que cela fait très longtemps que je n'ai pas fait de C :
-apprends à utiliser des fonctions
-ne mets JAMAIS tout ton code uniquement dans le main (bon ... en même temps ... tu débutes, c'est plus ou moins normal)
-généralement, pour les menus consoles, on préfère une structure do {...} while(...)
-pour le menu, je crois me souvenir de stricmp pour les comparaisons non-sensible à la casse
-tu dupliques beaucoup de code

Remarque d'ordre général :
-prend l'habitude de mettre des noms de variable clairs. Sur le moment, on sait que X c'est tel calcul. 2 semaines plus tard, c'est pas dit. Avec une variable tel_calcul, c'est bon

Je te conseillerai de t'intéresser à fgets pour la saisie via terminal (si je me souviens bien du nom de ce machin).

Sinon, si tu veux aller plus loin avec une calculette, je te conseils de t'intéresser à la notation polonaise.

tbop2
tbop2
Niveau 10
03 avril 2012 à 15:58:24

Je rajoute a cela que ton indentation est super chelou sur mon mac et qu'il vaut mieux ecrire ses programmes en anglais.

Concernant la duplication. Il y a en effet un moyen de ne repeter ces instructions une seule fois dans tout le code. Trouve le :

printf("\n \n Vous faites en ce moment une division ");
printf("\n \n \n Ecrivez votre premier chiffre ou nombre et appuyez sur entrer : ");
scanf("%d", &re);
printf("\n \n Maintenant votre deuxieme chiffre ou nombre : ");
scanf("%d", &re2);
// Il se passe quelque chose ici....
printf("\n \n Le resultat est : %f\n", result);

printf("\n \n \n \n Ce sera tout ? (mettez N pour continuer ou O pour quitter) : ");
scanf("%c", &choix2);
scanf("%c", &choix2);
if (choix2 == 'O' || choix2 == 'N' || choix2 == 'n' || choix2 == 'o')

Et la prochaine fois pas la peine de t'embeter abec un executable, un copier-coller sur pastebin suffit amplement a ce stade la. D'ailleurs ne donne jamais l'executable personne n'en veut de ce machin ! :)

tbop2
tbop2
Niveau 10
03 avril 2012 à 15:59:24

Mis a part la premiere ligne bien sur pour "Vous faites en ce moment une division".

coolmancool
coolmancool
Niveau 7
03 avril 2012 à 17:36:36

D'ailleurs, je me demande toujours pourquoi j'ai du mettre des "scanf" deux fois pour que la commande soit prise en compte... :question:

coolmancool
coolmancool
Niveau 7
03 avril 2012 à 20:52:40

C'est bon, vous pouvez avoir le code sur pastebin : http://pastebin.com/F4akeSjB

tbop2
tbop2
Niveau 10
04 avril 2012 à 10:56:05

Yep donc as tu corrige maintenant ce qu'on a souleve ?

PS : Ne t'occupe pas des fonctions pour l'instant tu n'as pas du voir cette notion, mais as-tu vu les switch-case neanmoins ?

Bunyan
Bunyan
Niveau 17
04 avril 2012 à 10:59:34

Juste un message inutile pour le sujet :
En me relisant, j'ai l'impression de clasher un peu trop, désolé, ce n'est pas mon but.
Tu as fais un premier programme qui fonctionne, et c'est déjà bien :)

tbop2
tbop2
Niveau 10
04 avril 2012 à 11:05:20

Disons qu'il etait un peu severe car la moitie de tes remarques concernees des notions qui n'ont vraisemblablement pas ete encore vues, cela dit j'ai rien vu de mechant la-dedans.

Cela dit je -1 le "deja ne reve pas trop", au contraire c'est bien de rever, surtout a 13 ans, il faut juste mettre ses reves en pratique c'est ca le plus important.

Donc oui arrete d'avoir des reves... realise les ! :)

tbop2
tbop2
Niveau 10
04 avril 2012 à 12:06:24
  • concernaient
Nightmarez
Nightmarez
Niveau 9
04 avril 2012 à 14:35:43

C'est pas mal !

Par contre si tu veux continuer dans l'apprentissage du C et continuer de paufiner ton projet, je pense que tu pourrais essayer de faire un analyseur de syntaxe (Parser) qui permettrait de mettre des expressions comme "2 + 5 * 3" dans ta calculatrice, qui les resolverait.

coolmancool
coolmancool
Niveau 7
05 avril 2012 à 13:51:51

Merci pour vos encouragements :) !

tbop2 : Oui, j'ai vu les switch-case mais je ne les contrôles pas très bien, et pour l'erreur, tu parles du %f ?
Parce que si c'est ça c'est normal...
Si ça ne l'est pas, je vois vraiment pas !

Bunyan : C'est pas grave ! Dans toutes choses il faut des critiques pour avancer !

Nightmarez : Merci pour l'info, je vais voir ce que je peux faire.

En tout cas, merci à tous :-)))

tbop2
tbop2
Niveau 10
05 avril 2012 à 14:08:48

Euh de rien mais si tu ne corriges pas les erreur qu'on a pointe du doigt je ne sais pas trop a quoi on a servit et quel etait le but de ton topic ? :)

Parce que meme si ton programme est grosso-modo juste je ne te recommanderais personnellement pas de continuer plus loin dans le cours avant de controller un peu mieux la logique d'un petit programme comme celui-ci.

Donc elague le code duplique en mettant des if statement a des endroits bien sentis et profite de la puissance des switch case quand il faut aussi, et des do while, et comprends pourquoi scanf ca pue et pourquoi NON dans un vrai code tu ne devrais pas a avoir appeler scanf deux fois de suite quand tout est bien controle :ok:

Baptistin44
Baptistin44
Niveau 3
05 avril 2012 à 15:01:09

c pas mal

mais on toujours tout amelioré

tbop2
tbop2
Niveau 10
05 avril 2012 à 16:29:43

C'etait un commentaire tres constructif de ta part baptistin :ok:

M14-EBR
M14-EBR
Niveau 8
08 avril 2012 à 10:42:23

baptistin44
Posté le 5 avril 2012 à 15:01:09
c pas mal

mais on toujours tout amelioré

:d) :rire:

yoyoyoke
yoyoyoke
Niveau 10
09 avril 2012 à 22:38:35

Bon, honnêtement je n'ai pas eu le courage de lire ton programme :hap: (c'est un peu trop fouillis).

Pour rendre ton programme plus compréhensible, tu devrais faire un switch dans un while. Si tu n'as pas très bien compris le switch, va le revoir car c'est bien utile pour les petits menus du genre de ton programme. La ton programme fait presque 300 lignes ( :ouch2: ) alors qu'en étant mieux organisé il n'en ferait qu'entre 50 et 100.

Après par endroit ton indentation est bizarre.

Et je ne vois pas trop l'intérêt de faire des return 0 pour quitter un peu partout. Autant faire un truc mieux organisé ou tu sortirais du while si l'utilisateur a fini.

M'enfin ça reste un premier programme, c'est pas mal. Surtout a 13 ans :)

Sous forums
  • Aide à l'achat Mac
  • Internet
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Steam Deck
  • Hardware
La vidéo du moment