IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Contribuez Pascal Discussion :

[Breaking-news] Darrysite releases his powersfull calculator


Sujet :

Contribuez Pascal

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Par défaut [tp7] calculatrice scientifique en mode graphique
    Salut, Je suis encore là pour vous presenter mon nouveau release toujours en turbo pascal (Meme si ça derange certain, turbo pascal est trop cool je vous l' assure).
    Ce programme est une calculatrice scientique basique (avec les fonctions mathematiques elementaires sin,cos,expo,...).
    Le programme fonctionne en mode graphique avec une imitation de programmation evennementielle (boutons, souris, ...).

    j' attends vos commentaires et vos critiques. Merci !

    Je vous dois bien cela, ce site à tellement fait pour moi.

    Clicquer ici pour telecharger le zip :
    http://darkpi.100webspace.net/index.php?page=util

  2. #2
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 967
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 967
    Par défaut
    Cie,

    Téléchargé, je pense pouvoir jeter un coup d'oeil demain.

  3. #3
    Membre Expert
    Avatar de krachik
    Inscrit en
    Décembre 2004
    Messages
    1 964
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 1 964
    Par défaut
    Bonjour
    Telechargé aussi mais la je suis sous linux et j'ai pas de compilateur Pascal installé,mais je crois que ça serait aussi cool de mettre l'executable du programme au cas ou les gens n'auront pas sous la main directement un compilateur .
    Je sens que ça doit etre cool ton truc
    @+

  4. #4
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 967
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 967
    Par défaut
    Wie,

    Testé.

    Ça marche bien, mais je regrette qu'on ne puisse pas entrer les données/fonctions au clavier (en tout cas, c'est ainsi chez moi).

    Bon travail, mais je ne serais pas droggo s'il n'y avait quelques critiques, n'est-ce pas ?

    Indentation, commentaires, etc... Inutile d'insister, je suppose.

    A part ça,il y a pas mal de sections du code que je n'aime pas trop, par exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    i:=25;
     
    new(pmemory,init(debutx,debuty-dy,'M'));
    tab[i]:=pmemory;
    inc(i);
     
    new(pmemory,init(debutx+dx,debuty-dy,'RM'));
    tab[i]:=pmemory;
    inc(i);
     
    new(pmemory,init(debutx+2*dx,debuty-dy,'MCL'));
    tab[i]:=pmemory;
    inc(i);
    ...
    peut facilement se faire dans une boucle, en créant un tableau ad hoc pour les chaines

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function fonct(f:str255;valeur:real):real;
     var v:real;
     begin
     writeln(f);
     if  f='abs'         then v:=abs(valeur)
     else if  f='sin'    then v:=sin(valeur)
     else if  f='cos'    then v:=cos(valeur)
    ...
    au lieu de passer une chaine qu'il reste à tester, déclarer des constantes pour chaque fonction à mettre en jeu rendrait le code plus évolutif.

    Et ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    type str255=string[100];
    oublie une des bonnes habitudes à toujours utiliser : les noms des types/fonctions... doivent être représentatifs.

    Il y en a d'autres, mais je n'ai pas trop le temps de lire le code de plus près.

  5. #5
    Rédacteur
    Avatar de darrylsite
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 299
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 299
    Par défaut
    Merci pour tes commentaires.

    Citation Envoyé par droggo Voir le message
    A part ça,il y a pas mal de sections du code que je n'aime pas trop, par exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function fonct(f:str255;valeur:real):real;
     var v:real;
     begin
     writeln(f);
     if  f='abs'         then v:=abs(valeur)
     else if  f='sin'    then v:=sin(valeur)
     else if  f='cos'    then v:=cos(valeur)
    ...
    au lieu de passer une chaine qu'il reste à tester, déclarer des constantes pour chaque fonction à mettre en jeu rendrait le code plus évolutif.

    Et ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    type str255=string[100];
    oublie une des bonnes habitudes à toujours utiliser : les noms des types/fonctions... doivent être représentatifs.

    Il y en a d'autres, mais je n'ai pas trop le temps de lire le code de plus près.
    Pour la fonction fonct, je suis obligé de faire comme ça puis la chaine (representant) la fonction sera extaite d' une autre chaine automatiquement.
    Et le code sera bien evolutif puisque si j' ajoute une nouvelle fonction, je n' aurais qu' à modifier la partie ci-dessous et nulle part ailleurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    function fonct(f:str255;valeur:real):real;
     var v:real;
     begin
     writeln(f);
     if  f='abs'         then v:=abs(valeur)
     else if  f='sin'    then v:=sin(valeur)
     else if  f='cos'    then v:=cos(valeur)
     
              {modification ici}
     else if f=nouvelle_fonction then ...
    ...
    T' as raison le nom des types doit etre representatif. Mais c' est j' ai à modifier la valeur lors des tests que je faisais pour deceler des gugs eventuels vu que je pouffais de la memoire unitilement (j' ai bien sur eu la paresse de modifier le nom dans tous le programme).

    C' est une bonne idée que tu me donne concernant la saisie au clavier des données. Je vais l' inclure dans la deuxieme version je vais finir d' ici là (elle aura un grapheur et un tableur integrés pour tracer les courbes). Je voulais le faire en java mais comme c' est pas à but lucratif, je le fais en turbo pascal.

    S' il y' a des propositions, des commentaires ou des critiques, je suis ouvert.

  6. #6
    Expert confirmé

    Inscrit en
    Août 2006
    Messages
    3 967
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 3 967
    Par défaut
    Fie,
    Citation Envoyé par darrylsite Voir le message
    Pour la fonction fonct, je suis obligé de faire comme ça puis la chaine (representant) la fonction sera extaite d' une autre chaine automatiquement.
    C'est à la fonction qui va analyser l'entrée de faire la relation chaine<=>constante numérique pour définir la fonction à utiliser, pas besoin de garder ça sous forme d'une chaine de caractères.

Discussions similaires

  1. [Développement] breaking news application IPhone
    Par laziolb dans le forum Objective-C
    Réponses: 0
    Dernier message: 29/04/2011, 11h33
  2. Réponses: 0
    Dernier message: 10/02/2010, 00h15
  3. Réponses: 1
    Dernier message: 03/06/2009, 00h25
  4. Réponses: 0
    Dernier message: 07/02/2009, 15h05
  5. [TP7] Calculer sin, cos, tan, sqrt via le FPU
    Par zdra dans le forum Assembleur
    Réponses: 8
    Dernier message: 25/11/2002, 04h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo