Scrieti programul C care permite plasarea a N noduri in varful unui poligon regulat,nodurile fiind desemnate prin primele n litere din alfabet precum si vizualizarea imaginii sub forma naturala.
Descrierea algoritmului.
Determinarea modului de a plasa N noduri in varful unui poligon regulat este ilustrata in figura de mai jos.
Pentru a calcula coordonatele lui xk, yk folosim urmatoarele formule:
x0 = getmaxx()/2; // determina coordonatele centrului ecranului
y0 = getmaxy()/2;
xk = r*cos(2*k*/n) + x0;
yk = -r*sin(2*k*/n) + y0;
Programul C:
#include <conio.h>
#include <graphics.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h> /* pt. functia exit din initializare_mod_grafic() */
#include <ctype.h> /* pt. functia toupper() */
#define PI 2*asin(1)
#define r 200
#define CALE 'c:BorlandcBGI'
void desenare(int n)
;
x0 = getmaxx()/2;
y0 = getmaxy()/2;
for(k=0; k<n; k++)
setcolor(WHITE);
}/* desenare */
void initializare_mod_grafic(void)
}/* initializare mod grafic */
void main(void)
initializare_mod_grafic();
desenare(n);
outtextxy(getmaxx() - 400, getmaxy()-10, 'Apasati o tasta!'); getch();
closegraph();
fflush(stdin);
printf('Introduceti un arc!n');
printf('Introduceti primul nod: '); scanf('%c', &c1); c1 = toupper(c1);
fflush(stdin);
printf('Introduceti urmatorul nod: '); scanf('%c', &c2); c2 = toupper(c2);
initializare_mod_grafic();
desenare(n);
i = c1 - 'A';
j = c2 - 'A';
x0 = getmaxx()/2;
y0 = getmaxy()/2;
xi = r*cos(2*i*PI/n) + x0;
yi = -r*sin(2*i*PI/n) + y0;
xj = r*cos(2*j*PI/n) + x0;
yj = -r*sin(2*j*PI/n) + y0;
setcolor(WHITE);
line(xi, yi, xj, yj);
outtextxy(getmaxx() - 400, getmaxy()-10, 'Apasati o tasta!'); getch();
closegraph();
}/* main */
|