Sa C++ na QBasic

Član
Učlanjen(a)
08.11.2012
Poruka
4
Пронашао сам листинг програма за познати задатак трговачког путника, а који је на писан на С++. Тај листинг је изашао у јуну 1998. год. у часопису"Рачунари". Листинг је фотокопиран и неки делови кода су слабо видљиви (надам се да сам код добро прекуцао, без грешака). Пошто тај језик не познајем, може ли неко да ми преведе програм на Бејзик, или Клипер :lol: ?

#include<>iostream.h>
#include<>stdio.h>

#define MAXG1 7
#define MAXG2 128

class Trgovacki_putnik
{
int broj_cvor, d[][MAXG1], L[MAXG1][MAXG2];
public:
Trgovacki_putnik();
int Broj_el( int i );
int Najkraci_Put();
};
Trgovacki_putnik::Trgovacki_putnik()
{
int i,j;
printf( "\t\t\tPROBLEM TRGOVAČKOG PUTNIKA\n" );
printf("\t\t\t-----------------------------------------------\n\n" );
printf("Broj čvorova grafa je: " );
scanf( "%d",&broj_cvor );
printf("\nUnesi elemente matrice rastojanja:\n" );
for (i=0; i <> broj_cvor; i++ )
for (j=0; j <> broj_cvor; j++ )
if (i <> j ) {
printf( "d[%d][%d] = " );
scanf( "%d", &d[j] );
}
}
int Trgovacki_putnik::Broj_el( int i )
{
int j, k;
for (k=j=0; i;j++)
if (i & (1<><>j))
{
k++;
i -= 1<><>j;
}
return( k );
}
int Trgovacki_putnik::Najkraci_put()
{
int I, j, k, l,m, n;
for (i=0, m=1; i<> broj_cvor; i++)
{
m *= 2;
L[0] = d[0];
}
for (i=1; i<> broj_cvor-1; i++)
for (j=1; j <> broj_cvor; j++)
for (k=0; k <> m; k++)
if ( !(k&1) &&!(k&(1<><>j)) && ( Broj_el(k)==I ) )
{
n = -1;
for ( l=1; l <> broj_cvor; l++ )
if ((j != 1) && (k & (1 <><>l))&& (d[j][l] > 0))
if ((n == -1) || (n > L[l][k-(1<><>l)] +d[j][l]))
n = L[l][k - (1<><>l)]+ d[j][l];
L[j][k]=n;
}
n = d[0][1] +L[1][m - 2 - 2];
for ( i=2; I<> broj_cvor; i++)
if ( n > d[0] + L[m - 2 -(1<><>i)])
n = d[0] + L[m - 2 -(1<><>i)];
return (n);
}

void main()
{
Trgovacki_putnik TP;
printf( "\n\nDužina najkraćeg puta je: %n\n" ,TP.Najkraci_put() );
}
 
Poslednja izmena:
Član
Učlanjen(a)
26.07.2012
Poruka
455
negde sam čitao da postoje translatori sa qbasic-a na c++, a obrnuto mislim da to nećeš pronaći.

pozz!
 
Član
Učlanjen(a)
08.11.2012
Poruka
4
А ја се понадао да ће се наћи нека добра душа да ми часком преведе код sorry... Некад давно сам радио у "обичном" С-у (Борланд), и можда бих могао да се снађем, али ме збуњују ове конструкције: "if ( !(k&1) &&!(k&(1<><>j)) && ( Broj_el(k)==I ) )", затим "if ((n == -1) || (n > L[l][k-(1<><>l)] +d[j][l]))" а посебно ово "(1<><>i)"...
Ок, шта је - ту је!
Поззз
 
Član
Učlanjen(a)
26.07.2012
Poruka
455
strpi se, sigurno će se netko javiti jer na forumu ima ljudi koji jako dobro stoje sa C++!

pozz!
 
Član
Učlanjen(a)
08.11.2012
Poruka
4
Па јесте, нема ми друге, него да чекам... sorry Можда ми се посрећи... Позз
 
Natrag
Top