AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Programm Hilfe

Ein Thema von boxer123 · begonnen am 18. Okt 2011 · letzter Beitrag vom 30. Okt 2011
Antwort Antwort
Seite 5 von 17   « Erste     345 6715     Letzte » 
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.328 Beiträge
 
Delphi 7 Personal
 
#41

AW: Programm Hilfe

  Alt 20. Okt 2011, 10:07
Ich geb zu das es nicht schön ist, aber es tut's:
Delphi-Quellcode:
var
  i : integer;
  liste: tstringlist;
  zahl1,zahl2,tmpzahl : string;
  zahlgros,
  zahlklein,
  differenz,
  altdifferenz : integer;
  cnt : integer;
begin
  liste:=tstringlist.Create;
  tmpzahl:=edit1.Text;
  differenz:=0;
  cnt:=0;
  repeat
    altdifferenz:=differenz;
    (*                            ** )
    liste.clear;
    ( * ************* *)
  
    for i:=1 to length(tmpzahl) do
      dummy1.add(tmpzahl[i]);
    dummy1.Sort;
    zahl1:='';
    zahl2:='';
    for i:=0 to liste.Count-1 do begin
      zahl1:=zahl1+dummy1[i];
      zahl2:=dummy1[i]+zahl2;
    end;
    zahlgros:=strtoint(zahl2);
    zahlklein:=strtoint(zahl1);
    differenz:=zahlgros-zahlklein;
    memo1.Lines.Add(tmpzahl+' / '+zahl2+'-'+zahl1+' = '+inttostr(differenz));
    tmpzahl:=inttostr(differenz);
    inc(cnt);
  until (altdifferenz=differenz) or (cnt >20);
  liste.Free;
end;
Das geht ganz gut ohne mod und div und kann ach mit 2,3,4,5,... stelligen Zahlen umgehen.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
807 Beiträge
 
Delphi XE2 Professional
 
#42

AW: Programm Hilfe

  Alt 20. Okt 2011, 12:30
@p80286:
Zitat:
Das geht ganz gut ohne mod und div und kann ach mit 2,3,4,5,... stelligen Zahlen umgehen.
Hast du das denn wirklich mal probiert.
So, wie der Code in deinem Beitrag steht, wird er nicht funktionieren.
Warum?: Weil du auf eine StringList "dummy1" zugreifst, die nicht deklariert ist.

Ich hab das ganze auch mal durchgespielt und bemerkt, daß bei allen 4-stelligen Zahlen 6174 als sich wiederholende Differenz herauskommt.
Also hab ich mal Tante Google bemüht und bin auf diesen Link gestoßen.
http://en.wikipedia.org/wiki/6174_(number)

So sieht mein Code aus:
(das in meinem Code angesprochene "meResult" ist ein TMemo)

Delphi-Quellcode:
PROCEDURE TForm1.Work(ss:string);
var r,s,t:string; len,i,j,res,old:integer; h:char;
begin
   res:=-1;
   len:=Length(ss);
   SetLength(t,len);
   repeat
      old:=res;
      s:=ss;
      // s sortieren
      for i:=1 to len-1 do
         for j:=i+1 to len do
            if s[i]>s[j] then begin
               h:=s[i];
               s[i]:=s[j];
               s[j]:=h;
            end;
      // s reverse in t stellen
      for i:=1 to len do t[len+1-i]:=s[i];
      res:=StrToInt(t)-StrToInt(s);
      // res als String mit führenden Nullen in r
      Str(res:len,r);
      for i:=1 to len do if r[i]=' then r[i]:='0else break;
      meResult.Lines.Add(ss+' : '+t+' - '+s+' = '+r);
      ss:=r;
   until (res=old) or (meResult.lines.count>30);
end;
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.328 Beiträge
 
Delphi 7 Personal
 
#43

AW: Programm Hilfe

  Alt 20. Okt 2011, 13:02
Jo da hast Du recht,
mit copy und paste bekommst Du den nicht zum laufen.
Aber jeder der ein wenig mit Pascal umgehen kann findet den Fehler sofort.

Gruß
K-H

Edith:
interessant, der Link, wenn man's mit 5stelligen Zahlen macht hast Du eine Endlosschleife die sich um drei Werte bewegt.
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector

Geändert von p80286 (20. Okt 2011 um 13:06 Uhr)
  Mit Zitat antworten Zitat
boxer123

Registriert seit: 18. Okt 2011
96 Beiträge
 
#44

AW: Programm Hilfe

  Alt 20. Okt 2011, 13:56
Closed

Geändert von boxer123 (20. Okt 2011 um 16:27 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
26.824 Beiträge
 
Delphi 10.3 Rio
 
#45

AW: Programm Hilfe

  Alt 20. Okt 2011, 14:00
Mach doch mal einen Schreibtischtest.

[edit] Kleiner Tipp: man kann ja auch von hinten nach vorn kopieren, wenn man schon unbedingt Strings verwenden will. [/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen

Geändert von DeddyH (20. Okt 2011 um 14:02 Uhr)
  Mit Zitat antworten Zitat
boxer123

Registriert seit: 18. Okt 2011
96 Beiträge
 
#46

AW: Programm Hilfe

  Alt 23. Okt 2011, 11:00
Was ergibt hier kein sinn?

Delphi-Quellcode:
var
  Form1: TForm1;
  i,j,zahl1,zahl2,differenz:integer;
  park,zahltext,zahltexteins,zahltextzwei:string;
  doppelt:boolean;
  a,b:array[1..4] of string;

implementation

{$R *.dfm}



procedure TForm1.Button1Click(Sender: TObject);
begin
zahltext:=edit1.text;
for i:=1 to 4 do
begin
//zerlegung
a[i]:=copy(zahltext,i,1);
b[i]:=copy(zahltext,i,1);
end;
// aufsteigend sortieren
for j:=1 to 4 do
if a[i]>=a[j] then begin
park:=a[i];a[i]:=a[j];a[j]:=park;
zahltexteins:=zahltext;// was in zahltext steht in zahltexteins speichern
end;
// absteigend sortieren
if b[i]<=b[j] then begin
park:=b[i];b[i]:=b[j];b[j]:=park;
zahltextzwei:=zahltext; // was in zahltext steht in zahltextzwei speichern
end;
differenz:=Strtoint(zahltexteins)-Strtoint(zahltextzwei);// differenz der beiden zahlen
edit2.text:=inttostr(differenz);// ausgabe
end;


end.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
34.931 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#47

AW: Programm Hilfe

  Alt 23. Okt 2011, 11:09
Was ist für dich der Sinn?

Bzw., wo ist das Problem?




Schonmal etwas von Codeformatierung/Codeausrichtung gehört?

Dabei würde dir auffallen, daß dir absteigende sortierung nicht sortieren kann, da sie sich nicht innerhalb der Schleife befindet.

Und wozu zahltexteins:=zahltext und das Andere innerhalb der Schleife?
Es verändert sich darin doch garnicht.



Was machst du mit den Werten in a und b? (nach der Sortierung)



Und warum die globalen Variablen, wo sie doch nur lokal (innerhalb der Prozedur) gnutzt werden
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
Delphi-Tage 2005-2014

Geändert von himitsu (23. Okt 2011 um 11:15 Uhr)
  Mit Zitat antworten Zitat
boxer123

Registriert seit: 18. Okt 2011
96 Beiträge
 
#48

AW: Programm Hilfe

  Alt 23. Okt 2011, 11:11
Ich denke es gibt kein problem in dem quelltext, aber wenn ich starte und eine 4stellige zahl im edit fenster eingebe, dann kommt project1 fehler oder so.

ich habe es mir so vorgestellt, wenn er was in zahltext drin ist geordnet hat,das soll er in zahltexteins speichern.

Geändert von boxer123 (23. Okt 2011 um 11:17 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
26.824 Beiträge
 
Delphi 10.3 Rio
 
#49

AW: Programm Hilfe

  Alt 23. Okt 2011, 11:16
Hast Du Dir einmal angeschaut, welchen Wert i nach der ersten Schleife hat?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
boxer123

Registriert seit: 18. Okt 2011
96 Beiträge
 
#50

AW: Programm Hilfe

  Alt 23. Okt 2011, 11:19
ah ja ihn wurde noch kein wert zugewiesen
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 12:46 Uhr.
Powered by vBulletin® Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2019 by Daniel R. Wolf