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

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

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

Ошибка .#ID000 - C++

17.01.2013, 00:04. Просмотров 238. Ответов 7
Метки нет (Все метки)

Ввожу значения 1,1,11,1. через какое то время вместо чисел появляются в таблице лишь 1.#ID000
Вот код.
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
// Laba4_4.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <windows.h>
#include <stdio.h>
#include <conio.h>
#include <iostream>
#include <iterator>
#include <vector>
#include <algorithm>
#include <stdlib.h>
#include <string.h>
 
#include <fstream>
#include <locale.h>
 
 
using namespace std;
 
 
 
double fact (double fa){
    
    int n=1;
    int na=1;
    for (n=1; n<=fa; n=n+1)
    {
    na=na*n;
    }
    return na;
}
double xnach,xkonec,epsilon,delta,newdel,xkn,x,i;
double func(double x, double epsilon) 
                {
 
     double lastresult, result,fa;
     int ik=0;
     int dd=1;
 
    lastresult = 0;
    result=0;
 
    do {
        result = lastresult;
        
        fa=ik;
        lastresult = ((dd * pow(x, ik)) / fact(fa)); 
       ik=ik+2;
        dd=dd*(-1);
       lastresult = lastresult + result;
    } while ((abs(lastresult - result)) >= epsilon);
 
    return lastresult;
                }
int _tmain(int argc, _TCHAR* argv[])
{
    
    
 
 
 
    ss:
    cout << "Epsilon";
    cin >> epsilon;
    cout << " x1";
    cin >>xnach;
    cout << " x2 ";
        cin >>xkonec;
        cout << "delta";
        cin >>delta;
    xkn=xkonec-xnach;
    
    if (epsilon<0) {cout<< "error/n, try again";
    goto ss;
    }
    if ((xkn*delta)<0) {cout<< "error/n, try again";
    goto ss;
    }
 
    
    printf("|      x         |      mycos  (x) |       cos(x)  |      delta     |\n");
    printf(" --------------------------------------------------------------------\n");
    i=xnach;
    for( i; i<=xkonec; i=i+delta)
    { x=i;
        newdel=sqrt(abs((func(x,epsilon)*func(x,epsilon))-((cos(x))*(cos(x)))));
    printf("| %14.12f | %14.12f | %14.12f | %14.12f |\n",x,func(x,epsilon),cos(x),newdel);
    
    
    }
 
 
    
    
 
 
 
 
 
 
 
    
    return 0;
    }
Почему так?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.01.2013, 00:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Ошибка .#ID000 (C++):

IIS- asp ошибка: HTTP 500.100 - Внутренняя ошибка сервера - ошибка ASP Internet Information Services - C# ASP.NET
Привет! Конфигурация win2000pro sp2, стандартный IIS, IE 5. При попытке обратиться к сценарию(asp) получаю ошибку: &lt;пропуск&gt; ......

1C 8.x Ошибка при чтении изменений при обмене РИБ: Ошибка при вызове метода контекста (ПрочитатьИзменения): Ошибка записи! - 1С
Доброго всем времени суток! подскажи пожалуйста как исправить ошибку: Ошибка при чтении изменений при обмене РИБ: Ошибка при вызове...

Ошибка при добавлении в файл. Ошибка 101: Ошибка записи на диск (Error 101: Disk write error). - Turbo Pascal
Здравствуйте, возникла проблема такого плана. Нужно произвести добавление записи в файл, но после успешного создания и чтения вылазиет...

ASP: Response.Redirect - не работает, ошибка `500 - Внутренняя ошибка сервера' - C# ASP.NET
Всем привет! Есть в ASP-сраничке такой код: Response.Redirect 'page1.asp?ReturnTo=page2.asp' Эта конструкция работала на IIS 4,...

Server 2003 Загружается до окна приветствия и вылетает ошибка: isass.exe - Системная ошибка - Windows Server
Ребята, помогите кто может... весь день бьюсь безрезультатно... с утра пришёл на работу а сервак не пингуется... загружается до...

Ошибка HTTP 500 - внутреняя ошибка сервера при отправке почты. - C# ASP.NET
Я пытаюсь отправить почту и присоединяю к ней письма Вот часть страницы Dim myMail Set myMail = CreateObject('CDONTS.NewMail') ...

7
Kuzia domovenok
1948 / 1801 / 137
Регистрация: 25.03.2012
Сообщений: 6,238
Записей в блоге: 1
17.01.2013, 00:40 #2
тексты с goto не читаю. Пусть он тут и не в самом страшном виде.
0
RiMpel2
0 / 0 / 0
Регистрация: 04.10.2010
Сообщений: 22
17.01.2013, 00:57  [ТС] #3
goto тут вообще лишь для возврата после ошибки введенных данных, т.е. на все остальное он не влияет.

Добавлено через 58 секунд
Если убрать это, то:
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
// Laba4_4.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <windows.h>
#include <stdio.h>
#include <conio.h>
#include <iostream>
#include <iterator>
#include <vector>
#include <algorithm>
#include <stdlib.h>
#include <string.h>
 
#include <fstream>
#include <locale.h>
 
 
using namespace std;
 
 
 
double fact (double fa){
    
    int n=1;
    int na=1;
    for (n=1; n<=fa; n=n+1)
    {
    na=na*n;
    }
    return na;
}
double xnach,xkonec,epsilon,delta,newdel,xkn,x,i;
double func(double x, double epsilon) 
                {
 
     double lastresult, result,fa;
     int ik=0;
     int dd=1;
 
    lastresult = 0;
    result=0;
 
    do {
        result = lastresult;
        
        fa=ik;
        lastresult = ((dd * pow(x, ik)) / fact(fa)); 
       ik=ik+2;
        dd=dd*(-1);
       lastresult = lastresult + result;
    } while ((abs(lastresult - result)) >= epsilon);
 
    return lastresult;
                }
int _tmain(int argc, _TCHAR* argv[])
{
    
    
 
 
 
    
    cout << "Epsilon";
    cin >> epsilon;
    cout << " x1";
    cin >>xnach;
    cout << " x2 ";
        cin >>xkonec;
        cout << "delta";
        cin >>delta;
    xkn=xkonec-xnach;
    
 
 
    
    printf("|      x         |      mycos  (x) |       cos(x)  |      delta     |\n");
    printf(" --------------------------------------------------------------------\n");
    i=xnach;
    for( i; i<=xkonec; i=i+delta)
    { x=i;
        newdel=sqrt(abs((func(x,epsilon)*func(x,epsilon))-((cos(x))*(cos(x)))));
    printf("| %14.12f | %14.12f | %14.12f | %14.12f |\n",x,func(x,epsilon),cos(x),newdel);
    
    
    }
 
 
 
    
    return 0;
    }
Добавлено через 1 минуту
Если вводить скажем Х начальное = 6, а Эпсилон = 1, то все значения уходят в 1.#ID000. При х от 1 до 5 и Эпс=1 значения считаются верно.

Добавлено через 6 минут
Проблема решена заменой int na=1; на double na=1;
)))
0
-=ЮрА=-
Заблокирован
Автор FAQ
17.01.2013, 01:00 #4
RiMpel2, почитай
Вычисление функций с использованием их разложения в степенной ряд
Вычисление арккотангенса через арктангенс, разложенный в степенные ряды
Твоя ошибка свидедтельствует либо о делении на ноль либо о зашкаливании значения и его ухода на бесконечность. Я не хочу разирать код по костям, так как с тех знаний которыми я обладаю код поста 1 просто антиморален. Просто пройди по ссылкам, поймёшь почему я так говорю (не обижайся за код, это маленький ужастик просто)

Добавлено через 1 минуту

Не по теме:

Цитата Сообщение от RiMpel2 Посмотреть сообщение
а Эпсилон = 1
- эпсилон это значение погрешности, его значение должно быть в пределах 0,0001 и менее, один это погрешность катастрофически большая.

0
Kuzia domovenok
1948 / 1801 / 137
Регистрация: 25.03.2012
Сообщений: 6,238
Записей в блоге: 1
17.01.2013, 01:10 #5
функция func считает нечто невразумительное(x==6 eps==1). Что она должна считать
0
RiMpel2
0 / 0 / 0
Регистрация: 04.10.2010
Сообщений: 22
17.01.2013, 01:14  [ТС] #6
Благодарю. С утра почитаю.

Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
это маленький ужастик просто
Со временем все будет

Добавлено через 3 минуты
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
функция func считает нечто невразумительное(x==6 eps==1). Что она должна считать
Функция func считает косинус х через ряд тейлора, причем до того момента, пока разность соседних слагаемых в ряду не станет меньше эпсилона. или что-то типа того. Впрочем написал, что проблему решил заменой инта на дабл у переменной na) всем спасибо.
0
-=ЮрА=-
17.01.2013, 01:19
  #7

Не по теме:

Цитата Сообщение от RiMpel2 Посмотреть сообщение
Функция func считает косинус х через ряд тейлора, причем до того момента, пока разность соседних слагаемых в ряду не станет меньше эпсилона. или что-то типа того. Впрочем написал, что проблему решил заменой инта на дабл у переменной na) всем спасибо.
- зайди в мой FAQ на него есть линк во второй ссылке да скопипасть это разложение - уже готове есть (+ по памяти есть и блок-схема там)

Цитата Сообщение от RiMpel2 Посмотреть сообщение
Со временем все будет
- я ж тебе и говорю, чтобы было не современем а побыстрей прочти ссылки. Считать факториал на каждой итерации это просто убийственно для скорости, чтобы ускорить надо искать рекуррентный сомножитель будет и быстро и правильно да и кода куда меньше. Ладно я не буду навязывать свою точку зрения...

0
RiMpel2
0 / 0 / 0
Регистрация: 04.10.2010
Сообщений: 22
17.01.2013, 11:20  [ТС] #8
Просто препод проверяет код на копипасту со всеми студентами, сдававшими лабы от нескольких лет назад до сегодняшнего дня. Так что мне выгоднее такой ужас ему сдать, ибо уже пролетал с лабой, когда списывал решение из инета.
0
17.01.2013, 11:20
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.01.2013, 11:20
Привет! Вот еще темы с ответами:

Interbase Ошибка SQL запроса , в базе работает, а через IBQuery в Delphi ошибка - Delphi БД
В Combobox загружены имена организаций. Нужно выполнить запрос на вывод всех полей таблицы организаций при выборе имени в Combobox. При...

Django Ошибка доступа (403) Ошибка проверки CSRF. Запрос отклонён - Python
На хостинге разместил сайт и не могу войти в админку, т.к. возникает 403 ошибка &quot;Ошибка доступа (403). Ошибка проверки CSRF. Запрос...

Ошибка разбора XML/ Ошибка при вызове метода контекста (Прочитать) - 1С
1C 8.2 Документооборот КОРП 1.2 Текст ошибки {ОбщийМодуль.АвтозаполнениеШаблоновФайловКлиентСервер.Модуль(616)}: Ошибка при вызове...

.NET 4.x Ошибка перезаписи файла: В GDI+ возникла ошибка общего вида - Visual Basic .NET
Написал небольшой граф редактор в visual studio 2013. Когда сохраняю файл с таким же именем, вылазит окошко о подтверждении перезаписи....


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

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