Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 17.12.2012
Сообщений: 31

Расчёт функции используя рекурсию

06.10.2014, 15:49. Показов 1270. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток. задали задачку - рассчитать f=y-z/x с использованием рекурсии. даже не придумать с чего начать.
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.10.2014, 15:49
Ответы с готовыми решениями:

Используя рекурсию вывести группу данных с их индексами, не используя массив
Вот мой код на с++ #include<iostream> #include<conio.h> using namespace std; void elementu(int); void main(void){ ...

Используя рекурсию, перемножить 2 натуральных числа не используя операции умножения и иметь логарифмическую сложность
Программа должна перемножать 2 натуральных числа не используя операции умножения и иметь логарифмическую сложность(помогите написать хотя...

Посчитать используя рекурсию
Не понимаю, как это сделать, помогите пожалуйста. Хотя бы набросками)

14
50 / 31 / 4
Регистрация: 25.04.2013
Сообщений: 366
06.10.2014, 15:57
когда придумаешь - пиши
0
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2550 / 2064 / 971
Регистрация: 09.10.2013
Сообщений: 4,793
Записей в блоге: 4
06.10.2014, 15:59
для начала узнать что такое x,y,z
C++
1
2
3
4
5
double f(double x, double y, double z, int step = 0) {
    return (step == 0 ? y - f(1, x, y, z) :
            step == 1 ? z / f(2, x, y, z) :
            x);
}
1
0 / 0 / 0
Регистрация: 17.12.2012
Сообщений: 31
06.10.2014, 16:20  [ТС]
если б мог - не писал бы

Добавлено через 14 минут
Cra3y, мы же знаем что x,y,z это числа. нет?
0
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2550 / 2064 / 971
Регистрация: 09.10.2013
Сообщений: 4,793
Записей в блоге: 4
06.10.2014, 16:35
Если
рассчитать f=y-z/x с использованием рекурсии.
- задание полностью, то, наверно, числа...
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
06.10.2014, 16:40
а эти самые числа - константны или же интервал чисел..?
1
0 / 0 / 0
Регистрация: 17.12.2012
Сообщений: 31
06.10.2014, 16:42  [ТС]
виноват,не полностью. с клавиатуры вводятся числа(x,y,z) и программа должна выводить ответ, используя формулу f=y-z/x. вся проблема в том что в функции есть деление. если бы его не было бы - то задача простая. а так, оно(деление) всё портит.
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
06.10.2014, 17:06
Ну можно как-то так, например
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
 
void f(double x=0., double y=0., double z=0.)
{
    std::cout << "Enter x, y, z " << std::endl;
    std::cin >> x >> y >> z;
    if(!std::cin)
        return;
    std::cout << "x = " << x << ", y = " << y << ", z = " << z << ". F = " << y - z / x << std::endl;
    f(x, y, z);
}
int main()
{
    f();
    std::cin.clear();
    std::cin.ignore(1, '\n');
    std::cin.get();
}
0
0 / 0 / 0
Регистрация: 17.12.2012
Сообщений: 31
06.10.2014, 23:29  [ТС]
хмм. спасибо за ваш вариант. но это, по-моему, не есть расчет функции через рекурсию.
вот примерно так это должно выглядеть
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream>
#include <locale>
using namespace std;
 
double functionrec(double x, double y)
{
    double f;
    if (x==0)
        f=0;
    else if (x<0)
        f=-(1/y)-functionrec(abs(x)-1,y);
    else f=1/y+functionrec(x-1,y);
    return f;
}
 
int main(){
    setlocale(LC_ALL,"rus");
    double x, y;
    cout<<"Введите аргументы для вычисления функции x/y\n";
    cout<<"Введите значение x: ";
    cin>>x;
    cout<<"Введите значение y: ";
    cin>>y;
    while (y==0){
        cout<<"Некорректное значение аргумента. Повторите ввод.\n";
        cout<<"Введите значение y: ";
        cin>>y;
    }
    cout<<"Значение, вычисленное рекурсивно: "<<functionrec(x,y)<<endl;
    system("pause");
    return 0;
}
это вариант для x/y.

Добавлено через 3 часа 47 минут
0
0 / 0 / 4
Регистрация: 06.10.2014
Сообщений: 48
07.10.2014, 01:32
Я не пойму зачем тут вообще рекурсия?

по моему деление не такое уж сложное. У тебя есть конкретная функция конкретные числа которые задаются с клавиатуры.

Тебе нужно только проверить не является ли х=0 и спокойно поделить одно на второе.

в чем проблема?

Добавлено через 1 минуту
Цитата Сообщение от KOPOJI Посмотреть сообщение
F = y - (z / x)
не хочу ничего говорить но так будет надежнее.
0
0 / 0 / 0
Регистрация: 17.12.2012
Сообщений: 31
07.10.2014, 02:28  [ТС]
Vuzy, мне именно что нужно рассчитать эту функцию, используя рекурсию. задание такое!
ради кода в 3 строки сюда бы никто не писал.
0
0 / 0 / 4
Регистрация: 06.10.2014
Сообщений: 48
07.10.2014, 02:53
Цитата Сообщение от Newbie2 Посмотреть сообщение
ради кода в 3 строки сюда бы никто не писал.
походу что с рекурсией что без рекурсии вам выложили оба варианта в три строчки.
0
0 / 0 / 0
Регистрация: 17.12.2012
Сообщений: 31
07.10.2014, 17:58  [ТС]
верно. но в то же время и не верно. да. рекурсия там есть. но она использована для вызова функции.
Цитата Сообщение от KOPOJI Посмотреть сообщение
f(x, y, z);
а не для её расчёта.
Цитата Сообщение от Newbie2 Посмотреть сообщение
f=1/y+functionrec(x-1,y);
или я не прав?
а если вы насчёт этого
Цитата Сообщение от Cra3y Посмотреть сообщение
double f(double x, double y, double z, int step = 0) { return (step == 0 ? y - f(1, x, y, z) : step == 1 ? z / f(2, x, y, z) : x); }
то хотелось бы попросить комментариев.
0
0 / 0 / 4
Регистрация: 06.10.2014
Сообщений: 48
08.10.2014, 01:30
Лучший ответ Сообщение было отмечено Newbie2 как решение

Решение

Цитата Сообщение от Newbie2 Посмотреть сообщение
а если вы насчёт этого
Сообщение от Cra3y
double f(double x, double y, double z, int step = 0) { return (step == 0 ? y - f(1, x, y, z) : step == 1 ? z / f(2, x, y, z) : x); }
то хотелось бы попросить комментариев.
функция вызывается для расчета f по формуле в 2 шага. если шаг ноль вызываем саму себя с теми же параметрами и считаем но тогда уже шаг будет равен 1 и тогда функция вернет значение дроби после чего дробь подставится в функцию шага 0 и вернет решение.
0
0 / 0 / 0
Регистрация: 17.12.2012
Сообщений: 31
08.10.2014, 04:01  [ТС]
спасибо за помощь, Vuzy. все более-менее понятно
и спасибо всем кто откликнулся!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.10.2014, 04:01
Помогаю со студенческими работами здесь

График,используя рекурсию
Помогите, пожалуйста, с заданием. Нужно нарисовать рисунок, используя рекурсию.

Используя только рекурсию
Описать рекурсивную функцию PowerN(x,n) вещественного типа, находящую значение n-й степени числа x по формуле: x0 = 1, xn = x·xn–1 при n...

Вычислить выражение используя рекурсию
Вычислить выражение в правой части, используя рекурсию. y=cos(x)+cos(2x)+cos(3x)+......cos(nx)

Вычислить выражение, используя рекурсию
Помогите пожалуйста!! Вообще не понимаю как это сделать.. Вычислить выражение, использую рекурсию:

Написать программу используя рекурсию
Написать программу на С++, содержащую рекурсивную функцию определения разбиения целых чисел. Разбиениями целого числа называют способы его...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
SDL3 для Web (WebAssembly): Сборка библиотек: SDL3, Box2D, FreeType, SDL3_ttf, SDL3_mixer и SDL3_image из исходников с помощью CMake и Emscripten
8Observer8 27.02.2026
Недавно вышла версия 3. 4. 2 библиотеки SDL3. На странице официальной релиза доступны исходники, готовые DLL (для x86, x64, arm64), а также библиотеки для разработки под Android, MinGW и Visual Studio. . . .
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru