Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Koc52
0 / 0 / 0
Регистрация: 28.11.2013
Сообщений: 36
1

Некорректное выполнение программы

06.05.2015, 22:26. Просмотров 260. Ответов 1
Метки нет (Все метки)

Суть проблемы: при выполнении программы выдаются корявые значения (-1.INF). Понимаю, что в программе где-то допущена ошибка, но сам уже битый час пытаюсь ее найти и все безрезультатно. Прошу вашей помощи, друзья! Как говорится, "ткните носом"
В скриншотах прикрепляю исходное задание и скриншот окна консоли. Вариант 4, если что.
Скрины:
Некорректное выполнение программы
Название: Безымянный.png
Просмотров: 25

Размер: 3.0 Кб


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
#include<iostream>
#include <iomanip>
#include<stdio.h>
#include<math.h>
using namespace std;
double func(int i,double c, double d);
int main(void)
{
setlocale(LC_ALL,"Russian");
double h=0.1;//постоянный шаг
double x[11];//массив значений x
double y[11];//массив значений y
double k[4];
double f[11];
//задаем разности
double df[11];
double d2f[11];
double d3f[11];
x[0]=0;//левая граница отрезка
for(int i=0;i<11;i++)
{x[i+1]=x[i]+h;}//прибавляем шаг
y[0]=0;
k[0]=func(0,x[0],y[0]);
for(int i=1;i<3;i++)
{k[i]=func(0,x[0]+h/2,y[0]+k[i-1]/2);}
k[3]=func(0,x[0]+h,y[0]+k[2]);
y[1]=y[0]+h*(k[0]+2*k[1]+2*k[2]+k[3])/6;//вычисление первого отрезка методом Рунги-Кутта
for(int i=0;i<11;i++)
{f[i]=func(i,x[i],y[i]);}
for(int i=1;i<11;i++)
//вычисляем разности
{df[i]=f[i]-f[i-1];}//первая разность
for(int i=2;i<11;i++)
{d2f[i]=f[i]-2*f[i-1]+f[i-2];}//вторая разность
for(int i=3;i<11;i++)
{d3f[i]=f[i]-3*f[i-1]+3*f[i-2]-f[i-3];}//третья разность
for(int i=1;i<11;i++)
{
y[i+1]=y[i]+h*f[i]+h*h*df[i+1]/2+5*h*h*h*d2f[i+2]/12+3*h*h*h*h*d3f[i+3]/8;//разностная схема метода Адамса
}
cout<<"Таблица вычислений:"<<endl;
for(int i=0;i<11;i++)
{cout<<setw(10)<<x[i]<<setw(10)<<y[i]<<endl;}
getchar();
getchar();
return 0;
}
//пользовательская функция
double func(int i,double a, double b)
{
double f;
f=(1-b*b)*cos(a)+0.6*b;//исходное дифференциальное уравнение
return f;
}
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.05.2015, 22:26
Ответы с готовыми решениями:

Выполнение программы
Привет, я только начал изучать C++. По книге &quot;Язык программирования С&quot;...

Прерывается выполнение программы
Подсчитать сумму элементов, расположенных между первым максимальным и...

Неправильное выполнение программы
Задание: В одномерном массиве, состоящем из n вещественных элементов,...

Выполнение программы в облаке
Доброго времени суток. Возник вопрос- могу ли я, обычный пользователь ПК,...

Остановить выполнение программы
написал программу #include &lt;iostream&gt; #include &lt;string&gt; using namespace...

1
Koc52
0 / 0 / 0
Регистрация: 28.11.2013
Сообщений: 36
07.05.2015, 11:18  [ТС] 2
Проблема решена. Тему прошу закрыть
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.05.2015, 11:18

Зациклить выполнение программы
Помогите,как сделать чтобы при завершении программы, при нажатии определенной...

Выполнение программы простой структуры
Для задачи записать выражение, зависящее от координат точки X1 и Y1 и...

Как продолжить выполнение программы?
Необходимо запустить wav файл и продолжить выполнение программы. ...


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

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

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