MacroCalc

mpergandmpergand Membre
août 2012 modifié dans Vos applications #1
Ouais encore une calculatrice ! pas très original ! désolé image/smile.png' class='bbc_emoticon' alt=':)' />



En fait, je suis parti d'un parser d'expressions et comme ça marchait pas mal, j'ai voulu aller plus loin en y ajoutant des fonctions mathématiques, la gestion de variables et enfin un mini langage.



Pour voir à  quoi ça ressemble c'est ICI



Pour télécharger l'appli c'est LA ( v1.0 beta 1)

Réponses

  • Moi j'aime bien les calculatrices et celle-ci me semble pas mal du tout.

    Je la testerai en utilisation réelle à  mon retour de vacances.

    Mais déjà , je n'ai pas réussi à  coller une opération, l'affichage du menu m'a paru erratique et je n'ai pas compris à  quoi servent les flèches à  droite de "float" et "integer".

    Quelques exemples supplémentaires de programmes seraient les bienvenues.
  • mpergandmpergand Membre
    août 2012 modifié #3
    Salut Eric,



    Marci pour tes commentaires.


    je n'ai pas réussi à  coller une opération


    Oui, pour l'instant le paste est désactivé, ça fout le bazar !

    Le textView qui me sert à  simuler l'écran d'une calculatrice est bridé de partout et évidemment le comportement standard ne convient pas.


    l'affichage du menu m'a paru erratique


    Si tu veux retrouver un affichage "standard", dans les préférences, coche l'option "Toujours afficher le menu de la calculatrice"

    En fait, c'est le comportement d'un panel quand dans IB tu coches "Non activating panel".

    (je vais mettre cette option par défaut, ça sera moins déroutant pour l'utilisateur)



    Le but c'est que la fenêtre de la calculatrice se comporte comme une fenêtre auxiliaire, qu'elle semble faire partie de l'application active.


    je n'ai pas compris à  quoi servent les flèches à  droite de "float" et "integer".


    Alors à  rien, c'est pour faire avancer le schmilimili image/laugh.png' class='bbc_emoticon' alt=':lol:' />


    Quelques exemples supplémentaires de programmes seraient les bienvenues.


    Vu la pauvreté du langage, on ne peut guére faire plus que dans l'exemple du calcul de pitch ...



    Dans l'immédiat, je me concentre sur le parseur.

    Une ligne de programme consiste en: une instruction, puis une chaà®ne de caractères et/ou une expression.

    On peut donc mettre une expression partout où c'est possible.

    par ex: input a

    on peut aussi écrire: input A=100

    ce qui permet d'affecter une valeur par défaut à  la variable A.

    Ainsi, si tu tapes seulement <ENTER> à  la saisie, la valeur de A sera 100.



    Je viens d'ajouter la gestion des chaà®nes de caractères au parseur, avec conversion float <--> chaà®ne à  la volée !

    Ce qui permet de faire des choses du genre:



    100+ "100h" donne 356.

    "100"+100h donne "100256"



    Je viens de m'apercevoir d'un plantage avec l'opérateur modulo:

    100%0 boum !

    et oui, division par zéro.



    To be continued !
  • Bon, je l'ai utilisé un peu mais juste de façon basique sans essayer la partie programmation.

    J'ai un bug bizarre avec mon pavé numérique USB branché sur mon MB Pro : si je tape un point (ou plusieurs) alors que j'ai un résultat affiché, le point (ou les) ne se met pas sur une nouvelle ligne à  gauche mais à  la suite du résultat précédent à  droite et n'est pas pris en compte dans le calcul. Pourtant le bouton "." de l'appli. clignote bien quand je tape le point sur le pavé numérique. Si je commence à  taper des chiffres, que je les efface et que je tape un point avec la pavé numérique, pas de problème mais là  le curseur de texte est affiché avant de taper le point.

    Avec le point du clavier du Mac pas de problème.

    J'ai apprécié l'ajout du @ si on commence à  taper un opérateur.

    Par contre il serait utile d'avoir une touche @ ou ans sur l'appli.

    Le rappel des opérations précédentes est bien.

    Parfois le curseur de la souris tressaute ou clignote très rapidement lorsqu'il survole le "ruban".



    Voilà  mes premiers commentaires.
  • mpergandmpergand Membre
    septembre 2012 modifié #5
    Bonjour Eric P. et merci pour tes remarques.




    J'ai un bug bizarre avec mon pavé numérique USB branché sur mon MB Pro : si je tape un point (ou plusieurs) alors que j'ai un résultat affiché, le point (ou les) ne se met pas sur une nouvelle ligne à  gauche mais à  la suite du résultat précédent à  droite et n'est pas pris en compte dans le calcul.




    Bien vu ! C'est effectivement un bug.




    J'ai apprécié l'ajout du @ si on commence à  taper un opérateur.

    Par contre il serait utile d'avoir une touche @ ou ans sur l'appli.




    Pourquoi pas, mais du coup je ne sais pas trop ou le mettre, y a plus de place ...




    Parfois le curseur de la souris tressaute ou clignote très rapidement lorsqu'il survole le "ruban".




    C'est le NSTextView en dessous qui fait du zèle, il faudra peut-être que je passe par une classe spéciale pour gérer le ruban.



    Sinon cette appli a bien évoluée:

    On peut choisir le point ou la virgule comme séparateur décimal

    Pour la trigo on peut choisir le mode radian ou degré

    J'ai ajouté des fonctions de traitement de chaà®nes de caractères

    (on peut même afficher la date et l'heure image/smile.png' class='bbc_emoticon' alt=':)' /> )



    Et surtout elle possède un langage de programmation avec des vrais morceaux de BASIC dedans image/laugh.png' class='bbc_emoticon' alt=':lol:' />


    <br />
    # Valeurs de sortie des boucles<br />
    <br />
    print &quot;WHILE&quot;<br />
    i=0<br />
    while i&lt;5,i++<br />
    	print i<br />
    end<br />
    print &quot;-&gt; i=&quot;,i<br />
    print<br />
    <br />
    print &quot;FOR&quot;<br />
    for i=0,i&lt;5,i++<br />
    	print i<br />
    next<br />
    print &quot;-&gt; i=&quot;,i<br />
    print<br />
    <br />
    print &quot;UNTIL&quot;<br />
    i=4<br />
    do<br />
    	print i<br />
    until i eq 0,i--<br />
    print &quot;-&gt; i=&quot;,i<br />
    






    Je suis en train d'écrire la doc, j'en suis à  plus de 30 pages et c'est pas fini !



    Si tu es intéressé, je peux te donner un lien par MP pour la télécharger.
Connectez-vous ou Inscrivez-vous pour répondre.