algorytm.org

Implementacja w Java



Baza Wiedzy
wersja offline serwisu przeznaczona na urządzenia z systemem Android
Darowizny
darowiznaWspomóż rozwój serwisu
Nagłówki RSS
Artykuły
Implementacje
Komentarze
Forum
Bookmarki






Sonda
Implementacji w jakim języku programowania poszukujesz?

Algorytm Hornera (pochodne) - Implementacja w Java
Ocena użytkownikóww: *****  / 2
SłabyŚwietny
Nadesłany przez Tomasz Lubiński, 08 sierpnia 2005 01:00
Kod przedstawiony poniżej przedstawia główną część rozwiązania problemu.
Pobierz pełne rozwiązanie.

Jeżeli nie odpowiada Ci sposób formatowania kodu przez autora skorzystaj z pretty printer'a i dostosuj go automatycznie do siebie.

Hornerp.java:
/**
 * www.algorytm.org
 * Algorytm Hornera - obliczanie znormalizowanych 
 * pochodnych wielomianow
 * Tomasz Lubinski (c)2005
 */
public class Hornerp {

	private static int n;
	private static double a[],b[],c[];
	private static double x;

	//	wartosc wielmianu
	private static double wart(int k) {
		if (k==n)
			return b[n];
		else
			return wart(k+1)*x+b[k];
	}

	//	wspolczynniki wielmianu po podzieleniu
	private static double wspol(int k) {
		if (k==n) {
			c[k-1]=b[k];
			return b[k];
		}
		else {
			if (k>0) {
				c[k-1]=wspol(k+1)*x+b[k];
			} 
			return 
			wspol(k+1)*x+b[k]; 
		}
	}

	public static void main(String[] args) {
		int i,j,s;
		double tmp;
		
		System.out.println("Algorytm Hornera - obliczanie wartosci znormalizowanych pochodnych wielomianu\nPodaj stopien wielomianu\n");
		n = Console.readInt("?");
		a = new double[n+1];
		b = new double[n+1];
		c = new double[n+1];
		
		System.out.println("Podaj teraz kolejne wspolczynniki wielomianu.\nZaczynij od tego z najwieksza potega.\n");
		for(i=n; i>=0; i--) {
			a[i] = Console.readDouble("a" + i);
		}
		System.out.println("Podaj punkt x");
		x = Console.readInt("?");
		System.out.println("Podaj stopien pochodnej\n");
		s = Console.readInt("?");
		if ((s<0)||(s>n)) {
			System.out.println("Zle wpisany stopien pochodnej");
			return;
		}

		for (i=0; i<=n; i++) {
			b[i]=a[i];
		}
		for (j=1; j<=s; j++) {
			tmp=wspol(0);
			for (i=0; i<=n; i++) {
				b[i]=c[i];
			}
		}

		System.out.println("Wartosc pochodnej znormalizowanej " + s + " stopnia wynosi: " + wart(0));
		return;
	}
}
Komentarze
photo
+1 # MarcinAngry 2013-04-01 15:04
Boże! Dlaczego tak nazywacie zmienne, że kompletnie nie wiadomo do czego służą!?

PS Poza tym uwielbiam tą stronę i wszystkie artykuły jakie czytałem!
Odpowiedz | Odpowiedz z cytatem | Cytować
Dodaj komentarz