Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Praktische Informatik » Einfaches Progammverständnis eines Codes » Hallo Gast [Anmelden|Registrieren]
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | An Freund senden | Thema zu Favoriten hinzufügen
Zum Ende der Seite springen Einfaches Progammverständnis eines Codes
Beiträge zu diesem Thema Autor Datum
 Einfaches Progammverständnis eines Codes Lucy 10.01.2012 21:35
 RE: Einfaches Progammverständnis eines Codes Karlito 11.01.2012 01:43

Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Lucy
unregistriert
Einfaches Progammverständnis eines Codes Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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 ?
10.01.2012 21:35
Karlito Karlito ist männlich
Kaiser


Dabei seit: 11.04.2011
Beiträge: 1.461

Auf diesen Beitrag antworten Zitatantwort auf diesen Beitrag erstellen Diesen Beitrag editieren/löschen Diesen Beitrag einem Moderator melden       Zum Anfang der Seite springen

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
11.01.2012 01:43 Karlito ist offline E-Mail an Karlito senden Beiträge von Karlito suchen Nehmen Sie Karlito in Ihre Freundesliste auf
Baumstruktur | Brettstruktur
Gehe zu:
Informatiker Board » Themengebiete » Praktische Informatik » Einfaches Progammverständnis eines Codes