Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi LiebesTester (https://www.delphipraxis.net/67153-liebestester.html)

Tonic1024 10. Apr 2006 15:33

Re: LiebesTester
 
Erstmal ist es eine schöne Umsetzung eines alten Klassikers. Das haben bei uns zumeist die Mädels mit Stift und Papier in der Grundschule gemacht. Allerdings denke ich, dass sie nen andern Algo verwendet haben :wink: Nachdem auch Jamba und Co schon auf die Idee gekommen sind das zu vermarkten ist das nun genau das was der Welt noch gefehlt hat... *läster* Aber es ging ja primär um den Lerneffekt und somit kann ich damit leben.

Zitat:

Zitat von freak4fun
Hier glaubt wohl einer nicht an die "Große Liebe". :mrgreen: Wenn du nur die letzten 2 Zeichen ausgibst kann das nie 100% werden. Also bei 00 am Ende noch per zufall eine 1 vor schreiben, oder prüfen, ob die 3. letzte Stelle einen 1 ist oder sowas.

Bei statistischen Erhebungen (also schummeln mit Zahlen) gibt es nie die vollen 100% :wink:


Toni

toredo 10. Apr 2006 15:44

Re: LiebesTester
 
hay,

:gruebel: kann es sein das wenn ich lowercase benutze immer 0 zurückkommt?
weil nach dem lowercase bekommt die variable imemr den wert 0.
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
begin
name1:=Edit1.Text;
name1:=Edit2.Text;
name1:=LowerCase(name1);
name2:=LowerCase(name1);
for i:= 1 to length(name1) do
  zahl1:= zahl1*zahlen[name1[i]];
for i:= 1 to length(name2) do
  zahl2:= zahl2*zahlen[name2[i]];
zahl3 := zahl1 + zahl2;
zahl3 := zahl3 mod 100;
Edit3.Text := IntToStr(zahl3);
end;


mfG toredo

Alloc 10. Apr 2006 15:53

Re: LiebesTester
 
Halb OT ;) :

Zitat:

Das haben bei uns zumeist die Mädels mit Stift und Papier in der Grundschule gemacht. Allerdings denke ich, dass sie nen andern Algo verwendet haben
Joa, das gabs sogar bei uns noch :D
Habs mir mal irgendwann erklären lassen... Mit der Umsetzung davon könnte man sogar noch ein bisschen mehr lernen als bei einem einfachen Buchstaben addieren ;)

Beispiel:
Christoph-Maria + Eva (weils so schön viele Buchstaben sind ;) )
Test auf: Liebe

1. Buchstabe: L: kommt in beiden Namen zusammen 0 mal vor.
2. Buchstabe: I: kommt 2 mal vor
3. Buchstabe: E: 1
4. Buchstabe: B: 0
5. Buchstabe: E: 1

Verrechnet wird das dann nach diesem Schema:
http://chrilly.net/liebestest.gif

Wenn zwei solche Zahlen addiert zusammen größer 10 sind, wird einfach aus dieser Zahl noch die Quersumme genommen. (5+8 = 13 => 4)

@toredo: Setz das doch mal um für die Nostalgiker unter uns ;)

mfG, Chris

toredo 10. Apr 2006 17:28

Re: LiebesTester
 
Zitat:

Zitat von Alloc
@toredo: Setz das doch mal um für die Nostalgiker unter uns ;)

mfG, Chris

:mrgreen: würd ich gern machen, aber ist mir zu schwer, :???: ich habe ja auch erst am dienstag das erste mal was mit delphi gemacht^^

aber noch mals chnel zum code, weil den möcht ich fertigbringen :zwinker:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
i: integer;
begin
name1:=LowerCase(Edit1.Text);
name2.Text:=LowerCase(Edit2.Text);
----------------------------------------
for i:= 1 to length(name1) do
  zahl1:= zahl1*zahlen[name1[i]];
for i:= 1 to length(name2) do
  zahl2:= zahl2*zahlen[name2[i]];
----------------------------------------
zahl3 := zahl1 + zahl2;
zahl3 := zahl3 mod 100;
Edit3.Text := IntToStr(zahl3);
end;
nach dem makierten code kommt für zahl1 und zahl2 immer 0 raus, das versteh ich nicht richtig...


mfG toredo

Klaus01 10. Apr 2006 17:34

Re: LiebesTester
 
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  i: integer;
begin

  name1:=LowerCase(Edit1.Text);
  name2:=LowerCase(Edit2.Text);
   
  showMessage(name1,name2);

  zahl1:=1;        // <-------------
  for i:= 1 to length(name1) do
    zahl1:= zahl1*zahlen[name1[i]];

  zahl2:=1;        // <-----------
  for i:= 1 to length(name2) do
    zahl2:= zahl2*zahlen[name2[i]];
 
  zahl3 := zahl1 + zahl2;
  zahl3 := zahl3 mod 100;
  Edit3.Text := IntToStr(zahl3);

end;
einrücken nicht vergessen, macht den Code lesbarer,
zahl1 und zahl2 sind nicht initialisiert worden - daher wahrscheinlich 0
und ein Produkt mit 0 gibt 0.

Grüße
Klaus

toredo 10. Apr 2006 17:46

Re: LiebesTester
 
:cheers: thx jetzts funzts...
aber etwas funzt an dem prog noch nicht, aber den fehler im source find ich noch:

alles hat geklappt bis ich meinen namen+den namen eines bestimmten girls eingegeben habe dann kam -99 raus :?



mfG toredo


-edit-

problem ist gelöst

Klaus01 10. Apr 2006 17:53

Re: LiebesTester
 
kann es sein das es zu einem Überlauf bei zahl1 und zahl2 kommt.
Wenn die beiden Zahlen als Integer deklariert sind dann kann
es bei der Multiplikation zu einem Überlauf kommen, der Wert
wird größer als 2147483647. Vielleicht kannst Du dann
LongInt oder Cardinal verwenden.

Grüße
Klaus

toredo 10. Apr 2006 18:35

Re: LiebesTester
 
man kann das proggi jetzt saugen:
http://www.delphipraxis.net/internal...=530551#530551
thx an alle helfer.



mfG toredo


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:10 Uhr.
Seite 3 von 3     123   

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