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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.10.2015, 08:44   #1
1ViV1
Пользователь
 
Регистрация: 16.09.2015
Сообщений: 13
По умолчанию Чисметовское приложение с графическим интерфейсом

Здравствуйте,

нужно написать графическое приложение, у которого начинкой был бы какой-нибудь численный метод. Например, метод Гаусса для решения СЛАУ.

То есть, основной функцией программы было бы решение Системы уравнений, но все это было бы оформленно не в виде грустного консольного окна, а в виде графического приложения.

Насколько трудно и как это можно сделать, при условии, что метод Гаусса уже написан.

Заранее спасибо!
1ViV1 вне форума Ответить с цитированием
Старый 01.10.2015, 09:00   #2
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

А что бы ты хотель отображать-то?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 01.10.2015, 18:02   #3
1ViV1
Пользователь
 
Регистрация: 16.09.2015
Сообщений: 13
По умолчанию

Просто, чтобы было не консольное приложение с черным фоном, а графическое с белым.

А так все тоже самое. Больше ничего! :-)
1ViV1 вне форума Ответить с цитированием
Старый 01.10.2015, 18:55   #4
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Просто, чтобы было не консольное приложение с черным фоном, а графическое с белым.

А так все тоже самое. Больше ничего! :-)
ну и что тебе мешает?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 01.10.2015, 18:57   #5
1ViV1
Пользователь
 
Регистрация: 16.09.2015
Сообщений: 13
По умолчанию

Понятия не имею, как это делать.
Я написал тьму приложений чисметовских, гигантское количество просто. Но никогда не работал с графикой.

Вот и не знаю с чего начать..
1ViV1 вне форума Ответить с цитированием
Старый 01.10.2015, 19:05   #6
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Вот и не знаю с чего начать..
нарисуй, чего ты хочешь видеть на экране и покажи.
чо такое
Цитата:
Чисметовское приложение
я не знаю.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 01.10.2015, 19:11   #7
1ViV1
Пользователь
 
Регистрация: 16.09.2015
Сообщений: 13
По умолчанию

Ну... Вы знаете ведь, что такое вычислительная математика? Вот например, не все уравнения или интегралы с дифференциальными уравнениями можно решить аналитически (то есть найти чёткое и точное решение). Самый простой пример: можно решить квадратное уравнение, но допусти ax^5-bx^2+cx+d=0 аналитически решить нельзя. Или например невозможно найти первообразную для интеграла Sinx/x, просто потому что он не выражается в элементарных функциях .

Я написал много таких приложений, где решения мат. примеров находится численно, то есть приближенно. Это и есть "чисметовские приложения". У меня они работают так:

Всплывает черный экран, там просится ввести какие-то нач. данные, я их ввожу и в черном (консольном экране) выводится решение численное. А мне надо всё тоже самое, но чтобы это работало на графическом окне, то есть таком окне, которое мы видим в проводнике.
1ViV1 вне форума Ответить с цитированием
Старый 01.10.2015, 19:21   #8
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Вы знаете ведь, что такое вычислительная математика?
первый раз слышу.
Цитата:
Я написал много таких приложений, где решения мат. примеров находится численно, то есть приближенно. Это и есть "чисметовские приложения".
так бы и сказал – численные методы, а то я подумал, чисмет – это фамилиё такое.

Цитата:
Всплывает черный экран, там просится ввести какие-то нач. данные, я их ввожу и в черном (консольном экране) выводится решение численное. А мне надо всё тоже самое, но чтобы это работало на графическом окне, то есть таком окне, которое мы видим в проводнике.
пример покажь. с исходником, канешна!
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 01.10.2015, 19:28   #9
1ViV1
Пользователь
 
Регистрация: 16.09.2015
Сообщений: 13
По умолчанию

Ну вот например.

Если его запустить, то и будет черный консольный экран, а при введении данных программа найдет корни уравнения

А надо тоже самое, но в графике, а не в консоли


Код:
#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;


class Secant{
public:
    float f(float x)
    {
        return  cos(x)-x*x*x;
        //return  x*x-9*x+14;
       // return sin(x);
        //return -2*x+3;
       // return  x*x*x-0.2*x*x-0.2*x-1.2; //Здесь вводим ту функцию, которую будем эксплуатировать
    }
    float a,b,eps,X,x0;
       float h=0.1;
       float j,i=1; //счетчик количества итераций и нужен для цикла табулирования

       void EnterData(){
           cout<<"Enter a= "<<endl;cin>>a;     //ввожу и считываю 1
                  cout<<"Enter b= "<<endl;cin>>b;     //ввожу и считываю 1.5
                  cout<<"Enter eps= "<<endl;cin>>eps; //нужная точность
                  x0=a; //неудобство жуткое этой программы в том, что надо вручную проверять, какой
                              // конец (a или b) будет "неподвижным". Очень неудобно!
                              // x0=a будет правильно только в случаи f''(b)*f(b)>0,
                              //если же f''(a)*f(a)>0, то цикл придется поменять
                              // x0=b;
                              //X=x0 - f(x0)*(a-x0)/(f(a)-f(x0)) жутко неудобно!
       }

       void Tabulation( ){
           //сначала затабулируем функцию и посмотрим, где есть корни
                  cout<<endl<<endl<<"Tabulation of function"<<endl<<"  x  | f(x)  |\n";
                      cout<<"---------------\n";
                      for(i = a; i <= b; i+=h)
                      {

                          j=f(i);
                    //    if(f(i)<0.00001){ f(i)=0;}
                          if ((i>-0.001)&&(i<0.001)) i=0;
                        if ((j>-0.001)&&(j<0.001)) j=0;
                              cout<<setprecision(3)<<setw(4)<<i<<"| "//setprecision - точность
                                  <<setprecision(3)<<setw(4)<<j//setw - ширина вывода
                                  <<endl;


                      }//протабулировали функцию
                      j=a;//чтобы в переменной j не было мусора

                                //выведем на экран промежуток, где есть корни
                                for(i = a; i <= b; i+=h)
                                {

                                   if(f(j)*f(i)<0){
                                       cout<<"One root is located between ";
                                       cout<<j-h<<" and "<<i+h<<endl;
                                    }
                                j=i;
                                 }//вывели участок, где есть корень на экран
       }
       void Solut(){
           i=1;
                  for(;;){
                      //так ввели данные, что конец b - неподвижен
                      X=x0-f(x0)*(b-x0)/(f(b)-f(x0));
                     if(abs(x0-X)<=eps) break;
                      x0=X;
                      cout<<endl<<"Iteration number "<<i<<") "<<x0;i++;
                     }
                   cout<<endl<<endl<<"The equation was solved in "<<i<<" iterations"<<endl;
                   cout<<endl<<"Solution is: "<<endl<<"x= "<<x0;
       }

       int AmountofIteration(){
           cout<<i<<endl;
           return i;
       }
};


int main()
{
    cout<<endl<<endl<<"Solution the equation"<<endl;
    cout<<"Method Secants"<<endl;
    Secant V;
    V.EnterData();
    V.Tabulation();
    V.Solut();
    V.AmountofIteration();

    

    return 0;

}
"так бы и сказал – численные методы, а то я подумал, чисмет – это фамилиё такое."

Мы просто в Универе всегда так называем) Чисмет)!

Последний раз редактировалось Stilet; 02.10.2015 в 08:48.
1ViV1 вне форума Ответить с цитированием
Старый 01.10.2015, 19:59   #10
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

пример увидел. выбирай, на чём писать GUI.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
написать программу с графическим интерфейсом в паскале sophi Паскаль, Turbo Pascal, PascalABC.NET 5 26.11.2014 01:05
программа с графическим интерфейсом язык С Владисла8 Фриланс 2 28.03.2013 13:55
объектно-ориентированная задача с графическим интерфейсом Анннютик Win Api 2 05.01.2012 16:21
Создание программ с графическим интерфейсом Rembo C++ Builder 20 18.11.2009 19:28
Программа с графическим интерфейсом raccooni Общие вопросы C/C++ 1 29.11.2008 18:00