AGB  ·  Datenschutz  ·  Impressum  







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

Zufälligen Buchstaben anzeigen

Ein Thema von Äfan · begonnen am 22. Feb 2005 · letzter Beitrag vom 18. Okt 2005
Antwort Antwort
Seite 3 von 4     123 4      
Benutzerbild von Rastaman
Rastaman

Registriert seit: 6. Jan 2005
Ort: Lübbecke
575 Beiträge
 
Turbo C++
 
#21

Re: Zufälligen Buchstaben anzeigen

  Alt 23. Feb 2005, 18:34
Zitat von Sharky:
Randomize und Random in der selben Methode? Sorry. Aber da solltest Du noch etwas die OH lesen!
Jo warn bisschen übereifrig und sonst hätte der code so lang ausgesehen mit ner extra procedure
Chuck Norris has counted to infinity ... twice!
  Mit Zitat antworten Zitat
Äfan
(Gast)

n/a Beiträge
 
#22

Re: Zufälligen Buchstaben anzeigen

  Alt 24. Feb 2005, 14:54
@Sharky: Natürlich kann ich euch den code zeigen:

Delphi-Quellcode:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Edit1: TEdit;
    Label2: TLabel;
    Anschlage: TLabel;
    Fehler: TLabel;
    Button1: TButton;
    procedure Edit1Change(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
        C: Char;
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Edit1Change(Sender: TObject);
begin
  If Edit1.Text = Label2.Caption then
   begin
   Anschlage.Caption := inttostr(strtoint(Anschlage.Caption) + 1);
  end
  else
   begin
   Fehler.Caption := inttostr(strtoint(Fehler.Caption) + 1);
  end;
  Label2.Caption := '';
  Edit1.Text := '';

  repeat
    C := Chr(Random(127 + 1));
  until C in ['A'..'Z', 'a'..'z'];
  Edit1.Text := C;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 randomize;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  repeat
    C := Chr(Random(127 + 1));
  until C in ['A'..'Z', 'a'..'z'];
  Edit1.Text := C;
end;

end.
Also ich habe es so gemacht, wie es hier steht, also mit case oder a-z in einer variablen und dann mit Position, is denke ich für meinen zweck sinnvoller als das mit chr usw. da ich dann besser bestimmen kann, welche zeichen verwendet werden sollen.

PS: Wie war das nochmal mit "A..Z" also das z.B. das ganze Alphabet in variable "buchs" gesetzt wird ?

MFG
  Mit Zitat antworten Zitat
Benutzerbild von Binärbaum
Binärbaum

Registriert seit: 19. Jan 2005
Ort: Elstra
764 Beiträge
 
Delphi 7 Enterprise
 
#23

Re: Zufälligen Buchstaben anzeigen

  Alt 24. Feb 2005, 15:03
@Äfan:
Also ich fand die hier vorgestellten Funktionen/ Prozeduren mit Ord und Chr besser als die Variante, welche du jetzt verwendest.
Von den 128 zufälligen Zahlen, die du mit Random erzeugst, sind schonmal die ersten 64 überhaupt keine Buchstaben. Und dann kommen noch zwischen Groß- und Kleinbuchstaben im ASCII-Code einige Sonderzeichen und nach den Kleinbuchstaben auch noch. Also sind weniger als die Hälfte der Zahlen zu gebrauchen. Da finde ich die anderen Varianten doch effektiver.

MfG
Binärbaum
There are exactly 10 kinds of people: those who understand binary, and those who don't.
---
"Software reift beim Kunden. Bei Hardware ist es anders: Hardware fault beim Kunden." - Rainer G. Spallek
  Mit Zitat antworten Zitat
Äfan
(Gast)

n/a Beiträge
 
#24

Re: Zufälligen Buchstaben anzeigen

  Alt 24. Feb 2005, 15:36
Ja, also mit meiner bissherigen methode is es nix, ich mache es mit case oder var mit a-z

PS: Hab gleich was neues gelernt, wusste das mit case nähmlich noch nicht

MFG und thx
  Mit Zitat antworten Zitat
Benutzerbild von Binärbaum
Binärbaum

Registriert seit: 19. Jan 2005
Ort: Elstra
764 Beiträge
 
Delphi 7 Enterprise
 
#25

Re: Zufälligen Buchstaben anzeigen

  Alt 24. Feb 2005, 15:51
Zitat von Äfan:
Ja, also mit meiner bissherigen methode is es nix, ich mache es mit case oder var mit a-z
Du meinst doch mit dem case nicht etwa die Methode von Chegga??
Die funktioniert zwar sicherlich auch, aber erstens ist es viel Schreibarbeit und zweitens
Zitat von Gerrit89:
sinnbefreit
An deiner Stelle würde ich die Variante mit dem case also nicht nehmen, sondern eine der anderen hier vorgestellten Varianten.
There are exactly 10 kinds of people: those who understand binary, and those who don't.
---
"Software reift beim Kunden. Bei Hardware ist es anders: Hardware fault beim Kunden." - Rainer G. Spallek
  Mit Zitat antworten Zitat
Äfan
(Gast)

n/a Beiträge
 
#26

Re: Zufälligen Buchstaben anzeigen

  Alt 24. Feb 2005, 21:12
ja, ich meinte damit die von Chegga

OK, dann mach ichs mit der variable, a-z und position.

Off Topic PS: Wie kann ich in Edit1 automatisch das alphabet einfügen ? da war doch mal was mit 'a'..'z'

MFG
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#27

Re: Zufälligen Buchstaben anzeigen

  Alt 25. Feb 2005, 06:47
Zitat von Äfan:
@Sharky: Natürlich kann ich euch den code zeigen:

Delphi-Quellcode:
unit Unit1;

.
.
procedure TForm1.Edit1Change(Sender: TObject);
begin
  If Edit1.Text = Label2.Caption then
   begin
   Anschlage.Caption := inttostr(strtoint(Anschlage.Caption) + 1);
  end
  else
   begin
   Fehler.Caption := inttostr(strtoint(Fehler.Caption) + 1);
  end;
  Label2.Caption := '';
  Edit1.Text := '';

  repeat
    C := Chr(Random(127 + 1));
  until C in ['A'..'Z', 'a'..'z'];
  Edit1.Text := C;
end;
...
end.
...
Dann schauen wir doch mal was dort passiert
Du hast ein Ereigniss welches aufgerufen wird wenn sich der Inhalt von Edit-1 ändert. Und was machst Du innerhalb dieser Methode? .... Genau! Du Änderst den Inhalt von Edit-1. Ergo -> Die Methode ruft sich selber immer wieder auf. Das Ergebniss ist ein Stacküberlauf.

P.S.: Deine repeat-Until-Schleife könnte unter umstenden Jahre laufen ohne je beendet zu werden
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von mr47
mr47

Registriert seit: 6. Dez 2004
Ort: Stuttgart
644 Beiträge
 
Delphi 2005 Personal
 
#28

Re: Zufälligen Buchstaben anzeigen

  Alt 25. Feb 2005, 12:56
Zitat von Äfan:
ja, ich meinte damit die von Chegga

OK, dann mach ichs mit der variable, a-z und position.

Off Topic PS: Wie kann ich in Edit1 automatisch das alphabet einfügen ? da war doch mal was mit 'a'..'z'

MFG
Delphi-Quellcode:
for i:= 1 to 26 do
begin
  //evt. noch edit1.clear; (falls du nur das alphabet willst!
  edit1.Text:=edit1.Text+chr(ord('a')-1+i);
end;
Ungetestet. Müsste aber das Alphabet in kleinbuchstaben ergeben.

mfg
  Mit Zitat antworten Zitat
PierreB
(Gast)

n/a Beiträge
 
#29

Re: Zufälligen Buchstaben anzeigen

  Alt 17. Okt 2005, 17:35
Moin,

ich habe mal Sharkys Code benutzt und nun folgendes versucht: Es soll 6 mal ein zufälliges Zeichen ins Edit geschrieben werden, klappt auch ohne Probleme. Doch nun möchte ich verhindern das ein Buchstabe (egal ob klein oder groß geschrieben) doppelt im Edit vorkommt. Hab mal folgendes (als Anfang) versucht:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  buchstabe, s: String;
  i : Integer;
begin
 edit1.text := '';
 for i := 0 to 6 do
  begin
   buchstabe := Chr((Random (26) + 65));
   if (Boolean(Random(2))) then
    begin
     buchstabe :=LowerCase (buchstabe);
    end;
  s := edit1.text;
  if Pos(buchstabe, s) <> 0 then begin
  buchstabe := Chr((Random (26) + 65));
  if (Boolean(Random(2))) then
  begin
    buchstabe :=LowerCase (buchstabe);
  end;
  end
  else
  Edit1.Text := Edit1.Text + buchstabe;
  end
end;
Klappt auch soweit, aber nur wenn doppelte Buchstaben in gleicher Größe (klein oder groß) vorkommen, wie kann ich also verhindern das ein Buchstabe egal ob groß oder klein doppelt im Edit vorkommt ?
*grad auf dem Schlauch steh*

Danke schonmal,
  Mit Zitat antworten Zitat
Benutzerbild von Khabarakh
Khabarakh

Registriert seit: 18. Aug 2004
Ort: Brackenheim VS08 Pro
2.876 Beiträge
 
#30

Re: Zufälligen Buchstaben anzeigen

  Alt 17. Okt 2005, 19:20
Zitat von PierreB:
Klappt auch soweit, [...]
Da hast du aber Glück gehabt . Wenn du einen Char erzeugt hast, der schon vorkommt, erzeugst du einen neuen per Zufall. Aber es ist nicht sicher, dass dieser noch nicht im Edit-Feld ist (und mit ansteigender Anzahl immer unwahrscheinlicher).
Mein Vorschlag: Füge alle Buchstaben in ein Array ein, mische es kräftig durch und nimm dann die ersten n Chars des Array. Das sollte genauso zufällig sein.

[add] Statt dem Array könnte man natürlich auch gleich einen String benutzen. [/add]
Sebastian
Moderator in der EE
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


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 04:00 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