Производна на полином в Java

В категория Програмиране 0 кометара

За да демонстрирам, как се работи с масиви в Java ще ви покажа една проста програмка, която отпечатва първата производна на даден полином. Реалните коефициентите на мономите, съставящи полинома се пазят в масив.

/*
 *  Това е клас, който съдържа методи за отпечатване на 
 *  производната на полином
 *  
 *  @version    1.0 19 Dec 2010
 *  @author     Николай Стоицев
 */
public class Derivative {
 
	// масива с който ще работим
	public static double a[];
 
	// броя на елементите на масива
	public static int n;
 
	public static void main(String[] args) {
		create();
		print();
		differentiate();
	}
 
	/*
	 * Метод, който инициализира масив с големина n+1 и го попълва с реални
	 * стойности, прочетени от клавиатурата. Тези стойности са коефициените пред
	 * мономите на полинома.
	 */
	public static void create() {
		System.out.print("Въведете степента на полинома: ");
		java.util.Scanner in = new java.util.Scanner(System.in);
		n = in.nextInt();
		a = new double[n + 1];
		for (int i = n; i >= 0; i--) {
			System.out.print("Въведете коефициента пред монома от степен "+ (i) + ": ");
			a[i] = in.nextDouble();
		}
	}
 
	/*
	 * Метод, който извежда полинома във вид 
	 * f(a, x) = an * x ^ n + an-1 * x ^ (n - 1) + . . . + a1 * x + a0
	 */
	public static void print() {
		System.out.print("f(a, x) = ");
		for (int i = n; i >= 0; i--) {
			System.out.print(a[i] + " * x ^ " + (i));
			if (i != 0) {
				System.out.print(" + ");
			}
		}
		System.out.println();
	}
 
	/*
	 * Метод, който извежда първата производна на полинома
	 */
	public static void differentiate() {
		System.out.print("f'(a, x) = ");
		for (int i = n; i > 0; i--) {
			System.out.print(a[i] + " * " + (i + 1) + " * x ^ " + (i - 1));
			if (i != 1) {
				System.out.print(" + ");
			}
		}
		System.out.println();
	}
 
}
Публикувано от koleto   @   21 декември 2010 0 коментара

Споделете тази публикация

RSS Digg Twitter StumbleUpon Delicious Technorati

0 Кометара

Няма коментари. Бъдете първият който ще изкаже мнението си!
Коментирайте

Име

Email

Website

Предишна публикация
«
Следваща публикация
»
CrossBlock designed by DeltaManual.Com  |  In conjunction with Web Hosting   |   Web Hosting   |   Reverse phone