Autor Beitrag
Memphis
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Di 01.02.05 16:48 
Hallo.
Erstmal sorry, falls dieser Beitrag hier nicht reinpassen sollte, aber ich wüsste jetzt nicht, wo ich den sonst hineinschreiben soll.

Also zu meiner Frage:

Wir sollen in der Schule ein Programm programmieren, wo man 2 Zahlen eingeben kann und dann sämtliche Zahlen zwischen diesen beiden miteinander addiert werden.

Also z.B.

Zahl 1 = 5
Zahl 2 = 10

Die Berechnung: 5 + 6 + 7 + 8 + 9 + 10

Dies sollen wir mit einer FOR-Schleife anstellen.

Ich habe jedoch keine Ahnung wie ich das anstellen könnte.
Kann mir jemand einen Tip geben?`

MfG
Memphis
matze.de
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 576

Win95, Win98 SE, WinXp Prof SP2
D7P, D8P, FPC2.0
BeitragVerfasst: Di 01.02.05 16:53 
Hi und :welcome: im DF!

Zu deiner Frage:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
var ergebnis,zahl1, zahl2:integer;
zahl1 := 5;
zahl2 := 10;
for i:=zahl1 to zahl2 do
  ergebnis := ergebnis + i;


hoffe du verstehst es :)

mfg matze

P.S.:Benutz beim nächsten mal bitte Delphi-Tags so wie ich grad :)

_________________
si tacuisses, philosophus mansisses.
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6386
Erhaltene Danke: 146

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Di 01.02.05 16:54 
Hallo Memphis :welcome:

Du wirst hier gleich viele böse Kommentare bekommen, dass hier niemand dein Hausaufgaben macht. (Das ist auch richtig so).

Für deine Aufgabe musst du wissen:
1. Wie ist eine For-Schleife aufgebaut.
2. Wie addiere ich zwei Zahlen.
3. Wie deklariere ich Variablen.

Woran scheitert es bei dir?
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6386
Erhaltene Danke: 146

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Di 01.02.05 16:56 
@matze.de:
Du bist gemein. Jetzt lernt Memphis nichts mehr.
IngoD7
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 629


D7
BeitragVerfasst: Di 01.02.05 17:00 
[OFF-Topic]

matze.de hat folgendes geschrieben:
P.S.:Benutz beim nächsten mal bitte Delphi-Tags


:lol: *lol*
Für welchen Quellcode denn?

*Mal ausnahmsweise einen Anfänger in Schutz nehm* :wink:

[/OFF-Topic]
matze.de
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 576

Win95, Win98 SE, WinXp Prof SP2
D7P, D8P, FPC2.0
BeitragVerfasst: Di 01.02.05 17:00 
<--- fühlt sich schuldig :/

@Memphis guck mal, eine for-schleife wird solange durchlaufen, bis die 1 zahl der 2 entspricht. wenn du die erste zahl gleich 5 setzt und die 2 zahl 10 setzt, dann wird diese schleife 6 mal durchlaufen.
während den durchläufen addierst du zum ergebnis das alte ergebnis und die 1 zahl hinzu.

bin nicht so gut im erklären ;D

mfg matze

//Edit: @IngoD7 Hab nur zahlen gesehen und = zeichen. Hab das direkt mit quelltext assoziiert :D ich nehms zurück sry

_________________
si tacuisses, philosophus mansisses.
Memphis Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Di 01.02.05 17:12 
Erstmal danke für die Begrüßung :)


jasocul hat folgendes geschrieben:
Hallo Memphis :welcome:

Du wirst hier gleich viele böse Kommentare bekommen, dass hier niemand dein Hausaufgaben macht. (Das ist auch richtig so).

Für deine Aufgabe musst du wissen:
1. Wie ist eine For-Schleife aufgebaut.
2. Wie addiere ich zwei Zahlen.
3. Wie deklariere ich Variablen.

Woran scheitert es bei dir?


Ich verlange ja net, dass jemand meine Hausaufgaben macht, wollte ja nur Tips :)

1. Weiß ich
2. Weiß ich
3. Weiß ich

=)
Also das mit der 5 und der 10 war ein Beispiel
Die 2 Zahlen sollen über ein Edit-Feld eingegeben werden.
matze.de
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 576

Win95, Win98 SE, WinXp Prof SP2
D7P, D8P, FPC2.0
BeitragVerfasst: Di 01.02.05 17:13 
Memphis hat folgendes geschrieben:
=)
Also das mit der 5 und der 10 war ein Beispiel
Die 2 Zahlen sollen über ein Edit-Feld eingegeben werden.


Wo liegt denn da dein Problem dann? :?:

mfg matze

_________________
si tacuisses, philosophus mansisses.
Memphis Threadstarter
Hält's aus hier
Beiträge: 5



BeitragVerfasst: Di 01.02.05 17:16 
ahhh

Habs =)

Habs mir nur zu kompliziert gemacht =)


Also danke nochmal für die Hilfe
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6386
Erhaltene Danke: 146

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Di 01.02.05 17:18 
Ich nehme an, dass du weißt, wie man Edit-Felder auf die Form packt.
Um die Inhalte der Edit-Felder in Zahlen zu wandeln, brauchst du die Funktion StrToInt. Die kannst du in der OnLine-Hilfe (hier auch OH genannt :wink: ) nachlesen.
Wie du sicher stellen kannst, dass der Anwender nur Zahlen eingibt, dazu wirst du mit der Suchfunktion im Forum einiges finden.

Anmerkung:
Dass euer Lehrer das mit einer For-Schleife machen will, stimmt mich nachdenklich. Vielleicht solltest du ihn überraschen und zeigen, wie C.F. Gauss das gemacht hat.
WeBsPaCe
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 2322
Erhaltene Danke: 1

FireFox 3, Internet Explorer 6 SP1
D1, D3Prof, D6Pers, D7Pers+Indy, VisualStudio Express
BeitragVerfasst: Di 01.02.05 17:31 
jasocul hat folgendes geschrieben:
Dass euer Lehrer das mit einer For-Schleife machen will, stimmt mich nachdenklich. Vielleicht solltest du ihn überraschen und zeigen, wie C.F. Gauss das gemacht hat.

Wie hat er's denn gemacht? :gruebel: :D

_________________
Steht der Bauer im Gemüse, hat er später grüne Füße.
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6386
Erhaltene Danke: 146

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Di 01.02.05 17:38 
C.F. sollte zur Strafe (Stören des Unterrichts) die Zahlen 1 bis 100 addieren.
Ihm viel auf, dass 1+100 gleich 101 ist. 2+99 aber auch. Das geht bis 50+51.
Also hat er 101 mal 50 gerechnet und war so doch ziemlich schnell fertig. Daraus kann man sehr schnelle eine Formel ableiten:

Summe = (Anfangszahl+Endzahl) * Anzahl_der_Zahlen / 2
WeBsPaCe
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 2322
Erhaltene Danke: 1

FireFox 3, Internet Explorer 6 SP1
D1, D3Prof, D6Pers, D7Pers+Indy, VisualStudio Express
BeitragVerfasst: Di 01.02.05 17:46 
Oho!! :D Der böse C.F.! :lol:

Das ist dann wahrscheinlich die Aufgabe für den Unterricht. :D

PS.: @Memphis
Das sieht dann so aus:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure Tralala;
var zahl1, zahl2: Integer;
begin
zahl1 := StrToInt(InputBox('Frage 1''Anfangszahl'''));
zahl2 := StrToInt(InputBox('Frage 2''Anfangszahl'''));
ShowMessage(IntToStr((zahl1 + zahl2)*(zahl2 div 2)));
end;

_________________
Steht der Bauer im Gemüse, hat er später grüne Füße.


Zuletzt bearbeitet von WeBsPaCe am Di 01.02.05 17:57, insgesamt 1-mal bearbeitet
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6386
Erhaltene Danke: 146

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Di 01.02.05 17:51 
Stimmt nur, wenn du bei 1(eins) anfängst.
WeBsPaCe
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 2322
Erhaltene Danke: 1

FireFox 3, Internet Explorer 6 SP1
D1, D3Prof, D6Pers, D7Pers+Indy, VisualStudio Express
BeitragVerfasst: Di 01.02.05 17:58 
jasocul hat folgendes geschrieben:
Stimmt nur, wenn du bei 1(eins) anfängst.

Hmm, hast Recht. Da verlässt man sich EINMAL auf Aussagen anderer und schon funktionierts nich.. :lol:

_________________
Steht der Bauer im Gemüse, hat er später grüne Füße.
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6386
Erhaltene Danke: 146

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Di 01.02.05 18:07 
So stimmt es:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
procedure Tralala;
var zahl1, zahl2: Integer;
begin
zahl1 := StrToInt(InputBox('Frage 1''Anfangszahl'''));
zahl2 := StrToInt(InputBox('Frage 2''Anfangszahl'''));
ShowMessage(IntToStr((zahl1 + zahl2)*((zahl2-Zahl1+1div 2)));
end;
F34r0fTh3D4rk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: Di 01.02.05 20:19 
Nicht getestet aber eleganter (finde ich :mrgreen:)
ausblenden Delphi-Quelltext
1:
2:
3:
4:
function CFGaussDingels(Zahl1,Zahl2:integer): integer;
begin 
result:= (zahl1 + zahl2)*((zahl2-Zahl1+1div 2); 
end;


Aufruf:
ausblenden Delphi-Quelltext
1:
showmessage(inttostr(CFGaussDingels(strtoint(edit1.text), strtoint(edit2.text));					


aber leider beantwortet das nicht die frage bzw löst die aufgabe nicht, da sie ja mittels for schleife gelöst werden sollte (es sei denn der lehrer muss den code net sehen dann ist auch das passable :))
st-matze
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 138

Win 3.11, Win 95, Win 98, Win XP
D7 Ent, D6 Pers, (D5 Pers)
BeitragVerfasst: Mi 02.02.05 09:36 
@FearOfTheDark

Deine Funktion liefert nicht immer das richtige Ergebnis. Nur wenn die Anzahl der zu Summierenden Zahl Gerade ist, haut es hin.



Hab hier auch noch mal nen vorschlag zum schnellen "summieren" :wink:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
function sumOneTo(ca: Cardinal) : Cardinal;
begin
  Result := Trunc((1 + ca) * (ca / 2));
end;

function sumAtoB(A,B: Cardinal): Cardinal;
begin
  Result := sumOneTo(B) - sumOneTo(A - 1);
end;


Aufruf:
ausblenden Delphi-Quelltext
1:
  Ergebnis := sumAtoB(5,10);					


Bedingungen:
A < B
A > 0


Zuletzt bearbeitet von st-matze am Mi 02.02.05 12:12, insgesamt 1-mal bearbeitet
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6386
Erhaltene Danke: 146

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Mi 02.02.05 09:56 
st-matze hat folgendes geschrieben:
@FearOfTheDark
Deine Funktion liefert nicht immer das richtige Ergebnis. Nur wenn die Anzahl der zu Summierenden Zahl Gerade ist, haut es hin.

Stimmt. Man darf natürlich nicht "div" nehmen :roll:
F34r0fTh3D4rk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5284
Erhaltene Danke: 27

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: Mi 02.02.05 14:39 
nein man sollte nur nicht unbedingt integer nehmen ^^