AGB  ·  Datenschutz  ·  Impressum  







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

Collatz Zahlenfolge ausgeben

Ein Thema von Pentuss · begonnen am 18. Jan 2018 · letzter Beitrag vom 19. Jan 2018
Antwort Antwort
Pentuss

Registriert seit: 18. Jan 2018
1 Beiträge
 
#1

Collatz Zahlenfolge ausgeben

  Alt 18. Jan 2018, 18:04
Hallo.
Ich will ein Programm schreiben, dass die Collatz Zahlenfolge ausgeben kann. Ich will diese Zahlenfolge bis auf ein ntes Folgeglied in einem StrinGrid ausgeben lassen. Bitte helft mir xD. Ich komme mit dem ausgeben nicht so klar.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var x,z:int64;
    i,y:integer;

begin
  i := StrToInt(Edit2.text);
  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;
         label4.caption := 'Nach ' + IntToStr(z) +' Schritten kommt 1 heraus.';

if (x = 0) or (x < 0) then
     begin
       while (x > 1) do
       begin
         if (x mod 2 = 0) then
         begin
           x := x div 2;
         end
         else
         begin
          for y := 1 to i do
          begin
           x := x * 3 + 1;
          end;

          end;
         end;
       end;
end.
Danke schonmal im vorraus

Ich habe doch glatt vergessen zu sagen das der obere Teil dazu dient herauszufinden wann dieses typische Muster 4 2 1 auftaucht.

Geändert von TBx (18. Jan 2018 um 19:29 Uhr) Grund: Titel angepaßt, Delphi-Tags eingefügt
  Mit Zitat antworten Zitat
18. Jan 2018, 19:27
Dieses Thema wurde am "18. Jan 2018, 20:27 Uhr" von "TBx" aus dem Forum "Neuen Beitrag zur Code-Library hinzufügen" in das Forum "Programmieren allgemein" verschoben.
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#3

AW: Collatz Zahlenfolge ausgeben

  Alt 18. Jan 2018, 19:32
Auf den ersten Blick fallen mir hier schonmal ein paar Stellen ins Auge:
Delphi-Quellcode:
if TryStrToInt64(Edit1.text, x) then
     x := StrToInt(Edit1.text) else
     x := 0;
     z := 0;
Block vergessen?

if (x = 0) or (x < 0) then
Delphi-Quellcode:
if (x = 0) or (x < 0) then
     begin
       while (x > 1) do
Logik?

Ansonsten solltest du deinen Code evtl. mal korrekt einrücken, dann sieht man viele Fehler schon auf Anhieb. Als Anfänger ist es zudem manchmal hilfreich um jeden Block ein begin..end zu setzen (auch, wenn nur ein Befehl folgt).
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.140 Beiträge
 
Delphi 12 Athens
 
#4

AW: Collatz Zahlenfolge ausgeben

  Alt 19. Jan 2018, 10:20
Block vergessen?
Nee, du hast das ELSE übersehn.

Umformatiert:
Delphi-Quellcode:
if TryStrToInt64(Edit1.text, x) then
  x := StrToInt(Edit1.text)
else
  x := 0;
z := 0;
So isses doch schöner?
Delphi-Quellcode:
if not TryStrToInt64(Edit1.text, x) then
  x := 0;
z := 0;
Oder einfach nur
Delphi-Quellcode:
x := StrToInt64Def(Edit1.text, 0);
z := 0;
Die ENDs am Ende passen optisch auch nicht zum Code darüber, vorallem die beiden aufeinanderfolgenden END in der selben Ebene.


Zitat:
in einem StrinGrid ausgeben lassen. Bitte helft mir xD. Ich komme mit dem ausgeben nicht so klar.
Ich glaub dir, dass es nicht funktioniert. Konnte im Code garnichts von einem StrinGrid finden (nichtmal einen Versuch) ... da kann ja nichts gehn.

Delphi-Referenz durchsuchenTStringGrid.Cells
Delphi-Referenz durchsuchenTStringGrid.Rows
Delphi-Referenz durchsuchenTStringGrid.RowCount
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

Geändert von himitsu (19. Jan 2018 um 10:27 Uhr)
  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 05:38 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