Probleme mit einer Klasse...
-
das problem lag woanders...
ich hatte die "void GetSomeName" nich in der klasse selbst eingetragen
jetzt kompiliert er wieder ohne probleme und zum ersten mal werden auch alle daten angezeigt!
-
hehe ja... schon passiert... aber danke!
noch ne frage zur zeilenanzahl:
meine names.txt hat insgesamt 74 zeilen. also muss ich doch für ml 73 angeben, weil ja 1 + 73 im extremfall dann is, oder?aber nun wiedermal ein großes DANKE an dich für deinen einsatz und deine hilfe!!! die ganzen probleme hatte nun wenigstens einen lernfaktor

jetzt werd ich wohl erstmal wieder ruhe geben, und sage gute nacht!
mfg thomas
ps: die fehlersuche lass ich jetzt glaub nimmer duchlaufen... sonst findet er wieder irgendwas, was er grad ned sieht
. würd das passieren, wäre ich wahrscheins heute wirklich noch vor dem ausflippen 
-
Dauermuede schrieb:
ich hatte die "void GetSomeName" nich in der klasse selbst eingetragen
sag doch prototyp vergessen
.
aber immerhin laeufts ja jetzt.*gratulier*
:p
-
so, hab nun doch wieder ne frage. diesmal gehts aber eher um mathe (aber ich denke wegen diesem kleinen problem lohnt es sich nicht, ein neues topic zu eröffnen!! -> bitte dehalb jetzt nicht verschieben!!).
habe folgendes geschrieben:
Motivation = 100; Learning = (Motivation * Talent * (1+(rand()%99)))/1000000; }Motivation ist als "unsigned short int" definiert.
Learning ist als "double" definiert.bei der ausgabe kommen aber nun andere werte heraus, als sein müssten! die zahl müsste sich ja zwischen 0,00000000001 und 1 bewegen. stattdessen bekomm ich aber ganzahlige werte wie "32, 65, 12" usw.
was ist hier falsch? liegts an der größe der zahl vor dem dividieren bzw. der größe des teilers? wenn ja, wie kann man das lösen?
mfg thomas
-
geht
Learning = ((double)Motivation * (double)Talent * (double)(1+(rand()%99)))/1000000;?
-
wow, schnelle antwort!
aber nee, geht leider auch nich... kommt das gleiche dabei raus! also wieder ganzzahlen wie z.b. 32 oder 2 oder 62
mfg thomas
-
vllt weil das letzte als int gehandelt wird:
[cpp]
Learning = ((double)Motivation * (double)Talent * (double)(1+(rand()%99)))/1000000.0f;[/cpp]
sonst ka.
schnelle antworten gibts nur, weil ich jedes mal ein sms bekomme, wenn ich neue mails kriege
*weg sucht um diesen sch*** auszuschalten*
-
nee, geht leider auch nicht!! aber danke für dein bemühen

offtopic: ruf deinen email-account provider an und sags dem, stells evtl. im mail-client ab (gehts da überhaupt?) oder deaktivier die funktion email-benachrichtignug im forum (-> weniger sms)
mfg thomas
-
thx, habs schon hingekriegt, über vodafone live settings (angebot von swisscom).
@topic hab ich leider spontan ka sry
-
hat denn noch jemand anderes vielleicht einen vorschlag?
mfg thomas
-
habs jetzt mit folgendem versucht, was die lernfähigkeit zwar nicht von talent und motivation abhängig macht, aber auch hier funktionierts nich

Learning = 1 / (1+(rand()%9));dabei kommt immer 0.00000 raus. wieso das?
es müsste doch 1/10 bis 1 rauskommen, wobei sich der nenner immer von 1 bis 10 bewegt ?!danke,
thomas
-
Learning = 1.0f / (1+(rand()%9));Sollte funktionieren

Kurt
-
nicht wenn die definition immer noch so wie im ersten post aussieht:
unsigned short int Learning;
-
Cpt.Tanga schrieb:
nicht wenn die definition immer noch so wie im ersten post aussieht:
unsigned short int Learning;Gebe zu den thread nicht gelesen zu haben.
Kurt
-
nee, nee!
auf seite 7 hab ichs im einen post geschrieben... Learning ist als double definiert!!!aber mit:
Learning = 1.0f / (1+(rand()%9));gibt das programm dennoch 0.00000 aus

mfg thomas
-
also bei mir funktioniert das folfende programm.
#include <iostream> int main() { double learning = 1.0f / (1+(rand()%9)); std::cout << learning << std::endl; learning = 1.0f / (1+(rand()%9)); std::cout << learning << std::endl; learning = 1.0f / (1+(rand()%9)); std::cout << learning << std::endl; return 0; }output:
0.5 0.125 1Kurt
-
da sollte der fehler eigentlich nicht liegen - aber sieh dir trotzdem mal die stelle mit nem debugger an. zeig am besten mal deinen code in der naehe der berechnung von 'Learning' und vor allem wie du 'Learning' ausgibst/ oder ueberpruefst.
-
hat sich erledigt...
hatte es mit fixed ausgegeben, weil es vorher immer nur ganzzahlen anzeigte. jetzt wo ich bei der ausgabe "fixed" weggelassen habe funktioniert es (zwar ohne die faktoren "Talent" und "Motivation").danke an euch!
mfg thomas
edit: mit den faktoren hab ichs jetzt auch auf die gleiche weise versucht... das problem lag wohl an "fixed". jetzt gehts auch in abhängigkeit von "Motivation" und "Talent"!

Learning = Motivation * Talent * (1+rand()%99)/1000000.0f);