Skrevet 19. oktober 2009 15 år 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å?
Skrevet 19. oktober 2009 15 år 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å?
Skrevet 20. oktober 2009 15 år Forfatter 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.
Skrevet 20. oktober 2009 15 år Forfatter 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.
Skrevet 20. oktober 2009 15 år 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
Skrevet 20. oktober 2009 15 år Forfatter 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.
Skrevet 20. oktober 2009 15 år Jeg kan dessverre ingenting om JavaScript, så der må jeg trekke til siden... /T
Skrevet 21. oktober 2009 15 år 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.
Skrevet 21. oktober 2009 15 år 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
Skrevet 21. oktober 2009 15 år ATAN er vel arcus tangens, dvs den inverse tangensfunksjonen. Ellers er jeg enig.
Skrevet 21. oktober 2009 15 år Forfatter 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.
Skrevet 21. oktober 2009 15 år 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));
Skrevet 21. oktober 2009 15 år 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?
Skrevet 21. oktober 2009 15 år Kan nok gjøres, men et slikt regneark er ikke riktig verktøy for større maskiner. Hilsen T
Skrevet 22. oktober 2009 15 år Forfatter 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 = "".
Skrevet 22. oktober 2009 15 år 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.
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.