![]() |
Zahlenreihenfolge mit 4 Zahlen ordnen und anzeigen lassen?
Liste der Anhänge anzeigen (Anzahl: 1)
Auf anweisung eines Moderators mache ich jetzt einen Thread für eine andere Frage auf, als in dem Thread mit Namen: Einige Anfängerfragen
Also Problem ist folgendes: Wir sollen ein Programm erstellen, wo man drei Eingabefenster hat (+anderes) in die man drei beliebige Zahlen eingibt. Wenn man der Bitbtn betätigt wird soll das Programm die 3 Zahlen der Reihe nach ordnen, und dann in einem Label so anzeigen: Die Reihenfolge lautet: 5, 432, 43242 (Oder was auch immer) Dazu kommt noch ein Button der das Programm zurücksetzt. (Das kann ich aber schon :wink: )Das Programm funktioniert auch, aber wir sollen jetzt ein schritt weiter gehen. Das gleiche mit 4 Zahlen. Also vier Eingabefelder und 2 Variablen mehr. (zahl4 und mittelgroesste) Näheres könnt ihr dem Programmtext entnehmen! Wichtig ist, dass ich das o.g mit 4 Zahlen machen kann, möglichst ohne komplizierte und Profisachen anwenden zu müssen.
Delphi-Quellcode:
unit reihe;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons; type TForm1 = class(TForm) BitBtn1: TBitBtn; Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Label1: TLabel; Button1: TButton; Button2: TButton; Label2: TLabel; procedure BitBtn1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; zahl1, zahl2, zahl3, gross, mittel, klein: integer; /// Hier müssten meines Wissens noch "zahl4" und "mittelgroesste" eingetragen werden implementation {$R *.dfm} procedure TForm1.BitBtn1Click(Sender: TObject); begin zahl1:=strtoint(edit1.Text); zahl2:=strtoint(edit2.Text); zahl3:=strtoint(edit3.Text); if zahl1>zahl2 then begin gross:=zahl1 end else begin gross:=zahl2 end; if zahl3>gross then begin gross:=zahl3 end; if zahl1<zahl2 then begin klein:=zahl1 end else begin klein:=zahl2 end; if zahl3<klein then begin klein:=zahl3 end; if (zahl1 > klein) and (zahl1<gross) then begin mittel:=zahl1 end; if (zahl2 > klein) and (zahl2<gross) then begin mittel:=zahl2 end; if (zahl3 > klein) and (zahl3<gross) then begin mittel:=zahl3 end; label1.caption:='Die Reihenfolge lautet:'+inttostr(klein)+', '+inttostr(mittel)+', '+inttostr(gross) /// Hier müsste noch "mittelgroesste" nachgetragen werden! end; end. |
Re: Zahlenreihenfolge mit 4 Zahlen ordnen und anzeigen lasse
Schau Dir einmal diesen
![]() Du müßtest Deine Zahlen nur noch in ein Array packen. Grüße Klaus |
Re: Zahlenreihenfolge mit 4 Zahlen ordnen und anzeigen lasse
Also einen So Komplizierten SortierAllgo hab ich noch nie Gesehn.
Ich Empfehle dir Ein ![]() und das Speichern der Zahlen in Arrays |
Re: Zahlenreihenfolge mit 4 Zahlen ordnen und anzeigen lasse
@Klaus01
Habe ich schon bevor ich den Betrag geschreiben habe. Aber es sollte ungefähr so sein, wie mein Text, nur halt erweitert. Ich kenne nur vielleicht 2-4% von Delphibefehlen. Gibt es villeicht noch ne andere möglichkeit. Weil als ich letztes nur den größsten Wert ermittelt habe mittels "max" und "math" (max(max zahl1, zahl2),zahl3). Da hatte meine lehrerin zwar etwas längeres geschrieben, jedoch nur mit einfachsten Mitteln. ( < und > und = ) @Corpsman Oh mein Gott. Was ist das denn? :| Ich lerne mit Delphi erst seit 2 Monaten. Ich kenne nur die Sachen, die mein Lehrer mir sagt. Von diesen Arrys etc. habe ich keinen Blassen Schimmer. |
Re: Zahlenreihenfolge mit 4 Zahlen ordnen und anzeigen lasse
Was dein Lehrer Wollte ist das ihr feststellt das es ein Heuden Aufwand ist das so zu machen.
Wenn du dich in die Materie des Arrays einliest dann kannst das halt viel Leichter machen. Das Sample das ich gepostet hab ist halt die Intelligente Lösung für einen Anfänger ist die vielleicht etwas heftig. Such mal unter Bubblesort bei wiki oder so da kannst dann die Einfacheren sachen machen. |
Re: Zahlenreihenfolge mit 4 Zahlen ordnen und anzeigen lasse
Wie sähe das den in meinem Programm aus. (Wie gesagt, tut mir echt Leid, dass ich hier euch nerve aber ich habe echt kaum einen Schwimmer wie es geht.
|
Re: Zahlenreihenfolge mit 4 Zahlen ordnen und anzeigen lasse
Delphi-Quellcode:
const
maxAnzahl = 4; type ZahlenArray = Array [0..maxAnzahl-1] of Integer; var meineZahlen: ZahlenArray; meineZahlen[0]:=StrToInt(Edit1.Text); meineZahlen[1]:=StrToInt(Edit2.Text); meineZahlen[2]:=StrToInt(Edit3.Text); meineZahlen[3]:=StrToInt(Edit4.Text); procedure sortieren (var zahlen:ZahleArray); var i,j,hilf:integer; begin for i:= length(zahlen)-1 downto 0 do for j:= 1 to i do begin if zahlen[j] < zahlen[j-1] then begin hilf:= zahlen[j-1]; zahlen[j-1]:= zahlen[j]; zahlen[j]:= hilf; end; end; end; //Aufruf: sortieren(meinZahlen); gross:=meienZahlen[3]; mittel2:=meineZahlen[2]; mittel1:=meineZahlen[1]; klein := meineZahlen[0]; |
Re: Zahlenreihenfolge mit 4 Zahlen ordnen und anzeigen lasse
Danke, aber was heißen die Buchstaben in diesem Bereich:
Delphi-Quellcode:
Also dieses j,hilf,j-1 und zahlen [j] ?
var
i,j,hilf:integer; begin for i:= length(zahlen)-1 downto 0 do for j:= 1 to i do begin if zahlen[j] < zahlen[j-1] then begin hilf:= zahlen[j-1]; zahlen[j-1]:= zahlen[j]; zahlen[j]:= hilf; end; end; end; |
Re: Zahlenreihenfolge mit 4 Zahlen ordnen und anzeigen lasse
Zitat:
Also wenn i = 1 ist, ist damit gemeint zahlen[1], die zweite Zahl im ZahlenArray. Die zweite, weil das Array bei 0 beginnt. hilf ist die Hilfsvariable, sie übernimmt zeitweise einem Wert wenn zwei Werte getauscht werden. Grüße Klaus |
Re: Zahlenreihenfolge mit 4 Zahlen ordnen und anzeigen lasse
Wie viele Variablen brauche ich den dafür? Es müssen ja 4 Zahlen sein, die geordnet werden müssen!
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:22 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