Autor |
Beitrag |
boxer123
Beiträge: 68
Erhaltene Danke: 2
|
Verfasst: Di 18.10.11 16:22
Guten Tag erstmal.
Ich soll ein Programm schreiben, also das Programm soll so ausehen. Wenn man das Programm startet und dann eine 4 stellige Zahl eintippt. Und dann auf start button drückt soll er folgenden Algorhytmus durchführen.
6957 /9675-5679=3996
3996 /9963-6399=3564
3564 /6543-3456=3087
3087 /8730-0378=8352
8352 /8532-2358=6174
6174 /7641-1467=6174
der schrägstrich soll kein division sein
Also wie man sieht tippt man die zahl 6957 ein und er soll am ende sagen bis es nicht mehr geht und dann die letzte zahl ausgeben im edit Fenster
Zuletzt bearbeitet von boxer123 am Di 18.10.11 16:32, insgesamt 1-mal bearbeitet
|
|
Martok
Beiträge: 3661
Erhaltene Danke: 604
Win 8.1, Win 10 x64
Pascal: Lazarus Snapshot, Delphi 7,2007; PHP, JS: WebStorm
|
Verfasst: Di 18.10.11 16:27
Hallo und in der Entwickler-Ecke!
Ich muss dich gleich mal ermahnen: Ein Problem mit Delphi haben hier fast alle - bitte ändere den Titel des Topics, damit er ein wenig über das eigentliche Thema verrät. Hier der entsprechende Absatz aus den Richtlinien:
1.2 Beiträge: | Bitte formuliere den Betreff Deiner Beiträge so, dass andere Mitglieder anhand dieser bereits das eigentliche Thema festmachen können. Beiträge wie etwa "Eine Anfängerfrage" oder "Weiß jemand, wie das geht?" lassen den Leser im Unklaren darüber, was das Thema der Diskussion ist. [...] |
Einfach unten in deinem ersten Beitrag auf klicken und den Titel ändern.
Was hast du denn schon, wo gehts nicht weiter? So ganz ohne Informationen können wir dir nicht sinnvoll helfen...
Viele Grüße,
Martok
_________________ "The phoenix's price isn't inevitable. It's not part of some deep balance built into the universe. It's just the parts of the game where you haven't figured out yet how to cheat."
|
|
Horschdware
Beiträge: 744
Erhaltene Danke: 54
Win XP Pro, Win 7 Pro x64
Delphi 7, Delphi XE, C++ Builder 5, SAP R/3
|
Verfasst: Di 18.10.11 16:29
Hu... erst einmal sortieren und verstehen was los ist.
Der Benutzer gibt eine vierstellige Zahl ein.
Dann wird sechs mal gerechnet
a/b-c=d
Dabei gilt:
b enthält alle Ziffern von a, der Größe nach absteigend sortiert
c ist b rückwärts
a erhält bei jeder neuen Iteration den Wert von d aus der jeweils vorherigen.
Um das umzusetzen brauchst du:
- Ein Eingabefeld
- Eine Iterationsschleife
- Umwandlung einer Zahl in einen String
- Sortierung von Zeichen innerhalb eines Strings
- Umwandlung eines Strings in eine Zahl
Sollte sich hier alles im Forum finden lassen
Dann nur noch im Baukastenverfahren zusammensetzen
_________________ Delphi: XE - OS: Windows 7 Professional x64
|
|
boxer123
Beiträge: 68
Erhaltene Danke: 2
|
Verfasst: Di 18.10.11 16:33
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21:
| var Form1: TForm1; zahl:array[1..6] of integer; zahl1:integer; doppelt:Boolean;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject); begin zahl1:=Strtoint(edit1.text); cop:=zahl1 repeat zahl1:=max-min; until doppelt; edit1.text:=inttostr(edit1.text); end;
end. |
Moderiert von Christian S.: Delphi-Tags hinzugefügt
|
|
boxer123
Beiträge: 68
Erhaltene Danke: 2
|
Verfasst: Di 18.10.11 16:35
|
|
Horschdware
Beiträge: 744
Erhaltene Danke: 54
Win XP Pro, Win 7 Pro x64
Delphi 7, Delphi XE, C++ Builder 5, SAP R/3
|
Verfasst: Di 18.10.11 16:40
Ah, ok. Dein Eingangsbeitrag war da ein wenig schwammig.
Es soll also gerechnet werden
>
a = Zn absteigende Ziffern
b = Zn aufsteigende Ziffern
Zn+1 = a - b
< bis Zn = Zn+1
Oh interessant. Das kann man ja so direkt in Code umsetzen ;-p
PS: Ohne das jetzt tiefer analysiert zu haben: Ist denn überhaupt sichergestellt, dass irgedwann immer die gleiche Zahl rauskommt? Wenn nein, sollte man da vielleicht noch einen Zähler mitlaufen lassen, der das Ganze irgendwann einmal abbricht.
_________________ Delphi: XE - OS: Windows 7 Professional x64
|
|
boxer123
Beiträge: 68
Erhaltene Danke: 2
|
Verfasst: Di 18.10.11 16:49
|
|
Gammatester
Beiträge: 328
Erhaltene Danke: 101
|
Verfasst: Di 18.10.11 16:56
Ein Algorithmus ist normalerweise eine eindeutige Vorschrift. Raten hilft nicht viel:
In 9675 sind die Ziffern nicht sortiert, 9963 und 6399 ist nicht zu einander revers. Das sind keine Tippfehler, da die Differenzen stimmen.
Außerdem wäre zu prüfen, ob das Ganze immer bei einer Fixzahl ankommt.
Für diesen Beitrag haben gedankt: Horschdware
|
|
Horschdware
Beiträge: 744
Erhaltene Danke: 54
Win XP Pro, Win 7 Pro x64
Delphi 7, Delphi XE, C++ Builder 5, SAP R/3
|
Verfasst: Di 18.10.11 16:58
Zunächst einmal kann man hier im Forum Code in Delphi Tags
[ delphi ] und [/ delphi] (ohne Leerzeichen) klammern. Das sieht gleich lesbarer aus.
Zum anderen hilft es, wenn man das Problem mit ein paar mehr Worten umschreibt als "Code, Fehler".
Ganze Sätze helfen da ungemein.
Zum Dritten:
boxer123 hat folgendes geschrieben : |
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21:
| var Form1: TForm1; zahl:array[1..6] of integer; a,b:integer; doppelt:Boolean;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject); begin a:=strtofloat(edit1.text); b:=strtofloat(edit2.text); cop:=zahl1 repeat Zn+1 = a - b until Zn = Zn+1
edit1.text:=inttostr(edit1.text); end; |
|
"Man kann dieses Verfahren direkt umsetzen" heisst nicht "Kopiere diesen Text und verwende ihn so, denn es ist gültiger Delphi-Quellcode."
So gibt es bei dir beispielsweise keine Variable "Z", auch kein "Zn" oder ähnliches, obwohl du versuchst mit einer solchen zu arbeiten.
edit: Ich sehe gerade den Beitrag von Gammatester. Stimmt! Das mit den gedrehten Zahlen stimmt nicht.
Dann wäre der aller erste Punkt (bevor überhaupt eine Zeile Code geschrieben wird) der, dass klargestellt wird, wie dieser Algorithmus läuft!
_________________ Delphi: XE - OS: Windows 7 Professional x64
|
|
boxer123
Beiträge: 68
Erhaltene Danke: 2
|
Verfasst: Di 18.10.11 17:03
wie heißt der befehl der eine 4stelleige zahl zerhackt
|
|
Hobby-Programmierer
Beiträge: 238
Erhaltene Danke: 4
Win XP Pro, Vista Ultimate Trial :o)
D6 Pro, D7 Pro, Turbo, XE SE
|
Verfasst: Di 18.10.11 17:04
... schau mal in der Hilfe unter 'POS'
- mit Copy kopieren.
Zuletzt bearbeitet von Hobby-Programmierer am Di 18.10.11 17:06, insgesamt 1-mal bearbeitet
|
|
Horschdware
Beiträge: 744
Erhaltene Danke: 54
Win XP Pro, Win 7 Pro x64
Delphi 7, Delphi XE, C++ Builder 5, SAP R/3
|
Verfasst: Di 18.10.11 17:05
So?
function hackebeil(hack : integer) : integer;
Spaß beiseite: Es gibt unzählige Möglichkeiten, wie du eine vierstellige Zahl verändern kannst.
Welche der unendlich vielen Möglichkeiten darfs denn nun sein?
_________________ Delphi: XE - OS: Windows 7 Professional x64
|
|
boxer123
Beiträge: 68
Erhaltene Danke: 2
|
Verfasst: Di 18.10.11 17:07
ich dachte der befehl ist cop. Er muss ja die 4stellige zahl zerhacken und dann mit bubblesort ordnen oder. Aber wie heißt der befehl
|
|
Hobby-Programmierer
Beiträge: 238
Erhaltene Danke: 4
Win XP Pro, Vista Ultimate Trial :o)
D6 Pro, D7 Pro, Turbo, XE SE
|
Verfasst: Di 18.10.11 17:10
Was verstehst du unter zerhacken?
Wenn du zerlegen meinst geht das mit Copy. Siehe Delphi-Hilfe
|
|
boxer123
Beiträge: 68
Erhaltene Danke: 2
|
Verfasst: Di 18.10.11 17:11
|
|
Horschdware
Beiträge: 744
Erhaltene Danke: 54
Win XP Pro, Win 7 Pro x64
Delphi 7, Delphi XE, C++ Builder 5, SAP R/3
|
Verfasst: Di 18.10.11 17:13
Ich glaube hier ist eher gemeint, wie man auf die einzelnen Ziffern zugreifen und diese dann sortieren kann.
An sich musst du nur die Zahl in einen String konvertieren und diesen dann zeichenbasiert sortieren. Wie das geht findest du wieder im Forum. Ich glaube aber nicht, dass dir das weiterhelfen wird, da ja bereits dein Beispiel zeigt, dass die Zahlen nicht sortiert sind.
Ach ja: Delphi Hilfe - F1 drücken
_________________ Delphi: XE - OS: Windows 7 Professional x64
|
|
Hobby-Programmierer
Beiträge: 238
Erhaltene Danke: 4
Win XP Pro, Vista Ultimate Trial :o)
D6 Pro, D7 Pro, Turbo, XE SE
|
Verfasst: Di 18.10.11 17:14
Das einfachste ist wenn du in der IDE 'copy' eingibst und F1 drückst.
Oder in der Delphipraxis, die kennst du ja, gibt es die Delphi Referenz.
docwiki.embarcadero.com/VCL/de/System.Copy
@Horst
Sorry, habe die anderen Beiträge nicht gelesen und ich dachte soweit wart ihr schon.
@Boxer
-Natürlich erst Zahl konvertieren - Stichwort 'IntToStr'
Zuletzt bearbeitet von Hobby-Programmierer am Di 18.10.11 17:17, insgesamt 2-mal bearbeitet
|
|
boxer123
Beiträge: 68
Erhaltene Danke: 2
|
Verfasst: Di 18.10.11 17:15
Ich verstehe nur Bahnhof. Kann mir keiner den Anfang schreiben.
|
|
Horschdware
Beiträge: 744
Erhaltene Danke: 54
Win XP Pro, Win 7 Pro x64
Delphi 7, Delphi XE, C++ Builder 5, SAP R/3
|
Verfasst: Di 18.10.11 17:17
boxer123 hat folgendes geschrieben : | Kann mir keiner den Anfang schreiben. |
Solange du nicht erklärst, wie die Zahlen zustande kommen: Nein!
Btw: www.delphipraxis.net...-programm-hilfe.html
edit: Ich muss mal wieder Erbsenzähler spielen...
Boxer, kannst du bitte ein kleines Bisschen auf Rechtschreibung, Satzbau und Zeichensetzung achten?
Fragen beendet man mit einem "?". Sätze, bzw. Teilsätze trennt man mit "." und ",". So etwas macht Beiträge gleich lesbarer und unter Umständen lesenswerter
_________________ Delphi: XE - OS: Windows 7 Professional x64
Zuletzt bearbeitet von Horschdware am Di 18.10.11 17:22, insgesamt 1-mal bearbeitet
|
|
boxer123
Beiträge: 68
Erhaltene Danke: 2
|
Verfasst: Di 18.10.11 17:20
So nochmal auf dem Formblatt sind 2x Edits und 1x Button .
Man Startet das Programm und schreibt im linken Edit Fenster eine 4Stelligezahl und wenn man dann auf den Button klickt kommt beim anderen Edit die Zahl
|
|