|
Hallo Leute, ich hänge beim Lösen dieses Beispiels:
In einer bestimmten belgischen Straße sind die Häuser auf einer Straßenseite beginnend mit 1 aufeinanderfolgend nummeriert. Ein Freund, der in dieser Straße wohnt, lädt Sie zu sich nach Hause ein. Dabei verrät er Ihnen nicht seine Hausnummer. Er gibt Ihnen nur den Hinweis, dass die Summe der Hausnummern vor seinem Haus gleich der Summe der Hausnummern nach seinem Haus ist, wobei in der Straße mehr als aber weniger als Häuser stehen.
Schreiben Sie eine Prozedur in Maple, die die Hausnummer Ihres Freundes und die Anzahl der Häuser in der Straße ausgibt. Hinweis: Der Befehl über den Sie in der Hilfe von Maple mehr erfahren, ist bei dieser Aufgabe sehr nützlich.
Mein Ansatz:
HausNummer:=proc() #gibt die Hausnummer und die Häuseranzahl der Wohnstraße des Freundes aus local
for from to do
for from 1 to do
if then print(h); fi; od; od;
end:
Mein Problem ist, dass Maple die Programmausführung nach der ersten for - Schleife abbricht. Kann mir jemand sagen, wo der Fehler liegt bzw. beim Lösen des Problems helfen??
Für alle, die mir helfen möchten (automatisch von OnlineMathe generiert): "Ich bräuchte bitte einen kompletten Lösungsweg." (setzt voraus, dass der Fragesteller alle seine Lösungsversuche zur Frage hinzufügt und sich aktiv an der Problemlösung beteiligt.) |
|
|
Ich habe es auch versucht, zuerst die Durchlaufvarbiablen der for - Schleifen zu definieren und anschließend, was innerhalb der for - Schleifen gemacht werden soll, doch dies ändert ja nix. Bei Benützung die for - Schleifen durch while - Schleifen zu ersetzen, bringt auch nichts, da wird gar nix vom Programm ausgeführt.
|
|
Hallo,
müsste nicht die erste Schleife mit beginnen? Du kannst doch nicht wissen, ob die Lösung kleiner gleich ist?
Wie wäre es mit ein paar Kontrollausdrucken, . die Variable um zu sehen, wann und wo das Programm aussteigt.
Gruß pwm
|
|
Hallo,
Deine Programmstruktur ist nicht richtig. Ich bezeichne mal mit die Anzahl der Häuser und mit die Hausnummer. Die Zahl der Häuser ist mindestens und höchstens . Also geht die äußere Schleife für von bis . Nun kann die Hausnummer irgendwo zwischen 1 und liegen. Für jedes der Wertepaare und ist dann a und zu berechnen, also:
for from to for from 1 to
if then print(h, fi;
od; od;
Viele Grüße Yokozuna
|
|
Hallo pwm!! Zunächst einmal ein großes Dankeschön für deine Antwort!
Ich lasse deshalb bei und nicht bei 2 beginnen, da in der Angabe vorausgesetzt wird, dass es in der Straße zwischen und Häuser gibt, anders formuliert, es gibt mindestens und höchstens Häuser gibt. Würde ich bei 2 zu zählen beginnen, so würde ich davon ausgehen, dass es mindestens 2 Häuser gibt oder verstehe ich da etwas falsch??
|
|
Hallo Yokozuna!
Ich bin dir unendlich dankbar für deine großartige Hilfe und geniale Antwort!!
Vielen Dank!!
Gruß, lila
|