|
|||
Задание 3.1. Рекурсивные функции
Министерство образования и науки Российской Федерации Федеральное государственное бюджетное образовательное учреждение высшего образования Тульский государственный педагогический университет им. Л.Н. Толстого (ФГБОУ ВО «ТГПУ им. Л.Н. Толстого»)
Отчет по учебной практике
Выполнил: студент 1 курса группы 121591 Направления подготовки «Фундаментальная информатика и информационные технологии» Сидоров Максим Денисович
Проверил: К.ф.-м.н., доцент
Тула
Задание 3.1. Рекурсивные функции 10. Код программы:
Задание 3.2. Разработка рекурсивной триады 10) Найдите значение многочлена степени N по схеме Горнера. Задание степени многочлена, коэффициентов и аргумента предусмотрите в программе. Код программы: #include<iostream>
using namespace std;
double result(double x, double* a, int n) { if (n > 1) { return a[n] + result(x, a, n - 1) * x; } return a[0] * x + a[1]; }
int main() { setlocale(LC_ALL, "rus"); int n = 0; cout << "Введите степень многочлена" << endl; cin >> n;
double* a = new double[n + 1]; for (int i = 0; i <= n; i++) { cout << "Введите коофициент a" << i << endl; cin >> a[i]; }
double x = 0.0;
cout << "Введите x, при котором нужно посчитать функцию" << endl; cin >> x;
cout << "Заданная функция в точке " << x << " = " << result(x, a, n) << endl; return 0; } Контрольный пример:
Задание 3.3. Рекурсивные методы в решении задач 10) В Фибоначчиевой системе счисления числа формируются по правилам: · Используются только символы 0 и 1; · Каждый разряд соответствует элементу последовательности Фибоначчи 1, 2, 3, 5, 8, …, то есть указывает на наличие или отсутствие такового; · В соседних разрядах не могут стоять символы 1, так как это автоматически означает формирование следующего за ними разряда. Например, 1710 = 1310 + 310 + 110 = 100101ф. Составьте программу перевода числа из десятичной системы в Фибоначчиевую. Считать входные данные введенными корректно. Код программы: #include <iostream> #include <vector> using namespace std;
vector<unsigned long> Fibo_array; //------------------------------------------------------------ // Записывает в Fibo_array все числа Фибоначи, <= N //------------------------------------------------------------ void record_Fibo_array(const unsigned long& N) { unsigned long F_p = 1; unsigned long F_pp = 1; for (unsigned long F = 1; F <= N; ) { Fibo_array.push_back(F); F = F_p + F_pp; F_pp = F_p; F_p = F; } } //------------------------------------------------------------ void Fibo_system(unsigned long& n, int index) { if (index < 0) return; unsigned long F = Fibo_array[index]; if (F > n) cout << 0; else { cout << 1; n -= F; } Fibo_system(n, --index); } //------------------------------------------------------------ int main() { unsigned long n = 10; record_Fibo_array(n); cout << n << " = "; Fibo_system(n, Fibo_array.size() - 1); //cin.get(); return 0; } Контрольный пример:
|
|||
|