Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.09.2021, 21:12   #1
burkovich
 
Регистрация: 14.09.2021
Сообщений: 4
Вопрос Перевод с паскаля на си шарп

Здравствуйте, можете перевести пожалуйста программу с паскаля на си гарп
паскаль :
Код:
program DepthFirstSearch;
uses crt;
const
n=4;
var
i, j, start: integer;
visited: array[1..n] of boolean;
const graph: array[1..n,1..n] of byte =
((0, 1, 1, 0),
(0, 0, 1, 1),
(0, 0, 0, 1),
(0, 0, 0, 0));
{поиск в глубину}
procedure DFS(st: integer);
var r: integer;
begin
write(st:2);
visited[st]:=true;
for r:=1 to n do
if (graph[st, r]<>0) and (not visited[r]) then
DFS(r);
end;
{основной блок программы}
begin
clrscr;
writeln('Матрица смежности:');
for i:=1 to n do
begin
visited[i]:=false;
for j:=1 to n do
write(graph[i, j],' ');
writeln;
end;
write('Стартовая вершина » '); read(start);
writeln('Результат обхода'); DFS(start);
end.
Я пробовал сам, но работает неправильно
си шарп:
Код:
 Console.WriteLine("Введите количество вершин");
            int ver = Convert.ToInt32(Console.ReadLine());
            bool[] array = new bool[ver];
            int[,] graph = new int[ver, ver];
            Console.WriteLine("Введите матрицу смежности");
            for (int i=0; i<ver; i++)
            {
                Console.Write($"вершина {i + 1}: ");
                for (int k=0; k<ver; k++)
                {
                  graph[i, k] = Convert.ToInt32(Console.Read());
                }
            }
            
            int e = 0;
          
            for (int st = 0; st < ver; st++)
            {
                array[e] = true;
                Console.Write($"вершина {st + 1}: ");
                for (int r = 0; r < ver; r++)
                {
         
                    if (graph[e, r] != 0 && !array[r])
                    {
                        e = r;
                        Console.Write(e);
                    }
                   

                }

            }

Последний раз редактировалось burkovich; 15.09.2021 в 06:54.
burkovich вне форума Ответить с цитированием
Старый 15.09.2021, 02:49   #2
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Не хватает рекурсии. Или делайте как в исходном коде функцию, или заведите стек, чтобы не терять информацию о непроверенных ребрах (почитайте про варианты алгоритма - DFS).
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA на форуме Ответить с цитированием
Старый 15.09.2021, 06:53   #3
burkovich
 
Регистрация: 14.09.2021
Сообщений: 4
По умолчанию

я не знаю что такое рекурсия и с функциями работать не умею ещё (
burkovich вне форума Ответить с цитированием
Старый 15.09.2021, 10:36   #4
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

Цитата:
Сообщение от burkovich Посмотреть сообщение
рекурсия и с функциями работать не умею ещё
Так может сначала изучить основы языка а потом пытаться что то в нем реализовать??
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Старый 15.09.2021, 11:21   #5
burkovich
 
Регистрация: 14.09.2021
Сообщений: 4
По умолчанию

WorldMaster, я пытался разобраться, но не получилось
ладно, спасибо за помощь
burkovich вне форума Ответить с цитированием
Старый 15.09.2021, 12:16   #6
WorldMaster
Старожил
 
Аватар для WorldMaster
 
Регистрация: 25.08.2011
Сообщений: 2,841
По умолчанию

Цитата:
Сообщение от burkovich Посмотреть сообщение
ладно, спасибо за помощь
Непонятно какой помощи вы хотели если вам неизвестны даже базовые элементы. Вам вроде подсказали что делать. Используйте рекурсию.

А если вы хотели чтобы все сделали за вас то в раздел фриланс надо было обращаться.
Skype - wmaster_s E-Mail - WorldMasters@gmail.com
Работаем по 3 критериям - быстро, качественно, недорого. Заказчик выбирает любые два.
WorldMaster вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа, перевод из 8-ичной в 16-ичную систему счисления на си шарп voekov Фриланс 3 10.04.2019 14:43
перевод из паскаля на с++ Olgaandsasha Общие вопросы C/C++ 0 06.03.2014 19:43
Перевод из паскаля на СИ Кот Шрёдингера Помощь студентам 0 02.11.2011 20:07
перевод из паскаля в с++ dANIL282 Помощь студентам 2 21.01.2011 00:05