A
Andreas Ott
Hello togehter,
I need urgent a conversion from C++ to C#.
The code in C++ is below.
Can someone help me here.
Thanks a lot.
Greet Andreas
// ShortWay.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <vector>
#include <limits>
#include <conio.h>
class Point
{
public:
int x;
int y;
Point(int x_pos, int y_pos):x(x_pos),y(y_pos){};
};
//inline int dist(Point a, Point b)
inline int dist(const Point & a, const Point & b)
{
// Maximums-Norm (L_oo)
return std::max(abs(a.x-b.x), abs(a.y-b.y));
}
int NN2(std::vector<Point> & PunktVektor)
{
int total_length = 0;
for (size_t k = 0; k < PunktVektor.size() - 1; ++k)
{
int min_dist = std::numeric_limits<int>::max();
// #### durchsuche von einem Ausgangspunkt die Gesamtliste
int index = -1;
for (size_t i = k + 1; i < PunktVektor.size(); ++i)
{
if ( dist(PunktVektor[k], PunktVektor) <= min_dist )
{
min_dist = dist(PunktVektor[k], PunktVektor);
index = i;
}
}
// #### tausche den Punkt in der Liste
std::swap(PunktVektor[k+1], PunktVektor[index]);
total_length += min_dist;
}
return total_length;
}
int main(int argc, _TCHAR* argv[])
{
//srand (time(NULL));
std::vector<Point> PunktVektor;
for (int i = 0; i<10; ++i)
{
PunktVektor.push_back(Point (rand() % 200, rand() % 200));
// 200x200-Gitter
printf("Zufaelliger Punkt: %d %d\n", PunktVektor.x,
PunktVektor.y);
}
printf("\nReihenfolge mit der Nearest-Neighbor-Heuristik:\n");
int length = NN2(PunktVektor);
for (size_t k = 0; k < PunktVektor.size(); ++k)
{
printf("%d %d\n", PunktVektor[k].x, PunktVektor[k].y);
}
printf("Gesamtlaenge: %d\n", length);
_getch();
}
I need urgent a conversion from C++ to C#.
The code in C++ is below.
Can someone help me here.
Thanks a lot.
Greet Andreas
// ShortWay.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <vector>
#include <limits>
#include <conio.h>
class Point
{
public:
int x;
int y;
Point(int x_pos, int y_pos):x(x_pos),y(y_pos){};
};
//inline int dist(Point a, Point b)
inline int dist(const Point & a, const Point & b)
{
// Maximums-Norm (L_oo)
return std::max(abs(a.x-b.x), abs(a.y-b.y));
}
int NN2(std::vector<Point> & PunktVektor)
{
int total_length = 0;
for (size_t k = 0; k < PunktVektor.size() - 1; ++k)
{
int min_dist = std::numeric_limits<int>::max();
// #### durchsuche von einem Ausgangspunkt die Gesamtliste
int index = -1;
for (size_t i = k + 1; i < PunktVektor.size(); ++i)
{
if ( dist(PunktVektor[k], PunktVektor) <= min_dist )
{
min_dist = dist(PunktVektor[k], PunktVektor);
index = i;
}
}
// #### tausche den Punkt in der Liste
std::swap(PunktVektor[k+1], PunktVektor[index]);
total_length += min_dist;
}
return total_length;
}
int main(int argc, _TCHAR* argv[])
{
//srand (time(NULL));
std::vector<Point> PunktVektor;
for (int i = 0; i<10; ++i)
{
PunktVektor.push_back(Point (rand() % 200, rand() % 200));
// 200x200-Gitter
printf("Zufaelliger Punkt: %d %d\n", PunktVektor.x,
PunktVektor.y);
}
printf("\nReihenfolge mit der Nearest-Neighbor-Heuristik:\n");
int length = NN2(PunktVektor);
for (size_t k = 0; k < PunktVektor.size(); ++k)
{
printf("%d %d\n", PunktVektor[k].x, PunktVektor[k].y);
}
printf("Gesamtlaenge: %d\n", length);
_getch();
}