Delphi-PRAXiS
Seite 3 von 6     123 45     Letzte »    

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   5 Programmteile, Erklärung gesucht, bitte. (https://www.delphipraxis.net/191495-5-programmteile-erklaerung-gesucht-bitte.html)

linomail 21. Jan 2017 19:48

AW: 5 Programmteile, Erklärung gesucht, bitte.
 
@nahpets


For ik:= 1 to i+3 do
begin
writeln("abc"); i:=i+1;
end;

Ja aber ich verstehe den Sinn nicht. Ich habe kapiert, dass die Schleife ik 1 bis i+3 hochzählt. D.h es wird solange hochgezählt bis i auf 3 ist? Eine endlosschleife ist es ja nicht oder? ich habe ja nachprogrammiert er lief 3 mal durch.

Aufgabe 3 er speichert ja für char:=" " also schreibt er " " rein bis das Ende erreicht wird. Es wird das letzte Zeichen vor dem Ende der Eingabe ausgegeben " ".

Aufgabe 5: STR 2:= 1234345 ??

a.def 21. Jan 2017 19:49

AW: 5 Programmteile, Erklärung gesucht, bitte.
 
Zitat:

Zitat von linomail (Beitrag 1359527)
D.h es wird solange hochgezählt bis i auf 3 ist?

Nein. Solange, bis i gleich (i+3) ist. Aber dann ist da ja noch i := i+1;

Wenn i=5 ist würde i 5 bis 13 zugewiesen worden sein.

Aviator 21. Jan 2017 19:52

AW: 5 Programmteile, Erklärung gesucht, bitte.
 
Zitat:

Zitat von linomail (Beitrag 1359527)
D.h es wird solange hochgezählt bis i auf 3 ist? Eine endlosschleife ist es ja nicht oder?

Doch ist es. Formatiere den SourceCode richtig und du wirst sehen das die Variable i mit jedem Durchlauf um 1 erhöht wird. Genauso wie die Zählervariable ik.

Was hier noch fehlt ist die Initialisierung der Variablen i. Aber selbst wenn die nicht initialisiert wäre. Sobald i >= -1 ist, ist das eine Dauerschleife die nicht mal nach einer Supernova aufhören würde zu zählen.

Delphi-Quellcode:
for ik:= 1 to i+3 do
begin
  writeln("abc");
  i:=i+1;
end;

Delphi-Laie 21. Jan 2017 19:55

AW: Hilfe
 
Zitat:

Zitat von himitsu (Beitrag 1359501)
Zitat:

Zitat von nahpets (Beitrag 1359494)
Da hat wohl jemand zum Teil die gleichen Aufgaben bekommen.

Sogar mit den selben Schreibfehlern.

Tja, ist ja auch diesselbe Hochschule (Osnabrück)! ;-)

a.def 21. Jan 2017 19:56

AW: 5 Programmteile, Erklärung gesucht, bitte.
 
Zitat:

Zitat von Aviator (Beitrag 1359530)
Zitat:

Zitat von linomail (Beitrag 1359527)
D.h es wird solange hochgezählt bis i auf 3 ist? Eine endlosschleife ist es ja nicht oder?

Doch ist es.

Also bei mir ist es keine Endlosschleife wenn ich i initialisiere (z.B. mit 5).

linomail 21. Jan 2017 19:59

AW: 5 Programmteile, Erklärung gesucht, bitte.
 
ja bei mir war es auch keine endlosschleife :?

a.def 21. Jan 2017 20:00

AW: 5 Programmteile, Erklärung gesucht, bitte.
 
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
 ik, i: integer;
begin
 i := 5;

 for ik := 1 to i + 3 do
  begin
   ListBox1.Items.Insert(0, IntToStr(i));
   i := i + 1;
  end;
end;

// Gibt aus:
// 5, 6, 7, 8, 9, 10, 11, 12
Die Aufgabe ist so schlecht und sinnfrei, dass hier selbst die Profis (die anderen hier im Thema) nicht damit klar kommen :stupid:

linomail 21. Jan 2017 20:02

AW: 5 Programmteile, Erklärung gesucht, bitte.
 
Warum machst du IntToString? ist das nötig um die Variable auszugeben?

Ja und dann versetz dich in meine Lage :D

Ich hoffe die Programmteile, in der Klausur, sind besser als die hier :D

a.def 21. Jan 2017 20:05

AW: 5 Programmteile, Erklärung gesucht, bitte.
 
Wenn man eine Variable welche eine positive oder negative Ganzahl beinhaltet lesbar ausgeben möchte, muss man diese erst in einen String ("Zeichenkette") umwandeln.
Dafür ist IntToStr da.

Zitat:

Zitat von linomail (Beitrag 1359536)
Ich hoffe die Programmteile, in der Klausur, sind besser als die hier :D

Das ist nichts gegen dich. Aber ich glaube wenn euch euer Lehrer nicht einmal IntToStr usw. als erstes beibringt und aber sofort zu Anwang so einen Käse mit den For-Schleifen und falschen Zuweiseungen ala "ch :=" dann sieht die Klausur wahrscheinlich düster aus.

Aviator 21. Jan 2017 20:08

AW: 5 Programmteile, Erklärung gesucht, bitte.
 
Zitat:

Zitat von linomail (Beitrag 1359536)
Warum machst du IntToString? ist das nötig um die Variable auszugeben?

Ja. Eine Integer Variable muss für die Ausgabe erstmal in einen String umgewandelt werden. Ansonsten bekommst du auch direkt einen Compiler Error wenn du nicht gerade den Format Befehl verwendest.

Zitat:

Zitat von a.def (Beitrag 1359535)
Delphi-Quellcode:
// Gibt aus:
// 5, 6, 7, 8, 9, 10, 11, 12

Also für mich sieht das so aus, als ob der Compiler die i + 3 zu einer, in deinem Fall, 8 umwandelt und das Hochzählen der Variable i innerhalb der Schleife ignoriert.

Rein logisch betrachtet wäre es eine Dauerschleife. Hier macht einem der Compiler aber einen Strich durch die "Logik".

Bei i + 3 handelt es sich ja im Prinzip um eine Konstante. Wenn du eine solche Schleife mal mit einer TObjectList nachbaust und pro Durchlauf ein Objekt erzeugst und immer bis List.Count zählst, dann sollte das der Erwartung einer Dauerschleife entsprechen. Es sei denn hier würde sich das Programm dann auch einmal den Count der Objekte zwischenspeichern und dann immer nur noch bis dorthin zählen. Das müsste ich jetzt auch testen. Kann ich so aus dem Kopf nicht sagen. :|


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:20 Uhr.
Seite 3 von 6     123 45     Letzte »    

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