AGB  ·  Datenschutz  ·  Impressum  







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

Ordung muss sein

Ein Thema von block35plus1 · begonnen am 2. Okt 2003 · letzter Beitrag vom 2. Mär 2004
Antwort Antwort
Seite 1 von 7  1 23     Letzte »    
block35plus1

Registriert seit: 2. Okt 2003
Ort: Düsseldorf
8 Beiträge
 
#1

Ordung muss sein

  Alt 2. Okt 2003, 21:22
Hi erst mal.
habe mcih gerade angemeldet. Ich hab seit einem JAhr Informatik in der Schule, wir machen eigentlich nur Delphi. Da ich im ersten Jahr garr nix verstanden habe und 5 stand will cih jetzt versuchen alles nachzuholen. ich hab auhc gemerkt dass es ein bisschen spaß macht. aber ich habe jetzt eine frage zu meinen Hausaufgaben.

Wir haben ein Lottoprogramm geschrieben, welches 6 zufällige Zahlen von 1 bis 49 zieht. als Hausaufgabe sollten wir u.a. versuchen. die Zalhen im MemoFeld zu ordnen und das keine gleichen ZTahlen vorkommen. Das habe ich bisher:


Delphi-Quellcode:
unit mLotto;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls;

type
TLottozahlen=array[1..6] of Integer;
  TForm1 = class(TForm)
    MemAusgabe: TMemo;
    btnZiehen: TButton;
    procedure btnZiehenClick(Sender: TObject);
  private
    { Private-Deklarationen}
  public
    { Public-Deklarationen}
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.BtnZiehenClick(Sender: TObject);
Var
   Lottozahlen:TLottozahlen;

   Procedure Zahlen_ermitteln(var Lottozahlen:TLottozahlen);
   var i:integer;
   begin
   randomize;
   for i:=1 to 6 do
   Lottozahlen[i]:=random(49)+1;
   end;

   procedure Zahlen_ausgeben(Lottozahlen:TLottozahlen);
   var i:integer;
   begin
   for i:=1 to 6 do
   MemAusgabe.Lines.Add(IntToStr(Lottozahlen[i]));
   end;

begin
Zahlen_ermitteln(Lottozahlen);
Zahlen_ausgeben(Lottozahlen);
end;

end.



Danke Tobias

[edit=MrSpock]Code Tags eingefügt. Mfg, MrSpock[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von Duffy
Duffy

Registriert seit: 19. Mär 2003
Ort: Wuppertal
835 Beiträge
 
Delphi 3 Standard
 
#2

Re: Ordung muss sein

  Alt 2. Okt 2003, 21:32
Hallo block35plus1,
schau Dir mal diesen Beitrag an, er sollte Dir helfen
Hilfe bei nem Algorythmus
bye
Künftige Generationen wollen ihre Fehler selber machen.
Jedes Programm wird nie das können, was Du wirklich brauchst.
Das Gegenteil von gut ist gut gemeint
-----
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#3

Re: Ordung muss sein

  Alt 2. Okt 2003, 21:47
Hallo Block35plus1,

wenn du auch eine Listbox benutzen darfst, sparst du dir eine Menge Arbeit.
(Ob das aber deine Informatiknote nach oben bringt, weiß ich nicht )

Eine Listbox hat nämlich die Eigenschaft Sorted, die du nur auf True stellen musst.
Wichtig ist aber dann, dass du die einstelligen Zahlen mit führender Null schreiben muss.

Delphi-Quellcode:
 procedure Zahlen_ausgeben(Lottozahlen:TLottozahlen);
   var i:integer;
   begin
    { ListBox1.Sorted im OI auf True setzen. }
     for i:=1 to 6 do
       ListBox1.Items.Add(Format('%.2d', [Lottozahlen[i]]));
   end;
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
block35plus1

Registriert seit: 2. Okt 2003
Ort: Düsseldorf
8 Beiträge
 
#4

Re: Ordung muss sein

  Alt 2. Okt 2003, 22:12
wo kann ich die denn genau auf null stellen und wie mach ich das genau, dass vor den einstelligen eine Null steht?
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#5

Re: Ordung muss sein

  Alt 2. Okt 2003, 22:16
Hallo Block35plus1,

wie oben im Code gezeigt mit der Format Funktion.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
block35plus1

Registriert seit: 2. Okt 2003
Ort: Düsseldorf
8 Beiträge
 
#6

Re: Ordung muss sein

  Alt 2. Okt 2003, 22:18
mhh ich muss ernsthaft sagen, dass ich nur bahnhof verstehe. aber ich finde es total nett, dass ihr mir helfen wollt...
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Ordung muss sein

  Alt 2. Okt 2003, 22:19
Moin block35plus1,

mal eine Frage zum Zahlen_ermitteln.
Ist es gewollt, dass Zahlen doppelt gezogen werden können?
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
block35plus1

Registriert seit: 2. Okt 2003
Ort: Düsseldorf
8 Beiträge
 
#8

Re: Ordung muss sein

  Alt 2. Okt 2003, 22:22
ne dass ist nciht gewollt. da´habe ich aber schon eine Lösung für Zahlen_ermitteln, aber die Lösung für Zahlen_ausgeben fehlt

Delphi-Quellcode:
var i,j,Zahl : Integer;
   begin Randomize;
   for i := 1 to 6 do
   begin
   zahl := random (49)+1;
   j := 1;
   while j<i do
   begin
   if Lottozahlen[j] = zahl
   then begin
   zahl := random (49)+1;
   j:=0;
   end;
   j:=1+1;
   end;
   Lottozahlen[i]:=zahl;
   end;
   end;
[edit=Christian Seehase]Delphi-Tags hinzugefügt. Bitte künftig selber machen. Danke. Mfg, Christian Seehase[/edit]
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: Ordung muss sein

  Alt 2. Okt 2003, 22:29
Moin block35plus1,

Mal eine Variante dazu. Ist aber ungetestet.

Delphi-Quellcode:
Procedure Zahlen_ermittelnOHNEDoppelte(var Lottozahlen:TLottozahlen);
var
  i : integer;
  iZahl : integer;
  iCount : integer;
  fExists : boolean;

begin
  randomize;
  for i := 1 to 6 do Lottozahlen[i] := 0;
  iCount := 6;
  while iCount > 0 do begin
    iZahl := Random(49)+1;
    fExists := false;
    for i := 1 to 6 do begin
      if Lottozahlen[i] = iZahl then begin
        fExists := true;
        break;
      end;
    end;
    if not fExists then begin
      Lottozahlen[iCount] := iZahl;
      dec(iCount);
    end;
  end;
end;
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#10

Re: Ordung muss sein

  Alt 2. Okt 2003, 22:30
Hallo Block35plus1,

zum Thema Bahnhof :

Die Funktion Format ermöglicht das Formatieren von Zahlen oder Strings für die Ausgabe. Schau dir dazu vielleicht einmal die Onlinehilfe an.
Der Code oben:

Format('%.2d', [Lottozahlen[index]]) gibt einen String zurück, der die Zahl (Lottozahl[index]) immer zweistellig zurück gibt.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 7  1 23     Letzte »    


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 15:45 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