Einfaches Progammverständnis eines Codes |
10.01.2012, 21:35 | Auf diesen Beitrag antworten » |
Lucy | Einfaches Progammverständnis eines Codes Meine Frage: Hallo , hab wieder ein kleines Problem. Ein Programm soll die Summe der ganzen Zahlen von 1 bis N berechnen. beiden Lösungen A und B: Lösung A: Sum := 0; for J in 1 .. N loop Sum := Sum + J; end loop; Lösung : B Sum := ((N + 1) * N) /2 Fragestellung : - Warum ist Lösung A allgemeiner ? auf einen größeren Wertebereich anwendbar ? als die Lösung B? - Wie kann Lösung B umformuliert werden, um ihre Nachteile zu beseitigen, aber trotzdem ohne Schleife auszukommen? Meine Ideen: Meine Theorien sind: A ist allgemeiner ,weil es eine allgemeine For-Schleife ist ,die einfach die letzte Zahl als als Durchlaufende ansieht. Bin aber aber nicht sicher, obs stimmt. Hat B überhaupt Nachteile ? |
|
|
11.01.2012, 01:43 | Auf diesen Beitrag antworten » |
Karlito | Hallo, aus meiner Sicht ist deine Begründung nicht ganz richtig. Was ist denn an einer allgemeinen FOR-Schleife besser als an einer allgemeinen Multiplikation? Ich denke der Vorteil von A ist, dass A ohne Multiplikation auskommt. Eine Maschine ohne Multiplizierwerk könnte das Programm also ausführen... B hat den Nachteil, dass die Zahlen sehr groß werden (n^2), bevor die Division ausgeführt wird und das ergebnis sich wieder "verleinert". Das kann zu einem Überlauf führen. Vermeiden könnte man das, indem man so umformt, dass die Zahlen nicht so groß werden.... Also Division eher ausführen... Kannst ja mal einen Vorschlag machen, wie du das realisieren würdest. VG, Karlito |
|
Verwandte Themen
Die Beliebtesten » |
|
Die Größten » |
|
Die Neuesten » |
|