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

доработать - C++

Восстановить пароль Регистрация
 
Dima249
10 / 10 / 0
Регистрация: 02.10.2011
Сообщений: 69
19.09.2012, 14:47     доработать #1
вот программа
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
#include <stdio.h>
#include <math.h>
#include <iostream>
typedef double (*Pfun)(const double, const double );
double cosh (const double x , const double eps);
double a; int n,d;
void printtabl (Pfun, const double Xn, const double Xk, const double dX,  const double eps);
int main(){
    double Xn, Xk, dX, eps;
    printf ("Enter Xn, Xk, dX, eps \n");
    scanf ("%lf%lf%lf%lf" , &Xn, &Xk, &dX, &eps);
    printtabl(cosh, Xn, Xk, dX, eps);
    return 0;
}
 
void printtabl (Pfun fun, const double Xn, const double Xk, const double dX, const double eps){
    printf ("--------------------------------------------------------------\n");
printf ("|     X   |     Y     |      n     |\n");
printf ("------------------------------------------------------------------\n");
double x;
for (double x = Xn; x<=Xk; x+=dX)
    {a=atan(x);
    printf("|%9.2lf   |%14.6g    |%14.6g    |%9.1d      |\n", x , fun(x, eps),a, n);
    printf ("--------------------------------------------------------------\n");}
}
double cosh (const double x, const double eps  ) {
    const int MaxIter = 500;
    double ch=0.0001, y=ch, z;
    z=0-1; d=0; 
    for ( n=0; fabs(ch)>eps; n++)   {
    ch=((pow(z,(n+1))/(pow(x,(2*n+1))*(2*n+1))));
    y+=ch;
        if (n>MaxIter) return 0;
        }
a=atan(x);
y=y+(3.1415926535898/2);
return y;
}
при выводе 4 графы вводим 2 3 0.1 0.00001 и получаем
1) 3 не считает
2) 1 n тоже
помогите исправить или доработать
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.09.2012, 14:47     доработать
Посмотрите здесь:

C++ Доработать программу
Доработать программу C++
C++ Доработать блоксхему
доработать программу C++
Доработать программу C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
co6ak
Кошковед
 Аватар для co6ak
402 / 495 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
19.09.2012, 14:51     доработать #2
что это за писец?
Dima249
10 / 10 / 0
Регистрация: 02.10.2011
Сообщений: 69
19.09.2012, 14:59  [ТС]     доработать #3
это лаба такая сам сижу фигею, но мне кажется лучше я не напишу, главное показать что работает и от меня отстанут
co6ak
Кошковед
 Аватар для co6ak
402 / 495 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
19.09.2012, 15:01     доработать #4
тут печаль в том, что это код твой(ну или не твой, я хз).
однобуквенные неосмысленные переменные. комментов нет. что не работает не понятно. пипец, как уже и говорилось выше
Dima249
10 / 10 / 0
Регистрация: 02.10.2011
Сообщений: 69
19.09.2012, 15:07  [ТС]     доработать #5
короче вывод тут идет не так, он шаги(n) для 1 переменной не считает и x для последней и 2 и 3 столбик совпадают
co6ak
Кошковед
 Аватар для co6ak
402 / 495 / 29
Регистрация: 12.04.2010
Сообщений: 1,392
19.09.2012, 15:11     доработать #6
printtabl(cosh, Xn, Xk, dX, eps);

а где входные параметры в cosh? при объявлении указано, что в ф-ю передается два const double (хотя почему именно конст? )

сложно что-либо еще увидеть. передай, короче, туда x и eps. не удивительно, что у тебя совпадает все


там реально какой-то писец происходит
Yandex
Объявления
19.09.2012, 15:11     доработать
Ответ Создать тему
Опции темы

Текущее время: 19:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru