Volledige versie bekijken : Discriminantje
eagle
%Europe/Berlin %839 %2005, 21:09
Had ik gisteren even nodig voor een script, ik zag deze topic en dacht "Ahh why not".
Functie om de discriminant te berekenen, bijvoorbeeld: 3x² - 6x + 2 = 0
waarbij
3 -> a
-6 -> b
2 -> c
function discriminant(a, b, c) {
return (Math.pow(b, 2)-4*a*c);
}
function nulpunten(a, b, d) {
if (d<0) {
return false;
}
if (d == 0) {
return (-b/(2*a));
}
if (d>0) {
x = new Array();
x[0] = (-b-Math.sqrt(d))/(2*a);
x[1] = (-b+Math.sqrt(d))/(2*a);
return x;
}
}
Tha Narie
%Europe/Berlin %862 %2005, 21:42
// usage
d = discriminant(3, -6, 2);
n = nulpunten(3, -6, d);
The_One
%Europe/Berlin %030 %2005, 01:44
hoi,
Beetje mieren****en, maar verander dit: x = new array();
in dit: x = new Array();
Anders doet je script t niet :)
kH_
%Europe/Berlin %644 %2005, 16:27
Nog iets, willekeurige informatie terugsturen (dus het return-type niet definieren) is een erg slechte programmeerstijl!!! Probeer je dit af te leren. Retourneer in jouw geval dus altijd een Object (return type Object) en vul deze met de betreffende informatie.
eagle
%Europe/Berlin %647 %2005, 16:32
Hoe zou ik het dan moeten aanpassen kalehufter :) ?
kH_
%Europe/Berlin %508 %2005, 13:12
Op deze manier zou kunnen:
function discriminant(a:Number, b:Number, c:Number):Number {
return (Math.pow(b, 2)-4*a*c);
}
function nulpunten(a:Number, b:Number, d:Number):Object {
var obj:Object=new Object();
if (d<0) {
obj.returnType="ERROR";
}
if (d == 0) {
obj.returnType="NUMBER";
obj.pntIntersection= (-b/(2*a));
}
if (d>0) {
x = new Array();
x[0] = (-b-Math.sqrt(d))/(2*a);
x[1] = (-b+Math.sqrt(d))/(2*a);
obj.returnType="ARRAY";
obj.arrIntersections=x;
}
return obj;
}
var a:Number=3;
var b:Number=3;
var c:Number=-5;
var disc:Number=discriminant(a,b,c);
var objReturn:Object=nulpunten(a,b,disc);
trace("DISCRIMINANT = "+disc);
if(objReturn.returnType=="ERROR")
{
trace("GEEN SNIJPUNTEN");
}
if(objReturn.returnType=="NUMBER")
{
trace("1 SNIJPUNT -> ("+objReturn.pntIntersection+",0)");
}
if(objReturn.returnType=="ARRAY")
{
trace("2 SNIJPUNTEN -> ("+objReturn.arrIntersections[0]+",0) EN ("+objReturn.arrIntersections[1]+",0)");
}
vBulletin® v3.8.1, Copyright ©2000-2012, Jelsoft Enterprises Ltd.