[informatica] Java: signatuur van een functie
Moderators: ArcherBarry, Fuzzwood
- Berichten: 768
Java: signatuur van een functie
Hallo iedereen,
Wat wordt bedoeld met de signatuur van een functie? Ik heb al gegoogled, maar daar geraak ik niet wijzer uit. We moeten een programma schrijven en er is ene klasse die alleen de signatuur van de functie bevat. Ik weet ondertussen al dat je de naam moet meegeven, maar ze zeggen ook iets van de argumenten. Wat bedoelen ze juist met die argumenten?
Wat wordt bedoeld met de signatuur van een functie? Ik heb al gegoogled, maar daar geraak ik niet wijzer uit. We moeten een programma schrijven en er is ene klasse die alleen de signatuur van de functie bevat. Ik weet ondertussen al dat je de naam moet meegeven, maar ze zeggen ook iets van de argumenten. Wat bedoelen ze juist met die argumenten?
Het Wetenschapsforum heeft ook een facebook pagina!
- Berichten: 2.609
Re: Java: signatuur van een functie
Bedoelen ze geen abstracte klasse/functie?
- Berichten: 768
Re: Java: signatuur van een functie
neen, dit is het letterlijk gekopieerd:
9 Nulpunten van functies
Het is de bedoeling om in deze opgave een nulpunt van een ree ̈le functie in 1 ree ̈le variabele te vinden. Het algoritme om dit te realiseren wordt in de klasse Functie geprogrammeerd. Deze klasse zelf specificeert ech- ter niet de functie waarvan de nulpunten moeten gezocht worden. Ze bevat enkel de signatuur van de functie. Naast het zoeken van een nulpunt van een functie, bevat deze klasse bovendien methoden om de afgeleide van de functie in een willekeurig punt numeriek te bepalen, en om de functie in tabelvorm naar een bestand weg te schrijven.
9 Nulpunten van functies
Het is de bedoeling om in deze opgave een nulpunt van een ree ̈le functie in 1 ree ̈le variabele te vinden. Het algoritme om dit te realiseren wordt in de klasse Functie geprogrammeerd. Deze klasse zelf specificeert ech- ter niet de functie waarvan de nulpunten moeten gezocht worden. Ze bevat enkel de signatuur van de functie. Naast het zoeken van een nulpunt van een functie, bevat deze klasse bovendien methoden om de afgeleide van de functie in een willekeurig punt numeriek te bepalen, en om de functie in tabelvorm naar een bestand weg te schrijven.
Het Wetenschapsforum heeft ook een facebook pagina!
- Berichten: 2.609
Re: Java: signatuur van een functie
Dan bedoelen ze dat Functie een interface is. (Wat in essentie een abstracte klasse is.)
Specifieke functies zoals sinus, veelterm moeten die interface dan implementeren.
Specifieke functies zoals sinus, veelterm moeten die interface dan implementeren.
- Berichten: 768
Re: Java: signatuur van een functie
Om een object aan te maken, hoe doe je dat dan? Een interface heeft toch geen objecten? Ik zie een interface zo: dat is een blauwdruk voor alle klassen die het implementeert. Dus als er een methode inzit en je hebt a implements B, dan moet a alle methodes bevatten die B bevat, natuurlijk wel concreet ingevuld dan.
Het Wetenschapsforum heeft ook een facebook pagina!
- Berichten: 2.609
Re: Java: signatuur van een functie
Inderdaad dus je hebt een interface Functie:
En dan heb je een klasse die de interface implementeert:
Je kan dan in je main programma een object aanmaken via
Functie f = new Rechte();
Ik ben niet helemaal zeker van de syntax maar dit is het idee.
Code: Selecteer alles
interface Functie{
double nulpunt();
}
Code: Selecteer alles
class Rechte implements Functie{
int a,b; // rechte = a*x + b
double nulpunt(){
return -b/a;
}
}
Functie f = new Rechte();
Ik ben niet helemaal zeker van de syntax maar dit is het idee.
- Berichten: 768
Re: Java: signatuur van een functie
Ik snap wat je doet, is het dan juist wat ik doen?
En dan heb je natuurlijk verschillende klassen voor verschillende functies.
EDIT: ik heb
verwijderd, een abstracte klasse heeft geen objecten, je kan er dus ook geen maken...
Code: Selecteer alles
package Nulpuntenvaneenfunctie;
public abstract class Functie {
private int aantalit = 100;
private double epsilon = Math.pow(10, -10);
private double delta = Math.pow(10,-10);
private String naam;
private int a;
public abstract double afgeleide(double a);
public abstract double nulpunt(double b);
}
EDIT: ik heb
Code: Selecteer alles
public Functie(String naam){
this.naam = naam;
}
Het Wetenschapsforum heeft ook een facebook pagina!
- Berichten: 2.609
Re: Java: signatuur van een functie
Ik denk dat het mooier is om met een interface te werken en daar enkel dingen in te zetten die alle functies zullen hebben. (Allez uiteraard heeft niet elke functie een nulpunt, maar daar zou je bv een Exception kunnen throwen.)
Ik weet niet wat al je private attributen betekenen, maar iets als een naam hoeft niet per se in een attribuut te staan. Je kan zeggen dat name() een abstract method is die een String teruggeeft. Elke functie moet die dan implementeren zodat die de juiste naam returnet.
Ik weet niet wat al je private attributen betekenen, maar iets als een naam hoeft niet per se in een attribuut te staan. Je kan zeggen dat name() een abstract method is die een String teruggeeft. Elke functie moet die dan implementeren zodat die de juiste naam returnet.
- Berichten: 768
Re: Java: signatuur van een functie
Oke, dit is dan mijn interface:
De bedoeling is om nulpunten te berekenen en de afgeleide. Mijn volgende vraag is dan de volgende. Er staat dan:
De klasse BoogTangens
Deze klasse moet in staat zijn om functies van de vorm Bgtg(x) − ax − b voor te stellen. Programmeer
het nodige om
• objecten van deze klasse te initialiseren via opgave van de getallen a en b
• nulpunten van deze functie te zoeken mits opgave van een beginschatting
Dan moet je nog een klasse maken die de afgeleide berekent. Maar ik zit met een probleem dan. Er staat dat de klasse functie de volgende methodes moet bevatten (wij gebruiken nu een interface, maar het probleem komt op hetzelfde neer):
- een die de nulpunten berekent
- een die de afgeleide berekent
Onder de klasse BoogTangens staat de klasse BoogTangensAfgeleid. In de klasse BoogTangens moet je (zoals hierboven beschreven) geen methode hebben om de afgeleide te bepalen. Je kan dan de klasse BoogTangens dan toch niet implementeren met de interface?
Code: Selecteer alles
package Nulpuntenvaneenfunctie;
public interface Functie {
public int aantalit = 100;
public double epsilon = Math.pow(10, -10);
public double delta = Math.pow(10,-10);
public abstract double afgeleide(double a);
public abstract double nulpunt(double b);
}
De klasse BoogTangens
Deze klasse moet in staat zijn om functies van de vorm Bgtg(x) − ax − b voor te stellen. Programmeer
het nodige om
• objecten van deze klasse te initialiseren via opgave van de getallen a en b
• nulpunten van deze functie te zoeken mits opgave van een beginschatting
Dan moet je nog een klasse maken die de afgeleide berekent. Maar ik zit met een probleem dan. Er staat dat de klasse functie de volgende methodes moet bevatten (wij gebruiken nu een interface, maar het probleem komt op hetzelfde neer):
- een die de nulpunten berekent
- een die de afgeleide berekent
Onder de klasse BoogTangens staat de klasse BoogTangensAfgeleid. In de klasse BoogTangens moet je (zoals hierboven beschreven) geen methode hebben om de afgeleide te bepalen. Je kan dan de klasse BoogTangens dan toch niet implementeren met de interface?
Het Wetenschapsforum heeft ook een facebook pagina!
- Berichten: 2.609
Re: Java: signatuur van een functie
Nee ik zou gewoon een klasse BoogTangens maken die Functie implementeert.
In afgeleide(double a) zet jij dan analytisch de formule van de afgeleide van die BoogTangens en je geeft de waarde voor x = a terug.
Voor het nulpunt kan je mss eerst een superklasse FunctieMetNulpunt maken en BoogTangens die laten extenden. In FunctieMetNulpunt kan je dan een methode schrijven die het nulpunt vindt (mogelijk met hulp van de afgeleide).
In afgeleide(double a) zet jij dan analytisch de formule van de afgeleide van die BoogTangens en je geeft de waarde voor x = a terug.
Voor het nulpunt kan je mss eerst een superklasse FunctieMetNulpunt maken en BoogTangens die laten extenden. In FunctieMetNulpunt kan je dan een methode schrijven die het nulpunt vindt (mogelijk met hulp van de afgeleide).
- Berichten: 768
Re: Java: signatuur van een functie
en wat moet er dan gebeuren met die klasse BoogTangensAfgeleid? Die moet gemaakt worden, dat is een deel van de opdracht
Het Wetenschapsforum heeft ook een facebook pagina!
- Berichten: 2.609
Re: Java: signatuur van een functie
Goh ik zie dan evt iets als volgt, maar OO design is mijn sterkste kant niet.
Code: Selecteer alles
interface Functie{
double evaluate(double x); // geef de waarde van de functie in x
}
interface AfleidbareFunctie extends Functie{
double afgeleide(double x);
}
abstract class FunctieMetNulpunt extendsFunctie{
double nulpunt(){
// implementeer hier een functie die het nulpunt zoekt (je zal daar de evaluate() methode voor nodig hebben)
}
}
class BoogTangens extends FunctieMetNulpunt implements AfleidbareFunctie{
// nulpunt is al geimplementeerd in FunctieMetNulpunt
// evaluate() en afgeleide() moeten nog geimplementeerd worden, gebruik hiervoor de analytische formules
}
- Berichten: 768
Re: Java: signatuur van een functie
Ik heb door wat er bedoeld wordt. In de klasse Boogtangensafgeleid bepaal je het met de formule en in de klasse BoogTangens met de definitie van de afgeleide... Dat mocht wel iets duidelijker vermeld staan
Het Wetenschapsforum heeft ook een facebook pagina!
- Berichten: 2.609
Re: Java: signatuur van een functie
Oké als je verder kan dan is het goed, maar mss post je in de toekomst best de volledige opgave, want zo is het teveel puzzelwerk
- Berichten: 768
Re: Java: signatuur van een functie
Ja, ik zal het uiteindelijk ook te denken. Jij kon onmogelijk weten dat dat het probleem was. Moest je nog geinteresseerd zijn, dan gooit ik het er wel op
Het Wetenschapsforum heeft ook een facebook pagina!