Delphi-PRAXiS
Seite 1 von 3  1 23      

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)

toredo 10. Apr 2006 13:06


LiebesTester
 
hay,

ich möchte so ein liebes-tester-proggi machen.
als ausgabe sollte kommen, zu wie viel prozent zwei leute zusammenpassen.
aber ich ich möchte das nicht mit random(100) machen, weil dann kann man ja mit den selben zwei namen x verschiedene ergebnisse bekommen...

ich hab mal nachgedacht, wie ichs machen könnte und dann bin ich auf eine idee gekommen:
das Programm shcneidet die beiden namen einfach in die einzelnen buchstaben, jedem buchstaben ist eine primzahl zugeordnet.
die zahlen aus dem ersten namen werden miteinander multipliziert und die zahlen aus dem zweiten namen auch.
diese zwei neuen zahlen zählt man nun zusammen und schneidet falls die zahl mer als zwei stellen hat, alle stellen nach der 1ner und 10ner stelle ab.
ich muss jetzt einfach wissen wie die buchstaben zu einer multiplikatioon gemacht werden können und wie ich die letzten zwei stellen abschneiden kann.

hier ein beispiel:

1.name= eva
2.name= paul

hier die 26.primzahlen (das programm sollte ä,ö und ü zu ae, oe und ue machen und erst dann rechnen.):
a=2
b=3
c=5
d=7
e=11
f=13
g=17
h=19
i=23
j=29
k=31
l=37
m=41
n=43
o=47
p=53
q=59
r=61
s=67
t=71
u=73
v=79
w=83
x=89
y=97
z=101
eva= 11*79*2=1738
paul=53*2*73*37=286306

1738+286306=288044

2880|44
=44
Also passen Eva und Paul zu 44% zueinander;)


mfG benj

Nicodius 10. Apr 2006 13:10

Re: LiebesTester
 
die buchstaben haben alle einen wert (A = 65 zb B = 66) usw


mit ord('A') kommt zb der wert 65 zurück :) - und dann mulitplizierst du den

sakura 10. Apr 2006 13:10

Re: LiebesTester
 
So, und wie lautet jetzt Deine Frage :gruebel:

...:cat:...

Matze 10. Apr 2006 13:12

Re: LiebesTester
 
Hi, moment mal. Dann hat das Teil ja 0% Wahrheitsgehalt, ist das gewollt? Wäre es nicht gescheiter, durch die Angabe von Hobbies etc. so etwas zu machen, oder habe ich den Sinn des Programmes total misverstanden?

@Sakura:
Zitat:

Zitat von toredo
ich muss jetzt einfach wissen wie die buchstaben zu einer multiplikatioon gemacht werden können und wie ich die letzten zwei stellen abschneiden kann.

Ich würde ein Array nehmen und das dort entsprechend zuweisen und mit Delphi-Referenz durchsuchenCopy/Delphi-Referenz durchsuchenDelete kannst du dann den String zurechtschneiden.

Edit:
@Nicodius: Dann wäre a eber <> 2 und b <> 3 etc., wie er es gerne hätte ;)

Edit: Tippfehler und Edits. ^^

pacman1986 10. Apr 2006 13:12

Re: LiebesTester
 
Zitat:

Zitat von toredo
ich muss jetzt einfach wissen wie die buchstaben zu einer multiplikatioon gemacht werden können und wie ich die letzten zwei stellen abschneiden kann.

//ARG ROTER KASTEN WO WARST DU

TeronG 10. Apr 2006 13:16

Re: LiebesTester
 
Zerschneiden musste ja garnet ... mit StringVariabel[x] kannste ja die einzelnen Stellen abfragen .. sollte ja reichen ... und wenn du dich von den Primzahlen lösen kannst und auf ord umsteigst ist das ganze nicht mal mehr n 10-zeiler.

for x := 0 to Length(vString) do Ord(vString[x]) ...

Klaus01 10. Apr 2006 13:17

Re: LiebesTester
 
eine Möglickeit:

machst Dir einen String s mit dem Inhalt 'abcdefg...xyz'
und eine Array of Integer aPrim mit Deinen Primzahln [2,3,5....]

dann kannst Du mit

aPrim[pos('a',s)] = primzahl von a

daraufzugreifen.

Das alles dann in ein Schleife bauen

Delphi-Quellcode:
for i:=1 to length(name) do
  zahl1:=zahl1*aPrim[pos(name[i],s)];
Nur ein Ansatz.
Wie sinnvoll das ganze ist, sei mal dahingestellt.

Grüße
Klaus

toredo 10. Apr 2006 13:23

Re: LiebesTester
 
ich lieb dieses forum, kaum hab ich den beitrag geschrieben hab ich auch schon x antworen bekommen, ich werde mal eine anch der anderen durchprobieren, danke@all :roll:
Zitat:

Hi, moment mal. Dann hat das Teil ja 0% Wahrheitsgehalt, ist das gewollt? Wäre es nicht gescheiter, durch die Angabe von Hobbies etc. so etwas zu machen, oder habe ich den Sinn des Programmes total misverstanden?
das wäre mir alles schon zu kompliziert, ich wüsste da nicht mal wie ich beim code anfangen müsste...

obwohldas programm an sich sinnlos ist, lern ich dabei trozdem einige neue funktionen kennen :mrgreen:



mfG toredo

TeronG 10. Apr 2006 13:28

Re: LiebesTester
 
Zitat:

Zitat von toredo
obwohldas programm an sich sinnlos ist, lern ich dabei trozdem einige neue funktionen kennen :mrgreen:

Also isses doch nicht komplett sinlos ^^

@Klaus01: Nette Idee das mit dem Array und dem String :gruebel:

JasonDX 10. Apr 2006 13:37

Re: LiebesTester
 
Zitat:

Zitat von Klaus01
eine Möglickeit:

machst Dir einen String s mit dem Inhalt 'abcdefg...xyz'
und eine Array of Integer aPrim mit Deinen Primzahln [2,3,5....]

dann kannst Du mit

aPrim[pos('a',s)] = primzahl von a

daraufzugreifen.

Es ginge noch etwas eleganter:
Delphi-Quellcode:
const
  zahlen: array['a'..'z'] of byte = (2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101);
//...
zahl := zahlen['e'] * zahlen['m'] * zahlen['i'] * zahlen['l'];
was das wegschneiden der restlichen Ziffern angeht: Delphi-Referenz durchsuchenmod: Der Restbetrag der Division durch 100 gibt die letzten beiden Stellen der Zahl :)

greetz
Mike


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:06 Uhr.
Seite 1 von 3  1 23      

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