Welkom op het forum van startpagina!

Dit forum staat op alleen-lezen. Je kan hier informatie zoeken en oude berichten terugvinden, maar geen nieuwe berichten plaatsen.

Naar overzicht van alle forums

x! programmeren

  • Juul

    Ik moet voor mijn scriptie de poisson-verdeling programmeren, daarvoor moet ik x! (x faculteit….. x!=1*2*….*x) programmeren. Weet iemand hoe dit moet?

  • CK

    Hallo Juul

    Hier een voorbeeldje (niet getest). Bedenk wel, dat het antwoord snel heel groot kan worden!

    function Fac(x: Byte): LongInt;

    var

    i: Byte;

    begin

    Result := 1;

    for i := 0 to x do

    Result := Result * x;

    end;

    Succes, CK

  • Tobo

    Beste Juul, (getest):

    Function TForm1.Fac(x: Integer): Integer;

    Begin

    If x>1 Then Result := x * Fac(x-1) Else Result := x;

    End;

    M.v.g.

  • CK

    Hallo Juul

    Het voorbeeld van Jobo is de beste oplossing! Maar als je recursiviteit niet snapt is mijn voorbeeld eenvoudiger te snappen.

    Er zat alleen een foutje in mijn voorbeeld. Het blijkt op dit forum niet mogelijk om een bericht te editen, dus hier de juiste versie:

    function Fac(x: Byte): LongInt;

    var

    i: Byte;

    begin

    Result := 1;

    for i := 0 to x do

    Result := Result * i;

    end;

    Succes, CK

  • Leekhout

    CK,

    Het klopt nog niet, want je begint de i-lus met 0. Dan krijg je Result := Result * 0. Result wordt dus 0 en zal nooit meer wat anders worden. Begin met i := 2.

  • CK

    Inderdaad Leekhout. Je hebt helemaal gelijk. Ik had m'n voorbeeld zelf even moeten testen.