Autor Beitrag
HeavyGamer
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Fr 08.10.04 08:50 
Also erst mal hi an alle, da ich neu hier bin. :D
Ich beschäftige mich erst seit kurzem mit Delphi und weiß noch net so viel. Desswegen hab ich mal ne Frage die für vielleicht ganz einfach ist. :oops:

Also ich möchte ein Programm erstellen das mir z.b. aus verschiedenen Preisen den besten raussucht.

also hier mal nen Beispiel:
Bei "C&A" kostet ein Hemd 10€
bei "Netto" kostet das gleiche 8€
.
.
.
das geht jetzt so weiter bis man 20 Läden hatt so und dann soll mir das Prog den billigsten Laden raussuchen und am besten noch den 2. und 3. billigsten. In wirklichkeit soll das Prog für nen anderen Zweck verwendet werden aber das wäre jetzt schwerer zu erklären.

Wie könnte man das also in ein Code verfassen?

THX schonmal


Zuletzt bearbeitet von HeavyGamer am Fr 08.10.04 09:46, insgesamt 1-mal bearbeitet
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Fr 08.10.04 08:57 
Bitte auf den Knopf "Edit" gehen und den Titel ändern (z.B.: Anfängerproblem beim Sortieren von Zahlen).
Zum Thema:
Hast du dich überhaupt schonmal mit Sortieralgorithmen beschäftigt?
Bei den geringen Datenmengen würde ich Array of Realnehmen und mit Bubblesort sortieren. Ist nach meiner Ansicht einer der einfachsten Algorithmen.
.Chef
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1112



BeitragVerfasst: Fr 08.10.04 09:02 
:welcome:

Was du brauchst, ist ein Sortieralgorithmus. Dafür musst du die Preise in einem Array speichern. Für den einfachsten Sortieralgo, den Bubble-Sort, gebe ich mal ein Beispiel:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
const
  anzahl = 5
var
  preise  : array[0..anzahl-1] of Byte;
  a, b, c : Byte;
begin
  Randomize;
  for a:=0 to anzahl-1 do preise[a]:=Random(100);
  for a:=1 to anzahl do
    for b:=0 to anzahl-2 do
      if preise[b+1] < preise[b] then
      begin
        c:=preise[b+1];
        preise[b+1]:=preise[b];
        preise[b]:=c;
      end;

Das sortiert die Preisliste, beginnend mit dem kleinsten Wert.

Wenn du wirklich nur den kleinsten Wert brauchst, kannst du auch sowas verwenden, das geht dann schneller:
ausblenden Delphi-Quelltext
1:
2:
3:
  b:=255;
  for a:=0 to anzahl-1 do
    if preise[a] < b then b:=preise[a];


Gruß,
Jörg

Edit: War ja klar, dass schon wieder was hier steht, wenn ich fertig bin mit tippen. :roll: ;-)

_________________
Die Antworten auf die 5 häufigsten Fragen:
1. Copy(), Pos(), Length() --- 2. DoubleBuffered:=True; --- 3. Application.ProcessMessages bzw. TThread --- 4. ShellExecute() --- 5. Keine Vergleiche von Real-Typen mit "="!
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Fr 08.10.04 09:15 
Deine Antwort war aber ausführlicher :flehan:
Ich checke immer nur immer gerne mal ab, wieviel Eigenitiative und Kenntnisse vorhanden sind.
.Chef
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1112



BeitragVerfasst: Fr 08.10.04 09:19 
jasocul hat folgendes geschrieben:
Ich checke immer nur immer gerne mal ab, wieviel Eigenitiative und Kenntnisse vorhanden sind.

Ich normalerweise auch. Hab halt hier gleich mal bissl was geschrieben. Das muss der Fragesteller ja auch erstmal verdauen. ;-)

_________________
Die Antworten auf die 5 häufigsten Fragen:
1. Copy(), Pos(), Length() --- 2. DoubleBuffered:=True; --- 3. Application.ProcessMessages bzw. TThread --- 4. ShellExecute() --- 5. Keine Vergleiche von Real-Typen mit "="!
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Fr 08.10.04 09:38 
Hallo!

Bitte ändere den Titel des Topics, da er wenig über das eigentlich Thema verrät. Hier der entsprechende Absatz aus den Delphi-Forum.de Richtlinien:

Richtlinien hat folgendes geschrieben:
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 oben bei Deinem ersten Beitrag auf "Edit" klicken und den Titel ändern. Dank Dir!

Grüße
Christian :-)

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
HeavyGamer Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: Fr 08.10.04 09:51 
So erstmal großes THX das mir gleich so viele helfen wollen.
Bissher hab ich mich noch net mit Sortieralgorithmen aber ich guck mir erstmal an was "Chef" geschrieben hatt. Wenn ich dann noch weitere Fragen hab (was sicherlich passieren wir) werd ich noch mal nachharken.

So Topic hab ich jetzt geändert. Sry aber mir viel vorher kein gutes ein.