Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Zahlenfolge umformen? (https://www.delphipraxis.net/102796-zahlenfolge-umformen.html)

bberger1234 5. Nov 2007 09:42


Zahlenfolge umformen?
 
Hallo.
Bin neu hier und benötige dringend Hilfe in Delphi (verwende Borland Delphi 2005).
Bin leider ein völliger Anfänger in diesem Gebiet (aber unser Lehrer verlangt das halt)
Und zwar möchte ich gerne wissen wie man eine Zahlenfolge umformt, ohne die Reihenfolge zu verändern?
Also zum beispiel 15524 in 55241, 52415, 24155, 41552 umformen.
Alle Umformungen müssen sich "gemerkt" und miteinander verglichen werden.
Wäre für Hilfe echt sehr sehr dankbar.

chrisw 5. Nov 2007 09:54

Re: Zahlenfolge umformen?
 
Also, der Algo sollte in etwa so aussehen

zahl = "die umzudrehende Zahl"
zähler = 1;
ergebnis = leer; ("");
so oft wie Zahl lang ist mache folgendes:
nehme von der Zahl die Stelle von zähler und schreibe sie in ergebnis an die 1. Stelle.
erhöhe den Zähler um 1;
ende der schleife.
schreibe ergebnis und vergleiche


Ich denke, jetzt dürfte es aber leicht sein.


Chris

b1zZ 5. Nov 2007 09:59

Re: Zahlenfolge umformen?
 
Hallo und Willkommen in der DP.

Deinen Beispiel Zahlen zufolge wird nur die 1te Zahl nach hinten gestellt.
Das kannst du z.B. mithilfe von copycopy zusammenbasteln (musst es aber vorher in einen String gewandelt werden).
Die Ergebnisse kannst du dann entweder in einer TStringList oder in einem Array merken. Diese kannst du dann anhand einer For-Schleife ganz leicht miteinander vergleichen.
Nun hast du nicht geschrieben wie weit ihr bzw. du mit Delphi seid, aber ich geh mal davon aus du bist kompletter Anfänger, deswegen würd ich dir DSDT.info empfehlen.

Lies dir es durch und wenn du dann immernoch nicht weiterkommst, poste deinen Fortschritt und wo dein Problem liegt, dann wird dir hier sicher geholfen.

Nikolas 5. Nov 2007 10:00

Re: Zahlenfolge umformen?
 
Vielleicht sollte man noch mit einem mod dafür Sorgen, dass man nicht über das Ende des Strings rausläuft, sonst wird man für zähler<>0 zu Beginn keinen Spaß haben.

bberger1234 6. Nov 2007 15:46

Re: Zahlenfolge umformen?
 
Danke erstmal für eure Hilfen. Leider kann ich damit nicht viel anfangen. Kann vielleciht jemand etwas konkreter werden und mir sagen wie das dann im Delphi-Quelltext lauten muss? Bin wirklich absolute Anfängerin.

Klaus01 6. Nov 2007 16:06

Re: Zahlenfolge umformen?
 
Hallo,

ein kleiner Ansatz:

Im Edit1.Text steht die Zahlenfolge.
Die Schritte werden im Memo dokumentiert.

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  i,j:Byte;
  DummyChar: char;
  DummyString:String;
begin
  for i:=1 to length(edit1.Text) do
    begin
      DummyString:='';
      Memo1.Lines.add(Edit1.Text);
      DummyChar:=Edit1.text[1];
      for j:= 2 to length(Edit1.Text) do
        DummyString:=DummyString+Edit1.text[j];
      DummyString:=DummyString+dummyChar;
      Edit1.Text:=DummyString;
    end;
end;
Grüße
Klaus

bberger1234 6. Nov 2007 16:14

Re: Zahlenfolge umformen?
 
Danke für deine Hilfe, funktioniert aber leider nicht. Die Memo1 bleibt bei mir leer.

Klaus01 6. Nov 2007 16:18

Re: Zahlenfolge umformen?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hast Du ein Editfeld auf Deiner Form?
Hast Du ein Memofeld auf Deiner Form?

Grüße
Klaus

bberger1234 6. Nov 2007 16:23

Re: Zahlenfolge umformen?
 
Ja. Habe eine Editbox1 und eine Memo1 auf dem Formular. und natürlich nen Button.

Klaus01 6. Nov 2007 16:24

Re: Zahlenfolge umformen?
 
Auch einen Button?

Zeige doch mal Deinen Code.

Grüße
Klaus

bberger1234 6. Nov 2007 16:31

Re: Zahlenfolge umformen?
 
Hey. Wahnsinn es funktioniert!! Habe mal ein komplett neues Formular angelegt und da ging es.
Kannst du mir bitte auch verraten wie ich eine buchstabenfolge mit sechs verschiedenen Buchstaben die Zahlen 0-5 zuordne?

Klaus01 6. Nov 2007 16:34

Re: Zahlenfolge umformen?
 
Im Prinzip hast Du ja schon eine Zuordnung.
Die Position in dem String.

edit1.Text[1]
Edit1.Text[2]
usw.

Oder Du nimmst Den Zahlenwert.

wert:=StrToInt(Edit1.Text[1]);

Grüße
Klaus

bberger1234 6. Nov 2007 16:39

Re: Zahlenfolge umformen?
 
Ich meinte aber das jeden der 6 Strings (Also in meinen Fall Buchstaben) soll eine Zahl (Integer, richtig?)zugeordnet werden. Also zum Beispiel a-0, g-1, j-2, d-3, v-4, l-5

Klaus01 6. Nov 2007 17:28

Re: Zahlenfolge umformen?
 
Zitat:

Zitat von bberger1234
Ich meinte aber das jeden der 6 Strings (Also in meinen Fall Buchstaben) soll eine Zahl (Integer, richtig?)zugeordnet werden. Also zum Beispiel a-0, g-1, j-2, d-3, v-4, l-5

Was ist denn da wieder so schwer verständlich.

Angenommen Du hast einen String "agjdvi"
Dann ist a auf der Position 1
g auf der Position 2
usw.

Wenn Du dann von der Position 1 eine 1 abziehst hast Du die Zahl.
Du mußt Dir dann nur den Originalstring merken, sonst weißt Du nicht
welche Position der Buchstabe zu Anfang in Deinem String hatte.

Um die Position eines bestimmten Buchstaben in einem String zu ermitteln
dazu kannst Du die Funktion pos benutzen.
Wenn Du nicht weißt wie Du diese Funktion benutzen kannst, in der Hilfe
ist sie recht gut erklärt, es sollte sogar ein Beispiel dabei sein.

Grüße
Klaus

bberger1234 6. Nov 2007 17:44

Re: Zahlenfolge umformen?
 
Danke. Habe das mit den Umwandeln jetzt hinbekommen.
Was muss eigentlich an dem oberen Quelltext geändert werden wenn die Zahlenfolge zusätzlich auch anders herum, umgeformt werden soll? also zum Beispiel aus der Folge 012345, die Folge 543210 machen und von dieser wiederum alle Umformungen erstellen?

Klaus01 6. Nov 2007 17:47

Re: Zahlenfolge umformen?
 
Du läufst mit der for Schleife von hinten durch den String.

sollte in etwas so gehen.

Delphi-Quellcode:
for i:=length(Edit1.Text) downto 1 do
  begin
    DummyString:=DummyString+Edit1.Text[i];
  end;
Grüße
Klaus


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:20 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