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

 Delphi Discussion :

Besoin de conseils pour un petit programme


Sujet :

Delphi

  1. #1
    Membre à l'essai
    Étudiant
    Inscrit en
    Janvier 2010
    Messages
    26
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2010
    Messages : 26
    Points : 12
    Points
    12
    Par défaut Besoin de conseils pour GUI d'un programme mathématique
    Dans le cadre de mon cours de programmation informatique, il m'a été demandé de réaliser un petit programme capable de calculer l'aire sous une courbe (c'est à dire d'intégrer la fonction représenter), en utilisant Pascal et Delphi 5!^^
    J'ai carte blanche pour réaliser cela, sachant que je dois utiliser la méthode d'approximation par rectangles...

    N'ayant pas une grande connaissance de cet EDI, j'ai plusieurs questions, et j'aimerais avoir votre opinion franche.

    Tout d'abord, concernant les fonctions: j'ai décidé de proposer à l'utilisateur de choisir entre certaines fonctions prédéfinies(linéaire, quadratique, cubique, exponentielle, trigo, etc.). J'ai placé cette liste de fonction dans une comboBox, et c'est là que je ne sais pas trop de quelle façon je dois procéder...
    Pour l'instant, j'utilise 4 Labels et 4 Edit. Selon la fonction choisie, l'affichage des labels change, et certains sont masqués (de même pour les Edit). Est-ce une bonne façon de procéder, ou vaut-il mieux travailler sur des Frames?

    J'aimerais pouvoir afficher le symbole "pi" dans un label. Malheureusement, il n'existe pas dans les polices classiques, mais je crois que je peux le trouver dans la police "symboles". Est-il possible, au sein d'un même label, d'utiliser plusieurs polices?

    Enfin, une petite question à part: je travaille sous 7, et pour une raison que j'ignore, les raccourcis de delphi ont changé (Ctrl+C remplacé par Shift+qqch, etc...).
    Quelqu'un saurait-il comment les éditer?

    Merci d'avance

    D

  2. #2
    Membre chevronné Avatar de philnext
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 552
    Points : 1 780
    Points
    1 780
    Par défaut
    Oula..ça fait bcp de question pour un post.
    Pour pi utilise soit un bitmap ou écris 'Pi' si c'est du texte obligatoirement.
    Ta question sur les labels n'est pas claire, tu veux faire quoi exactement ?

  3. #3
    Membre à l'essai
    Étudiant
    Inscrit en
    Janvier 2010
    Messages
    26
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2010
    Messages : 26
    Points : 12
    Points
    12
    Par défaut
    Mhh c'est vrai qu'à le relecture c'est pas évident^^.

    En gros, je propose à l'utilisateur le choix entre plusieurs types de fonctions.

    J'ai un arrangement comme celui qui suit sur ma Form:

    Edit1 Label1 Edit2 Label2 Edit3 Label3 Edit4 Label4

    Si l'utilisateur choisit une fonction de type linéaire (ax+b), alors je masque Edit3 et 4 ainsi que les labels, et label1 devient 'X +' (label 2 est inutile ici aussi, donc masqué). L'utilisateur rentre ensuite les valeurs des coefficients (a et b).
    Je voulais savoir si c'était une bonne méthode ou si elle était ridicule et compliquée (et si c'est le cas comment faire plus efficacement).

    Quand au labels pour pi, j'ai résolu mon problème en créant un label pour pi en utilisant la Font symbol et un autre label pour le restant de l'expression...

    J'espère que c'était plus clair

  4. #4
    Membre chevronné

    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 935
    Points : 1 765
    Points
    1 765
    Par défaut
    Salut

    Le plus propre serait certainement de creer tes composants dynamiquement, comme ca tu donne le nombre de composants a creer suivant la fonction a étudier.

    Tu peux aussi utiliser le composant TLabeledEdit qui contient déja un label.

    Bonne chance !

  5. #5
    Membre expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 345
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 345
    Points : 3 123
    Points
    3 123
    Par défaut
    Bonjour,

    si tu as peu de fonctions, tu peux aussi faire des onglets sur la totalité ou sur une partie de ta form (un onglet par fonction pour ce qui est à afficher)

    @+

    Charly

  6. #6
    Membre émérite
    Avatar de skywaukers
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2005
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 216
    Points : 2 303
    Points
    2 303
    Par défaut
    bonjour,

    pourquoi ne pas lui faire saisir la fonction dans 1 seule TEdit ? Bon après il faudra l'analyser pour en extraire les données utiles, mais justement ça peut être un excellent complément d'exercice

    @++
    Dany

  7. #7
    Membre à l'essai
    Étudiant
    Inscrit en
    Janvier 2010
    Messages
    26
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2010
    Messages : 26
    Points : 12
    Points
    12
    Par défaut
    pourquoi ne pas lui faire saisir la fonction dans 1 seule TEdit ? Bon après il faudra l'analyser pour en extraire les données utiles, mais justement ça peut être un excellent complément d'exercice
    Mhhh... ce serait un rêve mais vu la complexité dans laquelle ça me plongerait je doute d'y parvenir... Pour le moment, je me contente d'essayer de créer un programme fonctionnel, et dès que je suis sûr qu'il marche bien je me lancerai dans de tels bonus...

    Le plus propre serait certainement de creer tes composants dynamiquement, comme ca tu donne le nombre de composants a creer suivant la fonction a étudier.

    Tu peux aussi utiliser le composant TLabeledEdit qui contient déja un label.
    Si je crée mes composants dynamiquement, je retomberai tout de même sur le même problème, car je dois prévoir le cas ou l'utilisateur choisit une fonction puis change d'avis, auquel cas je devrai détruire les composants créés pour la première fonction...

    J'avais pas entendu parler du LabeledEdit (faut dire qu'avec 3 semaines d'expérience en Delphi...), alors je vais me renseigner tout de suite

    Bonjour,

    si tu as peu de fonctions, tu peux aussi faire des onglets sur la totalité ou sur une partie de ta form (un onglet par fonction pour ce qui est à afficher)
    Mhh je crois que je vais faire ça pour le moment...

    Merci pour les coups de pouce

  8. #8
    Membre à l'essai
    Étudiant
    Inscrit en
    Janvier 2010
    Messages
    26
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2010
    Messages : 26
    Points : 12
    Points
    12
    Par défaut
    Euh...je ne trouve pas le composant TLabeledEdit... est-il dispo dans Delphi 5?
    En tout cas il n'est pas listé dans l'aide de Delphi...

  9. #9
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Points : 4 935
    Points
    4 935
    Par défaut
    Salut,

    Le TLabeledEdit n'est disponible que depuis la version 2009 de Delphi

  10. #10
    Membre à l'essai
    Étudiant
    Inscrit en
    Janvier 2010
    Messages
    26
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2010
    Messages : 26
    Points : 12
    Points
    12
    Par défaut
    Awwww...

    Tant pis, je m'en passerai. Merci pour la clarification, au moins je ne chercherai plus en vain

  11. #11
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Points : 4 935
    Points
    4 935
    Par défaut
    Heu, je crois que je suis entrain de dire une bêtise
    Le TLabeledEdit existe bien, par contre, pour la version de Delphi, je pense que la tienne doit l'avoir
    C'est le TButtonedEdit qui est dispo depuis delphi 2009.
    Une fois de plus, désolé

  12. #12
    Membre émérite
    Avatar de skywaukers
    Homme Profil pro
    Directeur de projet
    Inscrit en
    Juin 2005
    Messages
    1 216
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 216
    Points : 2 303
    Points
    2 303
    Par défaut
    bonjour,

    dans Delphi5 je ne sais pas si il y est, mais dans Delphi 7 il est dans la palette "Suppléments", donc si il est présent dans Delphi 5 il faut que tu cherche par là.

    @+
    Dany

  13. #13
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Points : 3 263
    Points
    3 263
    Par défaut
    Bonjour,

    Suggestions :
    1 : pour le choix des types de fonctions (linéaire, quadratique, cubique, exponentielle, trigo, etc) : des TLabel visibles associés à autant de TPanel invisibles et au Click sur l'un des TLabel on fait apparaître le TPanel correspondant muni de TEdit pour la saisie des coefficients de la fonction ainsi que d'un bouton GO et d'un bouton Echapper-Ignorer. C'est beaucoup plus simple à gérer que de créer un shmilblik dynamique puisque d'un type de fonction au suivant on n'a pas besoin du même nombre de cofficients.

    2 : pour écrire le symbole Pi ainsi que du texte sur un seul TLabel se souvenir que les TLabels disposent de la propriété Canvas et sur n'importe quel Canvas on peut changer la fonte avant d'y écrire le caractère suivant ce qui permet de mélanger des symboles ... et ça marche sous D5.

    A+.
    N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  14. #14
    Membre à l'essai
    Étudiant
    Inscrit en
    Janvier 2010
    Messages
    26
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2010
    Messages : 26
    Points : 12
    Points
    12
    Par défaut
    1 : pour le choix des types de fonctions (linéaire, quadratique, cubique, exponentielle, trigo, etc) : des TLabel visibles associés à autant de TPanel invisibles et au Click sur l'un des TLabel on fait apparaître le TPanel correspondant muni de TEdit pour la saisie des coefficients de la fonction ainsi que d'un bouton GO et d'un bouton Echapper-Ignorer. C'est beaucoup plus simple à gérer que de créer un shmilblik dynamique puisque d'un type de fonction au suivant on n'a pas besoin du même nombre de cofficients.

    2 : pour écrire le symbole Pi ainsi que du texte sur un seul TLabel se souvenir que les TLabels disposent de la propriété Canvas et sur n'importe quel Canvas on peut changer la fonte avant d'y écrire le caractère suivant ce qui permet de mélanger des symboles ... et ça marche sous D5.

    Merci beaucoup!! Je m'y suis mis de ce pas et c'est vrai que les simplifications sont visibles...

    Par contre, aussi heureux que je sois d'apprendre que le TLabeledEdit existe bel et bien sous D5, je ne parviens toujours pas á le localiser....Il n'est pas dans le tab "additional" comme suggéré.

  15. #15
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Points : 3 263
    Points
    3 263
    Par défaut
    Re_bonour,

    Par contre, aussi heureux que je sois d'apprendre que le TLabeledEdit existe bel et bien sous D5
    Attention, pour ma part je n'ai pas dit que le TLabeledEdit existe sous D5.
    Par contre sous D5 (et autres) les TLabel standards disposent de la propriété Canvas sur laquelle on peut écrire ce que le veut comme sur le Canvas d'un TImage.
    (J'utilise D5 et le TLabeledEdit n'y existe pas).

    sachant que je dois utiliser la méthode d'approximation par rectangles...
    ... c'est vraiment la méthode la moins précise :
    ... celle des Trapèzes est meilleure.
    ... celle de Simpson encore meilleure
    et dans tous les cas l'imprécision est d'autant plus grande que la fonction est fortement croissante dans l'intervalle considéré.

    Tiens voici du code si ça peut te donner des idées :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    unit uFAires;
     
    interface
     
    uses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      Buttons, StdCtrls, ExtCtrls;
     
    type
      TForm1 = class(TForm)
        Memo1: TMemo;
        SpeedButton1: TSpeedButton;
        procedure SpeedButton1Click(Sender: TObject);
      private
        { Déclarations privées }
      public
        { Déclarations publiques }
      end;
     
    var
      Form1: TForm1;
     
    implementation
     
    {$R *.DFM}
     
    type tFonc = function (X : Extended) : Extended;
     
    var  FF: tFonc;
     
    // 2 Routines définissant des fonctions du type FF = f(x)
    function F1(x : Extended) : Extended;
    begin    Result:=3*x*x; end;
    // La primitive de F1 est x-au-cube
    // Résultats pour x de 0 à 5 sur 10 paires de sous-intervalles :
    //Aire /Méth Rectangles : 144.375
    //Aire /Méth Trapèzes   : 125.625
    //Aire /Méth Simpson    : 125
    //Aire exacte 5 au cube : 125
     
    function F2(x : Extended) : Extended;
    begin    Result:=Exp(x); end;
    // La primitive de F2 est Exp(x)
    // Résultats pour x de 0 à 5 sur 10 paires de sous-intervalles :
    //Aire /Méth Rectangles : 187.324835773627
    //Aire /Méth Trapèzes   : 150.471545997983
    //Aire /Méth Simpson    : 147.416334525476
    //Aire exacte Exp(5)    : 148.413159
     
    function F3(x : Extended) : Extended;
    begin    Result:=sin(x); end;
    // La primitive de F3 est cos(x)
    // Résultats pour x de 0 à 5 sur 10 intervalles :
    //Aire /Méth Rectangles : 0.501388098098371
    //Aire /Méth Trapèzes   : 0.459314548857976
    //Aire /Méth Simpson    : 0.459697710098338
     
     
    // Pour les 3 Routines de calcul d'aires ou d'intégrales ci-après :
    // En entrée : - FF : la fonction
    //             - typCalcul : A = calcul d'aire, I = calcul d'intégrale
    //             - deX,aX : bornes, inférieure et supérieure, de variation de x
    //             - ni : nombre d'intervalles intermédiaires
    function MRectangles(FF: tFonc; typCalcul : char; deX,aX : Extended; ni : integer) : Extended;
    var      x,y,dx,St,Si : Extended; i : integer;
    begin    dx := abs(aX - deX)/ni;
             St:=0; x:=deX;
             for i:=1 to ni do
             begin x:=x+dx;
                   if typCalcul='A' then y:=abs(FF(x)) else y:=FF(x);
                   Si:= y*dx;
                   St:=St+Si;
             end;
             Result:=St;
    end;
     
    function MTrapezes(FF: tFonc; typCalcul : char; deX,aX : Extended; ni : integer) : Extended;
    var      xo,x1,yo,y1,dx,St,Si : Extended; i : integer;
    begin    dx := abs(aX - deX)/ni;
             St:=0; xo:=deX; x1:=xo;
             for i:=1 to ni do
             begin x1:=x1+dx;
                   if typCalcul='A'
                   then begin yo:=abs(FF(xo)); y1:=abs(FF(x1)); end
                   else begin yo:=FF(xo);      y1:=FF(x1);      end;
                   Si:= 0.5*(yo+y1)*dx;
                   St:=St+Si;
                   xo:=xo+dx;
             end;
             Result:=St;
    end;
     
    function MSimpson(FF: tFonc; typCalcul : char; deX,aX : Extended; ni : integer) : Extended;
    var      x,h,k,s : Extended; i : integer;
    begin    h := abs(aX - deX)/(2*ni);
             k:=h/3;
             x:=deX;
             if typCalcul='A' then s:=abs(k*(FF(deX)+FF(aX))) else s:=k*(FF(deX)+FF(aX));
             for i:=1 to ni-1 do
             begin x:=x+h;
                   if typCalcul='A' then s:=s+abs(k*4*FF(x)) else s:=s+k*4*FF(x);
                   x:=x+h;
                   if typCalcul='A' then s:=s+abs(k*2*FF(x)) else s:=s+k*2*FF(x);
             end;
             x:=x+h;
             if typCalcul='A' then s:=s+abs(k*4*FF(x)) else s:=s+k*4*FF(x);
             Result:=s;
    end;
     
    procedure TForm1.SpeedButton1Click(Sender: TObject);
    begin     with Memo1.lines do
              begin Add('Aire /Méth Rectangles : '+FloatToStr(MRectangles(F1,'A',0,5,5)));
                    Add('Aire /Méth Trapèzes   : '+FloatToStr(MTrapezes(F1,'A',0,5,5)));
                    Add('Aire /Méth Simpson    : '+FloatToStr(MSimpson(F1,'A',0,5,5)));
              end;
     
    end;
     
    end.
    A+.
    N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  16. #16
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Points : 3 263
    Points
    3 263
    Par défaut
    Re-bonjour,

    Exemple de code pour écrire, sur le Canvas d'un TLabel standard, le symbole Pi en rouge, suivi d'un bout de texte en Arial Bleu :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    procedure TForm1.PiClick(Sender: TObject);
    var       Text : string;
    begin     Text:=' texte suivant le symbole Pi';
              with label1 do
              begin Autosize:=False; caption:='';
                    // Dimensionnement du Label :
                    Canvas.Font.Size:=10;
                    width:=Canvas.TextWidth(Text+'EE'); //< EE = place pour le symbole Pi et un espace
                    height:=Canvas.TextHeight('E'); UpDate;
                    with Canvas do begin
                         // Ecriture du symbole Pi en Rouge :
                         Font.Name:='Symbol'; Font.Color:=clRed; TextOut(0,0,Chr(80));
                         // Ecriture de la suite du texte en Arial Bleu :
                         Font.Name:='Arial'; Font.Color:=clBlue;
                         TextOut(10,0,Text);
                    end;
              end;
    end;
    A+.
    N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  17. #17
    Membre à l'essai
    Étudiant
    Inscrit en
    Janvier 2010
    Messages
    26
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2010
    Messages : 26
    Points : 12
    Points
    12
    Par défaut
    Waow, merci beaucoup pour ces infos détaillés!

    J'ai réussi à afficher pi grâce à cette méthode.

    Au niveau de la méthode d'approximation, je n'ai pas le choix: la méthode est imposée dans les spécifications. Il est vrai qu'elle est loin d'être la plus efficace. Toutefois, pour l'améliorer, j'effectue une approximation par petits rectangles, et une approximation par grands rectangles: l'approximation finale est alors la moyenne des deux, ce qui donne des résultats relativement honorables...

  18. #18
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Points : 3 263
    Points
    3 263
    Par défaut
    Bonjour,

    En fait le code d'hier avait pour seul objectif de se faire une idée sur l'imprécison relative des trois méthodes et pour me simplifier la vie les fonctions prédéterminées y sont déclarées avec des coefficients fixes.

    Il suffirait pour commencer d'y remplacer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function F1(x : Extended) : Extended;
    begin    Result:=3*x*x; end;
     
    function F2(x : Extended) : Extended;
    begin    Result:=Exp(x); end;
    par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    var     a,b,c,d,e,f,g : Extended; //<-- Var globales utilisables par les divers types de fonctions. 
     
    function F_Lineaire1(x : Extended) : Extended;
    begin    Result:= a*x + b; end;
     
    function F_Parabolique(x : Extended) : Extended;
    begin    Result:=a*x*x + b*x + c; end;
     
    ... etc, pour les autres fonctions
    Ensuite, d'y supprimer éventuellement la ou les méthodes de calcul qui ne sont pas imposées dans les spécifications.

    Et d'y ajouter la petite quincaillerie devant permettre à l'utilisateur de faire ses choix et de saisir les coefficients appropriés à chaque type de fonction et le tour serait joué.

    A+.
    N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

  19. #19
    Membre à l'essai
    Étudiant
    Inscrit en
    Janvier 2010
    Messages
    26
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2010
    Messages : 26
    Points : 12
    Points
    12
    Par défaut
    La partie sur la calculation est déjà faite, mon problème principal était vraiment au niveau de l'entrée des coefficients, mais c'est en bonne voie maintenant gràce à ces bons conseils!!

    Juste pour savoir, est il possible de dupliquer un composant? Je voudrais en fait dupliquer un TButton sur tous les Panels, mais ne gérer qu'une seule procédure.
    Le bouton effectuerait bien entendu la meme operation sur tous les Panels, à quelques détails près...

    Bien entendu, je pourrais le placer sur la Form directement, mais je voudrais éviter cela...

  20. #20
    Modérateur

    Homme Profil pro
    Ingénieur retraité
    Inscrit en
    Octobre 2005
    Messages
    2 396
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2 396
    Points : 3 263
    Points
    3 263
    Par défaut
    Re,

    est il possible de dupliquer un composant? ... dupliquer un TButton sur tous les Panels
    Il n'y a que deux possibilités :
    - la duplication manuelle lors de la conception,
    - et la création dynamique.

    Par contre si le nombre de Panels est peu élevé c'est beaucoup plus simple de placer manuellement un TButton directement sur chaque Panel.

    Mais rien n'interdit de réaliser une duplication dynamique.

    A propos de :
    j'effectue une approximation par petits rectangles, et une approximation par grands rectangles: l'approximation finale est alors la moyenne des deux,
    ... autrement dit le résultat final est la moyenne d'une approximation grossière et d'une approximation plus fine
    ... et ce résultat est donc plus mauvais que l'approximation fine.
    ... Pour une meilleure précision on pourrait se dispenser de l'approximation par grands rectangles : Non ?

    A+. :
    N'oubliez pas de consulter les FAQ Delphi et les cours et tutoriels Delphi

Discussions similaires

  1. Conseils pour un petit programme objet
    Par lilo2000 dans le forum Architecture
    Réponses: 1
    Dernier message: 13/10/2010, 15h04
  2. Besoin d'idées pour un petit programme !
    Par alexg33 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 12/11/2009, 22h52
  3. Besoin conseil pour un petit jeu
    Par Cosmosis dans le forum Langage
    Réponses: 3
    Dernier message: 22/12/2006, 14h44
  4. Besoin d'aide pour un petit programme
    Par Nico35 dans le forum C
    Réponses: 13
    Dernier message: 25/05/2006, 22h21
  5. Réponses: 2
    Dernier message: 06/05/2006, 15h09

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