05. september 2005 - 17:36
Der er
31 kommentarer
2 definationer jeg ikke kan forstå
Faldt over et stykke af en kildekode til C++ Den indeholder 2 værdier som jeg skal bruge, nemlig X12 og X13. Jeg kan dog ikke helt finde ud af den måde de er defineret på, så håbede der var nogen her der kunne hjælpe med det. Koden: void CTunedPipeView::CalculateThreeStage() { double X13, X12; //horn coeff typical values between one and two. Small values of Kh are best //suited to Grand Prix engines with narrow power bands, //larger values are for wider more flexible engines. Kh = 2; Lt = (83.3 * velsound *m_ExhaustPeriod)/m_CrankSpeed; D1 = K1 *eqportdia; D4 = K2 *eqportdia; D5 = K0 *eqportdia; LP01 = 0.10 * Lt ; LP12 = 0.275*Lt ; LP23 = 0.183*Lt ; LP34 = 0.092*Lt ; LP45 = 0.11*Lt ; LP56 = 0.24*Lt ; LP67 = LP56 ; X12 = (LP12)/(LP12 +LP23 +LP34); X12 = pow(X12,Kh); X12 = X12 * log(D4/D1); X13 = (LP12 + LP23)/(LP12 +LP23 +LP34); X13 = pow(X13,Kh); X13 = X12 * log(D4/D1); D2 = D1 *exp(X12); D3 = D1 *exp(X13); } void CTunedPipeView::DisplayData() { switch(m_ChamberType) { case ONE_STAGE: DisplayDataOneStage(); break; case TWO_STAGE: DisplayDataTwoStage(); break; case THREE_STAGE: DisplayDataThreeStage(); break; }
Annonceindlæg fra DE-CIX
05. september 2005 - 18:06
#1
det er lokale variable i metoden ...
05. september 2005 - 18:10
#2
Og det vil sige? Har aldrig brugt C++, kan bare se at fra en matematisk synsvinkel så er det noget vrøvl der står. I både X12 og X13 sættes de = sig selv + noget mere. Det ville være som at sige 2 = 2 + 1 Derfor må der være en anden måde det skal forståes på, som jeg tænkte en kunne forklare. :-)
05. september 2005 - 18:19
#3
X = X + 1; læses som tag det der er i X læg 1 til gem resultatet i X
05. september 2005 - 18:27
#4
Lad os tage et eksempel med X12: (Giver dem numre for at simplificere) X12[1] = (LP12)/(LP12 +LP23 +LP34); X12[2] = pow(X12[1],Kh); X12[3] = X12[2] * log(D4/D1); Er det rigtig forstået? Hvis ja, så mangler jeg bare at vide hvad det er der sker i pow(X12,kh) funktionen.
05. september 2005 - 18:42
#5
ja pow = power = potens pow(X12,kh) betyder X12^kh
05. september 2005 - 18:49
#6
Okay.... 1000 tak for de hurtige og gode svar :-)
05. september 2005 - 18:49
#7
så ligger jeg et svar
05. september 2005 - 18:50
#8
log og exp har du jo nok gættet hvad gør
05. september 2005 - 18:55
#9
log og exp kender jeg godt. Det der "double X13, X12;" Det betyder ikke noget?
05. september 2005 - 19:03
#10
det betyder at det er decimal tal med en given precision
05. september 2005 - 19:10
#11
Okay.. Smart nok..
05. september 2005 - 19:46
#12
Hmm kan ikke helt fp formlen til at stemme. Jeg kender på forhånd resultatet så det burde være lige til. Tager lige et eksempel: Det jeg egentlig gerne vil frem til er at finde D2 X12 = (259.9)/(259.9 + 173 + 87); X12 = pow(X12,1.2); X12 = X12 * log(77,4 / 28); D2 = 28 * exp(X12); D2 skulle gerne blive 42.9, men det kan jeg ikke få det til. Hvad er der galt.
05. september 2005 - 20:02
#13
min lommeregner giver 43.6
05. september 2005 - 20:15
#14
Der var en lille fejl i denne linie. X12 = pow(X12,1.2); Den skal være: X12 = pow(X12,1.25); Passer det så med de 42.9?
05. september 2005 - 20:20
#15
259.9/(259.9 + 173 + 87) giver 0.499903828 pow(0.499903828,1.25) giver 0.420347121 0.420347121 * log(77.4/28) giver 0.4274015 28 * exp(0.4274015) giver 42.93150809
05. september 2005 - 20:28
#16
Takker endnu engang for de framragende svar... :-)
05. september 2005 - 20:36
#17
Det er i denne linie jeg går galt: 0.420347121 * log(77.4/28) giver 0.4274015 Min lommeregner giver mig: 0.420347121 * log(77.4/28) = 0,18518113031
05. september 2005 - 20:40
#18
du bruger vel ikke log 10 i.s.f. log e ?
05. september 2005 - 20:44
#19
Tror jeg min lommeregner gør std. grundtallet skal måske være e?
05. september 2005 - 20:45
#20
ja
05. september 2005 - 20:48
#21
Okay så passer det også. Ved dog ikke lige hvordan jeg kan lave det på lommeregneren, men i excel virker det ved at skrive: 0.420347121 * log((77.4/28); eksp(1)) Kanon :-)
05. september 2005 - 21:05
#22
Hvad siger din lommeregner så til X13? X13 = (259.9 + 173)/(259.9 + 173 + 87); X13 = pow(X13,1.25); X13 = X12 * log(77.4/28); D3 = 28 * exp(X13); D3 skulle gerne blive 62,9
05. september 2005 - 21:22
#23
tast dog hele beregningen ind i Excel som en formel, så kan du udfylde diverse værdier og vupto så har du resultatet
05. september 2005 - 21:27
#24
Nemlig... Men kan ikke få det til at passe i Excel. Ved godt det er trættende at sidde og hjælpe med sådan noget her.
05. september 2005 - 21:44
#25
har du bemærket at det er X13 = X12 * log(77.4/28); og ikke X13 = X13 * log(77.4/28); ?
05. september 2005 - 21:57
#26
Ja. X13 = 0.4274015 * log(77.4/28) = 0,434574268 D3 = 28 * exp(0,434574268) = 43,24055283
05. september 2005 - 22:20
#27
(259.9 + 173)/(259.9 + 173 + 87) giver 0.832660127 pow(0.832660127,1.25) giver 0.795398395 0.795398395 * log(77.4/28) giver 0.808746986 28 * exp(0.808746986) giver 62.86260655
05. september 2005 - 22:20
#28
den der X12 er vist en slag fejl !
05. september 2005 - 22:22
#29
Er nok en fejl i koden...
29. september 2005 - 20:31
#30
OK ?
30. september 2005 - 08:04
#31
Yep
Kurser inden for grundlæggende programmering