Помощь - Поиск - Пользователи - Календарь
Полная версия: ООП На С++
Форум «Всё о Паскале» > Современный Паскаль и другие языки > Ада и другие языки
dron4ik
Всем привет. Возникла такая проблемав коде

Программа выводит минимальный путь между двумя указанными вершинами в графе и его длину.
При запуске программы на экран выводится запрос о вводе весов рёбер исследуемого графа. Данные, введённые пользователем, отображаются в виде матрицы смежности, в которой не существующие рёбра обозначаются нулями. После указанным рёбрам присваивается значение 65535, которое принимается за бесконечность.
Следующим этапом выполнения программы является запрос о вводе номеров вершин, между которыми необходимо узнать путь. В случае, если начальная и конечная вершины совпадают, отображается соответствующее сообщение и работа программы завершается. В противном случае выполняется непосредственно алгоритм Дейкстры, схема которого приведена в приложении В.
Результатом программы является вывод на экран вершин, через которые проходит минимальный путь, а также вывод длины маршрута. Если пути между заданными точками не существует – выводится соответствующее сообщение.
Код проги:

#include <vcl.h>
#pragma hdrstop

//---------------------------------------------------------------------------

#pragma argsused
int main(int argc, char* argv[])
{
return 0;
}
//---------------------------------------------------------------------------
#include<iostream.h>
#include<string.h>
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#define word unsigned int

int i, j, n, p, xn, xk;
int flag[11];
word c[11][11], l[11];
char s[80], path[80][11];

int min(int n)
{
int i, result;
for(i=0;i<n;i++)
if(!(flag[i])) result=i;
for(i=0;i<n;i++)
if((l[result]>l[i])&&(!flag[i])) result=i;
return result;
}

word minim(word x, word y)
{
if(x<y) return x;
return y;
}

void main()
{ --> СДЕСЬ ПИШЕТ ОШИБКУ ТАКУЮ: Сannot overload 'main' -- VIRDEF name conflict for 'main()' Подскажите как ее исправить(((
cout<<"Vvedite kolichestvo tochek: ";
cin>>n;
for(i=0;i<n;i++)
for(j=0;j<n;j++) c[i][j]=0;
for(i=0;i<n;i++)
for(j=i+1;j<n;j++);
{
cout<<"Vvedite rasstoyanie ot x"<<i+1<<" do x"<<j+1<<": ";
cin>>c[i][j];
}
cout<<" ";
for(i=0;i<n;i++) cout<<" X"<<i+1;
cout<<endl<<endl;
for(i=0;i<n;i++)
{
printf("X%d",i+1);
for(j=0;j<n;j++)
{
printf("%6d",c[i][j]);
c[j][i]=c[i][j];
}
printf("\n\n");
}
for(i=0;i<n;i++)
for(j=0;j<n;j++)
if(c[i][j]==0) c[i][j]=65535; //áåñêîíå÷íîñòü
cout<<"Vvedite nachalnuy tochku: ";
cin>>xn;
cout<<"Vvedite konechnuy tochku: ";
cin>>xk;
xk--;
xn--;
if(xn==xk)
{
cout<<"Nachalnaya I konechnaya tochki sovpadayt."<<endl;
getch();
return;
}

for(i=0;i<n;i++)
{
flag[i]=0;
l[i]=65535;
}
l[xn]=0;
flag[xn]=1;
p=xn;
itoa(xn+1,s,10);
for(i=1;i<=n;i++)
{
strcpy(path[i],"X");
strcat(path[i],s);
}
do
{
for(i=0;i<n;i++)
if((c[p][i]!=65535)&&(!flag[i])&&(i!=p))
{
if(l[i]>l[p]+c[p][i])
{
itoa(i+1,s,10);
strcpy(path[i+1],path[p+1]);
strcat(path[i+1],"-X");
strcat(path[i+1],s);
}
l[i]=minim(l[i],l[p]+c[p][i]);
}
p=min(n);
flag[p]=1;
}
while(p!=xk);
if(l[p]!=65535)
{
cout<<"Put: "<<path[p+1]<<endl;
cout<<"Dlina puti: "<<l[p]<<endl;
}
else
cout<<"takogo puti ne syshestvuet!"<<endl;
getch();
}


М
В следующий раз пользуйся тегами (выделяешь текст программы, и выбираешь в списке "CODE" нужный язык)

volvo

volvo
Цитата
ПИШЕТ ОШИБКУ ТАКУЮ: Сannot overload 'main' -- VIRDEF name conflict for 'main()' Подскажите как ее исправить(((
Удалить строки:
#pragma argsused
int main(int argc, char* argv[])
{
return 0;
}
, иначе у тебя получается то, о чем предупреждает компилятор: одно описание функции main() у тебя уже есть, ты делаешь второе, а это перегрузка, а перегружать main() нельзя.
dron4ik
Спасибо большое, в следующий раз буду внимателенsmile.gif
dron4ik
у мя возникла проблемка... этот код проги написан по принципу модульного программирования?(код не мой) Если нет, то как отделить от основного кода графический модуль?(((Помогите..



Препод сказал нам, чтобы главное не было по принципу процедурного программирования.)


А вообще на ДЕЛФИ и СИ++ можно ли писать отдельно(т.е как отдельная подпрограмма) различные модули... как в Паскале... или они входят в основной код??
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.