Page 1 sur 1

Trouver le min ou le max entre 2,3,4 ou 5 valeurs

Publié : jeu. 25/août/2005 13:05
par Guimauve
Une petite librairie prête à être compilée avec TailBite. Ça na rien de bien particulier. Personne ne pourra gagner de prix nobel avec ce code :D

A+
Guimauve

Code : Tout sélectionner

; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
; Nom du projet : Min et max de 2,3,4 ou 5 valeurs
; Fichier : Librairie
; Version 1.0.1
; Programmation = OK
; Programmé par : Guimauve
; Date : 12 avril 2005
; Mise à jour : 21 août 2005
; Codé avec PureBasic V3.94
; <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

ProcedureDLL.b MinByte(Nombre01.b, Nombre02.b)
  
  If Nombre01 > Nombre02
    
    PlusPetit.b = Nombre02
    
  ElseIf Nombre01 < Nombre02
    
    PlusPetit = Nombre01
    
  Else 
    
    PlusPetit = Nombre01
    
  EndIf
  
  ProcedureReturn PlusPetit
  
EndProcedure

ProcedureDLL.b MinByte2(Nombre01.b, Nombre02.b, Nombre03.b)

  ProcedureReturn MinByte(Nombre01, MinByte(Nombre02, Nombre03))
  
EndProcedure

ProcedureDLL.b MinByte3(Nombre01.b, Nombre02.b, Nombre03.b, Nombre04.b)
  
  ProcedureReturn MinByte(MinByte(Nombre01, Nombre02), MinByte(Nombre03, Nombre04))
  
EndProcedure

ProcedureDLL.b MinByte4(Nombre01.b, Nombre02.b, Nombre03.b, Nombre04.b, Nombre05.b)
  
  ProcedureReturn MinByte(Nombre01,MinByte(MinByte(Nombre02, Nombre03), MinByte(Nombre04, Nombre05)))
  
EndProcedure


ProcedureDLL.w MinWord(Nombre01.w, Nombre02.w)
  
  If Nombre01 > Nombre02
    
    PlusPetit.w = Nombre02
    
  ElseIf Nombre01 < Nombre02
    
    PlusPetit = Nombre01
    
  Else 
    
    PlusPetit = Nombre01
    
  EndIf
  
  ProcedureReturn PlusPetit
  
EndProcedure

ProcedureDLL.w MinWord2(Nombre01.w, Nombre02.w, Nombre03.w)
  
  ProcedureReturn MinWord(Nombre01, MinWord(Nombre02, Nombre03))
  
EndProcedure

ProcedureDLL.w MinWord3(Nombre01.w, Nombre02.w, Nombre03.w, Nombre04.w)
  
  ProcedureReturn MinWord(MinWord(Nombre01, Nombre02), MinWord(Nombre03, Nombre04))
  
EndProcedure

ProcedureDLL.w MinWord4(Nombre01.w, Nombre02.w, Nombre03.w, Nombre04.w, Nombre05.w)
  
  ProcedureReturn MinWord(Nombre01,MinWord(MinWord(Nombre02, Nombre03), MinWord(Nombre04, Nombre05)))
  
EndProcedure


ProcedureDLL.l MinLong(Nombre01.l, Nombre02.l)
  
  If Nombre01 > Nombre02
    
    PlusPetit.l = Nombre02
    
  ElseIf Nombre01 < Nombre02
    
    PlusPetit = Nombre01
    
  Else 
    
    PlusPetit = Nombre01
    
  EndIf
  
  ProcedureReturn PlusPetit
  
EndProcedure

ProcedureDLL.l MinLong2(Nombre01.l, Nombre02.l, Nombre03.l)
  
  ProcedureReturn MinLong(Nombre01, MinLong(Nombre02, Nombre03))
  
EndProcedure

ProcedureDLL.l MinLong3(Nombre01.l, Nombre02.l, Nombre03.l, Nombre04.l)
  
  ProcedureReturn MinLong(MinLong(Nombre01, Nombre02), MinLong(Nombre03, Nombre04))
  
EndProcedure

ProcedureDLL.l MinLong4(Nombre01.l, Nombre02.l, Nombre03.l, Nombre04.l, Nombre05.l)
  
  ProcedureReturn MinLong(Nombre01,MinLong(MinLong(Nombre02, Nombre03), MinLong(Nombre04, Nombre05)))
  
EndProcedure


ProcedureDLL.f MinFloat(Nombre01.f, Nombre02.f)
  
  If Nombre01 > Nombre02
    
    PlusPetit.f = Nombre02
    
  ElseIf Nombre01 < Nombre02
    
    PlusPetit = Nombre01
    
  Else 
    
    PlusPetit = Nombre01
    
  EndIf
  
  ProcedureReturn PlusPetit
  
EndProcedure

ProcedureDLL.f MinFloat2(Nombre01.f, Nombre02.f, Nombre03.f)
  
  ProcedureReturn MinFloat(Nombre01, MinFloat(Nombre02, Nombre03))
  
EndProcedure

ProcedureDLL.f MinFloat3(Nombre01.f, Nombre02.f, Nombre03.f, Nombre04.f)
  
  ProcedureReturn MinFloat(MinFloat(Nombre01, Nombre02), MinFloat(Nombre03, Nombre04))
  
EndProcedure

ProcedureDLL.f MinFloat4(Nombre01.f, Nombre02.f, Nombre03.f, Nombre04.f, Nombre05.f)
  
  ProcedureReturn MinFloat(Nombre01,MinFloat(MinFloat(Nombre02, Nombre03), MinFloat(Nombre04, Nombre05)))
  
EndProcedure


ProcedureDLL.b MaxByte(Nombre01.b, Nombre02.b)
  
  If Nombre01 < Nombre02
    
    PlusGrand.b = Nombre02
    
  ElseIf Nombre01 > Nombre02
    
    PlusGrand = Nombre01
    
  Else 
    
    PlusGrand = Nombre01
    
  EndIf
  
  ProcedureReturn PlusGrand
  
EndProcedure

ProcedureDLL.b MaxByte2(Nombre01.b, Nombre02.b, Nombre03.b)
  
  ProcedureReturn MaxByte(Nombre01, MaxByte(Nombre02, Nombre03))
  
EndProcedure

ProcedureDLL.b MaxByte3(Nombre01.b, Nombre02.b, Nombre03.b, Nombre04.b)
  
  ProcedureReturn MaxByte(MaxByte(Nombre01, Nombre02), MaxByte(Nombre03, Nombre04))
  
EndProcedure

ProcedureDLL.b MaxByte4(Nombre01.b, Nombre02.b, Nombre03.b, Nombre04.b, Nombre05.b)
  
  ProcedureReturn MaxByte(Nombre01,MaxByte(MaxByte(Nombre02, Nombre03), MaxByte(Nombre04, Nombre05)))
  
EndProcedure


ProcedureDLL.w MaxWord(Nombre01.w, Nombre02.w)
  
  If Nombre01 < Nombre02
    
    PlusGrand.w = Nombre02
    
  ElseIf Nombre01 > Nombre02
    
    PlusGrand = Nombre01
    
  Else 
    
    PlusGrand = Nombre01
    
  EndIf
  
  ProcedureReturn PlusGrand
  
EndProcedure

ProcedureDLL.w MaxWord2(Nombre01.w, Nombre02.w, Nombre03.w)
  
  ProcedureReturn MaxWord(Nombre01, MaxWord(Nombre02, Nombre03))
  
EndProcedure

ProcedureDLL.w MaxWord3(Nombre01.w, Nombre02.w, Nombre03.w, Nombre04.w)
  
  ProcedureReturn MaxWord(MaxWord(Nombre01, Nombre02), MaxWord(Nombre03, Nombre04))
  
EndProcedure

ProcedureDLL.w MaxWord4(Nombre01.w, Nombre02.w, Nombre03.w, Nombre04.w, Nombre05.w)
  
  ProcedureReturn MaxWord(Nombre01,MaxWord(MaxWord(Nombre02, Nombre03), MaxWord(Nombre04, Nombre05)))
  
EndProcedure


ProcedureDLL.l MaxLong(Nombre01.l, Nombre02.l)
  
  If Nombre01 < Nombre02
    
    PlusGrand.l = Nombre02
    
  ElseIf Nombre01 > Nombre02
    
    PlusGrand = Nombre01
    
  Else 
    
    PlusGrand = Nombre01
    
  EndIf
  
  ProcedureReturn PlusGrand
  
EndProcedure

ProcedureDLL.l MaxLong2(Nombre01.l, Nombre02.l, Nombre03.l)
  
  ProcedureReturn MaxLong(Nombre01, MaxLong(Nombre02, Nombre03))
  
EndProcedure

ProcedureDLL.l MaxLong3(Nombre01.l, Nombre02.l, Nombre03.l, Nombre04.l)
  
  ProcedureReturn MaxLong(MaxLong(Nombre01, Nombre02), MaxLong(Nombre03, Nombre04))
  
EndProcedure

ProcedureDLL.l MaxLong4(Nombre01.l, Nombre02.l, Nombre03.l, Nombre04.l, Nombre05.l)
  
  ProcedureReturn MaxLong(Nombre01,MaxLong(MaxLong(Nombre02, Nombre03), MaxLong(Nombre04, Nombre05)))
  
EndProcedure


ProcedureDLL.f MaxFloat(Nombre01.f, Nombre02.f)
  
  If Nombre01 < Nombre02
    
    PlusGrand.f = Nombre02
    
  ElseIf Nombre01 > Nombre02
    
    PlusGrand = Nombre01
    
  Else 
    
    PlusGrand = Nombre01
    
  EndIf
  
  ProcedureReturn PlusGrand
  
EndProcedure

ProcedureDLL.f MaxFloat2(Nombre01.f, Nombre02.f, Nombre03.f)
  
  ProcedureReturn MaxFloat(Nombre01, MaxFloat(Nombre02, Nombre03))
  
EndProcedure

ProcedureDLL.f MaxFloat3(Nombre01.f, Nombre02.f, Nombre03.f, Nombre04.f)
  
  ProcedureReturn MaxFloat(MaxFloat(Nombre01, Nombre02), MaxFloat(Nombre03, Nombre04))
  
EndProcedure

ProcedureDLL.f MaxFloat4(Nombre01.f, Nombre02.f, Nombre03.f, Nombre04.f, Nombre05.f)
  
  ProcedureReturn MaxFloat(Nombre01,MaxFloat(MaxFloat(Nombre02, Nombre03), MaxFloat(Nombre04, Nombre05)))
  
EndProcedure


; <<<<<<<<<<<<<<<<<
; FIN DU FICHIER
; <<<<<<<<<<<<<<<<<

Publié : ven. 26/août/2005 1:58
par Dr. Dri
C'est cool ^^
pourquoi ne pas harmoniser les noms des fonctions avec ceux de PB ?
MinB
MinW
MinL
MinF
etc...

Dri

Publié : ven. 26/août/2005 3:02
par Guimauve
Certain vont peut-être aller jusqu'a 10 valeur...

C'est pour ça que je donne le source. Vous le modifiez pour que ce soit à votre goût. Moi je préfaire sous la forme que je l'ai donnée.

A+
Guimauve