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

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

Войти
Регистрация
Восстановить пароль
 
anomal_mish_ka
Сообщений: n/a
#1

Конвертировать программу из с# в с++ - C++

21.10.2011, 13:44. Просмотров 725. Ответов 2
Метки нет (Все метки)

Доброго всем времени суток=)), Народ помогите конвертировать программу из с# в с++
Надо аппроксимировать заданную исходную функцию f(x) многочленом на интервале [a, b]. Задано количество неизвестных параметров n, вид аппроксимации и m – количество точек, в которых задана функция.
Таблица исходной функции yi=f(xi) вычисляется в точках xi = a + (i −1)(b − a) /(m −1), i =1, m. Используя полученную таблицу (xi , yi ), требуется вычислить значения функций f (x j ), ϕ(x j ,c) построить графики и проанализировать качество полученной аппроксимации.

Заранее спасибо.

Вариант:
ln(x) − 5sin(x)^2 Линейная PNL
a=3, b=6, m=11, n=2

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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using ZedGraph;
namespace MetodLaGranga
{
    public partial class Form1 : Form
    {
        double[] Xj = new double[21];
        double[] Yj = new double[21];
        double[] Fj = new double[21];
        public Form1()
        {
            InitializeComponent();
            dataGridView1.AllowUserToAddRows = false;
            dataGridView2.AllowUserToAddRows = false;
 
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            label1.Visible = true;
            dataGridView1.Rows.Clear();
            dataGridView1.Rows.Add(11);
            
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            dataGridView1.Visible = true;
            dataGridView2.Visible = true;
            double [] x = new double [11];
            double [] y = new double [11];
            for (int i = 0; i < 11; i++)
            {
                x[i] = 3 + (double)i * 6 / 10;
                dataGridView1.Rows[i].Cells[0].Value = Math.Round(x[i],4).ToString();
                y[i] = Math.Log(x[i], 10) - 5 * Math.Pow(Math.Sin(x[i]), 2);
                dataGridView1.Rows[i].Cells[1].Value = Math.Round(y[i], 4).ToString();
            }
 
            dataGridView2.Rows.Clear();
            
            dataGridView2.Rows.Add(21);
 
            for (int  i = 0; i < 21; i++)
            {
                Xj[i] = 3 + (double)i * 6 / 20;
 
                Yj[i] = Math.Log(x[i], 10) - 5 * Math.Pow(Math.Sin(x[i]), 2);
               // MessageBox.Show(Xj[i].ToString());
                dataGridView2.Rows[i].Cells[0].Value = Math.Round(Xj[i],2).ToString();
                dataGridView2.Rows[i].Cells[1].Value = Math.Round(Yj[i],6).ToString();
            }
             //new double();
            for (int r = 0; r < 21; r++)
            {
                if ((Xj[r] >= x[0]) && (Xj[r] <= x[10]))
                {
                    int i = 1;
                QWER:
                    if (Xj[r] > x[i])
                    {
                        i++;
                        goto QWER;
                    }
                    else
                    {
                        Fj[r] = y[i - 1] + (Xj[r] - x[i - 1]) * (y[i] - y[i - 1]) / (x[i] - x[i - 1]);
                        dataGridView2.Rows[r].Cells[2].Value = Math.Round(Fj[r], 3).ToString();
                    }
                }
                else 
                {
                    dataGridView2.Rows[r].Cells[2].Value = "За пределами таблицы!"; 
                }
            }
            for (int i = 0; i < 21; i++)
            {
                dataGridView2.Rows[i].Cells[3].Value = Math.Round(Math.Abs(Yj[i]-Fj[i]),3).ToString();
            }
        }
 
        private void button4_Click(object sender, EventArgs e)
        {
            zedGraphControl1.Visible = true; 
            CreateGraph(zedGraphControl1); // строим график
            SetSize(); // и устанавливаем его положение и размер             
        }
 
        private void CreateGraph(ZedGraphControl zgc)
        {
            GraphPane myPane = zgc.GraphPane;
            myPane.CurveList.Clear();
            // Задаем название графика и сторон
            myPane.Title.Text = "Графики фунции";
            myPane.XAxis.Title.Text = "Ось X";
            myPane.YAxis.Title.Text = "Ось Y";
            // --------------------------------
           
            PointPairList list1 = new PointPairList();
            for (int i = 0; i < 21; i++)
            {
                list1.Add(Xj[i],Yj[i]);
            }
 
            PointPairList list2 = new PointPairList();
            for (int i = 0; i < 21; i++)
            {
                list2.Add(Xj[i], Fj[i]);
            }
            // ----------------
            // отрисовываем график
            LineItem myCurve = myPane.AddCurve("f(x)", list1, Color.Blue, SymbolType.Square);
            zgc.AxisChange();
            LineItem myCurve1 = myPane.AddCurve("u(x,c)", list2, Color.Red, SymbolType.Square);
            zgc.AxisChange();
        }
 
        // Фунция изменения размера и положения графика в зависимости от размера формы
        private void SetSize()
        {
            //zedGraphControl1.Location = new Point(3, 3); // задаем положение графика
            zedGraphControl1.Size = new Size(ClientRectangle.Width - 100, ClientRectangle.Height - 100); // размеры графика
        }
 
        private void button3_Click(object sender, EventArgs e)
        {
            zedGraphControl1.Visible = false;
        }
    }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.10.2011, 13:44
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Конвертировать программу из с# в с++ (C++):

Конвертировать из с в с++ - C++
Переделать из язика с в язик С++ файл снизу #include &lt;iostream&gt; #include &lt;stdio.h&gt; #include &lt;stdlib.h&gt; #include &lt;string.h&gt; ...

Конвертировать программу с GPSS на Delphi (SMPL)? - GPSS
Привет всем! Кто-нибудь знает возможно переписать прогу с GPSS на Delphi (SMPL)? Accumulator EQU 5 ;ёмкость накопителя Tavr EQU...

Конвертировать БД - Firebird/InterBase
Доброго времени суток. Есть приложение клиент БД (InterBase). Есть база для этого приложения. Есть ещё одна БД, но поля в ней отличаются....

VB конвертировать в C# - C#
помогите VB конвертировать в C# Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles...

Конвертировать из 2.0 в 3.0 - .NET
Люди, есть ли безболезненный способ конвертировать проект в 3.0 из 2.0, или надо писать проект сново? VS2008

Конвертировать Java в C# - C#
Ребята посмотрите пожалуйста, пример с инета часть соап подключения....., С помощью программу &quot;Demo Java to C# Converter v2.8&quot;...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
21.10.2011, 13:51 #2
anomal_mish_ka, конвертировать в Managed C++ или native C++?
0
anomal_mish_ka
Сообщений: n/a
25.10.2011, 17:11 #3
Цитата Сообщение от gooseim Посмотреть сообщение
anomal_mish_ka, конвертировать в Managed C++ или native C++?
Cпасибо я уже разобрался=)) Если нужен мой проект обращайтесь=))
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.10.2011, 17:11
Привет! Вот еще темы с ответами:

Конвертировать данные - SQL Server
Не подскажите можно ли nvarcharконвертировать в varbinary, если да то как?Заранее спасибо!

Конвертировать код с VB в C# - C#
Привет всем. Вот только только начал писать на шарпе и возникла такая проблемка. Вот как такой код на VB перевести в шарп ??? Там описан...

Конвертировать с Pascal на C# - C#
Нужно перевести этот код с Pascal на C#: const N = 9; L = 5; A : array of Integer = (12,45,5,4,21,20,10,12,26); var ...

Конвертировать из C# в C++ Builder 6 - C++ Builder
Создать меню с командами Input color, Change, Exit, Help. При выборе команды exit приложение завершает работу. При выборе команды Input...


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

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

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