21. august 2003 - 13:23
Der er
28 kommentarer og 1 løsning
Exponentialfunktioner, potensfunktioner og hjælp på nettet.
Kære eksperter, Mit spørgsmål indeholder 2 elementer. a) Hjælp til nedenstående programstump. b) anbefaling af et sted på nettet, hvor jeg kan få hurtig hjælp til basale spørgsmål som a). Alle variable er erklæret som double. Ad a) Til HeNH3 = HeNH3_STP*exp(zetaHeNH3*((1/T_a)-(1/T_0))); får jeg følgende fejlmeddelelse når jeg compiler: ModelJava100.java [231:1] cannot resolve symbol symbol : method exp (double) location: class ModelJava100 HeNH3 = HeNH3_STP*exp(zetaHeNH3*((1/T_a)-(1/T_0))); ... Dvs at mit exp tegn er forkert. Jeg har ikke importeret nogle klasser eller noget. Et andet problem er at jeg på: viskositetsfaktor = 10^((1.3272 * (Tfem - T_a) - 0.001053 * (T_a - Tfem) ^ 2) / (T_a - 168)); får compilefejlen: ModelJava100.java [241:1] operator ^ cannot be applied to int,double ... er det fordi 168 er en int og at man ikke må blande int og double sammen ? Ad b) Er der en hjemmeside om f.eks. javaprogrammering, bortset fra eksperten.dk, hvor jeg hurtigt kunne have fået besvaret disse basale spørgmål ? Hvis Ja angiv URL. På forhånd tak. Med venlig hilsen Anders Nielsen
Annonceindlæg fra HP
21. august 2003 - 13:30
#2
Prøv: Til HeNH3 = HeNH3_STP*exp(zetaHeNH3*(((double)1/T_a)-((double)1/T_0)));
21. august 2003 - 13:33
#4
For at bruge exp skal du vist importere java.lang.Math. Jeg kan ikke lige huske om "hatten" kan tage int, double. Men ifølge din compiler dur det ikke. så prøv enten 10.0^(...) eller find en funktion i Math pakken der kan gøre det for dig. Mht hjælp. Så er der et udemærket forum på java.sun.com, det er dog på engelsk ved ikke om det er godt nok.
21. august 2003 - 13:38
#5
Math.exp og Math.pow som foreslået af Jakob er det korrekte svar.
21. august 2003 - 13:39
#6
Og man behøver ikke importere da java.lang.* er default importeret.
21. august 2003 - 13:42
#7
Siger jeg så f.eks. math.exp(10,2) og math.pow(10,3) osv. ? Er math.pow(10,(math.pow(10,2))) tilladt ?
21. august 2003 - 13:44
#8
arne >> hvis man nu specifikt importerer Math klassen, slipper man så ikke for at skrive 'Math.' foran hver metode ?
21. august 2003 - 13:44
#9
Ja. Ja.
21. august 2003 - 13:45
#10
jakob> Nej. Import gør kun at man kan undlade package.
21. august 2003 - 13:46
#11
enhver værdi kan erstattes af et udtryk eller metodekal der beregner en værdi, så du kan sagtens kompinere. Java er case-sensitiv. det er 'Math' ikke 'math'
21. august 2003 - 13:46
#12
math.pow(10,(math.pow(10,2))) er iøvrigt et temmeligt stort tal !
21. august 2003 - 13:48
#13
Er det nok med ? import java.lang.Math.*; og derefter f.eks. pow(2,3) og virker ovenstående konstruktion med det meget store tal
21. august 2003 - 13:52
#14
Ingen import. Og Math.pow(2,3) !
21. august 2003 - 13:53
#15
Hej Arne og Jakob T_a=pow(10.0,2.0); T_a=math.pow(10.0,2.0); T_a=pow(10,2); T_a=math.pow(10,2); Ingen af dem virker - hvad går galt ?
21. august 2003 - 13:54
#16
Math.pow og Math.exp bruger double og du de kan tage rimeligt store værdier. Største værdi er Double.MAX_VALUE som hvis jeg husker rigtigt er ca. 10^300.
21. august 2003 - 13:55
#17
Hvis du skal bruge større tal skal du nok kigge på java.math pakken og klasserne BigInteger og BigDecimal.
21. august 2003 - 13:56
#18
T_a=Math.pow(10,2); Math med stort M !
21. august 2003 - 13:57
#19
Hej Arne og Jakob, Tusind tak for hjælpen - specielt det sidste med Math.pow og dermed også Math.exp gjorde underværker. Jeg giver Arne 16 og Jakob 9 point - tak i skal have.
21. august 2003 - 13:59
#20
prøv. (men siden arne har sagt nej tvivler jeg meget).
diverse datatyper (int, float, double) hr grænser for hvor store tallene kan være.
fra:
http://java.sun.com/docs/books/jls/second_edition/html/lexical.doc.html#76707 The largest positive finite float literal is 3.40282347e+38f. The smallest positive finite nonzero literal of type float is 1.40239846e-45f.
The largest positive finite double literal is 1.79769313486231570e+308. The smallest positive finite nonzero literal of type double is 4.94065645841246544e-324.
mvh JakobA
21. august 2003 - 14:05
#21
Hej Jakob, Jeg har ikke så meget brug for store tal men snarere meget lave tal da jeg skal udregne [H+](brintionen) 50 gange i sekundet. Dvs. at det har betydning om mit tal er 0.000000100001 eller 0.000000100005 / Anders N
21. august 2003 - 14:07
#22
Featuren kommer vistnok i Java 1.5 og hedder static import ! import static java.lang.Math.*; og så kan man bruge exp og pow uden Math. foran.
21. august 2003 - 14:08
#23
Double.MIN_VALUE indeholder mindste værdi for double. Og er ca. 10^(-300).
21. august 2003 - 14:08
#24
Hov - Jakob har allerede skrevet en mere præcis værdi.
21. august 2003 - 14:24
#25
Hej Arne, Har du udgivet noget om Java programmering ?
21. august 2003 - 14:35
#26
Udgivet noget ?
21. august 2003 - 14:37
#27
Ja, lørebøger om Java f.eks. - jeg er bare nysgerrig.
21. august 2003 - 14:39
#28
No.
22. august 2003 - 13:36
#29
og et svar. Bed Jakob også ligge et.
Kurser inden for grundlæggende programmering