ERLEDIGT
NEIN
NEIN
ANTWORTEN
11
11
ZUGRIFFE
1125
1125
EMPFEHLEN
-
Hallo.
Da ich mit der Schule drei Wochen in Amerika war, habe ich natürlich den Unterricht verpasst. Insbesondere in den Informatikstunden bereue ich es ein wenig, da wir begebracht bekamen, wie wir eine Fakultät in Turbopascal berechnen. Hier der code (ich weiss, es gibt auch andere Lösungen... aber ich wills so machen, wie es unser Lehrer beigebracht hat):
--------------------------------------------------------------------------------------------
Program Fakultaet;
Var
Fak: Real;
n,i: Word;
Begin
Readln (n);
Fak:=1;
For i:=2 to n do Fak:=Fak*i;
Writeln (Fak);
End.
----------------------------------------------------------------------------------------------
Ich weiss das das programm nicht gerade schwer ist, aber Ich liste trotzdem mal auf, was ich nicht verstehe und wo ich Fragen habe:
- Warum heißt es, dass "n" und "i" "wörter" sind ? Ist es egal, als was sie definiert werden ?
- Könnt ihr mir das erläutern:
_______
Readln (n);
Fak:=1;
For i:=2 to n do Fak:=Fak*i;
Writeln (Fak);
__________
- Welche Rolle spielt die Variable "i" ?!
Ich würde euch sehr dafür danken !Geändert von Xeal87 (04.11.03 um 15:05 Uhr)
-
05.11.03 02:02 #2
- Registriert seit
- Aug 2003
- Ort
- Dresden
- Beiträge
- 527
ok, bin zwar schon ewig von tp weg (so ca. 15 jahre), aber das ist wirklich nicht weiter wild:
Program Fakultaet;
Deklarationen
Var
Fak: Real;
n,i: Word;
Begin
Eingabe des Benutzers fordern.
Da readln verwendet wird, erhält man als Rückgabe einen String, der allerdings
eine Zahl darstellen sollte (z.B. "4").
Ein Problem gibt es, sollte der User etwas alphanumerisches eingeben...nun ja
Readln (n);
Fak:=1;
Die Variable i dient nur als Zählvariable der For-Schleife. Diese wird n Mal durchlaufen. Das i wird ansonsten nicht verwendet.
For i:=2 to n do Fak:=Fak*i;
Writeln (Fak);
End.
Hehe, hoffe, das das jetzt nicht total daneben war
-
Ich hab mich mal in die saudumme maschiene (acuh pc genannt) versetzt und bin dabei das ganze zu verstehen.
also die fakultät von 4 zum beispiel lautet ja:
!4=4*3*2*1
Der Computer zählt also so lange zu der zahl zwei eins dazu bis n erreicht wurde und multipliziert das dann miteinandern ?!
Danke schonmal
-
05.11.03 09:55 #4
- Registriert seit
- Aug 2003
- Ort
- Dresden
- Beiträge
- 527
richtig muss es heissen:Original geschrieben von Masaker
Ich hab mich mal in die saudumme maschiene (acuh pc genannt) versetzt und bin dabei das ganze zu verstehen.
also die fakultät von 4 zum beispiel lautet ja:
!4=4*3*2*1
Der Computer zählt also so lange zu der zahl zwei eins dazu bis n erreicht wurde und multipliziert das dann miteinandern ?!
Danke schonmal
... und multipliziert JEDESMAL miteinander
und deine eher "ungewöhnliche" formulierung müsste eigentlich so heissen, was nach kommutativgesetz allerdings wirklich schnuppe ist: 4! => 1*2*3*4
Deswegen fängt das gute Programm auch bei 2 an zu zählen, da *1 ja doch nicht wirklich was Aufwendiges ist
-
<klugscheiss>
Die Mathematische Schreibweise sieht jedoch vor, mit der größten Zahl anzufangen, also 4*3*2*1, da sich so beim späteren gegeneinanderrechnen und kürzen von Fakultäten Vorteile ergeben (sollen) ...
</klugscheiss>
Meine zumindest, das so aus Mathe in Erinnerung haben zu müssen.
-
05.11.03 10:31 #6
- Registriert seit
- Aug 2003
- Ort
- Dresden
- Beiträge
- 527
mathe? wasn das? schon ewig her...
*mit dem krückstock fuchtel*
-
Also bei mir ist Mathe noch nicht so lange her *g*
Bin grad 11te klasse und es ist wirklich egal wie man es schreibt, aber das Programm beginnt mit der 1 und endet mit der zahl n
-
05.11.03 19:28 #8
- Registriert seit
- Apr 2001
- Ort
- Hamburg
- Beiträge
- 1.309
Hallo.
Also readln() gibt hier keinen String zurück, da es keine Funktion ist. Außerdem ist der Datentyp "word" kein 'Wort', sondern stellt den Wertebereich von 0-65535 zur Verfügung. Hinzu kommt, dass es blödsinn ist, hier Fak als Real-Datentyp zu nehmen, da du niemals Nachkommastellen benötigst.--
GNU/Linux - Weil man echte Freunde nicht kaufen kann
-
Also das würd ich mir nochmal genau überlegen, ob der real datentyp da so unsinnig ist.
Die Fakultät ist nämlich eine der am schnellsten wachsenden funktionen.
Bsp:
!5 = 120
***0 =518400
Also denke ich schon das real da ganz ok ist
-
06.11.03 15:52 #10
- Registriert seit
- Aug 2001
- Beiträge
- 1.411
Nimm long
Real-Werte sind Gleitkomma-Zahlen, mit denen Vergleiche (if) sehr nervenaufreibend sein können.
-
aber real kann doch viel größere zahlen darstellen, wenn ich mich nicht täusche oder ?
-
06.11.03 18:29 #12
- Registriert seit
- Aug 2001
- Beiträge
- 1.411
Wenn schon grosse Zahlen, dann könntest du auch gleich extended nehmen!
Sind aber halt keine genauen Zahlen, je länger der Wert wird.
Ähnliche Themen
-
Fakultät für 100 berechnen
Von Neuling 765 im Forum C/C++Antworten: 6Letzter Beitrag: 19.01.10, 16:02 -
[C++] Wie funktioniert das mit der fakultät berechnen?
Von Irgendjemand_1 im Forum C/C++Antworten: 11Letzter Beitrag: 17.03.06, 16:14 -
Listen in TurboPascal!
Von SvenMueller im Forum Sonstige SprachenAntworten: 0Letzter Beitrag: 20.05.04, 15:09 -
Dateierstellung mit TurboPascal auf WinXP
Von Karl Förster im Forum Sonstige SprachenAntworten: 0Letzter Beitrag: 27.11.03, 22:21 -
Fakultät im Java Pseudocode berechnen
Von MS[shady] im Forum JavaAntworten: 10Letzter Beitrag: 11.09.03, 07:28





Zitieren
Login





