Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
tashka
0 / 0 / 0
Регистрация: 25.09.2011
Сообщений: 19
#1

Разработка и отладка алгоритмов и программ с применением пользовательских функций - C++

28.09.2011, 21:28. Просмотров 967. Ответов 10
Метки нет (Все метки)

подскажите пожалуйста как реализовать задачи(код программы на языке С)
1)Описать функцию вещественного типа(параметры – x, ε), находящую приближенное значение функции exp(x)=1+x+x2 /(2!)+ x3/(3!)+ … +( xn/(n!)).

2)Описать функцию нахождения минимального элемента массива кратного 5. Функция возвращает позицию элемента.
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.09.2011, 21:28
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Разработка и отладка алгоритмов и программ с применением пользовательских функций (C++):

Разработка и отладка алгоритмов и программ с применением пользовательских функций - C++
Добрый день, помогите решить задачку Написать процедуру перевода числа из десятичной системы счисления в (12%9+1)-ю систему.

Разработка и отладка алгоритмов и программ - C++
Есть задание лабы: Разработать шаблон класса реализующего работу с матрицами переменной размерности. Тип эле- мента задается как...

Разработка и отладка циклических алгоритмов и программ - C++
Значение аргумента x изменяется от a до b с шагом h. Для каждого x найти значения функции Y(x), суммы S(x) и |Y(x)-S(x)| и вывести в виде...

Разработка и отладка циклических алгоритмов и программ - C++
Значение аргумента x изменяется от a до b с шагом h. Для каждого x найти значения функции Y(x), суммы S(x) и |Y(x)-S(x)| и вывести в виде...

Разработка и отладка алгоритмов и программ с использованием указателей - C++
Помогите пожалуйста... Программа должна содержать систему меню (пункты 1,2 – вызывают выполнение соответствующих заданий, 3 –...

Разработка и отладка алгоритмов и программ с использованием указателей. - C++
Две обьёмные задачи , прошу помощи товарисчи , кому несложно решите за меня плз ..заранее примного благодарен . 1.В одномерном...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
alexcoder
1464 / 678 / 89
Регистрация: 03.06.2009
Сообщений: 3,565
Завершенные тесты: 1
29.09.2011, 08:11 #2
подскажите пожалуйста как реализовать задачи
1. Продумать алгоритм
2. Открыть IDE си
3. Написать программу
0
tashka
0 / 0 / 0
Регистрация: 25.09.2011
Сообщений: 19
29.09.2011, 15:28  [ТС] #3
well помогите пожалуйста написать задачи(код программы на языке С):cofee2:
алгоритм я продумала,не знаю какой код написать
0
-=ЮрА=-
Заблокирован
Автор FAQ
29.09.2011, 15:50 #4
tashka,
Цитата Сообщение от tashka Посмотреть сообщение
exp(x)=1+x+x2 /(2!)+ x3/(3!)+ … +( xn/(n!)).
х2 это х^2 или просто х???На сколько помню математику там степени на факториалы делятся?
0
Nameless One
Эксперт С++
5773 / 3424 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
29.09.2011, 15:59 #5
-=ЮрА=-, это разложение в ряд Маклорена, там в числителе - степени, в знаменателе - факториалы:
http://www.cyberforum.ru/cgi-bin/latex.cgi?e^x = \sum_{n=0}^{\infty} \frac{x^n}{n!}

tashka, по первой задаче - производишь суммирование до тех пор, пока очередное слагаемое не станет меньше http://www.cyberforum.ru/cgi-bin/latex.cgi?\varepsilon, причем следующий член ряда можно получить, умножив предыдущий на http://www.cyberforum.ru/cgi-bin/latex.cgi?\frac{x}{n}
0
tashka
0 / 0 / 0
Регистрация: 25.09.2011
Сообщений: 19
29.09.2011, 15:59  [ТС] #6
х2 - х^2
где x3 -x^3
0
-=ЮрА=-
Заблокирован
Автор FAQ
29.09.2011, 16:06 #7
Цитата Сообщение от tashka Посмотреть сообщение
1)Описать функцию вещественного типа(параметры – x, ε), находящую приближенное значение функции exp(x)=1+x+x2 /(2!)+ x3/(3!)+ … +( xn/(n!)).
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
33
34
35
36
37
38
39
40
41
42
43
#include <stdio.h>
#include <ctype.h>
#include <conio.h>
#include <math.h>
 
//Фактоиал рекурсией
unsigned long fact(unsigned long val)
{
    unsigned long ret = val;
    if(1 < (val --))
        ret *= fact(val);
    return ret;
}
 
double f(double x, long n)
{
    double rez = (1 + x);
    for(long i = 2; i <= n; i++)
        rez += pow(x,i)/fact(i);
    return rez;
}
 
int main()
{
    long n;
    double x = 0,e = 0,err;
    do
    {
        printf("Enter x : ");scanf("%lf",&x);
        printf("Enter e : ");scanf("%lf",&e);
        n = 0;
        //Итерационно подбираем n
        while(e < (err = 1 - fabs(f(x, n)/exp(x))))
            printf("Iteration %u error : %lf\r\n",(n++),err);
        printf("Solution found\r\n");
        printf("n = %u\r\n",n);
        printf("exp(x) = %lf\r\n",exp(x));
        printf("f(x,n) = %lf\r\n",f(x,n));
        printf("Press Y for new input\r\n");
    }
    while(toupper(getch()) == 'Y');
    return 0;
}
Enter x : 5.2
Enter e : 0.0001
Iteration 0 error : 0.965797
Iteration 1 error : 0.965797
Iteration 2 error : 0.891213
Iteration 3 error : 0.761935
Iteration 4 error : 0.593872
Iteration 5 error : 0.419087
Iteration 6 error : 0.267607
Iteration 7 error : 0.155078
Iteration 8 error : 0.081935
Iteration 9 error : 0.039674
Iteration 10 error : 0.017699
Iteration 11 error : 0.007310
Iteration 12 error : 0.002809
Solution found
n = 13
exp(x) = 181.272242
f(x,n) = 181.815097
Press Y for new input
2
tashka
0 / 0 / 0
Регистрация: 25.09.2011
Сообщений: 19
29.09.2011, 16:14  [ТС] #8
Юра, спасибо, а можно уточнить что такое:
toupper
err
fabs?
0
Nameless One
Эксперт С++
5773 / 3424 / 255
Регистрация: 08.02.2010
Сообщений: 7,447
29.09.2011, 16:17 #9
Так проще, точнее и эффективнее:
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
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
 
#define EPS 1e-6
 
int main()
{
    double sum, add, x;
    size_t n;
    
    printf("Input x: ");
    scanf("%lf", &x);
 
    sum = add = 1;
    n = 1;
    
    while(fabs(add *= x / (double) n++) >= EPS)
    sum += add;
 
    printf("Result: %.4f, exp(%.2f): %.4f\n", sum, x, exp(x));
    
    exit(0);
}
1
igorrr37
1647 / 1275 / 133
Регистрация: 21.12.2010
Сообщений: 1,932
Записей в блоге: 7
29.09.2011, 16:24 #10
2
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <stdio.h>
#include <limits.h>
 
int FindPos(int* arr, int size){
    int i = 0, pos = -1, min = INT_MAX;
    for(; i < size; ++i){
        if(arr[i] <= min && arr[i] % 5 == 0){
            min = arr[i];
            pos = i;
        }
    }
    return pos;
}
 
int main(){
    int arr[] = {6, 10, 51, -15, 45, -2, -15};
    int pos = FindPos(arr, sizeof(arr)/sizeof(*arr));
    if(pos >= 0) printf("pos = %d\n", pos);
    else puts("Not found");
    return 0;
}
1
-=ЮрА=-
Заблокирован
Автор FAQ
29.09.2011, 16:58 #11
Цитата Сообщение от tashka Посмотреть сообщение
toupper
err
fabs?
toupper (ctype.h) перевод символа в верхний регистр, в программе введена только лишь с целью удобства интерфейса (вдруг Y нажмёшь не нижнем регистре, а при включенном капсе)
err - текущая ошибка, ввёл чисто с информативной целью печатать ошибку на каждой итерации(вдруг ешение будет расходиться можно хоть увидеть на какой итерации скачёк прошёл)
fabs - можуль вещественного числа смотри есть эталон exp(x) и моя f(x) в идеале их отношение равно нулю, а пока считает программа f(x) может и + и минус принять, мі должні смотреть к чему отношение exp(x)/f(x) стремиться...
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.09.2011, 16:58
Привет! Вот еще темы с ответами:

Разработка и отладка алгоритмов и программ с использованием указателей - C++
Задача 1. В одномерном массиве, состоящем из n вещественных элементов, вычислить: 1) максимальный по модулю элемент массива; 2) сумму...

Разработка и отладка алгоритмов и программ с использованием структур данных. - C++
народ , помогите переделать задачу под это условие , плиз оч нужно , приведённый мною код это аналогичная задача но под другое условие ))) ...

Разработка и отладка алгоритмов и программ по созданию и обработке файлов - C++
помоги решить программку пожалуйста(на С):-[ Дан файл, содержащий целые числа. Вычислить сумму всех чисел, расположенных между...

Разработка и отладка алгоритмов и программ по обработке строк символов - C++
Ввести строку символов, если ее длина &gt;6, выделить подстроку в { } скобках. Добавлено через 47 минут помогите с решением ...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
29.09.2011, 16:58
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru