Решения (задачи 200-219)
Задача 209.
// Узор из окружностей // случайного радиуса и цвета iinclude <graphics.h> #include <stdlib.h> #include <stdio.h> #include <conio.h> #include "time.h" #include "dos.h" I #define PATHTODRIVER "c: WborlandcWbgiW' // узор из окружностей void cuzor(int n) ttdefine DELAY // задержка между выводом окружностей int x,y,r; // координаты центра и радиус окружности time_t t; srand((unsigned)time(&t)); // инициализация ГСЧ for (int i = 0; i < n; i++) x = randO % 640; у = randO % 480; r = randO % 240; setcolor(rand() circle (x,y, r); #ifdef DELAY delay(5); #endif void main(void) int gdriver = DETECT; // драйвер int gmode; // режим int errorcode; // код ошибки initgraphf&gdriver, Sgmode, PATHTODRIVER); errorcode = graphresult(); if (errorcode!= grOk) // ошибка инициализации // графического режима { printf("Ошибка: %d\n", errorcode); puts("Для завершения программы нажмите Enter"); getch(); exit (1); } cuzor(200); // узор из окружностей getch(); closegraph(); // выход из графического режима
Задача 211.
// Узор из линий случайного цвета #include <graphics.h> "include <stdlib.h>: .finclude <stdio.h> #include <conio.h> ¦include "time.h" [define PATHTODRIVER "c: WborlandcWbgiW" // узор из линий void luzor(int n) int x,y; // координаты конца линии int с; // цвет линии time_t t; srand((unsigned)time(&t)); // инициализация ГСЧ for (int i = 0; i < n;' i++) x = rand() % 640; у = rand() % 480; с = rand() % 16; setcolor(c); lineto(x,y); void main(void) int gdriver = DETECT; // драйвер int gmode; // режим int errorcode; // код ошибки initgraphf&gdriver, Sgmode, PATHTODRIVER); errorcode = graphresult(); if (errorcode!= grOk) // ошибка инициализации // графического режима ntf("Ошибка: %d\n", errorcode); puts("Для завершения программы нажмите Enter"); getch(); exit(l); luzor(200); // узор из окружностей getch(); closegraph(); // выход из графического режима
Задача 212.
// Контур пятиконечной звезды #include <graphics.h> #include <stdlib.h> #include <stdio.h> #include <conio.h> ttdefine PATHTODRIVER "c: WborlandcWbgiW" // контур пятиконечной звезды #include "math.h" void starline(int xO, int yO, int r) ( // x0, y0 – координаты центра звезды //r – радиус звезды int x,y;// координаты конца луча // или впадины int a; // угол между осью ОХ и прямой, // соединяющей центр звезды и // конец луча или точку впадины int rl; // радиус окружности расположения // точек впадин #define RTOR 2.5 // отношение радиуса лучей //к радиусу впадин а = 18; // строим от правого гор. луча rl = r/RTOR; х = x0+r*cos(a*2*M_PI/360); у = y0-r*sin(a*2*M_PI/360); moveto(x,y); for (int i = 0; i < 5; i++) a = a+36; x = x0+rl*cos(a*2*M_PI/360); у = y0-rl*sin(a*2*M_PI/360); lineto(x,y); // от луча к впадине а = а+36; if (а > 360) а = 18; х = x0+r*cos(a*2*M_PI/360); у = y0-r*sin(a*2*M_PI/360); lineto(х,у); // от впадины к лучу void main(void) int gdriver = DETECT; // драйвер int gmode; int errorcode; // режим // код ошибки initgraph(&gdriver, Sgmode, PATHTODRIVER); errorcode = graphresult(); if (errorcode! = grOk.) // ошибка инициализации // графического режима { printf("Ошибка: %d\n", errorcode); puts("Для завершения программы нажмите Enter") getch(); exit(l); starline(100, 100, 50); getch(); closegraph0; // выход из графического режима