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

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

Войти
Регистрация
Восстановить пароль
 
Vergil
42 / 36 / 14
Регистрация: 11.11.2009
Сообщений: 243
#1

Нахождение min и max методом сканирования - C++

20.12.2010, 16:18. Просмотров 707. Ответов 1
Метки нет (Все метки)

Помогите с програмкой. Написал, а она мне выдает invalid floating point operation.
Кидает на строчку, где не должно быть ошибки.
Может у кого-то есть более лучший вариант проги?
функция
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
double scan(double a, double b, double e, double h)
{double c=h, x0=a, x1;
int w, k=2;
for (;;) {
 
if (f(x0)<f(x0+0.001))
{w=-1;str=" Максимума ";break;}
else{w=1;str=" Минимума ";}
 
x1=x0+c;
 
if (x1==b) {ka=1;}
 
if((w*f(x1))<w*f(x0)){x0=x1;}
 
else{
 
if (w*f(x1)>f(x0)) {
 
if (fabs(c)<e){return x0;}
x0=x1;c=-c/k;}
 
else{
 
if(f(x1)==f(x0)){return ((x1+x0)/2);}}}}}
вызов
C++
1
2
3
4
5
6
7
void __fastcall TForm1::Button2Click(TObject *Sender)
{for(;;){
 
Form1->Memo1->Lines->Add((String)"Точка"+str+"="+scan(Edit1->Text.ToDouble(),Edit2->Text.ToDouble(),Edit3->Text.ToDouble(),Edit4->Text.ToDouble()););//pocazivaet chto tut oshibka
 
if (ka==1){break;}}
}
если точность поставить 0 и шаг 0, то работает.

Добавлено через 12 минут
что-то явно с шагом. Выставляешь 0, то работает. шаг - h.

Добавлено через 1 час 40 минут
спасибо, решил сам. Просто при шаге не равным нулю, у меня ничего не возвращалось. Он на это и жаловался.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.12.2010, 16:18
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Нахождение min и max методом сканирования (C++):

Нахождение min и max и их произведения - C++
В с++ ничерта не понимаю, учил только бейсик. А тут надо задачу решить на экзамене. Задача легкая, но курить мануалы некогда, зачет в среду...

Работа с функциями. Нахождение min и max - C++
Описать функцию Minmax(A,B), записывающую в переменную A минимальное из значений A и B, а в переменную B — максимальное из этих значений (A...

Нахождение max и min функции одной переменной - C++
Нужна помощь. Надо написать программу которая находить max и min функции с 1 переменой. (пользователь должен ввести функцию) Очень...

Нахождение Max и Min в строке двумерного массива - C++
что то вообще не чего не получается. как передать в функцию массив построчно?как найти мин-мах? как перезаписать элемент? #include...

Нахождение max и min в матрице . и поменять их местами - C++
Доброго времени суток столкнулась с этой программой в лоб в лоб . И ни как не могу вывести матрицу с этими указателями, я в них запуталась...

Найти max и min, если min левее max, то среднее арифметическое между ними - C++
#include &lt;iostream.h&gt; #include &lt;stdio.h&gt; #include &lt;conio.h&gt; #include &lt;math.h&gt; void main() { int n,a; int...

1
M@ker
-73 / 19 / 1
Регистрация: 17.12.2010
Сообщений: 355
20.12.2010, 20:03 #2
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>

void main(void)
{
int N,M,**B,i,j,max,min,imax,imin,a;
clrscr();
do
{
printf("N=");
scanf("%d",&N);
}
while (N<=0);
do
{
printf("M=");
scanf("%d",&M);
}
while (M<=0);

B = new int* [N];
for(i=0;i<N;i++)
{
B[i] = new int [M];
}
for(i=0;i<N;i++)
{
for (j=0;j<M;j++)
{
printf("B[%d][%d]=",i+1,j+1);
scanf("%d",&B[i][j]);
}
}
clrscr();

printf("\n\t\SOURCE MATRIX\n");
for(i=0;i<N;i++)
{
for(j=0;j<M;j++)
{
printf("%d\t",B[i][j]);
}
printf("\n");
}

for(i=0;i<N;i++)
{
imax=0;
for(j=1;j<M;j++)
{
if(B[i][j]>B[i][imax])
{
imax=j;
}
}
a=B[i][0];
B[i][0]=B[i][imax];
B[i][imax]=a;

imin=0;
for(j=1;j<M;j++)
{
if(B[i][j]<B[i][imin])
{
imin=j;
}
}
a=B[i][M-1];
B[i][M-1]=B[i][imin];
B[i][imin]=a;
}
printf("\n\t\RESULT MATRIX\n");
for(i=0;i<N;i++)
{
for(j=0;j<M;j++)
{
printf("%d\t",B[i][j]);
}
printf("\n");
}
getch();
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.12.2010, 20:03
Привет! Вот еще темы с ответами:

Вычислить min max функции методом бисекции - C++
Долго пытался что то придумать,но понять хронологию и концепцию программы понять не могу

C++ Сортировка массива методом Min и Max | Не работает программа - C++
Читала темы на форумах про сортировки и вроде бы пришла к нормальному коду, но при выводе отсортированного массива на экран он выводит...

Поменять нахождение min среди двумерного массива, на нахождение min в каждой сточке - C++
Поменять нахождение min среди двумерного массива, на нахождение min в каждой сточке #include &lt;iostream&gt; #include &lt;cstddef&gt; #include...

Нахождение экстремума min методом половинного деления - C++
Вообщем проблема такая, препод сказал реализовать метод половинного деления для нахождения экстремума функции с точностью 10^-4. Сделал...


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

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

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