• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

нужно описать как работает цикл в программе!

  • Автор темы rus
  • Дата начала
Статус
Закрыто для дальнейших ответов.
R

rus

Код:
#include <stdio.h>
#include <conio.h>
#include <graphics.h>
#include <math.h>
#include <STDLIB.H>
#include <dos.h>

#define K 0.45

void open_graph(void);
void zicloida(int R1,int R2,int R3,float T );
char* s1_s2(char *s1,char *s2);

int main(){
int R1,R2,R3;

printf("Enter R1,R2,R3 :\n");
scanf("%d%d%d",&R1,&R2,&R3);

open_graph();
zicloida(R1,R2,R3,0.0);
getch();
closegraph();

return 0;
}
void open_graph(void){
/* request auto detection */
int gdriver = DETECT, gmode, errorcode;
// int x, y;

/* initialize graphics mode */
initgraph(&gdriver, &gmode, "");

/* read result of initialization */
errorcode = graphresult();

if (errorcode != grOk) /* an error occurred */
{
printf("Graphics error: %s\n", grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
exit(1); /* terminate with an error code */
}
}
void zicloida(int r1,int r2,int r3,float t )
{
int X,Y,xo,yo,R1,R2,R3,col;
float T;
char str1[20],str2[8],str3[8];

randomize();
xo = getmaxx()/2;
yo = getmaxy()/2;

for(R1 = r1; R1 <= 187; R1 += 5)

for(R2 = r2; R2 <= 240; R2 += 5)

for(R3 = r3; R3 <= 240; R3 += 5)
{
outtextxy(1,1,"R1  R2  R3 ");
col =rand()%16;
itoa(R1, str1,10);
itoa(R2, str2,10);
itoa(R3, str3,10);

s1_s2(str1," ");
s1_s2(str1,str2);
s1_s2(str1,"  ");
s1_s2(str1,str3);
outtextxy(1,12,str1);

for(T = t;T <= 600.0 ; T += 0.1){
X = (R1 + R2) * cos(R2 * T / R1) - R3 * cos((R1 + R2) / R1 * T);
Y = (R1 + R2) * sin(R2 * T / R1) - R3 * sin((R1 + R2) / R1 * T);

putpixel(X*K+xo,Y*K+yo,col);

if ( kbhit()) exit(1);
}
delay(50);
/* clear the screen */
cleardevice();

}
}

char* s1_s2(char *s1,char *s2){
int i,j;

/**/
i=j=0;
while (s1[i]!='\0')
i++;

while( (s1[i++]=s2[j++]) !='\0');

//  printf("\n< s1= %s s2=%s >",s1,s2 );

return s1;
}
 

Kmet

Well-known member
25.05.2006
904
8
BIT
0
задавай конкретные вопросы, тогда может быть и помогут
 
P

Programmer_Hard

Запусти программу может станет понятно самому
а так вроде обычная прога по комграфике
 
E

European

Такой неформатированный код даже читать лень, не то что документировать
 
Статус
Закрыто для дальнейших ответов.
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!