@Joel:
vorwiegend für Mathe,
zum Beispiel zum schnellen testen von konvergenz von Reihen, einfach mal ein paar Tausen Glieder errechnen lassen usw.
Oder um kleine Animationen zu schreiben, welche ich dann als exe hochladen und als URL abgebe. Nein das ist kein Scherz! 
OT:
Aktuelle lasse ich mir die 
Mandelbrot-Menge in verschiedenen Farben Plotten, mit Zoom-Verfahren: (links klick vergrößert bereich, berechnungen dauern etwas)
Als Beispiel für Komplexe Folgen ...
OHNE DEBUGGER STARTEN!, sonst dauern die berechnungen zu lange
Code: Alles auswählen
InitSprite()
InitKeyboard()
InitMouse()
Global xP = 600
Global yP = 600
Global Zoom.d = 2.0
Global dx.d = -0.5
Global dy.d = 0.0
Global maxQuaAbs = 6
Global maxIter = 256
Global E
Procedure.d PunktIteration(cx.d, cy.d)
 Protected QuaAbs.d, Iter.l, x.d, y.d, xt.d, yt.d, ReturnIter.d
 While x*x + y*y <= maxQuaAbs And Iter < maxIter 
  xt = x*x - y*y + cx
  yt = 2*x*y + cy
  x = xt
  y = yt
  Iter + 1
 Wend
 E = #True
 ProcedureReturn Iter
EndProcedure
 Global Wieder = 0
 Global maxEnergie = 256+$600*(Wieder+1)
 Global Dim Energie(maxEnergie)
 For n = 0 To 255
  Energie(n) = RGB(0,0,n)
 Next
 For j = 0 To Wieder
 For n = 0 To 255
  Energie(j*$600+n+$100) = RGB(  0  ,  n  ,$FF  )
  Energie(j*$600+n+$200) = RGB(  0  ,$FF  ,$FF-n)
  Energie(j*$600+n+$300) = RGB(  n  ,$FF  ,  0  )
  Energie(j*$600+n+$400) = RGB($FF  ,$FF-n,  0  )
  Energie(j*$600+n+$500) = RGB($FF  ,  0  ,  n  )
  Energie(j*$600+n+$600) = RGB($FF-n,  0  ,$FF  )
 Next
 Next
Procedure Farbe(iterations_wert) 
 ProcedureReturn Energie(Int(iterations_wert*maxEnergie/maxIter))
EndProcedure
Procedure Erstellen(Wert)
 CreateSprite(0, xP, yP)
 StartDrawing(SpriteOutput(0)) 
  DrawingMode(1)
  For x = 0 To xP-1 Step 1
   For y = 0 To yP-1 Step 1
    Iter = PunktIteration((-1+x/300)*Zoom+dx, (-1+y/300)*Zoom+dy)
    Plot(x, y, Farbe(Iter))
   Next y
  Next x
 StopDrawing()
EndProcedure
OpenWindow(0, 0, 0, xP, yP, "SCREEN", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
OpenWindowedScreen(WindowID(0), 0, 0, xP, yP, 0, 0, 0)
 CreateSprite(0, xP, yP)
 CreateSprite(1, xP/4, yP/4)
 StartDrawing(SpriteOutput(1))
  DrawingMode(4)
  Box(0, 0, xP/4, yP/4, $FFFFFF)
 StopDrawing()
 
 Erstellen(1)
 
Repeat
 
 Delay(10)
 
 WindowEvent()
 ClearScreen(0)
 DisplaySprite(0,0,0)
 DisplayTransparentSprite(1,Mx-xP/8,My-yP/8)
 
 StartDrawing(ScreenOutput())
 DrawText(0,0,"Zoomfaktor: "+StrD(1/ZOOM,0), $A0A0A0, $505050)
 DrawText(0,20,"d: "+StrD(dx)+" , "+StrD(dy), $A0A0A0, $505050)
 StopDrawing()
 
 FlipBuffers()
 
 ExamineMouse()
 Mx = MouseX()
 My = MouseY()
 If Not E
  If MouseButton(1)
   dx + (Mx/300-1)*Zoom
   dy + (My/300-1)*Zoom
   Zoom / 4
   Erstellen(1)
  EndIf
  If MouseButton(2)
   dx + (Mx/300-1)*Zoom
   dy + (My/300-1)*Zoom
   Erstellen(1)
  EndIf
 EndIf
 If MouseButton(1)=0 And MouseButton(2)=0
  E = #False
 EndIf
 
 ExamineKeyboard()
 If KeyboardPushed(#PB_Key_Escape) : End : EndIf
ForEver