Avatar billede andersmd Nybegynder
12. januar 2008 - 20:04 Der er 6 kommentarer

Addering af variabler

Jeg har et problem med at lægge tre variabler sammen...
Prøv at skriv følgende i nedenstående kode:
Side a:7
Side b:9
Vinkel B:65

Så vil du se at Omkredsen bliver:799.34203393151934
og den skulle gerne være:25,34203393151934

Hvad gør jeg???

<html>
<head>
  <title>Trekant</title>
</head>
<body>
  <form name="fTrekantBeregn">
  <table>
    <tr>
      <td rowspan="11"></td>
      <td>Side a:</td>
      <td><input name="inSideA"></td>
    </tr>
    <tr>
      <td>Side b:</td>
      <td><input name="inSideB"></td>
    </tr>
    <tr>
      <td>Side c:</td>
      <td><input name="inSideC"></td>
    </tr>
    <tr>
      <td>Vinkel A:</td>
      <td><input name="inVinkelA"></td>
    </tr>
    <tr>
      <td>Vinkel B:</td>
      <td><input name="inVinkelB"></td>
    </tr>
    <tr>
      <td>Vinkel C:</td>
      <td><input name="inVinkelC"></td>
    </tr>
    <tr>
      <td>Højden vinkelret på a:</td>
      <td><input name="inHeightA"></td>
    </tr>
    <tr>
      <td>Højden vinkelret på b:</td>
      <td><input name="inHeightB"></td>
    </tr>
    <tr>
      <td>Højden vinkelret på c:</td>
      <td><input name="inHeightC"></td>
    </tr>
    <tr>
      <td>Areal:</td>
      <td><input name="inAreal"></td>
    </tr>
    <tr>
      <td>Omkreds:</td>
      <td><input name="inOmkreds"></td>
    </tr>
  </table>
  <button name="KnapTrekantBeregn">Beregn</button>
  <button name="KnapTrekantReset" type="reset">Nustil</button>
  </form>
  <script language="javascript">
    <!--Variabler-->
      var vSideA=0
      var vSideB=0
      var vSideC=0
      var vVinkelA=0
      var vVinkelB=0
      var vVinkelC=0
      var vHeightA=0
      var vHeightB=0
      var vHeightC=0
      var vAreal=0
      var vOmkreds=0
    <!--Events-->
      document.fTrekantBeregn.KnapTrekantBeregn.onclick=funBeregn_abC;
    <!--Funktioner-->
      function funBeregn_abC()
      {
      vSideA=document.fTrekantBeregn.inSideA.value
      vSideB=document.fTrekantBeregn.inSideB.value
      vVinkelB=document.fTrekantBeregn.inVinkelB.value
      vVinkelA=Math.asin((Math.sin(vVinkelB/(360/(2*Math.PI)))/vSideB)*vSideA)*(360/(2*Math.PI));
      vVinkelC=180-vVinkelB-vVinkelA;
      vSideC=Math.sin(vVinkelC/(360/(2*Math.PI)))/(Math.sin(vVinkelB/(360/(2*Math.PI)))/vSideB);
      vHeightA=Math.sin(vVinkelC/(360/(2*Math.PI)))*vSideB;
      vHeightB=Math.sin(vVinkelA/(360/(2*Math.PI)))*vSideC;
      vHeightC=Math.sin(vVinkelB/(360/(2*Math.PI)))*vSideA;
      vAreal=vHeightA*vSideA/2;
      vOmkreds=vSideA+vSideB+vSideC;
      funScreenWrite()
      }
      function funScreenWrite()
      {
      document.fTrekantBeregn.inSideA.value=vSideA
      document.fTrekantBeregn.inSideB.value=vSideB
      document.fTrekantBeregn.inSideC.value=vSideC
      document.fTrekantBeregn.inVinkelA.value=vVinkelA
      document.fTrekantBeregn.inVinkelB.value=vVinkelB
      document.fTrekantBeregn.inVinkelC.value=vVinkelC
      document.fTrekantBeregn.inHeightA.value=vHeightA
      document.fTrekantBeregn.inHeightB.value=vHeightB
      document.fTrekantBeregn.inHeightC.value=vHeightC
      document.fTrekantBeregn.inAreal.value=vAreal
      document.fTrekantBeregn.inOmkreds.value=vOmkreds
      }
    </script>
</body>
</html>
Avatar billede nielle Nybegynder
12. januar 2008 - 20:20 #1
Det jeg skrev tidligere har ikke ændret sig:

Hvis du har Side-A, Side-B og Vinkel-B så vil der være tilfælde hvor at der er 0 løsning, tifælde hvor at der er netop èn løsning, og tilfælde hvor at der er netop to trekanter som begge er en løsning.
Avatar billede nielle Nybegynder
12. januar 2008 - 20:22 #2
Hvis du i stedet starter med Side-A, Side-B og Vinkel-C så er der altid en entydig løsning.
Avatar billede andersmd Nybegynder
13. januar 2008 - 13:02 #3
Ja, men senere har jeg tænkt mig at lave det sådan at det ikk kun er (side a, side b og vinkel B) der kan skrives ind, så den regner de andre ud. De andre muligheder skal også laves, som f.eks. (side a, side b og vinkel C) eller måske (Areal, side a og side b (hvis det kan lade sig gøre, har ikke lige regnet det ud endnu)).
Hvis så der bliver lavet en trekant der ikke kan lade sig gøre, kan man jo eventuelt gøre sådan at der kommer en besked op med at trekanten ikke kan lade sige gøre.
Jeg har f.eks. lavet en cirkel hvor hvis du skriver radius regner den de andre ud, eller hvis du skriver areal regner den de andre ud. Det eneste der er i vejen med den er at man kan skrive bogstaver i, og det ved jeg ikke hvordan man kan gøre så man ikke kan det.
Men problemet lige nu er jo egentlig at tre variabler ikke gider at lægge sig sammen og bare skrives lige efter hinanden, så hvis alle sider var 10, så skriver den 101010 i omkredsen.
Avatar billede olebole Juniormester
13. januar 2008 - 16:30 #4
<ole>

Når du aflæser et tekstfelt, er værdien en streng. Skal værdien bruges som tal, skal den først konverteres:
    var nValue = parseFloat(REFERENCE_TIL_FELT.value);

- eller:
    var nValue = REFERENCE_TIL_FELT.value * 1;

/mvh
</bole>
Avatar billede andersmd Nybegynder
13. januar 2008 - 19:21 #5
Ja tak nu virker det...
Avatar billede nielle Nybegynder
21. januar 2008 - 18:35 #6
Må man spørge hvordan din kode kom til at se ud?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester