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

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

Восстановить пароль Регистрация
 
anomal_mish_ka
Сообщений: n/a
21.10.2011, 13:44     Конвертировать программу из с# в с++ #1
Доброго всем времени суток=)), Народ помогите конвертировать программу из с# в с++
Надо аппроксимировать заданную исходную функцию 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++ string конвертировать в LPCWSTR
C++ Конвертировать float в *char???
С Java на C++ можно ли конвертировать? C++
как грамотно конвертировать? C++
Как конвертировать указатель c C++ на Java? C++
C++ Конвертировать из с в с++
Конвертировать doc в pdf с++ C++
C++ конвертировать char* в time_t C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gooseim
Эксперт C++
500 / 404 / 35
Регистрация: 23.09.2010
Сообщений: 1,139
21.10.2011, 13:51     Конвертировать программу из с# в с++ #2
anomal_mish_ka, конвертировать в Managed C++ или native C++?
anomal_mish_ka
Сообщений: n/a
25.10.2011, 17:11     Конвертировать программу из с# в с++ #3
Цитата Сообщение от gooseim Посмотреть сообщение
anomal_mish_ka, конвертировать в Managed C++ или native C++?
Cпасибо я уже разобрался=)) Если нужен мой проект обращайтесь=))
Yandex
Объявления
25.10.2011, 17:11     Конвертировать программу из с# в с++
Ответ Создать тему
Опции темы

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