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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.10.2013, 10:23   #1
rafael999
Пользователь
 
Регистрация: 21.09.2013
Сообщений: 17
По умолчанию Что не правильно? Программа на C++ находит минимум правильно, а максимум нет. В чем погрешность?

Программа находит минимум правильно, а максимум нет.В чем погрешность?
Код:
#include "stdafx.h" 
#include <iostream> 
#include <math.h> 
#include <iomanip> 
#include <fstream>
using namespace std;
 
fstream file;
 
int main()
{
    const double exp=2.72;
    double x,y,U,A,B,U_min,U_max,S,k,x_min,y_min,x_max,y_max;
    U_min=10000000000000000;
    U_max=-9000000000000;
    S=0;
    k=0;
    file.open("out_file.txt", ios::out);
    file.setf(ios::right);
    file.setf(ios::fixed);
    file.precision(3);
    
    file<<setw(10)<<"x"<<setw(10)<<"y"<<setw(10)<<"U"<<endl;
 
    cout<<setw(10)<<"x"<<setw(10)<<"y"<<setw(10)<<"U"<<endl;
    y=2;
    while(y<=4)
    {
        x=1;
        while(x<=3)
        {
            if((x/(y-1.5))<1)
            {A=pow(exp,2*x)+log10(x);
            B=sin(-(1-abs(x-y))/pow(x,(1./3)));
            if(A>B)
            U=A;
            else 
            U=B;
            }
            else
            U=pow(cos(pow(x,2)-y),2);
    
            cout.setf(ios::right);
            cout.setf(ios::fixed);
            cout.precision(3);
        
            cout<<setw(10)<<x<<setw(10)<<y<<setw(10)<<U<<endl;
        
            file<<setw(10)<<x<<setw(10)<<y<<setw(10)<<U<<endl;
  x=x+1.3;
        }
             y=y+1.5;
   
    
 
    if(U<U_min)
    {U_min=U;
    x_min=x-1.3;
    y_min=y-1.5;}
      
     
    if(U>U_max)
    {U_max=U;
    x_max=x-1.3;
    y_max=y-1.5;}
 
    }
 cout<<"min U = "<<U_min<<"; x = "<<x_min<<"; y = "<<y_min<<endl;
file<<"min U = "<<U_min<<"; x = "<<x_min<<"; y = "<<y_min<<endl;
 
    cout<<"max U = "<<U_max<<"; x = "<<x_max<<"; y = "<<y_max<<endl;
file<<"max U = "<<U_max<<"; x = "<<x_max<<"; y = "<<y_max<<endl;
 
 
 
 
 
    file.close();
 
    system("notepad.exe out_file.txt");
    return 0;
}
Спасибо!
Изображения
Тип файла: png 11111111111111111111111111111.png (2.1 Кб, 54 просмотров)

Последний раз редактировалось Stilet; 26.10.2013 в 13:01.
rafael999 вне форума Ответить с цитированием
Старый 26.10.2013, 10:30   #2
Vanta11a
Lawful Evil
Участник клуба
 
Аватар для Vanta11a
 
Регистрация: 13.05.2008
Сообщений: 1,208
По умолчанию

Сформулировать задание можете? Я не могу понять, зачем строчки вида
Код:
x=1;
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c)
Vanta11a вне форума Ответить с цитированием
Старый 26.10.2013, 10:35   #3
rafael999
Пользователь
 
Регистрация: 21.09.2013
Сообщений: 17
По умолчанию

Я решил с помощью while делать
Изображения
Тип файла: jpg 40451b16d7a9f68d98fcc22142e25c5dd1694887.jpg (24.7 Кб, 122 просмотров)
rafael999 вне форума Ответить с цитированием
Старый 26.10.2013, 11:21   #4
Vanta11a
Lawful Evil
Участник клуба
 
Аватар для Vanta11a
 
Регистрация: 13.05.2008
Сообщений: 1,208
По умолчанию

Попробуйте перенести проверки из конца цикла
Код:
while(y<=4)
в конец цикла (но перед инкрементом х)
Код:
while(x<=3)
и присваивайте текущее значение переменных, а не искуственно уменьшенное.
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c)
Vanta11a вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
программа на Си. правильно делаю нет? assss Помощь студентам 1 02.10.2012 21:07
Программа не правильно считает, что не так? Kolaps Помощь студентам 1 25.04.2012 13:14
Правильно или нет вот в чём вопрос но ошибок нет... Alexcool Помощь студентам 2 10.01.2010 13:55
Посмотрите пожалуйста правильно ли написана программа,если нет укажите ошибку. Викулька Помощь студентам 1 10.12.2007 22:49