Autor Thema: Fakultät via Schleife geht nicht  (Gelesen 1429 mal)

Offline Dubidu

  • Aktives Mitglied
  • ***
  • Beiträge: 168
  • Geschlecht: Männlich
  • Eins, zwei, drei - eierlei!
Fakultät via Schleife geht nicht
« am: 05.05.08 - 15:40:33 »
Hi,
irgendwie komme ich nicht hinter dem Fehler den mit Lotus immer ausspuckt:

"Incorrect data type for operator or @Function: Number expected."

Leider gibt es ja für Formula keinen Debugger und scheinbar kann man auch nicht herausfinden, auf welche Zeile der Fehler bezogen ist. Ein Finden des Fehlers war mir deswegen nicht möglich.

Hier der Code:

Code
REM{Prompt the user for an integer. If the user enters a negative number or an empty string.
		Prompt then again.};

@DoWhile(
					factnum := @Prompt( [OkCancelEdit];
													 "Enter an Integer";
													 "Please enter an Integer whose factorial you want to compute."; "5" );
					factnum := "" | @TextToNumber( factnum ) <= 0
);

REM{Set up the initial values for the computation.};
REM{Factwork is the number that gets decremented};
REM{Factorial is the variable that will hold the final result.};

factwork := @TextToNumber( factnum );
factorial := factwork;

REM{Compute the factorial};
REM{Iterate the code, decrementing the factwork variable until it is = 0};

@DoWhile(
					factwork := factwork - 1;
					factorial := factorial * factwork;
					factwork != 1
);

REM{Return the result to the user.};
@Prompt([Ok]; "Results"; "The factorial of " + factnum + " (" + factnum + "!) is " + @Text( factorial; "," ) );

Der Code ist von einem Buch übernommen. Ich habe ihn mehrmals kontrolliert und ich wüsste nicht wo ich ihn falsch abgeschrieben habe.
Hoffe, ihr seid in dieser Hinsicht schlauer.

Liebe Grüße
Giordano

Glombi

  • Gast
Re: Fakultät via Schleife geht nicht
« Antwort #1 am: 05.05.08 - 16:05:44 »
Auf den ersten Blick würde ich sagen:

Statt

@DoWhile(
               factnum := @Prompt( [OkCancelEdit];
                                        "Enter an Integer";
                                        "Please enter an Integer whose factorial you want to compute."; "5" );
               factnum := "" | @TextToNumber( factnum ) <= 0
);

muss es so sein:

@DoWhile(
               factnum := @Prompt( [OkCancelEdit];
                                        "Enter an Integer";
                                        "Please enter an Integer whose factorial you want to compute."; "5" );
               factnum = "" | @TextToNumber( factnum ) <= 0
);

Andreas

Offline Dubidu

  • Aktives Mitglied
  • ***
  • Beiträge: 168
  • Geschlecht: Männlich
  • Eins, zwei, drei - eierlei!
Re: Fakultät via Schleife geht nicht
« Antwort #2 am: 05.05.08 - 16:07:51 »
Achherrje!
Vielen Dank, für den Hinweis! Ich hätte noch weitere Stunden mit der Fehlermeldung verbracht! :)

Liebe Grüße
Giordano

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz