Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
2 / 2 / 2
Регистрация: 11.10.2016
Сообщений: 123

Перевести с C++

07.06.2018, 20:18. Показов 471. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Может кто-то перевести этот код на c#?
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
#include <iostream>
 
using namespace std;
const int n = 5, m = 5; // n-вершины m-ребра
 
int *C= new int[n];//массив  весов
int *P = new int [n]; //Массив past
bool *S = new bool [n]; //массив вершин
int cost(0);
int V,V1,R;
 
// Ввод матрицы инцедентности
int a[n][m]={
    //    0,1,2,3,4,
/*0*/    {2,0,0,1,0,},
/*1*/    {2,2,0,0,0,},
/*2*/    {0,2,3,0,0,},
/*3*/    {0,0,0,1,1,},
/*4*/    {0,0,3,0,1,},
/*5*/   
};
 
 
//Выдает вершину инцендентну этому ребру
int NotZero(int M){
    int U(-1);
    for(int i=0; i<n; i++)
        if(S[i]==0)
            if(a[i][M]!=0)
                U=i;
return U;
}
 
//поиск минимального в массиве
int minCost(){
    int min=99999; int ConstV;
    for(int i=0; i<n; i++)
        if(C[i]<min && C[i]!=0 && !S[i]){
            min=C[i];
            ConstV=i;
        }
return ConstV;
}
 
//Функция вывода пути
void BackUp(int start, int finish){
    int k=finish;
    cout<<"\n\nПУТЬ: \n"<<k;
    while (k!=start){
        cout<<"<-"<<P[k];
        k=P[k];
    }
    cout<<"\n\n";
}
 
void Dijkstra(int V, int finish){
  
   while(!S[finish]){
    S[V]=1;
    for(int i=0; i<m; i++){
        if(a[V][i]!=0){
            R=NotZero(i);
            if(!S[R])
               if(C[R]==0 || C[R]>=a[V][i]+C[V]){
                C[R]=a[V][i]+C[V];
                P[R]=V;
               }
        }
    }
    
    V=minCost();
 
    }
    cout<<"Минимальный вес пути = "<<C[finish]<<endl;
}
 
int main()
{
    setlocale(LC_ALL, "Russian");
    //обнуление
    for(int i=0; i<n; i++){
        C[i]=0; P[i]=-1; S[i]=0;
    }
    
    cout << "Введите стартовую вершину: ";
    int start ;
    cin >> start;
    
    
    cout << "Введите конечную вершину: ";
    int finish;
    cin >>  finish;
 
    Dijkstra(start,finish);
 
    BackUp(start,finish);
 
    return 0;
}
Добавлено через 1 час 10 минут
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
using System;
 
namespace Dijkstra
{
    class Program
    {
        const int n = 5;
        public static int[] C = { 0, 0, 0, 0, 0 };
        public static int[] P = { -1, -1, -1, -1, -1 };
        public static bool[] S = { false, false, false, false, false };
 
        public static int V, V1, R;
 
        // Ввод матрицы инцедентности
        public static int [,]a ={
    //    0,1,2,3,4,
/*0*/    {2,0,0,1,0,},
/*1*/    {2,2,0,0,0,},
/*2*/    {0,2,3,0,0,},
/*3*/    {0,0,0,1,1,},
/*4*/    {0,0,3,0,1,}, };
        /*5*/
 
        //Выдает вершину инцендентну этому ребру
        public static int NotZero(int M)
        {
            int U =-1;
            for (int i = 0; i < n; i++)
                if (S[i] == false)
                    if (a[i,M] != 0)
                        U = i;
            return U;
        }
 
 
 
        //поиск минимального в массиве
        public static int minCost()
        {
   
            int min = 99999; int ConstV;
            for (int i = 0; i < n; i++)
 
                if (C[i] < min && C[i] != 0 && !S[i])
                {
                    min = C[i];
                    ConstV = i;
 
                }
            return ConstV;
        }
 
        //Функция вывода пути
        public static void BackUp(int start, int finish)
        {
            int k = finish;
            Console.WriteLine("ПУТЬ: " + k);
            while (k != start)
            {
                Console.WriteLine("<-" + P[k]);
                k = P[k];
            }
            Console.WriteLine();
        }
 
        public static void Dijkstra(int V, int finish)
        {
 
            while (!S[finish])
            {
                S[V] = true;
                for (int i = 0; i < n; i++)
                {
                    if (a[V,i] != 0)
                    {
                        R = NotZero(i);
                        if (!S[R])
                            if (C[R] == 0 || C[R] >= a[V,i] + C[V])
                            {
                                C[R] = a[V,i] + C[V];
                                P[R] = V;
                            }
                    }
                }
 
                V = minCost();
 
            }
            Console.WriteLine("Минимальный вес пути = " + C[finish]);
        }
 
 
        private static void Main()
        {
 
        Console.Write("Введите стартовую вершину: ");
        int start = Int32.Parse(Console.ReadLine());
 
        Console.Write("Введите конечную вершину: ");
        int finish = Int32.Parse(Console.ReadLine());
     
 
         Dijkstra(start, finish);
 
         BackUp(start, finish);
 
        }
    }
}
Вот, что получилось у меня
C#
1
int ConstV; как это исправить?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.06.2018, 20:18
Ответы с готовыми решениями:

Перевести фиолетовый (105, 62, 151) из RGB в HSB, уменьшить яркость в 2 раза и перевести обратно
Помогите пожалуйста! Перевести фиолетовый (105, 62, 151) из RGB в HSB, уменьшить яркость в 2 раза и перевести обратно

QString перевести в char* || QChar перевести в char*
Подскажите пожалуйста как сделать: Исходники в utf-8, qt4.8 setlocale(LC_ALL, &quot;Russian&quot;); QTextCodec *wincodec =...

Как презентации SWF флэш сайта перевести в HTML5 с сохранением эфектов ) Как правильно и полноценно Перевести SWF в HTML5
программа Sothink SWF Decompiler конвертирует SWF файл в HTML5 разбивая его на HTML и JS ...но она тянет только файл 15kb ...это очень...

1
10 / 10 / 13
Регистрация: 27.09.2016
Сообщений: 248
08.06.2018, 11:51
Elllik, в C# нельзя использовать/вернуть НЕ инициализированую переменную, просто напишите
C#
1
int ConstV = -1;
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
08.06.2018, 11:51
Помогаю со студенческими работами здесь

Текстовый файл перевести в двоичный, а потом полученный двоичный файл перевести обратно в текстовый
Всем привет. Есть такая задачка: &quot;текстовый файл перевести в двоичный, а потом полученный двоичный файл перевести обратно в текстовый&quot;...

Перевести на С++
Не подскажите как перевести это на на си++? часть у меня уже есть, а вот как запретить закрытие фрмы я догнать немогу... private...

С С++ перевести в С#
include &lt;iostream&gt; using namespace std; struct worker { char name; int salary; }w; int main()

Перевести с C++ на C#
Написать иерархию классов, описывающих служащих в компании. Она должна состоять из абстрактного базового класса Employee и производных от...

Перевести с VB в C#
В Vb: Dim muDigit=(х\1000)*(x mod 10)*((x\10)mod 10)*((x\100)mod 10 Как это же присваивание записать в c# ? help Аналог mod в...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y https:/ / github. com/ shumilovas/ med2. git
1С: Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию группы. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит значение перечислений. / / Событие "НачалоВыбора" реквизита на форме. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru