AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

5 Programmteile, Erklärung gesucht, bitte.

Ein Thema von linomail · begonnen am 21. Jan 2017 · letzter Beitrag vom 22. Jan 2017
Antwort Antwort
nahpets
(Gast)

n/a Beiträge
 
#1

AW: Hilfe

  Alt 21. Jan 2017, 19:28
Das sind keine Hausaufgaben, Ich habe diese Porgrammteile aaus einem Script von der Hochschule Osnabrück.

@himitsu welche Schreibfehler in dem Code oder was ich geschrieben habe?
Schreibfehler in der Aufgabenstellung.
Hätte nicht erwartet dass hier soein ähnliches Thema ist Sorry aber was soll ich denn jetzt ändern versteh ich nicht.
Die Welt ist halt klein
@nahpets aufgabe 2: Asso also zählt er i hoch bis er 3 erreicht hat? und darum wird es 3 mal ausgegeben? Aber ist i+1 wirklich von nöten. Ich meine vorhin als ich das ganze auf ideone.com nachprogrammiert habe, habe ich i nicht eins hochzählen lassen und kam auf das selbe ergebnis
i wird ebenso wie ik in jedem Schleifendurchlauf erhöht.
Also
Delphi-Quellcode:
ik := ik + 1;
i := i + 1;
Wann wird hier wohl ik = i + 3 erreicht werden. Bevor die Sonne in 'ner Supernova das zeitliche segnet oder eher nachher? Wenn vorher, erkläre bitte wieso, und sag' nicht beim nächsten Stromausfall
Aufgabe 3: Also ein leerzeichen? ich meine der schreibt ja immer nur ein leerzeichen rein? Aber er gibt nur den letzten an von der Datei oder?
Wieso Leerzeichen? Was ist denn als letzte Zeichen gelesen worden? Und kann das zwischen dem Lesen und Ausgeben noch geändert werden?
Aufgabe 4: Ja bei der war ich mir iwie sicher also hab ich das nachprogrammiert. Aber ich glaube ich verstehe iwie repeat nicht ich meine i ist ja -2 aber der Wert wird ja nicht verändert also ich meine wie soll i größer als 0 werden?
Eben, wie? Kann es denn? Wenn ja, hätte ich bitte eine plausible Erklärung dafür. (Such doch mal mit der Suchmaschinen Deiner Wahl nach Endlosschleife.)
Als ich das nachprogrammiert habe gab er erst aus ABC - und dann gefühlt 100 mal ABC -2. Aus der werde ich echt nicht schlau
Interessant, wenn das überhaupt schon aufgehört hat mit der Ausgabe, müsste eigentlich (wie oben vermutet) bis ans Ende des Seins weiterlaufen.
Aufgabe 5: Also wenn meine Vermutung dann richtig ist dann "1433" ?
Nein: Kopiere von Position eins beginnend vier Zeichen und kopiere von Position drei an drei Zeichen? Was kommt da raus?
Aufgabe 6: Ach ich meint i und j waren 1 und 90
2 und 45
2 und 90
müsste doch eigentlich richtig sein
Jo, Ausgabefehler beseitigt.
  Mit Zitat antworten Zitat
linomail

Registriert seit: 21. Jan 2017
18 Beiträge
 
#2

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

  Alt 21. Jan 2017, 19:48
@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 ??
  Mit Zitat antworten Zitat
a.def
(Gast)

n/a Beiträge
 
#3

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

  Alt 21. Jan 2017, 19:49
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.

Geändert von a.def (21. Jan 2017 um 19:53 Uhr)
  Mit Zitat antworten Zitat
Aviator

Registriert seit: 3. Jun 2010
1.611 Beiträge
 
Delphi 10.3 Rio
 
#4

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

  Alt 21. Jan 2017, 19:52
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;
  Mit Zitat antworten Zitat
a.def
(Gast)

n/a Beiträge
 
#5

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

  Alt 21. Jan 2017, 19:56
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).
  Mit Zitat antworten Zitat
linomail

Registriert seit: 21. Jan 2017
18 Beiträge
 
#6

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

  Alt 21. Jan 2017, 19:59
ja bei mir war es auch keine endlosschleife
  Mit Zitat antworten Zitat
a.def
(Gast)

n/a Beiträge
 
#7

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

  Alt 21. Jan 2017, 20:00
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
  Mit Zitat antworten Zitat
linomail

Registriert seit: 21. Jan 2017
18 Beiträge
 
#8

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

  Alt 21. Jan 2017, 20:02
Warum machst du IntToString? ist das nötig um die Variable auszugeben?

Ja und dann versetz dich in meine Lage

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

Geändert von linomail (21. Jan 2017 um 20:04 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#9

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

  Alt 21. Jan 2017, 20:13
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
Wo kommt das i := 5; her?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#10

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

  Alt 21. Jan 2017, 20:12
@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.
Die Sinnfrage ist hier, den Unsinn zu erkennen
Nimm Dir bitte ein Stück Papier, ruhig ein großes und schreibe für jeden Schleifendurchlauf auf, welchen Inhalt jeweils ik und i haben, zuzüglich i + 3.
Gehen wir davon aus, dass i bei 1 beginnt.
Also sowas:
Anfang:
ik := 1;
i := 1;
i + 3 := 4;
1. Schleifendurchlauf:
ik := 2;
i := i + 1 -> = 2
i + 3 := 2 + 3;
2. Schleifendurchlauf:
ik := 3;
i := i + 1 -> = 3
i + 3 := 3 + 3;

Wann wird wokl ik = i + 3 erreicht sein?
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 " ".
ja
Aufgabe 5: STR 2:= 1234345 ??
Nein.
Str2 wird zweimal eine Teilzeichenfolge zugewiesen. Welche wird am Ende übrigbleiben?

Zitat von a.def:
Die Aufgabe ist so schlecht und sinnfrei, dass hier selbst die Profis (die anderen hier im Thema) nicht damit klar kommen
Wie kommst Du denn zu dieser steilen Aussage?

Die Routine ist sicherlich nicht wirklich sinnvoll, aber es könnte ja der Sinn der Aufgabe sein, genau dieses zu erkennen. Und das scheint ja wohl nicht so ganz einfach zu sein.

Übrigens: Delphi arbeitet hier anders, als z. B. Pascalscript. Delphi wertet am Anfang der For-Schleife i + 3 aus und läuft dann durch die Schleife. Aber bei anderen Programmiersprachen kann i im Ablauf der Schleife durchaus erhöht werden. Unter DOS half dann nur der Affengriff. Bei Pascalscript unter Windows brauchst Du den Taskmanager.

Wenn ich mal was habe "offiziell" zwecks Programmierung lernen müssen, dann waren da auch immer fehlerhafte Quelltextfragmente bei. Es war Aufgabe, diese Fehler zu erkennen. So pauschal unsinnig ist das meiner Meinung nach nicht. Könnt aber um längen besser sein.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:32 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz