Forum » Programiranje » [NALOGA][Java] Sinus
[NALOGA][Java] Sinus
Lukeatluke ::
A mi lahko kdo pove kaj je tu narobe.Sam že nekaj časa gledam, a ne vidim možne težave.
[quote]package ConsoleApplication1;
[/**
* Summary description for Program
*/
public class Program
{
public static double fakt(double n)
{
if ((n == 0) || (n == 1))
{
return 1;
}
else return n * fakt(n - 1);
}
public static double pot(double z, double s)
{
if (s == 0)
{
return 1;
}
else return z * pot(z, s - 1);
}
public static void main(String[] args)
{
double sinnx=0;
double stevec= 0;
double x = 1;
double p = 1;
double r = 1;
int c = 0, d = 5;
while (stevec = d)
{
x = (pot(x, p)) / (fakt(p));
if (stevec % 2 == 0)
{
sinnx = sinnx + x;
p = p + 2;
}
else if (stevec % 2 != 0)
{
sinnx = sinnx - x;
p = p + 2;
}
stevec++;
}
System.out.print("Vrednost sin od x= " + sinnx);
System.out.println();
}
}]
Pri prvem while = while(stevec manjsi ali enako d), zaradi nekega htmlja sem raje tako pustil.
To je program za sinus iz wikipedie:
[quote] \sin x = x - \frac{x^3}{3!} + \frac{x^5}{5!} - \ldots + (-1)^n \frac{x^{2n+1}}{(2n+1)!} \pm \ldots
[/quote]
[img]http://upload.wikimedia.org/math/6/a/2/...
Hvala že vnaprej za pomoč
[quote]package ConsoleApplication1;
[/**
* Summary description for Program
*/
public class Program
{
public static double fakt(double n)
{
if ((n == 0) || (n == 1))
{
return 1;
}
else return n * fakt(n - 1);
}
public static double pot(double z, double s)
{
if (s == 0)
{
return 1;
}
else return z * pot(z, s - 1);
}
public static void main(String[] args)
{
double sinnx=0;
double stevec= 0;
double x = 1;
double p = 1;
double r = 1;
int c = 0, d = 5;
while (stevec = d)
{
x = (pot(x, p)) / (fakt(p));
if (stevec % 2 == 0)
{
sinnx = sinnx + x;
p = p + 2;
}
else if (stevec % 2 != 0)
{
sinnx = sinnx - x;
p = p + 2;
}
stevec++;
}
System.out.print("Vrednost sin od x= " + sinnx);
System.out.println();
}
}]
Pri prvem while = while(stevec manjsi ali enako d), zaradi nekega htmlja sem raje tako pustil.
To je program za sinus iz wikipedie:
[quote] \sin x = x - \frac{x^3}{3!} + \frac{x^5}{5!} - \ldots + (-1)^n \frac{x^{2n+1}}{(2n+1)!} \pm \ldots
[/quote]
[img]http://upload.wikimedia.org/math/6/a/2/...
Hvala že vnaprej za pomoč
- spremenil: Lukeatluke ()
Lukeatluke ::
Ne, samo narobe pride za sinus.Recimo za-> sin(1) bi moral bit 0,017452406,
ven mi pride pa 0,8333...
Neki ne štima....
ven mi pride pa 0,8333...
Neki ne štima....
Lukeatluke ::
Hjoj, kater je zdej pravilen.Trenutno mi pride s programom na stevec=20; 0.83331....
Kalkulator pa 0.01745 :S
Kalkulator pa 0.01745 :S
PaX_MaN ::
V kalkulatorju prešalti na "Radians".
Meni lepo dela ta koda:
Pri d je 2000, pride rezultat 0.8414709848078965.
Meni lepo dela ta koda:
double vsota = 0; stevec = 0; while (stevec <= d) { vsota += potenca(-1, stevec)*(potenca(x, ,2*stevec+1)/fakulteta(2*stevec+1)); stevec++; }
Pri d je 2000, pride rezultat 0.8414709848078965.
Zgodovina sprememb…
- spremenilo: PaX_MaN ()
Lukeatluke ::
Potem je sinus prow.Pride sicer 0.8333, ampak je približno(na 20 števca natančno).
Rešitev:
package ConsoleApplication1;
/**
* Summary description for Program
*/
public class Program
{
public static double fakt(double n)
{
if ((n == 0) || (n == 1))
{
return 1;
}
else return n * fakt(n - 1);
}
public static double pot(double z, double s)
{
if (s == 0)
{
return 1;
}
else return z * pot(z, s - 1);
}
public static void main(String[] args)
{
double sinnx = 0;
double stevec = 1;
double x = 1;
double p = 3;
double r = 1;
int c = 0, d = 20;
sinnx = x;
while (stevec <= d)
{
x = (pot(x, p)) / (fakt(p));
if (stevec % 2 == 0)
{
sinnx = sinnx - x;
p = p + 2;
}
else if (stevec % 2 != 0)
{
sinnx = sinnx - x;
p = p + 2;
}
stevec++;
}
System.out.print("Vrednost sin od x= " + sinnx);
System.out.println();
}
}
Rešitev:
package ConsoleApplication1;
/**
* Summary description for Program
*/
public class Program
{
public static double fakt(double n)
{
if ((n == 0) || (n == 1))
{
return 1;
}
else return n * fakt(n - 1);
}
public static double pot(double z, double s)
{
if (s == 0)
{
return 1;
}
else return z * pot(z, s - 1);
}
public static void main(String[] args)
{
double sinnx = 0;
double stevec = 1;
double x = 1;
double p = 3;
double r = 1;
int c = 0, d = 20;
sinnx = x;
while (stevec <= d)
{
x = (pot(x, p)) / (fakt(p));
if (stevec % 2 == 0)
{
sinnx = sinnx - x;
p = p + 2;
}
else if (stevec % 2 != 0)
{
sinnx = sinnx - x;
p = p + 2;
}
stevec++;
}
System.out.print("Vrednost sin od x= " + sinnx);
System.out.println();
}
}
Lukeatluke ::
arjan_t, ko želim spremeniti na kalkulatorju v radiane mi ni niti malo jasno kako, ko pa ne želim mi pa vedno rata :)
Po googlu dela in sedaj tudi cos.Zame je pa google vseved.:smeh:
Po googlu dela in sedaj tudi cos.Zame je pa google vseved.:smeh:
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Ma lahko kdo pomaga napisat program v C++ nujno potrebujem.Oddelek: Programiranje | 1109 (201) | FTad |
» | [c#] Majhen problemčekOddelek: Programiranje | 1002 (810) | darkolord |
» | [java] Osnovna vprašanjaOddelek: Programiranje | 2621 (1628) | killa bee |
» | [c#] Vstavljanje vrednosti v tabeloOddelek: Programiranje | 1607 (1429) | Cvenemir |
» | [Java] Liha potencaOddelek: Programiranje | 1817 (1711) | bijonda |