2 van 2

Re: [java] basisprobleem

Geplaatst: vr 08 feb 2008, 16:20
door Ruben01
Als je denkt dat daar een oplossing voor is dan heb je niet goed begrepen wat ik je probeerde te zeggen. Er zitten oneindig veel getallen tussen 0 en 1. Stel dat je deze allemaal precies wilt kunnen weergeven in een computer. Hoeveel bits heb je dan nodig voor de representatie van een getal?
Dat heb ik wel begrepen maar ik zocht zo een methode zoals Cycloon voorstelde (voor C++) die ook in Java werkt !

Re: [java] basisprobleem

Geplaatst: vr 08 feb 2008, 16:48
door Cycloon
Math.round(z) zou het moeten doen denk ik, Math.fabs(8-z) moet ook werken vermoed ik. Probeer het ff uit? :D

Re: [java] basisprobleem

Geplaatst: vr 08 feb 2008, 16:56
door Ruben01
Math.round(z) zou het moeten doen denk ik, Math.fabs(8-z) moet ook werken vermoed ik. Probeer het ff uit? :D
Bedankt Cycloon, die Math.round() werkt perfect !

Die Math.fabs(8-z) werkt niet direct maar ik ben al tevreden dat ik een oplossing heb.

Is er ergens de mogelijkheid om alle functies te bekijken die in de klasse Math zitten ?

Er staan er een aantal in mijn cursus maar ik vermoed dat er een heleboel zijn die er niet instaan.

EDIT, ik heb het al gevonden: http://java.sun.com/j2se/1.3/docs/api/java/lang/Math.html

Re: [java] basisprobleem

Geplaatst: vr 08 feb 2008, 16:57
door Cycloon

Re: [java] basisprobleem

Geplaatst: vr 08 feb 2008, 16:59
door Ruben01
Cycloon schreef:http://java.sun.com/j2se/1.3/docs/api/java/lang/Math.html

Eerste link van google :D
Inderdaad, ik had het ook gezien :D .

Bedankt voor de hulp iedereen !

Re: [java] basisprobleem

Geplaatst: vr 08 feb 2008, 20:08
door Lathander
het kon allemaal veel makkelijker dan de afrondingsfunctie van Math te gebruiken hoor...

Voor machten

Code: Selecteer alles

public class Logaritmen

{

public static void main(String[] argumenten)

{

Input l = new Input();

double x,y,z;

System.out.print("Geef het getal x in: ");

x=l.readDouble();

System.out.print("Geef het getal y in: ");

y=l.readDouble();

z=Math.pow(x,y);

System.out.println(x+ " tot de macht "+y+ " = " +z);

}

}
voor logaritmes

Code: Selecteer alles

public class Machten

{

public static void main(String[] argumenten)

{

Input l = new Input();

double x,y,z;

System.out.print("Geef het getal x in: ");

x=l.readDouble();

System.out.print("Geef het getal y in: ");

y=l.readDouble();

z=(Math.log(y))/(Math.log(x));

System.out.println("De " + y + " voudige logaritme van " + x + " = " + z);

}

}
X zijnde welke logaritme ge wilt(10-voudig of iets anders), Y zijnde het getal waarvan ge een logaritme neemt

Hebt gij er enig idee van hoe ge Strings inleest via de klasse input? Ik heb dat nooit gezien met die klasse. Met strings werken is bijzonder handig om specifieke gevallen van ingave te herkennen. Zo zou ik het kunnen programeren dat ge het getal e ingeeft, om aan te geven dat ge een natuurlijke logartime wilt en dat dat dan correct uitgevoerd wordt

Re: [java] basisprobleem

Geplaatst: vr 08 feb 2008, 22:59
door Ruben01
Bedankt voor de bovenstaande voorbeelden Evil Lathander.

De formule die ik gebruikte was zo gegeven tijdens de les en daarmee wou ik in dat geval het probleem oplossen, Cycloon heeft zoals je kan mij daarbij perfect geholpen.

Toch leuk dat jij de andere mogelijkheden nog eens geeft, het kon dus inderdaad wel iets makkelijker :D .
Hebt gij er enig idee van hoe ge Strings inleest via de klasse input? Ik heb dat nooit gezien met die klasse. Met strings werken is bijzonder handig om specifieke gevallen van ingave te herkennen. Zo zou ik het kunnen programeren dat ge het getal e ingeeft, om aan te geven dat ge een natuurlijke logartime wilt en dat dat dan correct uitgevoerd wordt
We gebruiken momenteel nog de klassa Math maar als je een voorbeeld kan en wil geven met Strings mag je dat zeker doen, hopelijk begrijp ik het en dan kan ik die methode in de toekomst misschien ook gebruiken.

Alvast bedankt !

Re: [java] basisprobleem

Geplaatst: vr 08 feb 2008, 23:44
door Lathander
Strings inlezen doen wij met de klasse Stream(weldegelijk met hoofdletter)

Een string is eigenlijk een aaneenschakeling van character, of het nu cijfers of letters zijn maakt niet uit. Het is geen primitief type zoals integers, booleans, double, longs, bytes of shorts, het is een object.

System.out.println() is al meteen een methode die met Strings kan werken, sinds Strings genoteerd worden met dubbele aanhalingstekens.

"Dit is een String" is bijvoorbeeld een String

"9" is ook een string, de letter-notatie van het getal 9.

Via het commando

Code: Selecteer alles

Integer.parseInt("9");
kan je deze String bijvoorbeeld omzetten naar de Integer 9

Indien je de integeromzetting zou proberen met het getal 9.0, zou je foutmelding krijgen, sinds dat een Double is.

Dan bestaan er ook substrings, dit zijn Strings waarvan de inhoud afhankelijk is van de hoofdString.

codevoorbeeld:

Code: Selecteer alles

public class Voorbeeld

{

public void start()

{

String toon = new String();

String sub = new String();

toon = "Dit is de originele String";

sub = toon.substring(4,11);

System.out.println(sub);

}

public static void main(String[] args)

{

Voorbeeld go = new Voorbeeld();

go.start();

}

}
output: "is de o"

De substring maakt een nieuwe String gebasseerd op de opgegeven indexen, hier dus [4,11[

indextelling begint bij 0

Re: [java] basisprobleem

Geplaatst: za 09 feb 2008, 00:10
door Cycloon
Er zijn nog meer zaken over strings te vertellen hoor. Maar dan gaan we best wel een beetje off-topic denk ik zo :D

Maar mss enkel dit belangrijk punt vertellen: Je kan met chars ook rekenen. Zo kan je 'A'+1 doen, wat 'B' wordt. '9'-1 wordt dan '8'. Dit kan je dan weer gebruiken om strings om te zetten naar ints. input-'0' zal dan een getal waarde leveren die je kan vermenigvulden met enkele keren 10 om het de goede 'rang' in het totale getal te geven (handig uit te voeren met de methode van horner bv).

Ps: Maak je hier zeker nog niet druk over, je zal deze zaken vermoedelijk nog wel aangeleerd krijgen :D

Re: [java] basisprobleem

Geplaatst: za 09 feb 2008, 09:11
door Ruben01
Bedankt voor de uitleg, ik denk wel dat ik het ongeveer begrijp :D .