AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Verhältnis Gleichung

Ein Thema von widowmaker2k7 · begonnen am 11. Jun 2008 · letzter Beitrag vom 11. Jun 2008
Antwort Antwort
Benutzerbild von widowmaker2k7
widowmaker2k7

Registriert seit: 18. Jan 2008
Ort: Saarbrücken
27 Beiträge
 
Delphi 7 Personal
 
#1

Verhältnis Gleichung

  Alt 11. Jun 2008, 17:18
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:
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.
im anhang das bild dazu.

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
Miniaturansicht angehängter Grafiken
diagramm_643.jpg  
  Mit Zitat antworten Zitat
new32

Registriert seit: 10. Mai 2005
160 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Verhältnis Gleichung

  Alt 11. Jun 2008, 17:25
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
~?&/%§$§%\&?~
8)
  Mit Zitat antworten Zitat
Benutzerbild von widowmaker2k7
widowmaker2k7

Registriert seit: 18. Jan 2008
Ort: Saarbrücken
27 Beiträge
 
Delphi 7 Personal
 
#3

Re: Verhältnis Gleichung

  Alt 11. Jun 2008, 17:46
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
  Mit Zitat antworten Zitat
Benutzerbild von widowmaker2k7
widowmaker2k7

Registriert seit: 18. Jan 2008
Ort: Saarbrücken
27 Beiträge
 
Delphi 7 Personal
 
#4

Re: Verhältnis Gleichung

  Alt 11. Jun 2008, 17:52
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:
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.
vielen dank new32
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz