Mathematik online lernen im Mathe-Forum. Nachhilfe online
Startseite » Forum » for verschachtelung bei maple

for verschachtelung bei maple

Universität / Fachhochschule

Sonstiges

Tags: for Schleife, Maple, Sonstiges

 
Antworten Neue Frage stellen Im Forum suchen
Neue Frage
lila13

lila13 aktiv_icon

23:13 Uhr, 07.06.2014

Antworten
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 50, aber
weniger als 500 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 h,i,j,k,a,e;

for h from 50 to 500 do
a:=(i,i=1..(h-1));

for j from 1 to 500 do
e:=(k,k=(h+1)..(h+1+j));

if a=e 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.)
Online-Nachhilfe in Mathematik
Neue Frage
lila13

lila13 aktiv_icon

23:41 Uhr, 07.06.2014

Antworten
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.
Antwort
pwmeyer

pwmeyer aktiv_icon

09:42 Uhr, 08.06.2014

Antworten
Hallo,

müsste nicht die erste Schleife mit h=2 beginnen? Du kannst doch nicht wissen, ob die Lösung kleiner gleich 50 ist?

Wie wäre es mit ein paar Kontrollausdrucken, z.B. die Variable h, um zu sehen, wann und wo das Programm aussteigt.

Gruß pwm
Antwort
Yokozuna

Yokozuna aktiv_icon

10:26 Uhr, 08.06.2014

Antworten
Hallo,

Deine Programmstruktur ist nicht richtig. Ich bezeichne mal mit h die Anzahl der Häuser und mit n die Hausnummer. Die Zahl der Häuser ist mindestens 51 und höchstens 499. Also geht die äußere Schleife für h von 51 bis 499. Nun kann die Hausnummer n irgendwo zwischen 1 und h liegen. Für jedes der Wertepaare h und n ist dann a und e zu berechnen, also:

for h from 51 to 499
for n from 1 to h

a:=(i;i=1..(n-1));
e:=(i;i=(n+1)..h);

if a=e then
print(h, n);
fi;

od;
od;

Viele Grüße
Yokozuna

lila13

lila13 aktiv_icon

10:28 Uhr, 08.06.2014

Antworten
Hallo pwm!!
Zunächst einmal ein großes Dankeschön für deine Antwort!

Ich lasse h deshalb bei 50 und nicht bei 2 beginnen, da in der Angabe vorausgesetzt wird, dass es in der Straße zwischen 51 und 499 Häuser gibt, anders formuliert, es gibt mindestens 51 und höchstens 499 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??
Frage beantwortet
lila13

lila13 aktiv_icon

10:58 Uhr, 08.06.2014

Antworten
Hallo Yokozuna!

Ich bin dir unendlich dankbar für deine großartige Hilfe und geniale Antwort!!

Vielen Dank!!

Gruß, lila