Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
2 / 2 / 0
Регистрация: 13.09.2011
Сообщений: 67
1

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

24.03.2012, 11:58. Показов 996. Ответов 16
Метки нет (Все метки)

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
float meter_v1=0.0, meter_v2=0.0;
 
for (i=0; i<6; i++)
{    proc1[i]=st[i];
     proc2[i]=st[i+1];
     i++;
}
 
 for ( j=0; j<n/2; j++)
 {   if (proc1[j]!=0)
     {   if (proc2[j]!=0)
         {   el_mas=proc1[j];
             ost=el_mas-lk;
             proc1[j]=ost;
             meter_v1+=lk;
 
            el_mas=proc2[j];
            ost=el_mas-lk;
            proc2[j]=ost;
            j--;
            meter_v2+=lk;    }
            else
            {   proc2[j]=st[i];
            meter_v2+=lk;   }
                                       }
 
           else
           {   proc1[j]=st[i];   }
               meter_v1+=lk;
                                   }
 
 
  if (meter_v1>meter_v2)
  {   t1=meter_v1;   }
  else
  {   t1=meter_v2;   }
 
  cout<<endl<<endl;
 
  cout<<" time for model with personal memory= ";
  cout<<t1;
 getch();
return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.03.2012, 11:58
Ответы с готовыми решениями:

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

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

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

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

16
6048 / 3457 / 335
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
24.03.2012, 12:33 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
float meter_v1=0 meter_v2=0;
 
for (i=0; i<6; i++)
{    proc1[i]=st[i];
     proc2[i]=st[i+1];
     i++;
}
 
 for ( j=0; j<n/2; j++)
 {   if (proc1[j]!=0)
     {   if (proc2[j]!=0)
         {   el_mas=proc1[j];
             ost=el_mas-lk;
             proc1[j]=ost;
             meter_v1+=lk;
 
            el_mas=proc2[j];
            ost=el_mas-lk;
            proc2[j]=ost;
            j--;
            meter_v2+=lk;    }
            else
            {   proc2[j]=st[i];
            meter_v2+=lk;   }
                                       }
 
           else
           {   proc1[j]=st[i];   }
               meter_v1+=lk;
                                   }
 
 
  if (meter_v1>meter_v2)
  {   t1=meter_v1;   }
  else
  {   t1=meter_v2;   }
 
  Console.WriteLine(" time for model with personal memory= {0}",t1);
  Console.ReadLine();
return 0;
}
вроде так
0
2 / 2 / 0
Регистрация: 13.09.2011
Сообщений: 67
24.03.2012, 12:56  [ТС] 3
nio, спасибо.
0
Дмитрий3241
24.03.2012, 13:29
  #4

Не по теме:

Самое забавное, что из 40 строк были изменены только 2, отвечающие за вывод.

Цитата Сообщение от nio Посмотреть сообщение
Console.WriteLine(" time for model with personal memory= {0}",t1);
Console.ReadLine();

0
nio
24.03.2012, 13:40
  #5

Не по теме:

Цитата Сообщение от Дмитрий3241 Посмотреть сообщение
Самое забавное, что из 40 строк были изменены только 2, отвечающие за вывод.
естестно.... а остальные менять какой смысл? :)

0
2 / 2 / 0
Регистрация: 13.09.2011
Сообщений: 67
24.03.2012, 13:43  [ТС] 6
nio, а как быть если было вот такое объявление массивов
C++
1
2
int st[n];
int proc1[n], proc2[n];
как мне их в с# описать?
0
6048 / 3457 / 335
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
24.03.2012, 13:50 7
C#
1
2
int n = 10;
int[] mas = new int[n];
0
2 / 2 / 0
Регистрация: 13.09.2011
Сообщений: 67
24.03.2012, 13:56  [ТС] 8
nio, понятно.спасибо, так пробовала ругается....пойду по колдую с переменными.
0
6048 / 3457 / 335
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
24.03.2012, 14:33 9
Цитата Сообщение от Мохита Посмотреть сообщение
так пробовала ругается
а у меня не ругается, что именно пишет?
0
2 / 2 / 0
Регистрация: 13.09.2011
Сообщений: 67
24.03.2012, 15:11  [ТС] 10
nio, беда. proc1 и proc2 должны обратиться к элементу из заполненого массива st[i],но пишет пишет ошибку что этим элементам вообще не присвоено значение...что не так?
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
 private void button1_Click(object sender, EventArgs e)
        {
            int i, j;     //для использования в цикле
            int el_mas, ost;
            int meter_v1 = 0;
            int meter_v2 = 0;
            int t1 = 0;
            int[] proc1;
            int[] proc2;
            int n = int.Parse(textBox1.Text);
            int[] st = new int[n];
            int lk = int.Parse(textBox3.Text); // быстродействие системы
 
            Random random = new Random();
            int rand;
 
            for (int k = 0; k < n; k++)
            {
                rand = random.Next(0, 100);
                st[k] = rand;
 
 
                for (i = 0; i < int.Parse(textBox1.Text); i++)
                {
                    proc1[i] = st[i]; //процессор1 берет 1 заявку если свободен
                    proc2[i] = st[i + 1]; //Процессор2 берет 2 заявку если процессор1 занят
                    i++;
                }
                for (j = 0; j < n / 2; j++)
                {
                    if (proc1[j] != 0)
                    {
                        if (proc2[j] != 0)
                        {
                            el_mas = proc1[j];
                            ost = el_mas - lk;
                            proc1[j] = ost;
                            meter_v1 += lk;
 
                            el_mas = proc2[j];
                            ost = el_mas - lk;
                            proc2[j] = ost;
                            j--;
                            meter_v2 += lk;
                        }
                        else
                        {
                            proc2[j] = st[i];
                            meter_v2 += lk;
                        }
                    }
 
                    else
                    { proc1[j] = st[i]; }
                    meter_v1 += lk;
                }
 
 
                if (meter_v1 > meter_v2)
                { t1 = meter_v1; }
                else
                { t1 = meter_v2; }
                textBox4.Text = t1.ToString();
 
 
            }
 
 
        }
    }
}
0
6048 / 3457 / 335
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
24.03.2012, 15:28 11
Цитата Сообщение от Мохита Посмотреть сообщение
что не так?
организация алгоритмов.
У тебя заполнение массива st[k] происходит в общем массиве. Таким образом успевает заполнится только его первое значение, и тут же начинается вложенный цикл по перебору значений....
1
2 / 2 / 0
Регистрация: 13.09.2011
Сообщений: 67
24.03.2012, 15:37  [ТС] 12
nio, как решить проблему? я ведь не могу его заполнить через i. ибо она примет другое значение...
0
6048 / 3457 / 335
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
24.03.2012, 15:41 13
сначала сделай цикл заполнения, а вычисление делай в следующем (не вложеном) цикле
0
2 / 2 / 0
Регистрация: 13.09.2011
Сообщений: 67
24.03.2012, 16:06  [ТС] 14
nio, я его объявила и заполнила вообще в другом месте, а ошибка осталась все та же((
0
6048 / 3457 / 335
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
24.03.2012, 16:17 15
Мохита, код покажи
0
2 / 2 / 0
Регистрация: 13.09.2011
Сообщений: 67
24.03.2012, 16:31  [ТС] 16
nio, сейчас цикл заполнения закрыт и вообще не относится к тому коду.
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
private void button3_Click(object sender, EventArgs e)
        {
            int n = int.Parse(textBox1.Text);
            int[] st = new int[n];
 
            Random random = new Random();
            int rand;
 
            for (int i = 0; i < int.Parse(textBox1.Text); i++)
            {
                rand = random.Next(0, 100);
                st[i] = rand;
            }
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            int i, j;     //для использования в цикле
            int el_mas, ost;
            int meter_v1 = 0;
            int meter_v2 = 0;
            int t1 = 0;
            int[] proc1;
            int[] proc2;
            int n = int.Parse(textBox1.Text);
            int[] st = new int[n];
            int lk = int.Parse(textBox3.Text); // быстродействие системы
 
            for (i = 0; i < int.Parse(textBox1.Text); i++)
            {
                proc1[i] = st[i]; //процессор1 берет 1 заявку если свободен
                proc2[i] = st[i + 1]; //Процессор2 берет 2 заявку если процессор1 занят
                i++;
 
                for (j = 0; j < n / 2; j++)
                {
                    if (proc1[j] != 0)
                    {
                        if (proc2[j] != 0)
                        {
                            el_mas = proc1[j];
                            ost = el_mas - lk;
                            proc1[j] = ost;
                            meter_v1 += lk;
 
                            el_mas = proc2[j];
                            ost = el_mas - lk;
                            proc2[j] = ost;
                            j--;
                            meter_v2 += lk;
                        }
                        else
                        {
                            proc2[j] = st[i];
                            meter_v2 += lk;
                        }
                    }
 
                    else
                    { proc1[j] = st[i]; }
                    meter_v1 += lk;
                }
 
 
                if (meter_v1 > meter_v2)
                { t1 = meter_v1; }
                else
                { t1 = meter_v2; }
                textBox4.Text = t1.ToString();
 
 
            }
0
6048 / 3457 / 335
Регистрация: 14.06.2009
Сообщений: 8,136
Записей в блоге: 2
24.03.2012, 18:38 17
C#
1
2
3
4
5
6
7
8
9
10
11
12
private void button1_Click(object sender, EventArgs e)
 {
 //....
 int n = int.Parse(textBox1.Text);
 int[] st = new int[n];//вот инициализация массива
 int lk = int.Parse(textBox3.Text); // быстродействие системы
for (i = 0; i < n; i++)//повторный парс не нужен
 {
//а вот попытка взять значения из массива st
//но ведь он пустой, заполнения нигде не было
      proc1[i] = st[i]; //процессор1 берет 1 заявку если свободен
      proc2[i] = st[i + 1]; //Процессор2 берет 2 заявку если процессор1 занят
0
24.03.2012, 18:38
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.03.2012, 18:38
Помогаю со студенческими работами здесь

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

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

Как шестнадцатеричный код перевести в код символа
Подскажите пожалуйста. Есть шестнадцатеричный код как его перевести в код символа: ...

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


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

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