Une unité sans importance !

Contenu du snippet

Voilà, à mon avis, il n'y a pas assez de code Delphi ces derniers jours !! Et comme je suis occupé dans un projet qui exploite toutes mes ressources, alors je dévoile une autre Unité de ce-dit projet. Il sera sans importance aucune pour les amateur de Graphisme et Cie, mais comme je vous ai dit il manque teriblement de source Delphi ces jours-ci. A vos claviers, car il y a les amoureux de VB qui nous dépassent !

Si quelqu'un possède des sources sur les RDP Stochastiques, je serais heureux si il me les envoyait, merci à l'avance.

Source / Exemple :


////////////////////////////////////////////////////////////////////////////////////////////////
// Cette unité utilise les deux autres unités que j'ai déjà posées sur le site            //
// Dans celle-ci, j'ai essaiyé d'introduire une utilisation simple de tableux              //
// dynamiques: Dimension, remplissage.                                                            //
// Une fonction est prévue pour les nombres premiers.                                        //
// Cette Unité ainsi que UFMath, UInverses, font partie d'un projet global en cours //
// de réalisation qui porte sur les réseaux de petri stochastiques.                         //
////////////////////////////////////////////////////////////////////////////////////////////////

unit UDeclarations;

interface
Uses UFMath, UInverses;
Type
         TMatrice = Array of Array of Real;
     TObservation = Array of FLoat;
         TPremier = Array of Integer;
Var
            Taille : Integer;
    Echantillon : TObservation; //Observation en MD;
               MA : TMatrice;        //Contient les Ri;
        Premier : TPremier;       // et les nombres premiers ??

      Longueur : INteger;
        Hauteur : INteger;
      Somme   : INteger;

Function EstPremier(Nombre:INteger):Boolean;
Procedure DeterminateMADim(MATaille:INteger);
Procedure Recalculate(MATaille:integer);
Procedure InitMA;

implementation

Function EstPremier(Nombre:INteger):Boolean;
var I:INteger;
begin
  EstPremier:=True;
  If (Nombre = 2) or (Nombre = 1) then
  begin
    EstPremier := False;
    Exit;
  end;
  If (Nombre = 0) then Exit;
  For i:=2 to Nombre-1 do
    If (Nombre Mod i) = 0 then
    begin
      EstPremier:=False;
      BREAK;
    end;
end;

Procedure DeterminateMADim(MATaille:INteger);//Determine les dimensions de MA;
Var i:integer;
begin
   Longueur := 0;
     Hauteur := 0;
               i := 7;//On commence par le premier 7;
   Somme   := 0;
  Repeat
    If EstPremier(i) then
    begin
       Longueur := i;
         Hauteur := Hauteur+1;
         Somme := Somme + i;
    end;
    Inc(i);
  Until Somme >= MATaille;

  SetLength(Premier, Hauteur);

  Setlength(MA,Hauteur+1);      // Nombre de Lignes;
  I:= Low(MA);
  Repeat
    Setlength(MA[I], Longueur); // Nombre de colonnes;
    Inc(I);
  Until I=High(MA);
end;

Procedure Recalculate(MATaille:integer);
var i,k:Integer;
begin
  i := 0;
  K := 7;
  Premier[i]:=K;
  Inc(K);
  repeat
    If EstPremier(K) then
    begin
      Inc(i);                   // Prochaine valeur;
      Premier[i]:= K;      // Chargement des nombres premiers;
    end;                        // End If;
    Inc(K);                    // Ne pas recommencer du début;
  Until i=High(Premier); // Tous les premiers sont calculés;
end;

Procedure InitMA;        //Remplissage Aléatoire;
Var i:integer;
    j:Integer;
begin
  RANDOMIZE;
  For i:= Low(MA) to High(MA) do
  for j:= Low(MA[I]) to High(MA[I]) do
     MA[I,J]:=Random;
end;
begin
  Taille := 0; // La taille de l'échantillon à générer initialisée à 0;
end.

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.