Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Zählschleife für summe aufeinanderfolgender Zahlen (https://www.delphipraxis.net/60268-zaehlschleife-fuer-summe-aufeinanderfolgender-zahlen.html)

Iche 4. Jan 2006 18:19


Zählschleife für summe aufeinanderfolgender Zahlen
 
Hallo,

ich habe ein riesen problem und ich hoffe, es kann mir jemand helfen. Ich soll mit Delphi mithilfe einer zählschleife einb Programm schreiben.
Es sollen 2 zahlen a und b eingegeben werden. Und alle natürlichen zahlen, die zwischen diesen beiden liegen sollen addiert werden. Also z.B. a=2 und b=5 dann: 2+3+4+5

Ich hab grad schon beim ansatz schwierigkeiten:
For :=a to b do

Ich bin total verwirrt.

Kann mir bitte jemand helfen. es ist dringend!!!!

Danke schonmal.

sakura 4. Jan 2006 18:24

Re: Brauche dringend HILFE!!!!!
 
Ändere bitte den Titel Deiner Frage, so dass dieser aussagekräftig ist. Hilfe brauchen hier die meisten ;)

...:cat:...

Daniel 4. Jan 2006 18:24

Re: Brauche dringend HILFE!!!!!
 
Hallo und herzlich willkommen in der Delphi-PRAXiS :dp:,


dies ist Dein erster Tag hier, aber ich muss Dich bitten, Deinem Beitrag einen aussagekräftigen Titel zu geben. Viele von uns brauchen Hilfe - wobei auch immer ... das alleine sagt leider gar nichts aus.



Und zum Thema:
Dein Ansatz "for x:= a to b do ... " ist schon gut:

Delphi-Quellcode:
...
counter:= 0;
for idx:= startWert to zielWert do
  counter:= counter + idx;
...zumindest, wenn sowohl der Start- aus auch der Zielwert mit in die Addition einfließen sollen.

Iche 4. Jan 2006 18:31

Re: Brauche dringend HILFE!!!!!
 
Ok mit dem Titel habt ihr recht! Danke für die Hilfe. sieht aber ziemlich wissenschaftlich aus. glaubt mir bestimmt keine, dass des von mir is. was is idx???

faux 4. Jan 2006 18:33

Re: Brauche dringend HILFE!!!!!
 
Hallo!

idx ist die Zählervariable. Du kannst das nennen wie du willst; am gängigsten ist jedoch i bzw bei mehreren Schreifen dann einfach fortlaufend j, k, ...

Weißt du wie eine FOR-Schleife funktioniert?
Wenn nicht: http://www.dsdt.info/grundlagen/sprache/schleifen.php

Was verstehst du unter ziemlich wissenschaftlich? *gg*

Es gibt natürlich (unendlich) viele Möglichkeiten um (d)ein Problem zu lösen. Willst du es überhaupt mit einer FOR-Schleife lösen?

Grüße
Faux

Iche 4. Jan 2006 18:45

Re: Brauche dringend HILFE!!!!!
 
Vielen Dank für deine Hilfe!
Ja ich muss es mit einer for schleife machen. es steht so in der aufgabenstellung. auf jeden fall muss hinter das for:= a to b do... Das weis ich, aber ich bin mir mit der variable nach for eben nicht sicher. Da kann ich einfach irgendwas nehmen??? Und was kommt nach do für eine Anweisung für die Summe???

mh166 4. Jan 2006 18:52

Re: Brauche dringend HILFE!!!!!
 
:evil: Jetzt schlägts aber dreizehn, oder? :evil:

Da hat dir nun schon jemand die Lösung gepostet - ich hätts nicht getan! - und dann biste noch zu faul mal den Cursor auf for zu setzen und F1 zu drücken oder was? Ehrlich gesagt kannst du froh sein, dass du am anderen Ende der Leitung sitzt... :evil:

Nix für ungut, aber bei soviel Ignoranz ist doch wirklich jedes weitere Wort fürn ..... Also: wie wärs mit a) aufpassen im Unterricht und b) in die Delphi-Hilfe gucken und c) wenns ganz schlimm kommt: mal google oder die Forensuche zu verwenden?

Sorry, aber das musste einfach mal sein. *grml*

mfg, mh166

Iche 4. Jan 2006 19:00

Re: Brauche dringend HILFE!!!!!
 
Vielen dank für deinen schlauen beitrag!
Ich muss das ganze schriftlich machen und habe das delphi programm nicht zuhause und kann auch nicht gucken ob es funktioniert und außerdem hatten wir das nicht im unterricht, sondern müssen es uns selbst erarbeiten!
:wall:

tomsel 4. Jan 2006 19:01

Re: Brauche dringend HILFE!!!!!
 
Zitat:

Zitat von Iche
Vielen dank für deinen schlauen beitrag!
... müssen es uns selbst erarbeiten!
:wall:

erarbeiten!!!!

tomsel 4. Jan 2006 19:20

Re: Brauche dringend HILFE!!!!!
 
Zitat:

habe das delphi programm nicht zuhause und kann auch nicht gucken
Delphi-Hilfe zur For-Anweisung:
Zitat:

Im Gegensatz zur repeat- und while-Anweisung wird bei einer for-Anweisung angegeben, wie oft die Schleife durchlaufen werden soll. Die Syntax einer for-Anweisung lautet

for Zähler := Anfangswert to finalValue do Anweisung

oder

for Zähler := Anfangswert downto Endwert do Anweisung

Die Variablen haben folgende Bedeutung:

Zähler ist eine lokale Variable ordinalen Typs ohne Qualifizierer. Sie wird in dem Block deklariert, in dem die for-Anweisung enthalten ist.
Anfangswert und Endwert sind Ausdrücke, die zu Zähler zuweisungskompatibel sind.
Anweisung ist eine einfache oder eine strukturierte Anweisung, die den Wert von Zähler nicht ändert.

Die for-Anweisung weist Zähler den angegebenen Anfangswert zu und führt anschließend wiederholt Anweisung aus. Abhängig von der verwendeten Syntax wird der Wert von Zähler bei jedem Durchlauf erhöht (for...to) oder erniedrigt (for...downto). Sobald der Wert von Zähler mit dem Wert von Endwert identisch ist, wird Anweisung ein letztes Mal ausgeführt und anschließend die for-Anweisung beendet. Anweisung wird also einmal für jeden Wert ausgeführt, der im Bereich von Anfangswert bis Endwert liegt. Ist Anfangswert mit Endwert identisch, wird Anweisung genau einmal ausgeführt. Wenn Anfangswert in einer for...to-Anweisung größer als Endwert ist, wird Anweisung kein einziges Mal ausgeführt. Dasselbe gilt für eine for...downto-Anweisung, in der Anfangswert kleiner als Endwert ist. Nach der Beendigung der for-Anweisung ist der Wert von Zähler nicht definiert (vorausgesetzt, die Beendigung wurde nicht durch eine break- oder exit-Prozedur verursacht).

Die Ausdrücke Anfangswert und Endwert werden zur Steuerung der Schleifenausführung nur einmal ausgewertet, und zwar vor Beginn der Schleife. Die for...to-Anweisung hat starke Ähnlichkeit mit dem folgenden while-Konstrukt:

begin
Zähler := Anfangswert;
while Zähler <= Endwert do
begin
Anweisung;
Zähler := Succ(Zähler);
end;
end

Im Unterschied zur for...to-Anweisung wird Endwert aber in der while-Schleife vor jedem Durchlauf erneut ausgewertet. Wenn Endwert ein komplexer Ausdruck ist, kann dies eine Verlangsamung der Ausführungsgeschwindigkeit zur Folge haben. Außerdem können sich von Anweisung verursachte Änderungen an Endwert auf die Ausführung der Schleife auswirken.

Hier einige Beispiele für for-Anweisungen:

for I := 2 to 63 do
if Data[I] > Max then
Max := Data[I];
for I := ListBox1.Items.Count - 1 downto 0 do
ListBox1.Items[I] := UpperCase(ListBox1.Items[I]);
for I := 1 to 10 do
for J := 1 to 10 do
begin
X := 0;
for K := 1 to 10 do
X := X + Mat1[I, K] * Mat2[K, J];
Mat[I, J] := X;
end;

for C := Red to Blue do Check(C);


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:25 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz