Тема: Допоможіть зробити задачу по c++
Допоможіть
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → C++ → Допоможіть зробити задачу по c++
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися
Допоможіть
Вам ніхто не допоможе, навіть якщо захоче. Як ви думаєте, чому?
а шо таке fi?
Там формула fabs(cos(x) / 2.7) + (9.1*sin((1.2*x) + 1))
Ненадійна програмка, але працює.
/*
* File: main.cpp
* Author: Yaroslav
*
* Created on 23 травня 2016, 18:30
*/
// f = abs(cos(x) / 2.7) + (9.1*sin((1.2*x) + 1))
#include <iostream>
#include <cmath>
#include <cstdlib>
#define RAND_MIN_MY 0
#define RAND_MAX_MY 1
#define PRECISION 0.001
using namespace std;
int factorial(int);
double my_function(int);
double my_random(void);
/*
* Calculation series members
*/
int main(int argc, char** argv) {
double a = 0.0; // result
double f = 0.0; // result from the function
double x = 0.0; // random number in range, given by user
double previous_result = 0.0;
int k = 0; // counter
x = my_random(); // calculating random number for x
k = 0; // first iteration
previous_result = pow(-1, k) * (my_function(k) * pow(x, (double) k)) / (double) factorial(k);
cout << "current_result: " << previous_result << endl;
// second and later iterations
for (k = 1; true; k++) { // this loop will never end
// calculating nest series element
a = pow(-1, k) *
(my_function(k) * pow(x, (double) k)) / (double) factorial(k);
cout << "current_result: " << a << endl;
// check whether we have reached the given accuracy
if (abs(previous_result - a) <= PRECISION) {
break;
}
// saving current result for next step
previous_result = a;
}
cout << "Number of steps: " << k+1 << endl;
cout << "Result: " << a << endl;
return 0;
}
// generating random number
double my_random(void) {
double variable = 0.0; // result
int lower_bound = 0, upper_bound = 0; // bounds for random number
int random = 0; // this variable used for carrying result of the rand()
double i = 0; // counter
// Step 1: aquiring user data
lower_bound = RAND_MIN_MY;
upper_bound = RAND_MAX_MY;
// Step 2: adding zeroes to upper_bound value
// This is needed to generate int number with given precision
for (i = PRECISION; i < 1.0; i *= 10) {
upper_bound *= 10;
}
// Step 3: generate int random number
random = rand() % (upper_bound + 1) + lower_bound;
// Step 4: converting int number into double
variable = (double) random;
for (i = PRECISION; i < 1.0; i *= 10) {
variable /= 10;
}
// Step 5: returning result
return variable;
}
// custom function
double my_function(int x) {
double variable;
variable = abs(cos(x) / 2.7) + (9.1 * sin((1,2 * x) + 1));
return variable;
}
// recursive factorial calculation
int factorial(int number) {
int temp;
if(number <= 1) return 1;
temp = number * factorial(number - 1);
return temp;
}
Сторінки 1
Для відправлення відповіді ви повинні увійти або зареєструватися