Бакалавр
Дипломные и курсовые на заказ

Косвенная рекурсия. 
Рекурсия как способ организации обработки данных

РефератПомощь в написанииУзнать стоимостьмоей работы

Рекурсия массив сортировка ветвление Рис. 6.3 — Дерево стека вызовов рекурсивного метода fib (5). Задача 6.3 Напишите рекурсивные методы вычисления синуса и косинуса. Return Math. pow (cos (x/2), 2)-Math.pow (sin (x/2), 2); System.out.printf («sin (x)= %5.5f%n», sin (x)); System.out.printf («cos (x)= %5.5f», cos (x)); System.out.printf («Введите x:»); Public static void main (String args… Читать ещё >

Косвенная рекурсия. Рекурсия как способ организации обработки данных (реферат, курсовая, диплом, контрольная)

Косвеннойиливзаимной рекурсиейназывается организация вызовов нескольких методов по кругу (первый метод вызывает второй, второй — третий, …, n-ый метод вызывает первый). Самым простым вариантом косвенной рекурсии можно считать случай, когда метод а () вызывает метод b (), который вызывает метод a (). Рассмотрим рекурсивный способ вычисления значений функций синуса и косинуса в соответствии со следующими тождествами:

Здесь функции синуса и косинуса вызывают одна другую и поэтому являются взаимно рекурсивными.

рекурсия массив сортировка ветвление Рис. 6.3 — Дерево стека вызовов рекурсивного метода fib (5)

Задача 6.3 Напишите рекурсивные методы вычисления синуса и косинуса.

Объяснение: условием завершения рекурсии будем считать равенство аргумента х нулю с точностью до величины eps=0.001. При возврате из самого глубокого рекурсивного вызова нужно будет вычислить нерекурсивносинус и косинус малого числа. Используем для этого первые два члена разложения тригонометрических функций в степенной ряд.

import java.util.Scanner;

public class Ex6_3.

{.

static double cos (double x){.

if (Math.abs (x)<10e-4).

return x*(1-x*x/6);

else.

return 2*sin (x/2)*cos (x/2);

}.

static double sin (double x) {.

if (Math.abs (x)<10e-4).

return (1-x*x/2);

else.

return Math. pow (cos (x/2), 2)-Math.pow (sin (x/2), 2);

}.

public static void main (String[] args).

{.

Scanner scan=new Scanner (System.in);

System.out.printf («Введите x:»);

double x = scan. nextDouble ();

System.out.printf («sin (x)= %5.5f%n», sin (x));

System.out.printf («cos (x)= %5.5f», cos (x));

}.

}.

Результат:

Введите x:1.

sin (x)= -0,54 030.

cos (x)= -0,84 147.

Показать весь текст
Заполнить форму текущей работой