помогите разобраться с программой

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Ответить
Марино4ка
Сообщения: 1
Зарегистрирован: 13 дек 2010, 16:46

Граф задаётся своей матрицей смежностей. Вывести на экран:
• графическое представление графа;
текст программы:

Код: Выделить всё

#include <iostream.h>
#include <conio.h>
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <graphics.h>
int*InitAr2 (int VG);
void drawGraph (int *Ar2, int VG);

void main(void)
{int*Ar2, VG;
cout<<"Vershin grafa="; cin>> VG;
Ar2=InitAr2(VG);
int gd=DETECT, gm;
initgraph(&gd, &gm, "C:\BC5\BGI");
setbkcolor(15);   setcolor(8); setfillstyle(1,8);
drawGraph (Ar2, VG);
getch(); closegraph();
}


int *InitAr2(int VG)
{ int *Ar2 = new int[VG * VG];
cout<<"Matrica smezhnosti grafa";
for(int i = 0; i < VG; i++)
for(int j = 0; j < VG; j++)
{cout<<"A["<<i<<","<<j<<"]="; cin>> Ar2[i*VG+j];}
return Ar2;
}
void drawGraph (int *Ar2, int VG)
{ float pi=4*atan(1);
char st[5]; int x1, y1, x2, y2, i, j;
for(i=0; i<VG; i++)
{ x1 = (int) 100 * cos(2 * pi * i / VG) + 320;
y1 = -(int) 100 * sin(2 * pi * i / VG) + 220;
circle(x1, y1, 4);
floodfill(x1, y1, 8);
itoa(i, st, 10);
if(-(int) 100 * sin(2 * pi * i /VG) > 0) outtextxy(x1, y1+6, st);
else outtextxy(x1, y1-12, st);
}
for( i=0; i<VG-1; i++)
for( j=i+1;j<VG;j++)
if(Ar2[i * VG + j] == 1)
{ x1 = (int) 100 * cos(2 * pi * i / VG) + 320;
y1 = - (int) 100 *sin(2 * pi * i / VG) + 220;
x2 = (int) 100 * cos(2 * pi * j / VG) + 320;
y2= - (int) 100 * sin(2 *pi * j / VG) + 220;
line(x1,y1,x2,y2);
}
}
Работает как-то не правильно((( Может я что-то не так прописала???)))
Ответить