0 / 0 / 0
Регистрация: 24.11.2013
Сообщений: 24
1

Перевести код с C# на C++

19.04.2015, 15:30. Показов 457. Ответов 6
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Введите количество Х:");
            int x = int.Parse(Console.ReadLine());
            Console.WriteLine("Введите количество Y:");
            int y = int.Parse(Console.ReadLine());
            double[][] P = new double[x][];
            for (int i = 0; i < x; i++)
            {
                P[i]=new double[y];
            }
            Console.WriteLine("Введите Р[i][j]");
            for (int i = 0; i < x; i++)
            {
                for (int j = 0; j < y; j++)
                {
                    P[i][j] = double.Parse(Console.ReadLine());
                }
            }
 
            double[] p = new double[x];
            double[] r = new double[y];
            for (int i = 0; i < y; i++)
            {
                for (int j = 0; j < x; j++)
                {
                    p[i] += P[j][i];
 
                }
 
            }
 
            for (int i = 0; i < y; i++)
            {
                for (int j = 0; j < x; j++)
                {
                    r[i] += P[i][j];
 
                }
 
            }
            double[][] Pyx = new double[x][];
            for (int i = 0; i < x; i++)
            {
                Pyx[i] = new double[y];
            }
            for (int i = 0; i < x; i++)
            {
                for (int j = 0; j < y; j++)
                {
                    Pyx[i][j] = P[i][j] / p[j];
                }
            }
            double[][] Pxy = new double[x][];
            for (int i = 0; i < x; i++)
            {
                Pxy[i] = new double[y];
            }
            for (int i = 0; i < x; i++)
            {
                for (int j = 0; j < y; j++)
                {
                    Pxy[i][j] = P[i][j] / r[i];
                }
            }
 
            double Hyx = 0;
            double Hxy = 0;
            for (int i = 0; i < x; i++)
            {
                for (int j = 0; j < y; j++)
                {
                    if (Pyx[i][j] == 0)
                        continue;
                    Hyx += p[j] * Pyx[i][j] * Math.Log(Pyx[i][j],2.0);
 
                }
            }
            Console.WriteLine("{0}",Hyx*(-1));
            for (int i = 0; i < x; i++)
            {
                for (int j = 0; j < y; j++)
                {
                    if (Pxy[i][j] == 0)
                        continue;
 
                    Hxy += r[i] * Pxy[i][j] * Math.Log(Pxy[i][j], 2.0);
 
                }
            }
            Console.WriteLine("{0}", Hxy * (-1));
        }
 
 
 
    }
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.04.2015, 15:30
Ответы с готовыми решениями:

Перевести ассемблерный код TASM в программный код для архитектуры ARM
Необходимо программный код перевести в программный код языка ассемблер для архитектуры ARM,...

Каким образом можно перевести код Паскаля в код Фортран?
Здравствуйте уважаемые программисты! Может быть банальная, но довольно сложная проблема - перевод...

Ребята,можно ли этот код перевести на чистый си(Код смешан с си++)
Задача: 4 балла: Разработать игровое поле для змейки. Продумать способ хранения змейки,...

Нужно код из паскаль перевести в делфи (сортировка выбором), код ниже и условие
нужно добавить в процедуру делфи код сортировки выбором из паскаль чтобы сортировало код делфи...

6
7780 / 6550 / 2981
Регистрация: 14.04.2014
Сообщений: 28,608
19.04.2015, 16:57 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
#include <iostream>
#include <cstdlib>
#include <cmath>
#include <locale>
 
 
int main()
{
    std::locale::global(std::locale(""));
 
    std::cout << "Введите количество Х:";
    int x;
    std::cin >> x;
    std::cout << "Введите количество Y:";
    int y;
    std::cin >> y;
 
    double **P = new double *[x];
    for (int i = 0; i < x; ++i) P[i] = new double[y];
 
    std::cout << "Введите Р[i][j]";
    for (int i = 0; i < x; i++)
        for (int j = 0; j < y; j++)
            std::cin >> P[i][j];
 
    double *p = new double[x];
    double *r = new double[y];
    for (int i = 0; i < y; i++)
        for (int j = 0; j < x; j++)
        {
            p[i] += P[j][i];
            r[i] += P[i][j];
        }
 
    double **Pyx = new double *[x];
    for (int i = 0; i < x; i++)
        Pyx[i] = new double[y];
 
    for (int i = 0; i < x; i++)
        for (int j = 0; j < y; j++)
            Pyx[i][j] = P[i][j] / p[j];
 
    double **Pxy = new double *[x];
    for (int i = 0; i < x; i++)
        Pxy[i] = new double[y];
 
    for (int i = 0; i < x; i++)
        for (int j = 0; j < y; j++)
            Pxy[i][j] = P[i][j] / r[i];
 
    double Hyx = 0;
    double Hxy = 0;
    for (int i = 0; i < x; i++)
        for (int j = 0; j < y; j++)
        {
            if (Pyx[i][j] == 0) continue;
            Hyx += p[j] * Pyx[i][j] * log(Pyx[i][j]) / log(2.0);
        }
 
    std::cout << Hyx * -1 << std::endl;
 
    for (int i = 0; i < x; i++)
        for (int j = 0; j < y; j++)
        {
            if (Pxy[i][j] == 0) continue;
            Hxy += r[i] * Pxy[i][j] * log(Pxy[i][j]) / log(2.0);
        }
 
    std::cout << Hxy * -1 << std::endl;
 
    for (int i = 0; i < x; i++) delete[] Pyx[i];
    delete[] Pyx;
 
    for (int i = 0; i < x; i++) delete[] Pxy[i];
    delete[] Pxy;
 
    delete[] p;
    delete[] r;
 
    for (int i = 0; i < x; i++) delete[] P[i];
    delete[] P;
    
 
    system("pause");
}
0
lss
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
19.04.2015, 17:30 3
Но оригинальный код с ошибками:
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
#include <iostream>
#include <cmath>
using namespace std;
 
int main()
{
    setlocale(0, "");
    
    cout << "Введите количество Х: ";
    int x;
    cin >> x;
    cout << "Введите количество Y: ";
    int y;
    cin >> y;
    
    double** P = new double*[x];
    for (int i = 0; i < x; i++)
        P[i] = new double[y];
    
    cout << "Введите Р[i][j]" << endl;
    for (int i = 0; i < x; i++)
        for (int j = 0; j < y; j++)
            cin >> P[i][j];
    
    double* p = new double[x];
    double* r = new double[y];
    for (int i = 0; i < y; i++)
        for (int j = 0; j < x; j++)
            p[i] += P[j][i];
 
    for (int i = 0; i < y; i++)
        for (int j = 0; j < x; j++)
            r[i] += P[i][j];
 
    double** Pyx = new double*[x];
    for (int i = 0; i < x; i++)
        Pyx[i] = new double[y];
    
    for (int i = 0; i < x; i++)
        for (int j = 0; j < y; j++)
            Pyx[i][j] = P[i][j] / p[j];
        
    double** Pxy = new double*[x];
    for (int i = 0; i < x; i++)
        Pxy[i] = new double[y];
    
    for (int i = 0; i < x; i++)
        for (int j = 0; j < y; j++)
            Pxy[i][j] = P[i][j] / r[i];
        
    double Hyx = 0;
    double Hxy = 0;
    for (int i = 0; i < x; i++)
    {
        for (int j = 0; j < y; j++)
        {
            if (Pyx[i][j] == 0)
                continue;
            Hyx += p[j] * Pyx[i][j] * log(Pyx[i][j]);
        }
    }
    
    cout << "{0}" << (Hyx*(-1)) << endl;;
    
    for (int i = 0; i < x; i++)
    {
        for (int j = 0; j < y; j++)
        {
            if (Pxy[i][j] == 0)
                continue;
            Hxy += r[i] * Pxy[i][j] * log(Pxy[i][j]);
        }
    }
    
    cout << "{0}" << (Hxy * (-1)) << endl;
 
    for (int i = 0; i < x; i++)
        delete [] P[i];
    delete [] P;
    
    delete [] p;
    delete [] r;
 
    for (int i = 0; i < x; i++)
        delete [] Pyx[i];
    delete [] Pyx;
 
     for (int i = 0; i < x; i++)
        delete [] Pxy[i];
     delete [] Pxy;
    
    system("pause");
    return 0;
}
0
7780 / 6550 / 2981
Регистрация: 14.04.2014
Сообщений: 28,608
19.04.2015, 17:37 4
lss, а "{0}" почему не убрал?
0
lss
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
19.04.2015, 17:44 5
Цитата Сообщение от nmcf Посмотреть сообщение
lss, а "{0}" почему не убрал?
Я же C# не знаю.
Свой перевод запускал?
0
7780 / 6550 / 2981
Регистрация: 14.04.2014
Сообщений: 28,608
19.04.2015, 17:49 6
Нет. А в чём ошибка?
0
lss
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
19.04.2015, 17:56 7
Здьесь посмотри на размеры массивов и на индексы в циклах:
Цитата Сообщение от nmcf Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
    double *p = new double[x];
* * double *r = new double[y];
* * for (int i = 0; i < y; i++)
* * * * for (int j = 0; j < x; j++)
* * * * {
* * * * * * p[i] += P[j][i];
* * * * * * r[i] += P[i][j];
* * * * }
И дальше там есть такое.
1
19.04.2015, 17:56
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.04.2015, 17:56
Помогаю со студенческими работами здесь

Как перевести код с паскаля на Java. Пытался сам но код не хочет работать переведенный
А сам код на паскале работает. Вот код на паскале var i,j,m,c,d: integer; A:array of...

Перевести код С++ в код на Ассемблере (Ассемблерная вставка для С++)
Приветствую знатоков! Трудоемко ли перевести код функции Func под ассемблерную вставку (в Visual...

Как перевести этот код на код Delphi
uses crt; const nmax=100; var a:arrayof integer; n,i,k,j,x:integer; begin clrscr;...

Visual c++ код перевести в gcc linux код
Ниже есть код. Нужно сделать так, что бы он компилировался и работал в линуксе(компиляция с помощью...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru