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

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

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

Найти на отрезке [-10;10] абсциссу точки минимума функции. Исправить ошибки - C++

16.08.2013, 08:54. Просмотров 913. Ответов 24
Метки нет (Все метки)

Приветствую всех. Такая проблема:
Делаю лабораторную работу, нужно отобразить результат работы программы
в Visual C++ 2005 она работает, а вот в C++ 2008 не работает. Нужна ваша помощь, я не очень опытный в программиоровании:

Это результат компиляции:

Код
1>------ Построение начато: проект: 123, Конфигурация: Debug Win32 ------
1>Компиляция...
1>1234.cpp
1>Компиляция манифеста в ресурсы...
1>Microsoft (R) Windows (R) Resource Compiler Version 6.1.6723.1
1>Copyright (C) Microsoft Corporation.  All rights reserved.
1>Компоновка...
1>Внедрение манифеста...
1>Microsoft (R) Windows (R) Resource Compiler Version 6.1.6723.1
1>Copyright (C) Microsoft Corporation.  All rights reserved.
1>Журнал построения был сохранен в "file://c:\Documents and Settings\Elektron\Рабочий стол\123\123\Debug\BuildLog.htm"
1>123 - ошибок 0, предупреждений 0
========== Построение: успешно: 1, с ошибками: 0, без изменений: 0, пропущено: 0 ==========

Вот код программы:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<iostream>
#include<complex>
using namespace std;
void main()
{locale::global(locale("rus"));
int a=-10;
int b=10;
double n,h,x,U,min,minX;
n=(b-a)/0.01;
h=(b-a)/n;
min=2;
 
for(x=a;x<=b;x=x+h)
{
    U=x*x+4*exp(-0.25*x);
    if(U<min)
    {min=U;
    minX=x;}
}
cout<<"аргумент="<<minX<<"\n";
cout<<"минимум="<<min;
}

А вот ошибка, которая появляется при запуске программы:
http://content-22.foto.mail.ru/mail/...swers/i-25.jpg

вот и все. Находил некоторые рекомендации в Интернете, но в С++ я начинающий, поэтому некоторые фразы я просто не понимаю
За помощь буду вам благодарен.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.08.2013, 08:54     Найти на отрезке [-10;10] абсциссу точки минимума функции. Исправить ошибки
Посмотрите здесь:

C++ Непрерывные функции и нахождение минимума на отрезке
Функции ввода / вывода, вычисления (исправить ошибки) C++
C++ Найти ошибки и исправить
найти и исправить ошибки C++
Как ускорить данный алгоритм нахождения минимума на отрезке? C++
C++ Конструктор, деструктор, friend-функции. Исправить ошибки
Нужно найти ошибки в вычислении локального минимума C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
IvanovPRO
1 / 0 / 0
Регистрация: 16.08.2013
Сообщений: 38
16.08.2013, 12:15  [ТС]     Найти на отрезке [-10;10] абсциссу точки минимума функции. Исправить ошибки #21
Хорошо. Спасибо вам за помощь.
reisal78
629 / 542 / 127
Регистрация: 28.04.2013
Сообщений: 1,535
16.08.2013, 12:42     Найти на отрезке [-10;10] абсциссу точки минимума функции. Исправить ошибки #22
Добавлено через 24 минуты
Разобрался вроде...

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
#include<iostream>
#include<complex>
using namespace std;
void main()
{locale::global(locale("rus"));
double a=-10;
double b=10;
double n,h,x,U,min,minX;
n=(b-a)/0.01; //2000
h=(b-a)/n; //0.01
min=2;
 
for(x=a;x<=b;x=x+h)
{
    U=x*x+4*exp(-0.25*x);
    if (U < min)
    {
        min=U;
        minX=x;
        cout << "Событие сработало";
    }
}
cout << "аргумент= " << minX << endl;
cout << "минимум= " << min << endl;
}
У тебя не срабатывает условие
C++
1
(U < min)
Поэтому minX не инициализируется, и ты пытаешься вывести объявленную но не инициализированную переменную, потому и появляется ошибка.
reisal78
629 / 542 / 127
Регистрация: 28.04.2013
Сообщений: 1,535
16.08.2013, 13:02     Найти на отрезке [-10;10] абсциссу точки минимума функции. Исправить ошибки #23
И еще я обратил внимание
что после первого прохода цикла for x принимает странное значение. (см. скрин)

Кто нибудь подскажет откуда взялась 2 на конце, и надо ли вообще не нее обращать внимание?
Миниатюры
Найти на отрезке [-10;10] абсциссу точки минимума функции. Исправить ошибки  
korep
47 / 40 / 9
Регистрация: 06.01.2013
Сообщений: 567
16.08.2013, 13:07     Найти на отрезке [-10;10] абсциссу точки минимума функции. Исправить ошибки #24
reisal78, это из-за двоичности системы. внимание можно не обращать
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.08.2013, 13:15     Найти на отрезке [-10;10] абсциссу точки минимума функции. Исправить ошибки
Еще ссылки по теме:

Исправить ошибки в работе функции C++
C++ Ошибка после точки: найти причины возникновения ошибок в коде и исправить эти ошибки
Найти причины возникновения ошибок в коде и исправить эти ошибки: не работают функции-члены C++
C++ Найти приближенное значение минимума функции методом Фибоначчи
Построить таблицу значений заданной функции на отрезке [a, b] с шагом h (исправить ошибки в коде) C++

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

Или воспользуйтесь поиском по форуму:
reisal78
629 / 542 / 127
Регистрация: 28.04.2013
Сообщений: 1,535
16.08.2013, 13:15     Найти на отрезке [-10;10] абсциссу точки минимума функции. Исправить ошибки #25
понято =)
Yandex
Объявления
16.08.2013, 13:15     Найти на отрезке [-10;10] абсциссу точки минимума функции. Исправить ошибки
Ответ Создать тему
Опции темы

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