Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.10.2008, 21:31   #1
Hyjak
 
Регистрация: 20.10.2008
Сообщений: 5
Вопрос При выполнении программа отображает ошибку, в чем проблема понять не могу

Вот код:

#include <clx.h>
#include <conio.h>
#include <iostream.h>
#pragma hdrstop

//---------------------------------------------------------------------------

#pragma argsused

double MyFunk(double x);
double main()
{
int k=1;
double a[1000], b[1000], epsilon, sigma, alfa[1000], beta[1000];
cout<<"wwedite interval a and b"<<endl;
cin>>a[k]>>b[k];
cout<<"wwedite tochnost and const raslichimosti"<<endl;
cin>>epsilon;
cout<<"wwedite sigma"<<endl;
cin>>sigma;
while(b[k]-a[k]>=epsilon)
{ cout<<k<<" a"<<a[k]<<" b"<<b[k]<<" beta"<<beta[k]<<" alfa"<<alfa[k];//строка просто для проверки
cout<<endl;
alfa[k]=(b[k]+a[k])/2-sigma;
beta[k]=(b[k]+a[k])/2+sigma;
if(MyFunk(alfa[k])>MyFunk(beta[k]))
{a[k+1]=alfa[k];
b[k+1]=b[k];}
else
if(MyFunk(alfa[k])<=MyFunk(beta[k]))
{a[k+1]=a[k];
b[k+1]=beta[k];}//на эту строчку говорит ошибка!
k++;}
cout<<a[k]<<b[k];
return 0;
}
double MyFunk(double x)
{
double fk=x*x;
return fk;
}


Я для проверки ввожу а=-6, b=6 дальше 0.001 и 0.01 в одной строчке просто встает и болты, компилятор отрубается, пробовал в Borland C++ Builder там показывает что массив просто забивается и ошибку выдает... что делать не понятно...

Последний раз редактировалось Hyjak; 20.10.2008 в 21:33. Причина: не тот код)
Hyjak вне форума Ответить с цитированием
Старый 20.10.2008, 22:22   #2
NjaalkemeBit
Пользователь
 
Регистрация: 19.10.2008
Сообщений: 32
По умолчанию

Цитата:
Сообщение от Hyjak Посмотреть сообщение
...массив просто забивается и ошибку выдает... что делать не понятно...
просто вышел за рамки заданного тобой же диапазона b[1000]... добавил проверку...
в остальном все работает….чего-то считает…))
Вложения
Тип файла: txt code.txt (1.0 Кб, 128 просмотров)
NjaalkemeBit вне форума Ответить с цитированием
Старый 20.10.2008, 22:41   #3
Hyjak
 
Регистрация: 20.10.2008
Сообщений: 5
По умолчанию

Цитата:
Сообщение от NjaalkemeBit Посмотреть сообщение
просто вышел за рамки заданного тобой же диапазона b[1000]... добавил проверку...
в остальном все работает….чего-то считает…))
большое спасибо) так конечно получше, но чего то все равно считает странно... но это уже разберусь)
Hyjak вне форума Ответить с цитированием
Старый 20.10.2008, 22:52   #4
NjaalkemeBit
Пользователь
 
Регистрация: 19.10.2008
Сообщений: 32
Радость

Цитата:
Сообщение от Hyjak Посмотреть сообщение
... но чего то все равно считает странно...
да я и сам дивлюсь чё ет у тя там за калькуляции такие...))
NjaalkemeBit вне форума Ответить с цитированием
Старый 20.10.2008, 22:56   #5
Hyjak
 
Регистрация: 20.10.2008
Сообщений: 5
По умолчанию

Цитата:
Сообщение от NjaalkemeBit Посмотреть сообщение
да я и сам дивлюсь чё ет у тя там за калькуляции такие...))
калькуляции то не сложные)) на паскале работают) а в с++ переписал, нифига не хочет)) данные те же ввожу, один фиг не хочет)) уже каждую строчку пересмотрел... там метод половинного деления.. просто, но косяк какой то..))
Hyjak вне форума Ответить с цитированием
Старый 20.10.2008, 23:05   #6
NjaalkemeBit
Пользователь
 
Регистрация: 19.10.2008
Сообщений: 32
По умолчанию

посмотри это, мож поможет... http://ru.wikipedia.org/wiki/Двоичный_поиск
NjaalkemeBit вне форума Ответить с цитированием
Старый 20.10.2008, 23:12   #7
Hyjak
 
Регистрация: 20.10.2008
Сообщений: 5
По умолчанию

Цитата:
Сообщение от NjaalkemeBit Посмотреть сообщение
посмотри это, мож поможет... http://ru.wikipedia.org/wiki/Двоичный_поиск
Еще раз спасибо, читал уже это, когда разбирался.. в самом алгоритме уже разобрался, не понятно чего с этой не здоровой прогой...
Hyjak вне форума Ответить с цитированием
Старый 20.10.2008, 23:48   #8
pu4koff
Старожил
 
Аватар для pu4koff
 
Регистрация: 22.05.2007
Сообщений: 9,520
По умолчанию

Индексация элементов массива с нуля начинается. Поэтому может нужно инициализировать k значением 0, а не 1?
pu4koff вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу понять в чем проблема (код) diznt Помощь студентам 2 03.08.2008 10:20
VB6. Программа зависает при выполнении. Artinka Помощь студентам 2 03.04.2008 00:06
Не могу понять задание amandra Помощь студентам 11 16.10.2007 10:24
не могу понять... Dutchman Паскаль, Turbo Pascal, PascalABC.NET 4 14.12.2006 07:14
Не могу понять задание Юдифь Помощь студентам 2 12.12.2006 17:40