Gå til innhold

Anbefalte innlegg

Skrevet

holder på å lage et program som kan regne ut hvor lang distanse en gjenstand har falt på x antall sekund og omvendt. Jeg har klart å gjøre førstnevnte, sistnevnte var litt vanskeligere.

 

Når jeg skal finne ut hvor langt en gjenstand har falt gitt tiden, må jeg ta kvadratroten av

2*distanse/9.81.

 

I java har jeg skrevet følgende:

 

double tid2 = System.out.println(Math.sqrt(2*distanse2/9,81));

 

dette gir feilmeldingen: sqrt(double) in java.lang.Math cannot be applied to (double,int)

hva er årsaken til dette?

 

Her er forøvrig hele kildekoden:

import java.util.Scanner;  // <- metode for å konvertere bytes til primitive verdier.
public class Distanse_versjon2 {
public static void main(String[] args) {

 Scanner tastatur = new Scanner(System.in);
 //skriver ut
 System.out.println("Angi tid i sekunder: ");

 //leser tastaturet
 double tid = tastatur.nextDouble();

 //Gjør regneoperasjoner. Math.pow, opphøyer verdien i tid i 2 (tid^2)
 double distanse = (9.81* Math.pow(tid,2)/2.0);

//skriver ut resultat 
System.out.printf(" Distansen i meter etter " + tid + " sekunder i fritt fall er %.1f", distanse ); 

System.out.println("Angi distanse i meter:");
 double distanse2 = tastatur.nextDouble();

double tid2 = System.out.println(Math.sqrt(2*distanse2/9,81));

             System.out.println ("distanse i meter:" + distanse2 + " meter ");
              System.out.println ("tiden i fritt fall er:" + tid2 + " sekunder");
  }
}

 

 

 

takker for all hjelp!

Videoannonse
Annonse
Skrevet

Så det du har skrevet blir tolket som at 81 er en integerverdi ;)

 

Du har 2*distanse2/9 som er en double KOMMA 81 som er en integer.

 

Bruk heller 9.81 så skulle det gå.

Skrevet

Doh, det er klart printf jeg skal bruke. endret litt tåpelig kode og problemet ble fikset med at jeg endret. Tusen takk for hjelpen!

 

double tid2 = System.out.println(Math.sqrt(2*distanse2/9,81));

 

System.out.println ("distanse i meter:" + distanse2 + " meter ");

 

 

til

double tid2 = Math.sqrt((2*distanse2)/g);

System.out.printf("Tiden i fritt fall: %.1f sekunder", tid2);.

 

Et siste spørsmål:

HVa er det som skjer her: 4/7.0-4/7 = 0.571428571428571, hva skjer ?

Skrevet

Dersom jeg skal gjette: 4/7.0 gir deg et resultat med desimaler. 4/7 er vel heltallsdivisjon, i dette tilfellet blir svaret mindre enn 1 og 0 blir derfor resultatet. Altså 4/7 - 0 = 0.571428571428571

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...