![]() |
Verhältnis Gleichung
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo liebe Delphipraxis-Gemeinde
Ich steh vor einem Problem, wo ich mir seit 2 Tagen ein wenig den Kopf zerbreche. wir müssen für die schule ein Prog machen das 2 Zufallszahlen zwischen 0 und 100 ausgibt und prüft ob sie über 50 liegen oder nicht. is ja bis dahin ganz einfach wir sind grade dabei die verschachtelung mit der for schleife zu machen und wir müssen in der schleife ein kleines diagramm machen dass die beiden zufallszahlen graphisch darstellt. aus chars. also ich habe | genommen neben dem Y die taste hier der quelltext:
Delphi-Quellcode:
im anhang das bild dazu.
procedure TForm1.Button2Click(Sender: TObject);
begin close; end; procedure TForm1.Button1Click(Sender: TObject); var a, b, zahl1, zahl2: integer; zeichen:char; diagramm1, diagramm2: string[100]; begin randomize; zeichen:='|'; zahl1 := random(100)+1; zahl2 := random(100)+1; label3.Caption:=inttostr(zahl1); label4.caption:=inttostr(zahl2); if zahl1 > 50 then label5.caption:=('ja') else label5.caption:=('nein'); if zahl2 > 50 then label6.caption:=('ja') else label6.caption:=('nein'); for a:= 1 to zahl1 do diagramm1 := diagramm1+zeichen; label7.caption:=(diagramm1); for b:= 1 to zahl2 do diagramm2 := diagramm2+zeichen; label8.caption:=(diagramm2); end; end. Das Problem liegt darin wir müssen es so machen, dass der balken für die größere Zahl immer die ganze reihe füllt und die kleinere zahl immer prozentual zur ersten angezeigt wird das heißt wenn die kleinere zahl 30 groß is, dass keine 30 zeichen kommen, sondern nur im verhältnis zur größeren. ich könnte das mit gauge lösen und immer den maxwert ändern aber so sollen wir es nicht machen. wie könnte ich das in das programm einbinden, kann ich sagen die eine zahl ist 100% oder sowas?? bin am verzweifeln danke schonmal Mfg widowmaker |
Re: Verhältnis Gleichung
konstante Länge für die größere Zahl bestimmen (z.B. 100 * "|")
dann die länge des anderen Balken: round(100*klein/groß) //Prozentrechnung fertig |
Re: Verhältnis Gleichung
klappt, wenn die zahl 1 größer ist, in anderen fällen bringt er mir falsche werte.
und es is auch nich in ner for verschachtelung. ich hab keinen blassen wie das unser lehrer haben will. ich wüsst auch nicht wie ich das ins programm einbinden kann. ich werd mal weitertüfteln und auf ne andere lösung warten vielen dank schonmal. mfg |
Re: Verhältnis Gleichung
geeil ich habs hinbekommen.
hab ein wenig rumgebastelt wies hinkommen könnte und es kommen sogar vernünftige werte heraus, die stimmen könnten. für die, die es interessiert der code:
Delphi-Quellcode:
vielen dank new32
procedure TForm1.Button1Click(Sender: TObject);
var a, b, zahl1, zahl2: integer; zeichen:char; diagramm1, diagramm2: string[100]; begin randomize; zeichen:='|'; zahl1 := random(100)+1; zahl2 := random(100)+1; label3.Caption:=inttostr(zahl1); label4.caption:=inttostr(zahl2); if zahl1 > 50 then label5.caption:=('ja') else label5.caption:=('nein'); if zahl2 > 50 then label6.caption:=('ja') else label6.caption:=('nein'); if zahl1>zahl2 then begin for a:= 1 to 100 do diagramm1 := diagramm1+zeichen; label7.caption:=(diagramm1); zahl2:= round(100*(zahl2/zahl1)); for b:= 1 to zahl2 do diagramm2 := diagramm2+zeichen; label8.caption:=(diagramm2); end else begin for b:= 1 to 100 do diagramm2 := diagramm2+zeichen; label8.caption:=(diagramm2); zahl1:= round(100*(zahl1/zahl2)); for a:= 1 to zahl1 do diagramm1 := diagramm1+zeichen; label7.caption:=(diagramm1); end end; end. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10: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