Vertalen naar LB of JB

Opgaven en tips voor programmeerwedstrijden.

Vertalen naar LB of JB

Berichtdoor hbh-tieltjes » wo sep 09, 2009 2:02 pm

Wie kan/wil onderstaand programma in een werkend basic programma vertalen.

double cube_root(unsigned long a_)
{
unsigned long x_ = 1;
double x, xxx, a;
if (a_ == 0)
return 0.0;
if (a_ == 1)
return 1.0;
a = (double) a_;
do {
a_ >>= 3;
x_ <<= 1;
} while (a_);
x = (double) x_;
xxx = x * x * x, x = x * (xxx + a + a) / (xxx + xxx + a);
/* Accurate to 2 decimal digits: */
xxx = x * x * x, x = x * (xxx + a + a) / (xxx + xxx + a);
/* Accurate to 7 decimal digits: */
xxx = x * x * x, x = x * (xxx + a + a) / (xxx + xxx + a);
/* Accurate to 15 decimal digits: */
xxx = x * x * x, x = x * (xxx + a + a) / (xxx + xxx + a);
return x;
}

Ik denk dat dit programma de derdemachtswortel uit een getal berekend
Welke programmeertaal is dit ?
B.v.d voor de oplossing.
Vr. gr. van Herman
hbh-tieltjes
 
Berichten: 53
Geregistreerd: di nov 11, 2008 11:44 am

Re: Vertalen naar LB of JB

Berichtdoor hbh-tieltjes » wo sep 23, 2009 10:17 am

Hallo programmeurs is er iemand die dit naar LB kan vertalen ?
Of weet iemand wat dit voor programmeertaal is, zodat ik
daar mischien uitkomst krijg.Vr.gr. Herman
hbh-tieltjes
 
Berichten: 53
Geregistreerd: di nov 11, 2008 11:44 am

Re: Vertalen naar LB of JB

Berichtdoor Gordon » wo sep 23, 2009 8:44 pm

Hallo Herman,

Waar heb je de functie vandaan gehaald?
Het lijkt op C.

Gordon

p.s. probeer het in de nieuwsgroep

alt.lang.basic
Avatar gebruiker
Gordon
Site Admin
 
Berichten: 684
Geregistreerd: zo mei 22, 2005 12:50 am

Re: Vertalen naar LB of JB

Berichtdoor hbh-tieltjes » do sep 24, 2009 7:23 pm

Hallo Gorden,

Dit prog. berekend denk ik de derdemachtswortel uit een getal.
Ik heb dit program via WisFaq doorverwezen gekregen.
Op http://en.wikipedia.org/wiki/Cube_root kun je lezen hoe je m.b.v. verschillende technieken het antwoord kunt benaderen (want het is en blijft meestal een benadering), er staat eveneens een programmacode.
Op http://mathforum.org/library/drmath/view/52605.html kun je nog een andere methode vinden.
Hoe een rekenmachine dit doet? Hoogstwaarschijnlijk d.m.v. een ingebouwde formule die verkregen is m.b.v. Taylor-reeks voor exp(x) en ln(x), want x^(1/3) = exp((1/3)*ln(x)) (http://en.wikipedia.org/wiki/Taylor_series) of d.m.v. het iteratieve proces, hetgeen ik reeds heb uitgelegd. Zie ook http://www.wolframalpha.com/input/?i=taylor+x^(1%2F3).
Het is waarschijnlijk C of of Javascript denk ik.
Ik heb zelf ook een programma in JB geschreven die de derdemachtswortel berekend tot 6 decimalen acter de komma.
Even waar het om gaat 5^3=5*5*5=125 hier uit volgt dat de 3e machtswortel uit 125=5. Hoe kom je nu aan die 5 ??
Als er belangstelling is voor mijn program wil ik die hier wel plaatsen.Kunnen anderen het misschien wel verbeteren.

Vr. gr. Herman
hbh-tieltjes
 
Berichten: 53
Geregistreerd: di nov 11, 2008 11:44 am

Re: Vertalen naar LB of JB

Berichtdoor Gordon » do sep 24, 2009 11:20 pm

Hoi,

print 5^3
print 125^(1/3)

Hopelijk heb je hier wat aan?

Dit ga ik morgen uitzoeken.

Gordon
Avatar gebruiker
Gordon
Site Admin
 
Berichten: 684
Geregistreerd: zo mei 22, 2005 12:50 am

Re: Vertalen naar LB of JB

Berichtdoor hbh-tieltjes » vr sep 25, 2009 7:38 pm

hallo,

Dat de derdemachtswortel uit 125 gelijk is aan 125^(1/3) is bekend.
Maar schrijf nouw maar eens een snelle functie in basic die het zelfde doet !!!
Ik hoop dat ik binnenkort hier een aantal programmas zie van meerdere programmeurs,
dat de derdemachtswortel uit een willekeurig getal berekend tot minimaal 5 plaatsen achter de komma.
Dan ga ik de mijne er ook bij zetten.
Dus niet PRINT X^(1/3) dat weten we al.

Veel plezier met programmeren.
Vr. gr. Herman
hbh-tieltjes
 
Berichten: 53
Geregistreerd: di nov 11, 2008 11:44 am


Keer terug naar Uitdagingen en wedstrijden

Wie is er online

Gebruikers op dit forum: Geen geregistreerde gebruikers. en 1 gast

cron