| Autor | Beitrag | 
| Memphis Hält's aus hier
 Beiträge: 5
 
 
 
 
 | 
Verfasst: Di 01.02.05 15: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 
          Beiträge: 576
 
 Win95, Win98 SE, WinXp Prof SP2
 D7P, D8P, FPC2.0
 
 | 
Verfasst: Di 01.02.05 15:53 
 
Hi und     im DF!
 Zu deiner Frage:
 		                       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 
          Beiträge: 6395
 Erhaltene Danke: 149
 
 Windows 7 + Windows 10
 Sydney Prof + CE
 
 | 
Verfasst: Di 01.02.05 15:54 
 
Hallo Memphis     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 
          Beiträge: 6395
 Erhaltene Danke: 149
 
 Windows 7 + Windows 10
 Sydney Prof + CE
 
 | 
Verfasst: Di 01.02.05 15:56 
 
@matze.de:
Du bist gemein. Jetzt lernt Memphis nichts mehr.
 | 
|  | 
| IngoD7 
          Beiträge: 629
 
 
 D7
 
 | 
Verfasst: Di 01.02.05 16:00 
 
[OFF-Topic]
 	  | matze.de hat folgendes geschrieben: |  	  | P.S.:Benutz beim nächsten mal bitte Delphi-Tags | 
    *lol*
 Für welchen Quellcode denn?
 *Mal ausnahmsweise einen Anfänger in Schutz nehm*     [/OFF-Topic] | 
|  | 
| matze.de 
          Beiträge: 576
 
 Win95, Win98 SE, WinXp Prof SP2
 D7P, D8P, FPC2.0
 
 | 
Verfasst: Di 01.02.05 16: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    ich nehms zurück sry_________________ si tacuisses, philosophus mansisses.
 | 
|  | 
| Memphis  Hält's aus hier
 Beiträge: 5
 
 
 
 
 | 
Verfasst: Di 01.02.05 16:12 
 
Erstmal danke für die Begrüßung    	  | jasocul hat folgendes geschrieben: |  	  | Hallo Memphis   
 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 
          Beiträge: 576
 
 Win95, Win98 SE, WinXp Prof SP2
 D7P, D8P, FPC2.0
 
 | 
Verfasst: Di 01.02.05 16: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  Hält's aus hier
 Beiträge: 5
 
 
 
 
 | 
Verfasst: Di 01.02.05 16:16 
 
ahhh
 Habs =)
 
 Habs mir nur zu kompliziert gemacht =)
 
 
 Also danke nochmal für die Hilfe
 | 
|  | 
| jasocul 
          Beiträge: 6395
 Erhaltene Danke: 149
 
 Windows 7 + Windows 10
 Sydney Prof + CE
 
 | 
Verfasst: Di 01.02.05 16: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    ) 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 
          Beiträge: 2322
 Erhaltene Danke: 1
 
 FireFox 3, Internet Explorer 6 SP1
 D1, D3Prof, D6Pers, D7Pers+Indy, VisualStudio Express
 
 | 
Verfasst: Di 01.02.05 16: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?    _________________ Steht der Bauer im Gemüse, hat er später grüne Füße.
 | 
|  | 
| jasocul 
          Beiträge: 6395
 Erhaltene Danke: 149
 
 Windows 7 + Windows 10
 Sydney Prof + CE
 
 | 
Verfasst: Di 01.02.05 16: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 
          Beiträge: 2322
 Erhaltene Danke: 1
 
 FireFox 3, Internet Explorer 6 SP1
 D1, D3Prof, D6Pers, D7Pers+Indy, VisualStudio Express
 
 | 
Verfasst: Di 01.02.05 16:46 
 
Oho!!    Der böse C.F.!    Das ist dann wahrscheinlich die Aufgabe für den Unterricht.    PS.: @Memphis Das sieht dann so aus:
 		                       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 16:57, insgesamt 1-mal bearbeitet
 | 
|  | 
| jasocul 
          Beiträge: 6395
 Erhaltene Danke: 149
 
 Windows 7 + Windows 10
 Sydney Prof + CE
 
 | 
Verfasst: Di 01.02.05 16:51 
 
Stimmt nur, wenn du bei 1(eins) anfängst. | 
|  | 
| WeBsPaCe 
          Beiträge: 2322
 Erhaltene Danke: 1
 
 FireFox 3, Internet Explorer 6 SP1
 D1, D3Prof, D6Pers, D7Pers+Indy, VisualStudio Express
 
 | 
Verfasst: Di 01.02.05 16: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..  _________________ Steht der Bauer im Gemüse, hat er später grüne Füße.
 | 
|  | 
| jasocul 
          Beiträge: 6395
 Erhaltene Danke: 149
 
 Windows 7 + Windows 10
 Sydney Prof + CE
 
 | 
Verfasst: Di 01.02.05 17:07 
 
So stimmt es:
 		                       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+1) div 2)));
 end;
 |  | 
|  | 
| F34r0fTh3D4rk 
          Beiträge: 5284
 Erhaltene Danke: 27
 
 Win Vista (32), Win 7 (64)
 Eclipse, SciTE, Lazarus
 
 | 
Verfasst: Di 01.02.05 19:19 
 
Nicht getestet aber eleganter (finde ich   )
 		                       Delphi-Quelltext 
 									| 1:2:
 3:
 4:
 
 | function CFGaussDingels(Zahl1,Zahl2:integer): integer;begin
 result:= (zahl1 + zahl2)*((zahl2-Zahl1+1) div 2);
 end;
 |  Aufruf:
 		                       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 
          Beiträge: 138
 
 Win 3.11, Win 95, Win 98, Win XP
 D7 Ent, D6 Pers, (D5 Pers)
 
 | 
Verfasst: Mi 02.02.05 08: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"     		                       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:
 		                       Delphi-Quelltext 
 									| 1:
 |   Ergebnis := sumAtoB(5,10);					 |  Bedingungen:
  A < B
  A > 0 
 Zuletzt bearbeitet von st-matze am Mi 02.02.05 11:12, insgesamt 1-mal bearbeitet
 | 
|  | 
| jasocul 
          Beiträge: 6395
 Erhaltene Danke: 149
 
 Windows 7 + Windows 10
 Sydney Prof + CE
 
 | 
Verfasst: Mi 02.02.05 08: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    | 
|  | 
| F34r0fTh3D4rk 
          Beiträge: 5284
 Erhaltene Danke: 27
 
 Win Vista (32), Win 7 (64)
 Eclipse, SciTE, Lazarus
 
 | 
Verfasst: Mi 02.02.05 13:39 
 
nein man sollte nur nicht unbedingt integer nehmen ^^ | 
|  |