Rolf Arne Beck Skrevet 19. oktober 2009 Skrevet 19. oktober 2009 Er det noen her med litt kontroll på excel og matte som kan hjelpe meg? Jeg prøver å konvertere følgende excelformel til en vanlige matteformel. -ATAN(((L11*SIN((PI()/180)*((K11-M11)-180))/J11)))/(PI()/180)) L11 = X K11 = Y M11 = Z J11 = K Noen sofagenier som kan bistå? Siter
H O Skrevet 19. oktober 2009 Skrevet 19. oktober 2009 Heisann, her er trikset å passe på parantesene. Hvis du teller etter ser du at det er 10 venstreparanteser og 11 høyreparanteser, dvs at det er en parantes som ikke er lukket. Dersom du fjerner den siste parantesen, skal du få noe slik som (store forbehold om feil!) arctan(X*sin(argument))/(pi/180) der argument = (Y-Z-180)/K. Men dersom det er en parantes som mangler et sted, kan du få noe annet. Var det dette du lurte på? Siter
Rolf Arne Beck Skrevet 20. oktober 2009 Forfatter Skrevet 20. oktober 2009 Takk for at du prøver å hjelpe. Jeg postet ikke hele excel formelen som jeg kanskje burde, og da er er det riktig antall paranteser: =IF(M11=0;0;-ATAN(((L11*SIN((PI()/180)*((K11-M11)-180))/J11)))/(PI()/180)) Jeg kan jo gi variablene noen tilfeldige verdier så skal jeg se om jeg kommer frem til samme resultat. X=20 Y=270 Z=360 K=100 Da kommer jeg frem til -2480,5 som er feil. Utregningen i excel som er riktig gir -11. Siter
T F Skrevet 20. oktober 2009 Skrevet 20. oktober 2009 Hjelper det å sette kalkulatoren til "Rad"? Hva er formelen til? /T Siter
Rolf Arne Beck Skrevet 20. oktober 2009 Forfatter Skrevet 20. oktober 2009 Hjelper det å sette kalkulatoren til "Rad"? Jeg føler meg like dum hver gang noen sier det til meg :crazy: Men svaret jeg får da blir -83, så det er en del nærmere, men ikke helt i mål enda :whistle: Formelen er for å kalkulere wind correction angle. Det ultimate målet mitt er å få gjort dette om til en JavaScript formel som så skal bli brukt i et acrobat dokument jeg lager. Selve formelen for WCA er noe enklere: WCA = ArcTan (Vindhastighet * Sin(Vindvinkel)/TAS) Problemet mitt har vært å få den til å fungere uavhengi om folk har et track på 350 eller 010. Siter
T F Skrevet 20. oktober 2009 Skrevet 20. oktober 2009 Her er et screenshot fra mitt eget Excel-ark: Formelen i feltet H3 som er det hvite feltet under "TH" er: =IF(D3=0;"";(IF(ROUND((G3+(DEGREES(ASIN((F3*SIN(RADIANS(E3-G3)))/D3))));0)>360;ROUND((G3+(DEGREES(ASIN((F3*SIN(RADIANS(E3-G3)))/D3))));0)-360;IF(ROUND((G3+(DEGREES(ASIN((F3*SIN(RADIANS(E3-G3)))/D3))));0)<1;ROUND((G3+(DEGREES(ASIN((F3*SIN(RADIANS(E3-G3)))/D3))));0)+360;ROUND((G3+(DEGREES(ASIN((F3*SIN(RADIANS(E3-G3)))/D3))));0))))) TAS er da skrevet i feltet D3 Vindretning er i feltet E3 Vindhastighet er i feltet F3 Sant trekk er i feltet G3 Ettersom formelen har flere "If" om retninger blir til høyere eller lavere tall enn 360, så gir den resultater som alltid er korrekt på en kompassrose. Enten man skriver en formel i Excel eller programmerer feks en Casio kalkulator, så må man få inn en formel som inkluderer "hvis"... Formelen for bakkehastighet "GS" er: =IF(D3=0;"";((ROUND(D3*COS(RADIANS(ABS(G3-H3)));0))+(F3*(-COS(RADIANS(ABS(G3-E3))))))) Håper det kan være til hjelp... /T Siter
Rolf Arne Beck Skrevet 20. oktober 2009 Forfatter Skrevet 20. oktober 2009 Kjempefint Torbjørn. I utgangspunktet kunne jeg jo prøvd å bruke de samme IF uttrykkene i JavaScript, men jeg kan bare nok JavaScript til å gjøre matematiske utregninger. Det er derfor jeg ser etter en ren matematisk måte å løse det samme problemet. Men hvis ingen andre her ser en slik løsning, så må jeg bare se etter hjelp til å løse problemet med JS. Siter
T F Skrevet 20. oktober 2009 Skrevet 20. oktober 2009 Jeg kan dessverre ingenting om JavaScript, så der må jeg trekke til siden... /T Siter
Tom Knudsen Skrevet 21. oktober 2009 Skrevet 21. oktober 2009 Har ikke lyst til å dele dette excel arket da Torbjørn? Siter
Martin Adam Martinsen Skrevet 21. oktober 2009 Skrevet 21. oktober 2009 Tenkte på det samme Tom. Rolf: For det første det er for mange paranteser i denne formelen. Du kan sløyfe noen. Se om denne formelen er riktig: Du må ha kalkulatår stilt til RAD for å få lik svar som i excel. Siter
T F Skrevet 21. oktober 2009 Skrevet 21. oktober 2009 Har delt det før her på FS.no, og det ligger fortsatt ute, men jeg poste linken en gang til... http://idisk.mac.com/t.fjeld//Public/Operational Flight Plan19.xls Hilsen T Siter
H O Skrevet 21. oktober 2009 Skrevet 21. oktober 2009 ATAN er vel arcus tangens, dvs den inverse tangensfunksjonen. Ellers er jeg enig. Siter
Rolf Arne Beck Skrevet 21. oktober 2009 Forfatter Skrevet 21. oktober 2009 Dette får jeg og det er jo da helt riktig . Takk skal dere ha for hjelpen. Nå må jeg bare få gjort om dette til JavaScript og så er jeg nesten ferdig. Hvis det forresten er noen her som kan litt JS så si gjerne i fra. Jeg skulle gjerne vist deg koden så jeg kan få fjernet evt. feil. Siter
Martin Adam Martinsen Skrevet 21. oktober 2009 Skrevet 21. oktober 2009 Det er simpelt: var x = 20; var y = 270; var z = 360; var k = 100; alert(-Math.atan(x*Math.sin(Math.PI/180*(y-z-180))/k)/(Math.PI/180)); Siter
Tom Knudsen Skrevet 21. oktober 2009 Skrevet 21. oktober 2009 Har delt det før her på FS.no, og det ligger fortsatt ute, men jeg poste linken en gang til... http://idisk.mac.com/t.fjeld//Public/Operational Flight Plan19.xls Takker, tror du dette kan konverteres til Boeing data? Siter
T F Skrevet 21. oktober 2009 Skrevet 21. oktober 2009 Kan nok gjøres, men et slikt regneark er ikke riktig verktøy for større maskiner. Hilsen T Siter
Rolf Arne Beck Skrevet 22. oktober 2009 Forfatter Skrevet 22. oktober 2009 Takk for hjelpen Martin. Fikk det til å fungere tilslutt Men er det noen som vet hva jeg gjør galt her? // Get interval fuel, next // minimum fuel, the final reserve fuel // and define the reserve. var int = getField("IntRow1_3").value; var nextmin = getField("MINRow2").value; var finres = getField("USgalFinalReserve").value; var res; // If MINRow2 has a value, set res to 0. // If MINRow2 doesn't have a value, set res = finres if (MINRow2) { res = 0; } else { res = finres; } var bsa = nextmin + int + res; // If int is not zero, // set the value of this field // to the result. Otherwise, display nothing if (int) { event.value = bsa; } else { event.value = ""; } Jeg vet dette er veldig rotete, men jeg kan egentlig ikke JS :whistle: Det jeg prøver å oppnå her er at hvis MINRow2 har en verdi så vil jeg at res = 0. Men hvis MINRow2 ikke har en verdi så vil jeg at res = USgalFinalReserve. De siste 15 linjene er der for å gjøre det slik at hvis IntRow1_3 ikke har en verdi, så skal event.value = "". Siter
Martin Adam Martinsen Skrevet 22. oktober 2009 Skrevet 22. oktober 2009 du kan ikke refererer til MINRow2 da det er navne på feltet og ikke en js variabel. Enten så inn i if skriver du getField("MINRow2").value eller nextmin Iallefall ut fra koden du har postet. Og en ting til. Du får lettere oversikt hvis du lager if, for osv i slik form: if(et eller annet) { det skal skje noe } else { det skal skje noe annet } isteden for: if(et eller annet){ det skal skje noe } else{ det skal skje noe annet } Det skal være tabulator forant det skal skje noe... Da for du fin og oversiktelig kode. Siter
Anbefalte innlegg
Bli med i diskusjonen!
Du kan poste innlegg nå og registrere deg senere. Hvis du har en brukerkonto kan du logge inn nå for å poste med din egen konto.