Мне бы просто сам вывод рекуррентной формулы, программа у меня есть
| Код | #include "stdafx.h" #include <stdio.h> // printf, scanf #include <conio.h> // getch #include <math.h> // fabs, pow, ceil\floor, log, log10, exp, sqrt #include <stdlib.h> // randomize, rand #include <windows.h> // SetConsoleOutputCP(1251); SetConsoleCP(1251); //--------------------------------------------------------------------------- const double xx[7] = { 0.00001, -0.99, -1, -0.1, 0.1, 1, 0.99 }; #pragma argsused void main() { int n, i, k, z; double e, sl, sum, f, *x; SetConsoleOutputCP(1251); //randomize(); printf("Vvedite e=? "); // приглашение – шрифт Lucida Console нужен scanf_s("%lf", &e); // ввод числа с плавающей точкой двойной точности(%lf) e if (e<1e-13 || e>0.11) { printf("Nekorrektnaya tochnost e (0..0.1] \nPress any key"); _getch(); // ожидание нажатия клавиши return; // выход из функции main } fflush(stdin); printf("Vvedite n=? "); // приглашение scanf_s("%d", &n); // ввод десятичного(%d) n if (n<1 || n>20) { printf("Invalid n [1..20]! \nPress any key"); _getch(); // ожидание нажатия клавиши return; // выход из функции main } fflush(stdin); x = new double[n]; // выделяем память для n элементов массива printf("Vvedite n=%d znacheniy X iz intervala (-1,+1):\n", n); // приглашение for (i = 0; i < n; i++) { // ввод x[0]...x[n-1] scanf_s("%lf", &x[i]); // типа long float (%lf) if (fabs(x[i]) >= 1) { x[i] = xx[rand() % 7]; if (fabs(x[i]) == 1) { x[i] = x[i] * (rand() % 100) / 100; if (x[i] == 0) x[i] = e; // ддя некоторых вариантов x=/=0 } printf("Nekorrektnoe znachenie izmeneno na %15.10lf\n", x[i]); } } z = ceil(fabs(log(e) / log(10))) + 1; printf("e = %*.*lf\n", z + 2, z, e); // вывод e:(z+2):z printf("N | X | Sum(X) | K| F(X) | |Sum(X)-F(X)|\n"); for (i = 1; i < 80; i++) printf("="); printf("\n"); for (i = 0; i < n; i++) { // поиск суммы ряда sum = sl = pow(x[i], 2); // sl=pow(x[i],2); sum=sl; k = 1; while ((fabs(sl) >= e) && (k != 500)) { sl *= sl(-(4 * i - 5) * x / (double)(4 * i)); sum += sl; k++; }; f = 4 * pow(1 + x[i], 0.25); printf("%2d|%17.*lf|%17.*lf|%2d|%17.*lf|%17.*lf\n", i + 1, z, x[i], z, sum, k, z, f, z + 2, fabs(sum - f)); } delete[] x; printf("Press any key"); _getch(); return; }
|
|