Autor Beitrag
Horschdware
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 744
Erhaltene Danke: 54

Win XP Pro, Win 7 Pro x64
Delphi 7, Delphi XE, C++ Builder 5, SAP R/3
BeitragVerfasst: Mi 19.10.11 22:36 
Zur Kenntnis genommen. Jedoch ist es (fast) egal, wie lange du dich bereits mit Delphi beschäftigst.

Das grundlegende Problem das ich hier sehe ist nicht, dass du keine Erfahrung mit Delphi hast, sondern die Art und Weise, wie du versuchst das Problem zu lösen.

In deinem Eingangspost zeigst du ein paar Zahlen und willst eine Lösung haben, ohne zu sagen, was das zu lösende Problem ist und ohne zu erklären, wie die Zahlen zustande kommen. Erst nach einigem Herumgerätsele der Leute hier kommt irgendwann heraus, dass die jeweils größten und kleinsten Kombinationen der gegebenen Ziffern miteinander zu verrechnen sind.
Das steht dann aber im Widerspruch zu deinem Beispiel am Anfang.

Dann schaffst du es nicht, klar auszudrücken, wo genau du Probleme hast, sondern postest Quelltexte mit dem Kommentar "geht nicht".

Und weil das noch nicht genug ist, machst du in einem anderen Forum einen Thread wegen dem gleichen Problem auf und erklärst dort (aber nicht hier. Warum eigentlich?), dass du gar keine Delphi Entwicklungsumgebung hast, d.h. du schreibst alles in Notepad o.ä. und hoffst, dass irgendwann ein brauchbarer Code herauskommt, den du aber nie testen kannst.

Ich weiss nicht wie du dir das vorstellst, aber für mein Verständnis ist dein Problem so nicht lösbar.
Nicht weil es dir an Delphi-Wissen mangelt, sondern weil deine Vorgehensweise sich irgendwo zwischen konfus und unlogisch einordnen lässt.

In der Delphi-Praxis wurde dir (wie auch hier) ein Leitfaden gezeigt, wie du vorgehen könntest.
Ich sehe aber nicht, dass du hier zielführend konkrete Fragen dazu gestellt hast, wie du die einzelnen Punkte abarbeiten kannst - wobei das noch nicht einmal nötig ist, schliesslich finden sich Beispiele für derartige Basics in jedem guten Einsteigerhandbuch oder in der Forensuche.

Dem guten Willen wegen nochmal: Der wohl einfachste Weg das alles umzusetzen:


ausblenden Pseudocode
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
 

Lese Eingabe in String s
Integer z = s
Integer a, b, z_alt

wiederhole >
  z_alt = z
  s = z
  Sortiere s
  a = s
  Invertiere s
  b = s
  z = a - b
< solange z <> z_alt


Der (Um-)Weg über einen String hat meine Meinung nach den Vorteil, dass hier das Invertieren bereits in den StrUtils definiert ist und die Umwandlung in einen Integer einfacher ist, als aus einem array of int heraus. Aber es geht ja hier nicht um "schick und toll" machen, sondern nur um die generelle Machbarkeit...


PS: Du hast einige Fragen noch nicht beantwortet. Z.B. seit wann diese Aufgabe überhaupt steht...

Noch ein PS: Wenn es dir an einer Delphi-Entwicklungsumgebung mangelt, möchte ich dich an www.amazon.de verweisen. Dort gibt es Bücher (z.B: www.amazon.de/Delphi...19056707&sr=8-1), denen eine Delphi Vollversion beiliegt. Darüber hinaus enthalten diese Bücher viel Wissen in gedruckter Form, das sich bei der Programmierung als sehr hilfreich herausstellen mag.

_________________
Delphi: XE - OS: Windows 7 Professional x64
Hobby-Programmierer
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 238
Erhaltene Danke: 4

Win XP Pro, Vista Ultimate Trial :o)
D6 Pro, D7 Pro, Turbo, XE SE
BeitragVerfasst: Mi 19.10.11 22:54 
Hallo Peter, ohne jetzt der Antwort von Boxer vor zugreifen, denke ich das du zu hohe Ansprüche an das logische Denken eines schätzungsweise 12- 14 jährigen stellst. Mein Sohn (13) würde das genauso schreiben, dessen bin ich mir sicher. Aber natürlich sind viele Sachen unglücklich gelaufen. Hätte er anfangs erwähnt das er keine IDE zur Verfügung hat, hätte man sicher auch einiges anders beurteilt.

@Boxer
Solltest du Interesse an einer kostenlosen Delphi-IDE haben, solltest du mal nach Turbodelphi hier oder in der Delphi-Praxis suchen. Reg-Schlüssel solltest du bei höflicher Nachfrage und mit Hinweis auf den schulischen Gebrauch bei Embarcadero bekommen. Wenn du noch Fragen hast melde mich mal per PN.

LG Mario
Horschdware
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 744
Erhaltene Danke: 54

Win XP Pro, Win 7 Pro x64
Delphi 7, Delphi XE, C++ Builder 5, SAP R/3
BeitragVerfasst: Mi 19.10.11 23:16 
Mal kurz ein Bisschen Off-Topic:
Hobby-Programmierer, hat das irgendeinen Hintergrund, dass du mich (ich gehe zumindest davon aus, dass ich gemeint bin) mal mit "Horst" und mal mit "Peter" ansprichst? :lol:

Zu Turbo-Delphi: Das wurde meines Wissens nach eingestellt und ist nicht mehr erhältlich.

Zu Formulierungssachen: Da gebe ich dir zunächst einmal recht. Es sind hier einfach einige Sachen unglücklich gelaufen und in jungen Jahren drückt man sich unpräzise aus. Wenn man es aber nicht schafft, die eigentliche Aufgabenstellung rüber zu bringen und ein falsches Beispiel postet, welches man dann noch nicht einmal zu korrigieren weiss, dann ist das für die Bearbeitung der Aufgabe extremst hinderlich.

_________________
Delphi: XE - OS: Windows 7 Professional x64
smt
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 45



BeitragVerfasst: Do 20.10.11 10:42 
@boxer123:

Einen String in einzelne Stücke zu teilen kannst Du entweder mit Copy machen oder direkt mit [n]
also beispielsweise:

st:='Hallo';

st[1] ist dann = 'H'
st[2] ist dann das 'a'

usw.

Mit Length bekommst Du die Länge des Strings raus. Mit IntToStr kannst Du eine Zahl in einen String umwandeln.

Das Problem ist aber eher das sortieren. Hier gibt es natürlich verschiedene Lösungsansätze. Du kannst also die einzelnen Werte in ein Array packen (var werte : Array of integer - aber nicht vergessen, das ganze mit SetLength zu initialisieren). Und dann schreibst Du dafür einen einfachen Sortieralgorhytmus.
Oder Du nimmst eine TStringList - die kann nämlich selbst schon sortieren. Dann sparst Du Dir diesen Weg. Ist natürlich so ein wenig mit Kanonen auf Spatzen geschossen, aber wie gesagt, funktionieren sollte es auch.

Wenn Du dann deine drei Zahlen hast (Eingabe von Dir, Zahl sortier aufsteigend, Zahl sortiert absteigend) kannst Die einfach wieder ein einen Int konvertieren, ne Division machen und das Ergebnis wieder zurück in Deine Funktion schicken. Hier muss dann natürlich noch eine Abbruchbedingung rein (also wenn die Zahl nicht mehr teilbar ist oder wenn der Wert rauskommt, den Du Dir vorstellst). Ohne diese Abbruchbedindung hast Du sonst nämlich ne Endlosschleife.

VG Sascha

Moderiert von user profile iconChristian S.: Beiträge zusammengefasst

@boxer:

Ach und wenn Du keine IDE hast: Lade Dir Lazarus herunter. Das ist im Grunde wie Delphi 7. Ist kostenlos und für diese Zwecke vollkommen ausreichend.

VG Sascha
Horschdware
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 744
Erhaltene Danke: 54

Win XP Pro, Win 7 Pro x64
Delphi 7, Delphi XE, C++ Builder 5, SAP R/3
BeitragVerfasst: Do 20.10.11 11:34 
Das Thema hat sich wohl erledigt, da
a) der TE in der Delphi-Praxis erklärt hat, dass dieses Programm wegen Benotung heute benötigt wird/wurde. (Zeit vorbei)
b) dort jemand den fertigen Programmcode gepostet hat

_________________
Delphi: XE - OS: Windows 7 Professional x64
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Do 20.10.11 14:31 
Es scheint übrigens um das hier zu gehen: en.wikipedia.org/wiki/6174_%28number%29