Seite 1 von 1

Mathematische Formelsammlung

Verfasst: 22.12.2008 15:23
von cxAlex
Dieser Thread soll eine kleine Formelsammlung für allerlei Funktionen sein, die man schnell mal braucht, aber nicht immer zur Hand hat.

Mal ein paar Grundlegende Sachen:

// Edit: einige VariablenTypen angepasst:

Code: Alles auswählen

; Quersumme einer Zahl
Procedure QSum(Num.q)
  Protected Sum
  While num
    Sum + num%10
    num/10
  Wend
  ProcedureReturn Sum
EndProcedure

; GGT 2er Zahlen
Procedure GGT(Num1, Num2)
  Protected GGT
  Repeat
    GGT = Num1%Num2
    If GGT
      Num1 = Num2
      Num2 = GGT
    EndIf
  Until Not GGT
  ProcedureReturn Zahl2
EndProcedure

; KGV 2er Zahlen
Procedure KGV(Num1, Num2)
  ProcedureReturn Num1*Num2/GGT(Num1, Num2)
EndProcedure

; Logarithmus einer Zahl zu einer beliebigen Basis
Procedure.d LogN(Num.d, Base.d)
  ProcedureReturn Log(Num)/Log(Base)
EndProcedure

; Parallelrechnen 2er Werte ( || )
Procedure.d Parallel(Num1.d, Num2.d)
ProcedureReturn Num1*Num2/(Num1+Num2)
EndProcedure

Verfasst: 22.12.2008 15:38
von STARGÅTE
meiner Meinung nach gibs sowas schon im Code-Archiv, aber ich mache trotzdem mal mit :

Code: Alles auswählen

 ; Berechnet das Quadrat einer Zahl
 Macro Qua(Value)
  ( (Value)*(Value) )
 EndMacro

 ; Berechnet das Kubik einer Zahl
 Macro Cub(Value)
  ( (Value)*(Value)*(Value) )
 EndMacro

 ; Berechnet die Fakultät einer Zahl
 Procedure.d Factorial(Value)
  Protected n, Factorial.d = 1
  For n = 2 To Value
   Factorial * n
  Next n
  ProcedureReturn Factorial
 EndProcedure
 
 ; Modulo für Floats
 Macro ModF(Value, Factor)
  ( Value-Int(Value/Factor)*Factor )
 EndMacro
  
 ; Signum
 Procedure Sgn(Value.f)
  If Value > 0
   ProcedureReturn 1
  ElseIf Value < 0
   ProcedureReturn -1
  Else 
   ProcedureReturn 0
  EndIf
 EndProcedure
 
 ; Berechnet die Diagonale
 Macro Diagonal(x, y)
  Sqr( Qua(x)+Qua(y) )
 EndMacro
im übrigen solltest du zB bei LogN bei den parametern .f setzen, sonst funzt datt nur mit LONGs

Verfasst: 22.12.2008 18:02
von THEEX
Die Idee ist ja nett, aber eine kurze Beschreibung für was es da ist und was es machen soll, fände ich schon angebracht, zumindest für die Anfänger.

Verfasst: 05.01.2009 22:17
von Special-Agent-J
also wenn die sammlung mal größer ist, ist die ganz cool, wenn jemand ne idee hat wie man ne wurzel berechnen kann dann mal herdamit :D
wär nämlich ganz nett für mein taschenrechner
http://www.purebasic.fr/german/viewtopic.php?t=18750

Verfasst: 05.01.2009 22:48
von STARGÅTE
Für 2te Wurzel :

Code: Alles auswählen

Debug Sqr(4)
Für andere Wurzeln kannst die Pow() nutzen (also Basis hoch Exponent) wobei bei der n-ten Wurzel dann dort steht:

Code: Alles auswählen

Debug Pow(Basis, 1/n)
bei der 3. Wurzel von 27 wäre das dann:

Code: Alles auswählen

Debug Pow(27, 1/3)
es kommt wie erwartet 3 heraus denn 3*3*3 = 27