Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Was ist daran falsch? kleiner Quelltext zu Wundersame Zahlen, Zahl gerade oder ungera (https://www.delphipraxis.net/180932-ist-daran-falsch-kleiner-quelltext-zu-wundersame-zahlen-zahl-gerade-oder-ungera.html)

ZyzzFuuark 1. Jul 2014 18:28


Was ist daran falsch? kleiner Quelltext zu Wundersame Zahlen, Zahl gerade oder ungera
 
Wenn n gerade ist soll n/2 gerechnet werden, wenn n ungerade n*3+1, und das solange bis n=1 ist. Auch genannt Wundersame Zahlen


Delphi-Quellcode:
procedure TForm1.BitBtn1Click(Sender: TObject);
  VAR n:integer;
begin
  n:= strtofloat (e_zahl.Text);
  e_text.text:= floattostr(n);
  repeat
    if Odd(n) then n/2 else  n*3+1;
  until n=1;

end;

end.

cookie22 1. Jul 2014 18:37

AW: Was ist daran falsch? kleiner Quelltext zu Wundersame Zahlen, Zahl gerade oder un
 
Na du sollest n schon einen Wert zuweisen. ;)

Helmi 1. Jul 2014 18:42

AW: Was ist daran falsch? kleiner Quelltext zu Wundersame Zahlen, Zahl gerade oder un
 
Hallo,

du musst n auch den neuen Wert zuweisen:

Delphi-Quellcode:
procedure TForm1.BitBtn1Click(Sender: TObject);
var
  n: integer;

begin
  n:= strtofloat (e_zahl.Text);
  e_text.text:= floattostr(n); //sinnfrei, beinhaltet ja das gleiche wie Zeile drüber

  repeat
    If Odd(n) then
      n := n/2 
    else
      n := n*3+1;
  until n=1;
end;

Bummi 1. Jul 2014 18:47

AW: Was ist daran falsch? kleiner Quelltext zu Wundersame Zahlen, Zahl gerade oder un
 
neben der fehlenden Zuweisung ist auch das Prüfen auf ODD (ungerade) vertauscht

Delphi-Quellcode:
if ODD(n) then n := (n*3)+1 else n := n div 2 ;

Dejan Vu 1. Jul 2014 18:47

AW: Was ist daran falsch? kleiner Quelltext zu Wundersame Zahlen, Zahl gerade oder un
 
Kann mir mal einer erklären, wieso man einem
Delphi-Quellcode:
integer
Wert einen mit
Delphi-Quellcode:
StrToFloat
konvertierten String zuweist? Wäre
Delphi-Quellcode:
StrToInt
nicht marginal sinnvoller? :stupid:

Wussten Sie schon? Alle Zahlen sind 'wundersam'. Wird jedenfalls behauptet und keiner kann bisher das Gegenteil beweisen.

Sir Rufo 1. Jul 2014 19:14

AW: Was ist daran falsch? kleiner Quelltext zu Wundersame Zahlen, Zahl gerade oder un
 
Möchtest du noch mehr Threads zu diesem Thema aufmachen?
http://www.delphipraxis.net/180913-p...ammierung.html

ZyzzFuuark 1. Jul 2014 19:18

AW: Was ist daran falsch? kleiner Quelltext zu Wundersame Zahlen, Zahl gerade oder un
 
Ich kann halt nichts was programmieren angeht, aber nach disem programm habe ich es geschafft:P

Sir Rufo 1. Jul 2014 19:23

AW: Was ist daran falsch? kleiner Quelltext zu Wundersame Zahlen, Zahl gerade oder un
 
Zitat:

Zitat von ZyzzFuuark (Beitrag 1263994)
Ich kann halt nichts was programmieren angeht, aber nach disem programm habe ich es geschafft:P

Den eigenen Thread wiederfinden zählt für dich auch als Programmieren? :mrgreen:

ZyzzFuuark 1. Jul 2014 19:30

AW: Was ist daran falsch? kleiner Quelltext zu Wundersame Zahlen, Zahl gerade oder un
 
So war es eher nicht gemeint xD

himitsu 1. Jul 2014 20:23

AW: Was ist daran falsch? kleiner Quelltext zu Wundersame Zahlen, Zahl gerade oder un
 
Darf ich auch mitreden?

Zitat:

Was ist daran falsch?
  • Die [DELPHI][/DELPHI]-Tags kennst du?
  • Keine Fehlerbeschreibung. (was passiert eigentlich, was geht nicht ... z.B. Fehlermeldungen)
  • Das Compiler-Log sollte man schon lesen können, denn da wird gleich der erste Fehler genannt. (das erwähnte Float-in-Integer)
  • ...

Der schöne Günther 2. Jul 2014 07:50

AW: Was ist daran falsch? kleiner Quelltext zu Wundersame Zahlen, Zahl gerade oder un
 
Das erinnert mich an die Signatur von Memnarch:
Zitat:

Da man Trunc nicht auf einen Integer anwenden kann, muss dieser zuerst in eine Float kopiert werden :stupid:

ZyzzFuuark 2. Jul 2014 16:12

AW: Was ist daran falsch? kleiner Quelltext zu Wundersame Zahlen, Zahl gerade oder un
 
Liste der Anhänge anzeigen (Anzahl: 1)
Siehe Screenshot:)

irgendwie liegen die Probleme noch in der IF zeile, und muss ich nicht die abfrage gerade oder ungerade Zahl in einer function schreiben?

Blup 2. Jul 2014 16:31

AW: Was ist daran falsch? kleiner Quelltext zu Wundersame Zahlen, Zahl gerade oder un
 
Deine Funktion soll eigentlich nur mit ganzen Zahlen arbeiten.
Die Variable ist aber für Kommazahlen("Float") deklariert.
Der Operator "div" arbeitet aber nur mit ganzen Zahlen.

Ändere die Deklartion deiner Variablen auf "Integer" und "StrToFLoat" zu "StrToInt".
Delphi-Quellcode:
   if Odd(n) then // ist n ungerade ?
     {...}         // wenn die Bedingung erfüllt ist: tu dies
   else
     {...}         // andernfalls: mach das
   ;              // Ende der Anweisung

Sir Rufo 2. Jul 2014 16:35

AW: Was ist daran falsch? kleiner Quelltext zu Wundersame Zahlen, Zahl gerade oder un
 
Zitat:

Zitat von Blup (Beitrag 1264135)
Deine Funktion soll eigentlich nur mit ganzen Zahlen arbeiten.
Die Variable ist aber für Kommazahlen("Float") deklariert.
Der Operator "div" arbeitet aber nur mit ganzen Zahlen.

Ändere die Deklartion deiner Variablen auf "Integer" und "StrToFLoat" zu "StrToInt".
Delphi-Quellcode:
   if Odd(n) then // ist n ungerade ?
     {...}         // wenn die Bedingung erfüllt ist: tu dies
   else
     {...}         // andernfalls: mach das
   ;              // Ende der Anweisung

Nicht nur
Delphi-Quellcode:
div
sondern auch Delphi-Referenz durchsuchenOdd funktioniert nur mit
Delphi-Quellcode:
Integer
was der TE auch sehr leicht herausgefunden wenn er sich herabgelassen hätte in die Dokumentation zu schauen ... aber nach Dokumentation schauen hat bestimmt wieder was mit Programmieren zu tun, und das liegt ihm ja nicht so .... :roll:

Hoffentlich fällt Lesen nicht auch darunter ...

ZyzzFuuark 2. Jul 2014 16:42

AW: Was ist daran falsch? kleiner Quelltext zu Wundersame Zahlen, Zahl gerade oder un
 
Liste der Anhänge anzeigen (Anzahl: 1)
Dann halt Integer, dann geht aber trotzdem nichts:D...verdammt

Klaus01 2. Jul 2014 16:56

AW: Was ist daran falsch? kleiner Quelltext zu Wundersame Zahlen, Zahl gerade oder un
 
.. wenn die Ganzzahl n geteilt wird, dann wäre sie keine Ganzzahl mehr.
Du übergist aber n/2 an eine Ganzzahlvariable.

n := n div 2;

Grüße
Klaus

p80286 2. Jul 2014 17:00

AW: Was ist daran falsch? kleiner Quelltext zu Wundersame Zahlen, Zahl gerade oder un
 
ein
Delphi-Quellcode:
FloattoStr
auf ein
Delphi-Quellcode:
Integer
anwenden ist nun mal nicht so optimal.
Weiter oben wurde Dir schon einmal geraten
Delphi-Quellcode:
InttoStr
bzw
Delphi-Quellcode:
StrtoInt
zu nutzen.

Gruß
K-H

ZyzzFuuark 2. Jul 2014 17:03

AW: Was ist daran falsch? kleiner Quelltext zu Wundersame Zahlen, Zahl gerade oder un
 
Danke aber das Problemmeldung bei ELSE 'Inkompatible Typen String und Extended bleibt'

DeddyH 2. Jul 2014 17:19

AW: Was ist daran falsch? kleiner Quelltext zu Wundersame Zahlen, Zahl gerade oder un
 
Wieso String und Extended statt Integer und Extended? Du kannst einer ganzen Zahl keinen Wert zuweisen, den Du mit "/" dividiert hast, dafür musst Du DIV benutzen, wie oben schon genannt.

p80286 2. Jul 2014 17:21

AW: Was ist daran falsch? kleiner Quelltext zu Wundersame Zahlen, Zahl gerade oder un
 
Zitat:

Zitat von Klaus01 (Beitrag 1264140)
.. wenn die Ganzzahl n geteilt wird, dann wäre sie keine Ganzzahl mehr.
Du übergist aber n/2 an eine Ganzzahlvariable.

n := n div 2;

Grüße
Klaus

Das hast Du aber schon gelesen?

Gruß
K-H

himitsu 2. Jul 2014 17:27

AW: Was ist daran falsch? kleiner Quelltext zu Wundersame Zahlen, Zahl gerade oder un
 
Warum muß das immer als Bild angehängt werden, wenn man den "Text" der Fehlermeldungen (Compilermeldungen, Debuggermeldungen und sogar Fehlerdialogen) auch kopieren kann?

Ich finde jetzt jedenfalls nichts, so dein "String"-Fehler vorkommen soll und da man hier alle Bilder nicht vom Browser nach Texten durchsuchen kann, ist das auch nicht so einfach zu finden.

ZyzzFuuark 2. Jul 2014 18:21

AW: Was ist daran falsch? kleiner Quelltext zu Wundersame Zahlen, Zahl gerade oder un
 
Oder ich mache es einfach richtig
var
x, z : Int64;
begin
if TryStrToInt64(edit1.Text, x) then
x := strtoint(edit1.Text)
else
x := 0;
z := 0;
if (x = 0) or (x < 0) then
showmessage('Die Zahl muss mindestens 1 sein!')
else
begin
while (x>1) do
begin
if (x mod 2 = 0) then
begin
x:= x div 2;
Inc(z);
end
else
begin
x := x * 3 + 1;
Inc(z);
end;
label1.Caption := 'Nach ' + inttostr(z) + ' Schritten kommt 1 heraus.';
end;
end;
end;

Sir Rufo 2. Jul 2014 19:13

AW: Was ist daran falsch? kleiner Quelltext zu Wundersame Zahlen, Zahl gerade oder un
 
Aha, da hast du dir ja einen schönen Quellcode wo herkopiert.

Wirklich Ahnung hat dein Lieferant aber nicht, denn der Code kann erheblich gekürzt werden um dadurch an Lesbarkeit zu gewinnen. Dies zeigt vor allem, dass derjenige es auch mit dem Programmieren so hat.

Aber da es ja wohl eh eine Hausaufgabe ist, wird das schon passend sein ... einen Lerneffekt hattest du ja eh nicht erwartet ...

cookie22 2. Jul 2014 19:37

AW: Was ist daran falsch? kleiner Quelltext zu Wundersame Zahlen, Zahl gerade oder un
 
Zu Glück bist du kein Lehrer Sir Rufo, denn sonderlich motivierend sind deine Kommentare nicht, für einen Anfänger.

Sir Rufo 2. Jul 2014 19:46

AW: Was ist daran falsch? kleiner Quelltext zu Wundersame Zahlen, Zahl gerade oder un
 
Zitat:

Zitat von cookie22 (Beitrag 1264165)
Zu Glück bist du kein Lehrer Sir Rufo, denn sonderlich motivierend sind deine Kommentare nicht, für einen Anfänger.

Der TE hat nichts wo man motivierend ansetzen könnte, siehe selber:
Zitat:

Zitat von ZyzzFuuark (Beitrag 1263994)
Ich kann halt nichts was programmieren angeht, aber nach disem programm habe ich es geschafft:P

Aber du darfst dich da gerne betätigen und ich werde aufmerksam folgen. Ich bin gerne bereit etwas zu lernen - hier ist aber mMn die Geschichte in diesem Thread zu Ende.

Er war übrigens nie Anfänger, denn dafür fehlt einfach der Wille anzufangen.

cookie22 3. Jul 2014 01:42

AW: Was ist daran falsch? kleiner Quelltext zu Wundersame Zahlen, Zahl gerade oder un
 
Zitat:

Zitat von Sir Rufo (Beitrag 1264167)
Er war übrigens nie Anfänger, denn dafür fehlt einfach der Wille anzufangen.

Na, irgendwie hast du auch Recht.

ZyzzFuuark 3. Jul 2014 18:21

AW: Was ist daran falsch? kleiner Quelltext zu Wundersame Zahlen, Zahl gerade oder un
 
Ehlich gesagt ich hatte nie genug Zeit um mich intensiv mit Programmieren mich zu beschäftigen, als Info :D Nach der Abgabe von diesem Programm bin ich was das Thema Programmieren los...Wie alle in der Klasse froh darüber sind.:P

Der schöne Günther 3. Jul 2014 18:27

AW: Was ist daran falsch? kleiner Quelltext zu Wundersame Zahlen, Zahl gerade oder un
 
Schade, ich begann grade das Genie in dir zu entdecken.

Dejan Vu 3. Jul 2014 18:48

AW: Was ist daran falsch? kleiner Quelltext zu Wundersame Zahlen, Zahl gerade oder un
 
Zitat:

Zitat von ZyzzFuuark (Beitrag 1264328)
Ehlich gesagt ich hatte nie genug Zeit um mich intensiv mit Programmieren mich zu beschäftigen, als Info :D Nach der Abgabe von diesem Programm bin ich was das Thema Programmieren los...Wie alle in der Klasse froh darüber sind.:P

Dafür bist Du im sinnlosen Wiederholen von Wörtern einerseits und Weglassen andererseits sowie im dadaistischen Umgang mit der deutschen Grammatik nicht zu toppen.

theoneand 25. Jul 2014 15:10

AW: Was ist daran falsch? kleiner Quelltext zu Wundersame Zahlen, Zahl gerade oder un
 
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  value: integer;
  count: Integer;
begin
  count := 0;
  value := StrToInt(edit1.Text);
  repeat
    inc(count);
    if odd(value) then
      value := value * 3 + 1
    else
      value := value div 2;
  until value = 1;
  showmessage('Es hat ' + IntToStr(count) + ' Versuche gebraucht');
end;
man kannst auch unnötig kompliziert machen

Dejan Vu 25. Jul 2014 16:25

AW: Was ist daran falsch? kleiner Quelltext zu Wundersame Zahlen, Zahl gerade oder un
 
Das unterscheidet sich jetzt nicht gravierend von der Lösung in #22, außer, das Deine Lösung für n=1 ein falsches Ergebnis liefert.

Captnemo 28. Jul 2014 09:18

AW: Was ist daran falsch? kleiner Quelltext zu Wundersame Zahlen, Zahl gerade oder un
 
Zitat:

Zitat von ZyzzFuuark (Beitrag 1264328)
Ehlich gesagt ich hatte nie genug Zeit um mich intensiv mit Programmieren mich zu beschäftigen, als Info :D Nach der Abgabe von diesem Programm bin ich was das Thema Programmieren los...Wie alle in der Klasse froh darüber sind.:P

Ist die DP jetzt dazu da, um irgendwelchen unmotivierten Schülern das vorzukauen, was sie mangels Aufmerksamkeit im Unterricht versäumt haben? Ich hoffe mal nicht.

p80286 28. Jul 2014 10:07

AW: Was ist daran falsch? kleiner Quelltext zu Wundersame Zahlen, Zahl gerade oder un
 
Zitat:

Zitat von Captnemo (Beitrag 1266781)
Zitat:

Zitat von ZyzzFuuark (Beitrag 1264328)
Ehlich gesagt ich hatte nie genug Zeit um mich intensiv mit Programmieren mich zu beschäftigen, als Info :D Nach der Abgabe von diesem Programm bin ich was das Thema Programmieren los...Wie alle in der Klasse froh darüber sind.:P

Ist die DP jetzt dazu da, um irgendwelchen unmotivierten Schülern das vorzukauen, was sie mangels Aufmerksamkeit im Unterricht versäumt haben? Ich hoffe mal nicht.

Wohl eher nicht, ich seh es als Anregung mal etwas anderes zu sehen als knarzige Datenbankschnittstellen und Fehlermeldungen, deren Informationsgehalt gegen Null geht.
Außerdem ist es immer wieder interessant welche Euphemismen in solchen Beiträgen auftauchen. Auch ich habe nicht genug Zeit mich, wie es wünschenswert wäre, um Programmierung zu kümmern, trotzdem scheint es qualitative Unterschiede in der Zeitnutzung zu geben.:mrgreen:

Gruß
K-H

Captnemo 28. Jul 2014 14:13

AW: Was ist daran falsch? kleiner Quelltext zu Wundersame Zahlen, Zahl gerade oder un
 
Zitat:

Zitat von p80286 (Beitrag 1266784)
Zitat:

Zitat von Captnemo (Beitrag 1266781)
Zitat:

Zitat von ZyzzFuuark (Beitrag 1264328)
Ehlich gesagt ich hatte nie genug Zeit um mich intensiv mit Programmieren mich zu beschäftigen, als Info :D Nach der Abgabe von diesem Programm bin ich was das Thema Programmieren los...Wie alle in der Klasse froh darüber sind.:P

Ist die DP jetzt dazu da, um irgendwelchen unmotivierten Schülern das vorzukauen, was sie mangels Aufmerksamkeit im Unterricht versäumt haben? Ich hoffe mal nicht.

Wohl eher nicht, ich seh es als Anregung mal etwas anderes zu sehen als knarzige Datenbankschnittstellen und Fehlermeldungen, deren Informationsgehalt gegen Null geht.
Außerdem ist es immer wieder interessant welche Euphemismen in solchen Beiträgen auftauchen. Auch ich habe nicht genug Zeit mich, wie es wünschenswert wäre, um Programmierung zu kümmern, trotzdem scheint es qualitative Unterschiede in der Zeitnutzung zu geben.:mrgreen:

Gruß
K-H

Naja, aber die Tatsache, dass der TE in seinen Beiträgen sämtliche Rechtschreibung außer acht lässt, lässt darauf schließen, dass er auch dafür keinerlei Zeit erübrigen kann (Okay, kann mahl pssieren wenn mann schnell schreipt :mrgreen:). Aber dass leider meist auch ganze Wörter fehlen, unterstützt diese Annahme.
Und die Tatsache, dass der TE auch die Hinweise bezüglich der -Tags auch noch komplett ignoriert, lässt den Schluss zu, dass er auch die Antworten nicht wirklich liest.
Entschuldigung, ich will keinem auf die Füße treten, aber das finde ich schon sehr oberflächlich.
Andere nehmen sich für eine Hilfestellung Zeit, aber er hat für so was keine Zeit...:gruebel:

Leuten zu helfen, die Anfänger sind bzw. sich in das Thema "Programmierung" einarbeiten wollen, und noch viele Verständnisfragen haben, ist kein Ding. Mache ich auch gerne.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:29 Uhr.

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