LE CALCULATOR DE RAYGOLD VERSION 3.1

xeolin Messages postés 336 Date d'inscription samedi 26 novembre 2005 Statut Membre Dernière intervention 8 novembre 2011 - 13 févr. 2010 à 22:40
aera group Messages postés 382 Date d'inscription mercredi 23 août 2006 Statut Membre Dernière intervention 8 novembre 2010 - 21 août 2010 à 18:53
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/51208-le-calculator-de-raygold-version-3-1

aera group Messages postés 382 Date d'inscription mercredi 23 août 2006 Statut Membre Dernière intervention 8 novembre 2010 18
21 août 2010 à 18:53
Toujours aussi pauvre et totalement inintéressante d'autant plus que c'est Xeolin et moi même qui t'avons coder ta source ...

Au moins ce n'est plus bugé ....
raygold Messages postés 11 Date d'inscription lundi 26 octobre 2009 Statut Membre Dernière intervention 30 janvier 2011
13 juin 2010 à 18:36
Désoler de ne pas avoir pu mettre la version 3.1 en ligne plus tôt car j'étais partie en voyage.
Je vois qu'elle ressemble beaucoup a celle de aera groupe donc je pense qu'il n'y aura pas beaucoup de remarque(enfin j'espère).
Dite moi ce que vous en penser.
xeolin Messages postés 336 Date d'inscription samedi 26 novembre 2005 Statut Membre Dernière intervention 8 novembre 2011 2
11 juin 2010 à 10:23
J'ai envie de dire : tapez "resultat()" dans l'entrée de texte...

et puis :

from __future__ import division
from math import *
import Tkinter

def resultat_fonction(trash=None): #vive les oxymores !
try: resultat.configure(text=eval(saisie.get(0,Tkinter.END)))
except: resultat.configure(text="ERREUR")

racine=Tkinter.Tk()

Tkinter.Label(text='Cliquez et saisissez:', width=20, height=3, fg="black").pack()

saisie=Tkinter.Entry(width=30)
saisie.pack()
saisie.bind(resultat_fonction,"<Enter>")
Tkinter.Button(text="Egal", command=resultat_fonction).pack()

resultat=Tkinter.Label(width=20, height=3, fg="black")
resultat.pack()

racine.mainloop()

:p
aera group Messages postés 382 Date d'inscription mercredi 23 août 2006 Statut Membre Dernière intervention 8 novembre 2010 18
10 juin 2010 à 20:21
Mise à par le problème de décimaux qui est assez complexe à résoudre, tu aurais pu faire l'effort de corriger ce code, ca ma pris 5 min.

from __future__ import division
from math import *
import Tkinter

def resultat_fonction():
try:
texte = eval(saisir.get())
except:
texte = "ERREUR"
resultat.configure(text=texte)

racine=Tkinter.Tk()
texte=Tkinter.Label(racine, text='Cliquer et saisir:', width=20, height=3, fg="black")
texte.pack()
saisir=Tkinter.StringVar() # prevoir la variable pour recevoir le texte saisi
saisie=Tkinter.Entry(textvariable=saisir, width=30)
saisie.pack()
bouton=Tkinter.Button(racine, text="Egale", command=resultat_fonction)
bouton.pack()
resultat=Tkinter.Label(racine, text="", width=20, height=3, fg="black")
resultat.pack()

racine.mainloop()

Pas compliquer tout de même ...

"Je suis l'absence totale de surprise de Jack."
raygold Messages postés 11 Date d'inscription lundi 26 octobre 2009 Statut Membre Dernière intervention 30 janvier 2011
16 mai 2010 à 21:29
J'ai régler le problème d'affichage. j'essaye de résoudre celui des nombres decimaux
aera group Messages postés 382 Date d'inscription mercredi 23 août 2006 Statut Membre Dernière intervention 8 novembre 2010 18
24 avril 2010 à 12:19
Nouveau programme, nouveau look (+1), nouveaux problèmes (-1) !

je rappel les étapes de l'étude :

Étape 1 : Copier ou télécharger le code sans le regarder et l'exécuté.
Étape 2 : Utiliser le code comme le ferait un utilisateur classique, et comprendre le fonctionnement (sans regarder le code)
Étape 3 : Toujours sans voir le code tenté de dénicher des bugs
Étape 4 : Regarder le code et comprendre les mécanismes et erreurs s'il y en a.
Étape 5 : Noter

Résultats :

1/ Ok bon point le programme démarre comme un grand tout seul, bon point

2/ Premier test un calcul simple (1+1) je fait machinalement <Entrée> rien ne se passe (bon ok c'est pas très grave) je fait égale ok le résultat s'affiche.
Nouveau calcul (2-5) pour tester les nombres positifs et la surprise le résultat (-3 bon - encore heureux) s'affiche en dessous du premier résultat. Évidement au bout de 15 calculs (j'ai fais le test) sur mon écran un 17 pouce tout de même et en plein écran j'arrive a la limite d'affichage (le 16 résultat ne peut pas être lu). Et la il y a un gros problème. Tu ne peux pas faire ca c'est pas possible. Pourquoi faire en sorte que la fenêtre s'étire au maximum ? soit tu affiche un seul résultat soit tu affiche ca dans un "Entry" extensible avec ascenseur (ça fait des années que je n'utilise plus Tk et en 3 ou 4 recherche sur ce site je te le fait).
Nouveau test (après nouvelle fenêtre bien entendu - vachement pratique) le calcul plus rechercher racine de 25 (en anglais et en tout langage informatique qui se respect - comme Python - sqrt(25)) et la deuxième surprise : erreur dans la console : pas de fonction sqrt défini (normal quand on prend pas la peine de charger la librairie math). Encore une erreur !

3/ Recherche de bugs : tout de suite le calcul de la mort : 1/0 (impossible pour ceux qui le savent pas) et sans surprise rien n'est prévu (alors que dans la version 1 il y avait un try/except) et message d'erreur dans la console. Dernier test pour finir en beauté : 1/2 qui donne (prévisible) 0 au lieu de 0.5 (bien que la résolution de ce problème est entraiment difficile il y a plusieurs heures de travail !).

4/ Le code est exactement ce que j'avais imaginé, trop bateau un C/C du bouquin de Swinnen aurait suffit !

Voila sije pouvais modifier ma note je ne mettrais pas plus de 4 et c'est bien payer il y a encore du boulot.

Mettre une source dès que l'on a écrit 3 lignes de code ne sert à rien. À re-re-corriger.

ciao
raygold Messages postés 11 Date d'inscription lundi 26 octobre 2009 Statut Membre Dernière intervention 30 janvier 2011
16 avril 2010 à 12:57
MA clé usb a planté il faut que je récrie le programme.
raygold Messages postés 11 Date d'inscription lundi 26 octobre 2009 Statut Membre Dernière intervention 30 janvier 2011
16 avril 2010 à 12:42
J'ai créé une calculette toujours simple mais graphique et avec la fonction "eval".
Elle ne fait que des petit calcul.
aera group Messages postés 382 Date d'inscription mercredi 23 août 2006 Statut Membre Dernière intervention 8 novembre 2010 18
16 avril 2010 à 12:25
Quelle rapidité, j'ai juste le temps de prendre ma douche (oui réveil douloureux et tardif) et déjà une réponse. Pour le serveur il faut pas compté sur moi avant le 19 mai (concours :p), mais dès le 19 je me charge de corriger les dernières petites lacunes et je te l'envoie (version 0.3 - soit encore du boulot mais le soft est déjà bien avancé et je te mettrais tous plein de commentaires annexes).

Pour en revenir à toi Raygold (c'est quand même le forum de ta source ;p) j'ai regarder la première version.
Sans aucune hésitation ta première version surpasse largement la seconde !!! Il reste toujours des petits problèmes (du genre la limitation du nombre d'opérateur) mais il y a au moins des try/except et des tests au bon endroit (no bugs) !
Ah oui au fait on dit pas le signe de l'opération on dit l'opérateur ou l'opérande en maths.

Raygold soit tu corriges ta source soit tu réponds à nos critiques en défendant ton boulot mais je pense pas qu'il faille resté les bras croisé. J'attends ta réaction. Ciao

Au passage je rajoute le 1/10 que j'avais oublier dans mon premier poste
xeolin Messages postés 336 Date d'inscription samedi 26 novembre 2005 Statut Membre Dernière intervention 8 novembre 2011 2
16 avril 2010 à 12:04
C'est vrai que mon orthographe est médiocre mais je vérifie ce que je 'print', tu démarre le soft et bam un fôte dortografe ! (non mé sent blagueux)

sinon j'attends ton serv ^^ !
aera group Messages postés 382 Date d'inscription mercredi 23 août 2006 Statut Membre Dernière intervention 8 novembre 2010 18
16 avril 2010 à 11:45
Bonjour à toutes et a tous !

Je suis enfin de retour sur CS. Et je vais commencer par m'intéresser à ce "code" (?). Et pour fêter ça j'ai décidé d'utiliser une nouvelle technique de test :

Étape 1 : Copier ou télécharger le code sans le regarder et l'exécuté.
Étape 2 : Utiliser le code comme le ferait un utilisateur classique, et comprendre le fonctionnement (sans regarder le code)
Étape 3 : Toujours sans voir le code tenté de dénicher des bugs
Étape 4 : Regarder le code et comprendre les mécanismes et erreurs s'il y en a.
Étape 5 : Noter

Si je résume comment ça c'est passé pour ton code c'est très simple:

Étape 1 : Ok j'ai maitrisé
Étape 2 : Eh bien là ça cloche ... Rien ne marche ou presque il m'a fallu 6 essayes pour que un simple calcul fonctionne (je commettais des erreur de "syntaxe" du "programme" (un petit rictus apparais sur mon visage quand je dis que ta daube sans nom s'appelle un programme)).
Étape suivante : impossible à tester

Plus sérieusement c'est quoi ce délire ?

1/ Chez toi les maths ça se résume à faire 4 pauvres calculs uniquement avec des nombres de 3 chiffres !!! T'as pas l'impression que c'est honteux comme restriction ? En maths je fais des calculs de somme infini et toi ton "super calculator" (trop bien le nom ça augmente le ridicule) se borgne au nombres compris entre 000 et 999 trop bien !

2/ Comme la dis Xeolin ton code est vraiment mais foutu (décomposé toute la chaine pour la reformer ensuite c'est déjà pas mal j'avais encore jamais imaginé ça). Pourtant il y a des bonnes habitudes du genre le try/excpet pour gérer les problèmes en cas d'erreur de rentré mais il en faut un aussi lors du découpage de la chaine (là où tous le monde doit se planter)

3/ Je ne reviendrais pas sur le mode de fonctionnement catastrophique.

4/ La liste des erreurs de codage pourrait être longue mais je pense que tu as compris

Xeolin : "et on dit CALCUL et pas calcule... " => Soit indulgent nous non plus nous ne somme pas des exemples de l'ortho :p

Bon voilà. Normalement vu que c'est t'as première (deuxième ?) source je devrais être bien plus gentil et indulgent mais là c'est pour le bien de la programmation. Corrige ta source il y a urgence. Je te met 1 parce que je peux pas mettre moins ! J'attends ta prochaine source avec impatience en espérant sincèrement qu'elle sera bien mieux. Bon courage et bonne continuation.

P.S. : Xeolin je te dois un serveur je ne l'ai pas oublier !
xeolin Messages postés 336 Date d'inscription samedi 26 novembre 2005 Statut Membre Dernière intervention 8 novembre 2011 2
23 févr. 2010 à 21:11
en lisant bien ton code je trouve :

a = calcule [0]
b = calcule [1]
c = calcule [2]
signe = calcule [3]
d = calcule [4]
e = calcule [5]
f = calcule [6]
chiffre1 = a + b + c
chiffre2 = d + e + f

très original....
chiffre1=calcule [0:3]
signe = calcule [3]
chiffre2=calcule [4:6]

et on dit CALCUL et pas calcule...

ligne 26 et 29 inutiles...

Explique moi, tu as apprit où à coder? (et à écrire aussi)
parce que là n'importe quel imbécile qui aurait lu n'importe quel tutorial, aurait fait mille fois mieux que l'abomination que tu nous a écrite!

et le coup du

else :
pass

tu as fait vraiment très fort là !

et franchement... C'était vraiment indispensable de nous infliger ça ?
cs_Phoenix35 Messages postés 12 Date d'inscription lundi 7 mai 2007 Statut Membre Dernière intervention 27 mars 2009
23 févr. 2010 à 20:53
Vu ce que tu fais avec math

Remplacer "import math" par "from math import sqrt"
Et "math.sqrt(chiffre1)" par "sqrt(chiffre1)"
xeolin Messages postés 336 Date d'inscription samedi 26 novembre 2005 Statut Membre Dernière intervention 8 novembre 2011 2
21 févr. 2010 à 17:43
org 100h
mov ax,900h
mov dx,msg
int 21h
mov ax,4C00h
int 21h

msg :
db "helloworld$"

je viens de faire mon premier hello world.
Je suis super content. Es-ce que je vais le poster sur asmfr?
xeolin Messages postés 336 Date d'inscription samedi 26 novembre 2005 Statut Membre Dernière intervention 8 novembre 2011 2
21 févr. 2010 à 17:41
Moi aussi, je viens d'apprendre l'assembleur :
raygold Messages postés 11 Date d'inscription lundi 26 octobre 2009 Statut Membre Dernière intervention 30 janvier 2011
21 févr. 2010 à 17:31
Enfin j'ai mit quelque fonction supplémentaire. Mais c'est vrai que c'est plus pratique. Mais bon cela faisait qu'une semaine que j'apprenais le python donc j'étais assez fier .
xeolin Messages postés 336 Date d'inscription samedi 26 novembre 2005 Statut Membre Dernière intervention 8 novembre 2011 2
13 févr. 2010 à 22:40
wow... lance la commande:

help('eval')

je résume ton code:

print eval(raw_input())

voilà!
Rejoignez-nous