C语言动画程序源码
c语言玫瑰花的编程源代码

c语言玫瑰花的编程源代码玫瑰花源代码是一个经典的程序,它模拟了一朵玫瑰花的生长过程。
这个程序可以用来学习C语言中的图形绘制技术,而且在编程学习的过程中也很有趣。
首先我们来看看玫瑰花程序的源代码:```include <graphics.h>int main() {int gd=DETECT, gm;initgraph(&gd, &gm, "");setcolor(RED);int x,y;for(int i=0;i<800;++i){x=i*cos(i);y=i*sin(i);putpixel(x+300,y+300,RED);putpixel(y+300,x+300,RED);putpixel(-x+300,-y+300,RED);putpixel(-y+300,-x+300,RED);putpixel(-y+300,x+300,RED);putpixel(-x+300,y+300,RED);putpixel(x+300,-y+300,RED);putpixel(y+300,-x+300,RED);delay(1);}getch();closegraph();return 0;}```在这个程序中,我们使用了C语言中的图形绘制库graphics.h,来实现绘制图形的功能。
程序的入口函数为main()函数,其中包含了一些初始化代码,如initgraph()函数用来初始化系统的图形模式等。
在这个例子中,我们使用了DETECT作为gd的值,这种方式可以自动检测当前计算机的图形模式。
在程序中,我们使用了for循环来绘制玫瑰花的形状。
具体实现方式是通过计算得出每个点的坐标,然后设置它们的颜色为红色,并使用putpixel()函数来绘制出这个点。
最后,程序调用了getch()函数等待用户按键,然后通过closegraph()函数来关闭图形窗口。
这个程序虽然只是绘制了一朵玫瑰花,但它的编程技巧和实现方式可以帮助我们更好地理解计算机图形学的基本概念和算法。
魂斗罗c语言源代码

"魂斗罗"(Contra)是一款经典的横版射击游戏,由Konami公司开发。
编写一个完整的魂斗罗游戏是一个复杂的过程,涉及图形渲染、物理模拟、碰撞检测、音效处理等多个方面。
通常,这样的游戏会使用专业的游戏引擎或者特定的框架来开发,而不是直接用C语言从头开始。
c#include<stdio.h>#include<stdbool.h>// 定义玩家和敌人的结构体typedef struct {int x;int y;bool isAlive;} Player;typedef struct {int x;int y;bool isAlive;int speed; // 敌人的移动速度} Enemy;// 定义游戏的常量const int SCREEN_WIDTH = 800;const int SCREEN_HEIGHT = 600;const int PLAYER_SPEED = 5;const int BULLET_SPEED = 10;const int ENEMY_SPEED = 3;// 初始化玩家和敌人Player player = {SCREEN_WIDTH / 2, SCREEN_HEIGHT - 50, true};Enemy enemy = {SCREEN_WIDTH, SCREEN_HEIGHT / 2, true, ENEMY_SPEED};// 游戏主循环void gameLoop() {while (player.isAlive && enemy.isAlive) {// 处理玩家输入char input;printf("Move player (w/a/s/d): ");scanf(" %c", &input);switch (input) {case'w':if (player.y > 0) {player.y -= PLAYER_SPEED;}break;case'a':if (player.x > 0) {player.x -= PLAYER_SPEED;}break;case's':if (player.y < SCREEN_HEIGHT - 50) {player.y += PLAYER_SPEED;}break;case'd':if (player.x < SCREEN_WIDTH - 50) {player.x += PLAYER_SPEED;}break;}// 移动敌人enemy.x -= enemy.speed;// 检查碰撞if (player.x < enemy.x + 50 && player.x + 50 > enemy.x && player.y < enemy.y + 50 && player.y + 50 > enemy.y) {player.isAlive = false;printf("Game Over!\n");}// 打印游戏状态(仅用于演示)printf("Player position: (%d, %d)\n", player.x, player.y);printf("Enemy position: (%d, %d)\n", enemy.x, enemy.y);}}int main() {printf("Welcome to Contra Demo!\n");gameLoop();return0;}这。
三菱PLC编程口通信C语言源代码三菱plc

三菱PLC编程口通信C语言源代码 - 三菱plcfxnew.h#define DELAY_TIMES 30000L#define TRUE 1#define FALSE 0#define TRUE 1#define FALSE 0#define FORCE_ON 0x37#define FORCE_OFF 0x38void init_plc(void);int check_plc(void);int _read_data_register(unsigned int uAddress,unsigned int number);int _read_mdata_register(unsigned int uAddress,unsigned int number);int _write_data_register(unsigned int uAddress,unsigned int number);int _force_m_contact(unsigned int uAddress,unsigned char ucOn_off);int read_data_register(unsigned int uAddress,unsigned intnumber);int read_mdata_register(unsigned int uAddress,unsigned int number);int write_data_register(unsigned int uAddress,unsigned int number);int force_m_contact(unsigned int uAddress,unsigned char ucOn_off);int _read_m_register(unsigned int uAddress,unsigned int number);int read_m_register(unsigned int uAddress,unsigned int number);int TESTING=0;unsigned int uRead_value[25];unsigned int uWrite_value[25];unsigned int COMM_PORT=1;unsigned int STATS_PORT=0x2fd;unsigned int DATA_PORT=0x2f8;void init_plc(void){ _AX=0xfa;_DX=COMM_PORT;geninterrupt(0x14);while((inportb(STATS_PORT)1)!=0)inportb(DATA_PORT);}int check_plc(void){ long lTmp;if(TESTING==1)return TRUE;init_plc();for(lTmp=0L;lTmpDELAY_TIMES;lTmp++) { if((inportb(STATS_PORT)0x20)!=0) break;}if(lTmp=DELAY_TIMES)return(FALSE);outportb(DATA_PORT,5);disable();for(lTmp=0L;lTmpDELAY_TIMES;lTmp++) { if((inportb(STATS_PORT)1)!=0) break;}if(lTmp=DELAY_TIMES){enable();return(FALSE);}if((lTmp=inportb(DATA_PORT))==6){ enable();return(TRUE);}else{ enable();return(FALSE);}}int read_data_register(unsigned int uAddress,unsigned int number){int i;for(i=0;i3;i++)if(_read_data_register(uAddress,number)==TRUE)return TRUE;return FALSE;}int _read_data_register(unsigned int uAddress,unsigned int number){ unsigned char uSend[]={2,0x30,0x30,0x30,0x30,0x30,0x30,0x32,3,0x30,0x30}; unsigned char uReceive[104];unsigned int uTmp;unsigned int uSum;unsigned int num;long lTmp;int i,j;if(TESTING==1){ for(i=0;inumber;i++)uRead_value[i]=0;return TRUE;}init_plc();num=number*2;if((num/16)=10)uSend[6]=(unsigned char)(num/16+0x41-10);elseuSend[6]=(unsigned char)(num/16+0x30);if((num%16)=10)uSend[7]=(unsigned char)((num%16)+0x41-10); elseuSend[7]=(unsigned char)((num%16)+0x30);uAddress=uAddress*2+0x1000;uTmp=uAddress 0x000f;uSend[5]=(uTmp10)?(uTmp+0x30):(uTmp+0x41-0xa);uTmp=(uAddress4) 0x000f;uSend[4]=(uTmp10)?(uTmp+0x30):(uTmp+0x41-0xa); uTmp=(uAddress8) 0x000f;uSend[3]=(uTmp10)?(uTmp+0x30):(uTmp+0x41-0xa); uTmp=(uAddress12)0x000f;uSend[2]=(uTmp10)?(uTmp+0x30):(uTmp+0x41-0xa); uSum=0;for(i=1;i9;i++)uSum=uSum+(unsigned char)uSend[i];uTmp=uSum0x000f;uSend[10]=(uTmp10)?(uTmp+0x30):(uTmp+0x41-0xa); uTmp=(uSum4)0x000f;uSend[9]=(uTmp10)?(uTmp+0x30):(uTmp+0x41-0xa);for(i=0;i11;i++){ for(lTmp=0L;lTmpDELAY_TIMES;lTmp++){ if((inportb(STATS_PORT)0x20)!=0)break;}if(lTmp=DELAY_TIMES){return(FALSE);}outportb(DATA_PORT,uSend[i]); }disable();for(lTmp=0;lTmpDELAY_TIMES;lTmp++) { if((inportb(STATS_PORT)1)!=0) break;}if(lTmp=DELAY_TIMES){enable();return(FALSE);}uReceive[0]=inportb(DATA_PORT);if(uReceive[0]!=2){enable();return(FALSE);}for(i=1;inumber*4+4;i++){ for(lTmp=0L;lTmpDELAY_TIMES;lTmp++){ if((inportb(STATS_PORT)1)!=0)break;}if(lTmp=DELAY_TIMES){enable();return(FALSE);}uReceive[i]=inportb(DATA_PORT);}enable();uSum=0;for(i=1;inumber*4+2;i++)uSum=uSum+(unsigned int)uReceive[i];uTmp=uSum0xf;uTmp=(uTmp10)?(uTmp+0x30):(uTmp+0x41-0xa);if((unsigned char)uTmp!=uReceive[number*4+3])return(FALSE); uTmp=(uSum4)0xf;uTmp=(uTmp10)?(uTmp+0x30):(uTmp+0x41-0xa);if((unsigned char)uTmp!=uReceive[number*4+2])return(FALSE); for(j=0;jnumber;j++){for(i=j*4+1;ij*4+5;i++)uReceive[i]=(uReceive[i]0x39)?uReceive[i]-0x41+0xa:uReceive [i]-0x30;uRead_value[j]=(((((uReceive[j*4+3]4)+uReceive[j*4+4])4)+uR eceive[j*4+1])4)+uReceive[j*4+2];}return TRUE;}int read_mdata_register(unsigned int uAddress,unsigned int number){int i;for(i=0;i3;i++)if(_read_mdata_register(uAddress,number)==TRUE)return TRUE;return FALSE;}int _read_mdata_register(unsigned int uAddress,unsigned int number){ unsigned char uSend[]={2,0x30,0x30,0x30,0x30,0x30,0x30,0x32,3,0x30,0x30};unsigned char uReceive[104];unsigned int uTmp;unsigned int uSum;unsigned int num;long lTmp;int i,j;if(TESTING==1){ for(i=0;inumber;i++)uRead_value[i]=0; return TRUE;}init_plc();num=number*2;if((num/16)=10)uSend[6]=(unsigned char)(num/16+0x41-10); elseuSend[6]=(unsigned char)(num/16+0x30);if((num%16)=10)uSend[7]=(unsigned char)((num%16)+0x41-10); elseuSend[7]=(unsigned char)((num%16)+0x30);/*uAddress=uAddress*2+0x1000;*/uTmp=uAddress 0x000f;uSend[5]=(uTmp10)?(uTmp+0x30):(uTmp+0x41-0xa); uTmp=(uAddress4) 0x000f;uSend[4]=(uTmp10)?(uTmp+0x30):(uTmp+0x41-0xa); uTmp=(uAddress8) 0x000f;uSend[3]=(uTmp10)?(uTmp+0x30):(uTmp+0x41-0xa); uTmp=(uAddress12)0x000f;uSend[2]=(uTmp10)?(uTmp+0x30):(uTmp+0x41-0xa); uSum=0;for(i=1;i9;i++)uSum=uSum+(unsigned char)uSend[i];uTmp=uSum0x000f;uSend[10]=(uTmp10)?(uTmp+0x30):(uTmp+0x41-0xa); uTmp=(uSum4)0x000f;uSend[9]=(uTmp10)?(uTmp+0x30):(uTmp+0x41-0xa); for(i=0;i11;i++){ for(lTmp=0L;lTmpDELAY_TIMES;lTmp++){ if((inportb(STATS_PORT)0x20)!=0)break;}if(lTmp=DELAY_TIMES){return(FALSE);}outportb(DATA_PORT,uSend[i]); }disable();for(lTmp=0;lTmpDELAY_TIMES;lTmp++) { if((inportb(STATS_PORT)1)!=0) break;}if(lTmp=DELAY_TIMES){enable();return(FALSE);}uReceive[0]=inportb(DATA_PORT);if(uReceive[0]!=2){enable();return(FALSE);}for(i=1;inumber*4+4;i++){ for(lTmp=0L;lTmpDELAY_TIMES;lTmp++){ if((inportb(STATS_PORT)1)!=0)break;}if(lTmp=DELAY_TIMES){enable();return(FALSE);}uReceive[i]=inportb(DATA_PORT);}enable();uSum=0;for(i=1;inumber*4+2;i++)uSum=uSum+(unsigned int)uReceive[i];uTmp=uSum0xf;uTmp=(uTmp10)?(uTmp+0x30):(uTmp+0x41-0xa);if((unsigned char)uTmp!=uReceive[number*4+3])return(FALSE); uTmp=(uSum4)0xf;uTmp=(uTmp10)?(uTmp+0x30):(uTmp+0x41-0xa);if((unsigned char)uTmp!=uReceive[number*4+2])return(FALSE); for(j=0;jnumber;j++){for(i=j*4+1;ij*4+5;i++)uReceive[i]=(uReceive[i]0x39)?uReceive[i]-0x41+0xa:uReceive [i]-0x30;uRead_value[j]=(((((uReceive[j*4+3]4)+uReceive[j*4+4])4)+uR eceive[j*4+1])4)+uReceive[j*4+2];}return TRUE;}int write_data_register(unsigned int uAddress,unsigned int number){int i;for(i=0;i3;i++)if(_write_data_register(uAddress,number)==TRUE)return TRUE;return FALSE;}int _write_data_register(unsigned int uAddress,unsigned int number){ unsigned char uSend[111];unsigned int uTmp,uSum,num;long lTmp;int i;if(TESTING==1)return TRUE;init_plc();uSend[0]=2;uSend[1]=0x31;uSend[number*4+8]=3;num=(number*2)/16;if(num=10)uSend[6]=num+0x41-10;else uSend[6]=num+0x30;num=(number*2)%16;if(num=10)uSend[7]=num+0x41-10;else uSend[7]=num+0x30;uAddress=0x1000+2*uAddress;uTmp=uAddress0x000f;uSend[5]=(uTmp10)?(uTmp+0x30):(uTmp+0x41-0xa); uTmp=(uAddress4)0x000f;uSend[4]=(uTmp10)?(uTmp+0x30):(uTmp+0x41-0xa); uTmp=(uAddress8)0x000f;uSend[3]=(uTmp10)?(uTmp+0x30):(uTmp+0x41-0xa); uTmp=(uAddress12)0x000f;uSend[2]=(uTmp10)?(uTmp+0x30):(uTmp+0x41-0xa);for(i=0;inumber;i++){uTmp=uWrite_value[i]0x000f;uSend[i*4+9]=(uTmp10)?(uTmp+0x30):(uTmp+0x41-0xa);uTmp=(uWrite_value[i]4)0x000f;uSend[i*4+8]=(uTmp10)?(uTmp+0x30):(uTmp+0x41-0xa);uTmp=(uWrite_value[i]8)0x000f;uSend[i*4+11]=(uTmp10)?(uTmp+0x30):(uTmp+0x41-0xa); uTmp=(uWrite_value[i]12)0x000f;uSend[i*4+10]=(uTmp10)?(uTmp+0x30):(uTmp+0x41-0xa);}uSum=0;for(i=1;i9+number*4;i++)uSum+=uSend[i];uTmp=uSum0x000f;uSend[number*4+10]=(uTmp10)?(uTmp+0x30):(uTmp+0x41-0xa); uTmp=(uSum4)0x000f;uSend[number*4+9]=(uTmp10)?(uTmp+0x30):(uTmp+0x41-0xa); for(i=0;i11+number*4;i++){ for(lTmp=0L;lTmpDELAY_TIMES;lTmp++){ if((inportb(STATS_PORT)0x20)!=0)break;}if(lTmp=DELAY_TIMES){/*enable();*/return(FALSE);}outportb(DATA_PORT,uSend[i]);}disable();for(lTmp=0L;lTmpDELAY_TIMES;lTmp++) { if((inportb(STATS_PORT)1)!=0) break;}if(lTmp=DELAY_TIMES){enable();return(FALSE);}if(inportb(DATA_PORT)!=6){enable();return(FALSE);}else{enable();return(TRUE);}}int force_m_contact(unsigned uAddress,unsigned char ucOn_off) {int i;for(i=0;i3;i++)if(_force_m_contact(uAddress,ucOn_off)==TRUE)return TRUE;return FALSE;}int _force_m_contact(unsigned uAddress,unsigned char ucOn_off) { unsigned uSend[]={2,0x37,0x30,0x30,0x30,0x30,3,0x30,0x30}; unsigned uTmp,uSum,i;long lTmp;if(TESTING==1)return TRUE;init_plc();uAddress=uAddress+0x800;uSend[1]=ucOn_off;uTmp=uAddress0x000f;uSend[3]=(uTmp10)?(uTmp+0x30):(uTmp+0x41-0xa); uTmp=(uAddress4)0x000f;uSend[2]=(uTmp10)?(uTmp+0x30):(uTmp+0x41-0xa); uTmp=(uAddress8)0x000f;uSend[5]=(uTmp10)?(uTmp+0x30):(uTmp+0x41-0xa); uTmp=(uAddress12)0x000f;uSend[4]=(uTmp10)?(uTmp+0x30):(uTmp+0x41-0xa); uSum=0;for(i=1;i7;i++)uSum+=uSend[i];uTmp=uSum0x000f;uSend[8]=(uTmp10)?(uTmp+0x30):(uTmp+0x41-0xa); uTmp=(uSum4)0x000f;uSend[7]=(uTmp10)?(uTmp+0x30):(uTmp+0x41-0xa); for(i=0;i9;i++){ for(lTmp=0L;lTmpDELAY_TIMES;lTmp++){ if((inportb(STATS_PORT)0x20)!=0)break;}if(lTmp=DELAY_TIMES){enable();return(FALSE);}outportb(DATA_PORT,uSend[i]);}disable();for(lTmp=0L;lTmpDELAY_TIMES;lTmp++) { if((inportb(STATS_PORT)1)!=0) break;}if(lTmp=DELAY_TIMES){enable();return(FALSE);}if(inportb(DATA_PORT)!=6){enable();return(FALSE);}else{ enable();return(TRUE);}}int read_m_register(unsigned int uAddress,unsigned int number) {int i;for(i=0;i3;i++)if(_read_m_register(uAddress,number)==TRUE)return TRUE;return FALSE;}int _read_m_register(unsigned int uAddress,unsigned int number){ unsigned char uSend[]={2,0x30,0x30,0x30,0x30,0x30,0x30,0x32,3,0x30,0x30}; unsigned char uReceive[54];unsigned int uTmp;unsigned int uSum;unsigned int num;long lTmp;int i,j;if(TESTING==1){ for(i=0;inumber;i++)uRead_value[i]=0;return TRUE;}init_plc();num=number;if((num/16)=10)uSend[6]=(unsigned char)(num/16+0x41-10);elseuSend[6]=(unsigned char)(num/16+0x30);if((num%16)=10)uSend[7]=(unsigned char)((num%16)+0x41-10); elseuSend[7]=(unsigned char)((num%16)+0x30);uAddress=uAddress/8+0x100;uTmp=uAddress 0x000f;uSend[5]=(uTmp10)?(uTmp+0x30):(uTmp+0x41-0xa); uTmp=(uAddress4) 0x000f;uSend[4]=(uTmp10)?(uTmp+0x30):(uTmp+0x41-0xa); uTmp=(uAddress8) 0x000f;uSend[3]=(uTmp10)?(uTmp+0x30):(uTmp+0x41-0xa); uTmp=(uAddress12)0x000f;uSend[2]=(uTmp10)?(uTmp+0x30):(uTmp+0x41-0xa);uSum=0;for(i=1;i9;i++)uSum=uSum+(unsigned char)uSend[i];uTmp=uSum0x000f;uSend[10]=(uTmp10)?(uTmp+0x30):(uTmp+0x41-0xa); uTmp=(uSum4)0x000f;uSend[9]=(uTmp10)?(uTmp+0x30):(uTmp+0x41-0xa);for(i=0;i11;i++){ for(lTmp=0L;lTmpDELAY_TIMES;lTmp++){ if((inportb(STATS_PORT)0x20)!=0)break;}if(lTmp=DELAY_TIMES){/*enable();*/return(FALSE);}outportb(DATA_PORT,uSend[i]);}disable();for(lTmp=0;lTmpDELAY_TIMES;lTmp++) { if((inportb(STATS_PORT)1)!=0) break;}if(lTmp=DELAY_TIMES){enable();return(FALSE);}uReceive[0]=inportb(DATA_PORT);if(uReceive[0]!=2){enable();return(FALSE);}for(i=1;inumber*2+4;i++){ for(lTmp=0L;lTmpDELAY_TIMES;lTmp++) { if((inportb(STATS_PORT)1)!=0) break;}if(lTmp=DELAY_TIMES){enable();return(FALSE);}uReceive[i]=inportb(DATA_PORT);}enable();uSum=0;for(i=1;inumber*2+2;i++)uSum=uSum+(unsigned int)uReceive[i];uTmp=uSum0xf;uTmp=(uTmp10)?(uTmp+0x30):(uTmp+0x41-0xa);if((unsigned char)uTmp!=uReceive[number*2+3])return(FALSE); uTmp=(uSum4)0xf;uTmp=(uTmp10)?(uTmp+0x30):(uTmp+0x41-0xa);if((unsigned char)uTmp!=uReceive[number*2+2])return(FALSE); for(j=0;jnumber;j++){for(i=j*2+1;ij*2+3;i++)uReceive[i]=(uReceive[i]0x39)?uReceive[i]-0x41+0xa:uReceive [i]-0x30;uRead_value[j]=((uReceive[j*2+1])4)+uReceive[j*2+2];}return TRUE; }。
用c语言编写动态烟花代码

用c语言编写动态烟花代码动态烟花是一种非常有趣的动画效果,它通过不断改变每个粒子的位置和颜色来呈现出烟花的爆炸效果。
下面我们来看一下如何使用c语言进行动态烟花的编写。
首先,我们需要定义一个表示粒子的结构体,它包含了粒子的位置(x,y),速度(vx,vy),和颜色(r,g,b)等信息。
具体的代码如下:```ctypedef struct particle {float x, y;float vx, vy;int r, g, b;} particle;```接下来,我们需要初始化一堆粒子,并随机赋予它们速度和颜色。
具体的代码如下:```cvoid init_particles(particle* particles, int num_particles) {for (int i = 0; i < num_particles; i++) {particles[i].x = SCREEN_WIDTH / 2;particles[i].y = SCREEN_HEIGHT / 2;particles[i].vx = (float)rand() / RAND_MAX * 10 - 5;particles[i].vy = (float)rand() / RAND_MAX * 10 - 5;particles[i].r = rand() % 256;particles[i].g = rand() % 256;particles[i].b = rand() % 256;}}```然后,我们需要在循环中不断更新每个粒子的位置,并绘制出来。
在更新粒子位置时,我们需要考虑粒子的速度和重力等因素。
具体的代码如下:最后,在主函数中,我们需要不断调用以上两个函数进行更新并重绘烟花。
具体的代码如下:。
51单片机C语言程序设计源代码

新概念51单片机C语言教程----入门、提高、开发、拓展全攻略郭天祥编著电子工业出版社例2.2.1编写程序,点亮第一个发光二极管(part2_1.c P27)#include <reg52.h> //52系列单片机头文件sbit led1=P1^0; //声明单片机P1口的第一位void main() //主函数{led1=0; /*点亮第一个发光二极管*/}例2.2.2编写程序,点亮P1口的若干二极管(part2_2.c P39)#include <reg52.h> //52系列单片机头文件void main() //主函数{P1=0xaa;//while(1);}例2.5.1利用for语句延时特性,编写第一个发光二极管以间隔1S亮灭闪动的程序(part2_3.c P42)#include <reg52.h> //52系列单片机头文件#define uint unsigned int //宏定义sbit led1=P1^0; //声明单片机P1口的第一位uint i,j;void main() //主函数{while(1) //大循环{led1=0; /*点亮第一个发光二极管*/for(i=1000;i>0;i--) //延时for(j=110;j>0;j--);led1=1; /*关闭第一个发光二极管*/for(i=1000;i>0;i--) //延时for(j=110;j>0;j--);}}- 2 - 例2.6.1编写程序使第一个发光二极管以间隔500ms亮灭闪动。
(part2_4.c P48)#include <reg52.h> //52系列单片机头文件#define uint unsigned int //宏定义sbit led1=P1^0; //声明单片机P1口的第一位void delay1s(); //声明子函数void main() //主函数{while(1) //大循环{led1=0; /*点亮第一个发光二极管*/delay1s(); //调用延时子函数led1=1; /*关闭第一个发光二极管*/delay1s(); //调用延时子函数}}void delay1s() //子函数体{uint i,j;for(i=500;i>0;i--)for(j=110;j>0;j--);}例2.7.1编写程序使第一个二极管以亮200ms、灭800ms的方式闪动。
标准c语言源程序文件的后缀

标准c语言源程序文件的后缀标准C语言源程序文件的后缀是.c,这是C语言编写的源程序代码保存的常用后缀名。
在不同的操作系统或编译器中,还可能有其他不同的后缀名,比如在Windows中编译的可能是.exe或.obj,但在Linux中编译的则为.o或.so。
在本文中,我们将会重点解释.c文件的含义和作用。
一、C语言源程序C语言是一种结构化、高级程序设计语言,可以用来编写系统软件、应用软件、嵌入式系统、操作系统等。
C语言的源程序是指程序员所编写的源代码文件,这些文件包含了程序的所有命令、定义、声明和注释等。
通常来说,C语言的源程序包含一定的结构和规范,以方便编译器进行解析和编译成可执行文件或库文件。
C语言源程序通常采用.c后缀来命名,这是由于C语言源程序的特殊性决定的。
C语言编译器可以将.c文件编译成可执行文件或库文件,因此.c文件成为了C语言编写的源程序代码保存的常用后缀名。
在某些编译器中,也可以采用.cpp、.cc、.cxx等后缀,表示C++源程序文件。
C语言源文件通常包含了程序的类定义、函数声明、函数定义、数据类型的定义、宏定义、注释等,它是程序员用C语言编写程序的基石。
C语言源文件的命名形式可以是任意的,但通常情况下会按照语义化命名的原则来命名,以方便阅读和维护代码。
三、C语言源文件的作用C语言源文件是程序员用C语言编写程序的基础,它的作用可以总结如下:1. 定义和声明变量和函数。
2. 定义和引用各种数据类型。
3. 定义和使用宏。
4. 给出注释和说明。
5. 方便程序员进行写、改、查和测试。
6. 最后被编译器编译成可执行文件或库文件供使用。
C语言源文件的编译过程一般包括了以下几个步骤:1. 预处理:编译器根据C语言源文件中的宏、条件编译指令等对源文件进行一些预处理,在编译器编译之前生成中间文件。
2. 编译:编译器将预处理后的源文件编译成目标文件(.o或.obj),其中目标文件是可重定位文件,包含了汇编代码和机器指令。
一百五十行c语言代码实现爱心效果

一百五十行c语言代码实现爱心效果1.引言1.1 概述概述部分的内容:本文将介绍如何使用150行的C语言代码实现爱心效果。
通过这个程序,我们可以在屏幕上显示一个美丽的爱心图案,给人们带来温馨和浪漫的感觉。
爱心图案是一种常见的表达爱情和友情的图形,它具有独特而美丽的形状。
通过使用C语言编程,我们可以在命令行窗口中生成这个图案,并通过不同的颜色和动态效果进一步增加其吸引力。
本文将首先介绍爱心效果的实现原理,包括对爱心形状的分析和算法设计。
然后,我们将详细介绍程序的整体框架和主要函数的功能,使读者能够更深入地理解代码的实现过程。
通过学习这个程序,读者可以了解到C语言在图形处理方面的应用,同时也可以提升编程能力和创造力。
此外,本文还将讨论实现效果的优缺点,并提出进一步改进的可能性,以便读者在实际应用中进行探索和创新。
本文旨在向读者展示C语言的魅力和创造力,并鼓励读者通过编写自己的代码来实现更多有趣和实用的效果。
让我们一起开始吧!1.2文章结构文章结构是撰写一篇长文时需要考虑的重要因素之一。
一个良好的文章结构可以使读者更好地理解和跟随文章的思路,同时也有助于作者更好地组织自己的写作。
在本文中,文章结构可以按照以下方式展开:1. 引言1.1 概述在本部分,我们将简要介绍本篇文章的主题和目标- 以C语言代码实现爱心效果。
这个主题将涉及编写一百五十行的代码来展示一个爱心图案,通过解释代码的实现过程和原理,读者将能够掌握如何在C语言中实现这一效果。
1.2 文章结构本部分将详细说明本文的文章结构,包括各个章节的内容以及它们之间的逻辑关系。
通过了解整个文章的组织架构,读者可以更好地理解和阅读后续的章节。
1.3 目的在本小节中,我们会明确本篇文章的目的。
通过展示如何用C语言实现爱心效果,我们希望能够激发读者的兴趣,增加他们对C语言编程的理解,并鼓励他们在编程过程中尝试创造新的效果。
2. 正文2.1 爱心效果的实现原理本小节将详细介绍实现爱心效果的原理和方法。
c语言动态爱心源代码

c语言动态爱心源代码C语言动态爱心,是一种用C语言编写的源代码,可以在控制台中动态地显示出一个由字符组成的爱心图案。
这个源代码的实现原理是利用循环和条件语句来控制字符的输出位置和颜色,从而形成一个动态的爱心效果。
在开始编写源代码之前,我们需要引入一些必要的头文件,如stdio.h和windows.h,前者用于输入输出操作,后者用于控制台窗口的一些设置。
然后,我们定义一些常量和变量来控制爱心图案的大小和动态效果。
我们定义一个常量SIZE来表示爱心的大小,可以根据实际需要进行调整。
然后,我们定义两个变量row和col来表示当前输出字符的行和列,以及一个变量delay来控制输出字符的速度。
接下来,我们定义一个二维数组heart来存储爱心图案的字符,并初始化为一个空格。
同时,我们定义一个数组colors来存储输出字符的颜色,用于实现动态效果。
接下来,我们需要编写一个函数drawHeart()来实现爱心图案的绘制。
在该函数中,我们使用两个嵌套循环来遍历二维数组heart,并根据数组的值来输出相应的字符和颜色。
具体的实现逻辑如下:1. 首先,我们使用两个循环来遍历二维数组heart的每个元素。
外层循环控制行数,内层循环控制列数。
2. 在每次循环开始时,我们使用条件语句来判断当前字符的位置是否在爱心的范围内。
如果是,则输出字符,并设置相应的颜色;否则,输出空格。
3. 在输出完一行字符后,我们使用延时函数Sleep()来控制输出的速度,可以根据实际需要进行调整。
4. 在绘制完整个爱心图案后,我们使用循环来清空控制台窗口的内容,以便下次重新输出。
我们在主函数main()中调用drawHeart()函数来实现动态爱心的效果。
在调用函数之前,我们可以先清空控制台窗口的内容,并设置输出字符的颜色。
整个源代码的实现逻辑比较简单,但是通过循环和条件语句的灵活运用,可以实现一个生动、动态的爱心图案。
这个源代码不仅具有一定的实用性,可以用于表达爱心和情感,还能够锻炼程序员的编程能力和逻辑思维能力。
C语言课设 编制曲线轨迹动画程序 完整版

沈阳理工大学学院计算机程序训练任务书学生姓名:班级:学号:设计题目:编制曲线轨迹动画程序一、设计要求:画一正八边形,如下图,再画一个小圆使在其正八边形边上移动。
八边形的大小和小圆移动的速度由键盘输入。
并将输入的数据送文件保存。
按回车键程序结束。
二、设计报告:题目内容描述:上机编写程序,先确定坐标原点,然后确定八边形的顶点,画八边形与小圆的初始位置,运用循环结构使小圆运动,八边形的大小和小圆移动的速度由键盘输入。
并将输入的数据送文件保存。
按回车键程序结束。
三、系统设计说明(一)系统功能分析:1.应用程序功能说明:先确定原点(200,200),再打开一个文件,如果文件不可写入,则规定八边形的边长为100,小圆移动速度为10,若能写入,则从键盘输入八边形的边长及小圆移动的速度,并把输入的数据存入文件保存,再根据p[i].x=l*cos(PI/PNUM+i*PI/(PNUM/2))+cx,p[i].y=cy-l*sin(PI/PNUM+i*PI/(PNUM/2)),确定八边形的顶点,再运用画线函数line画出八边形,并画出小圆的初始位置,运用循环结构使小圆运动。
运行程序,输入八边形边长及小圆速度,按回车键运行,出现所需运行结果,按退出键退出程序。
2.输入数据类型及格式:程序设计一般由两部分组成:算法和数据结构,合理地选择和实现一个数据结构和处理这些数据结构具有同样的重要性。
八边形的边长不要过大,长度过大会造成八边形在屏幕上显示不完整,一般长度小于210就可以,小圆的速度可以大一些,但也不宜过大,因为大于某一数值后,小圆的速度也不会再增大。
数据类型主要包括如下:#include "Conio.h" /*字符模函数及图形模函数*/#include "graphics.h" /*线条图形函数*/#include <stdio.h> /*输入输出函数*/#include <stdlib.h> /*动态分配储存空间函数*/#include <dos.h> /*调用函数*/#include <math.h> /*数学函数*/#define PI 3.14159265 /*宏定义PI值为3.14159265*/#define PNUM 8 /*对PNUM的宏定义,起值为8*/ #define EGA VGA_driver /*宏定义变量*/struct POINT /*定义结构图变量名称为POINT*/ {int x; /*定义结构体变量包涵的整形变量x*/ int y; /*定义结构体变量包涵的整形变量y*/ }p[PNUM+1]; /*定义一式的结构*/conio.h:conio.h不是C标准库中的头文件。
好看的c语言程序烟花源代码

好看的c语言程序烟花源代码烟花是人们新年、庆祝等节日最喜爱的庆祝道具之一,而用C语言编写的烟花程序更是酷炫、有趣,甚至具有一定的指导意义。
本程序采用的是Win32 API图形和多线程,实现了屏幕上多个烟花同时绽放、炫彩夺目的效果。
以下是程序代码:```include <stdio.h>include <windows.h>include <stdlib.h>include <time.h>define MAX_FIREWORKS 10define MAX_PARTICLES 100struct ParticleStruct {float x, y;float vx, vy;float brightness;};struct FireworkStruct {int x, y;int color;int particlesLeft;bool exploded;ParticleStruct particles[MAX_PARTICLES];};FireworkStruct fireworks[MAX_FIREWORKS];int screenHeight, screenWidth;HDC hDCMem;HBITMAP hBitmap;HBITMAP hOldBitmap;void InitializeFirework(int index) {fireworks[index].x = rand() % screenWidth;fireworks[index].y = screenHeight - 1;fireworks[index].color = RGB(rand() % 256, rand() % 256, rand() % 256);fireworks[index].particlesLeft = rand() % 101 + 100;for (int i = 0; i < MAX_PARTICLES; i++) {fireworks[index].particles[i].x =fireworks[index].x;fireworks[index].particles[i].y =fireworks[index].y;fireworks[index].particles[i].vx = (rand() % 11 - 5) / 10.0;fireworks[index].particles[i].vy = (rand() % 11 - 10) / 10.0;fireworks[index].particles[i].brightness = 1.0;}}void InitializeFireworks() {for (int i = 0; i < MAX_FIREWORKS; i++)InitializeFirework(i);}bool UpdateFirework(int index) {fireworks[index].y -= rand() % 6 + 3;if (fireworks[index].y < screenHeight / 4) { fireworks[index].exploded = true;for (int i = 0; i < MAX_PARTICLES; i++) { fireworks[index].particles[i].vx = 0; fireworks[index].particles[i].vy = 0; }}return true;}else {bool particleExists = false;for (int i = 0; i < MAX_PARTICLES; i++){fireworks[index].particles[i].vx *= 0.95; fireworks[index].particles[i].vy *= 0.95;fireworks[index].particles[i].x +=fireworks[index].particles[i].vx;fireworks[index].particles[i].y +=fireworks[index].particles[i].vy;fireworks[index].particles[i].brightness *=0.975;if (fireworks[index].particles[i].brightness > 0.0)particleExists = true;}fireworks[index].particlesLeft--;if (fireworks[index].particlesLeft == 0|| !particleExists) {InitializeFirework(index);return false;}return true;}}void UpdateFireworks() {for (int i = 0; i < MAX_FIREWORKS; i++)UpdateFirework(i);}void DrawFireworks() {HBRUSH hBrush;for (int i = 0; i < MAX_FIREWORKS; i++) {if (!fireworks[i].exploded) {hBrush = CreateSolidBrush(fireworks[i].color);SelectObject(hDCMem, hBrush);Ellipse(hDCMem, fireworks[i].x - 5,fireworks[i].y - 5, fireworks[i].x + 5, fireworks[i].y + 5);DeleteObject(hBrush);}else {for (int j = 0; j < MAX_PARTICLES; j++) {hBrush = CreateSolidBrush(RGB(255, 255, 255)/*fireworks[i].color*/);SelectObject(hDCMem, hBrush);SetPixel(hDCMem,fireworks[i].particles[j].x, fireworks[i].particles[j].y, fireworks[i].color*fireworks[i].particles[j].brightness);DeleteObject(hBrush);}}}}DWORD WINAPI UpdateThread(LPVOID lpParam) {while (true) {UpdateFireworks();Sleep(10);}return 0;}int main() {HWND hWnd = GetDesktopWindow();HDC hDC = GetDC(hWnd);screenHeight = GetSystemMetrics(SM_CYSCREEN);screenWidth = GetSystemMetrics(SM_CXSCREEN);hDCMem = CreateCompatibleDC(hDC);hBitmap = CreateCompatibleBitmap(hDC, screenWidth, screenHeight);hOldBitmap = (HBITMAP)SelectObject(hDCMem, hBitmap);InitializeFireworks();CreateThread(NULL, 0, &UpdateThread, NULL, 0, NULL);MSG msg;BOOL bRet;while ((bRet = GetMessage(&msg, NULL, 0, 0)) != 0) { if (bRet == -1)break;else {TranslateMessage(&msg);DispatchMessage(&msg);DrawFireworks();BitBlt(hDC, 0, 0, screenWidth, screenHeight, hDCMem, 0, 0, SRCCOPY);}}SelectObject(hDCMem, hOldBitmap);DeleteObject(hBitmap);DeleteDC(hDCMem);ReleaseDC(hWnd, hDC);return 0;}```本程序实现了多个烟花同时在屏幕上绽放和消失,其中每个烟花的颜色和位置随机生成。
C语言程序设计 入门源代码代码集合之欧阳家百创编

演示1欧阳家百(2021.03.07)#include <stdio.h>void print_star(void){printf("*****************\n");}void print_welcome(void){printf("C language,welcome!\n");}void main(){print_star();print_welcome();print_star();getchar();}演示2#include "stdio.h"int sum(int i,int j){return(i + j);}void main(){int n1,n2;printf("input 2 numbers:\n");scanf("%d%d",&n1,&n2);printf("the sum = %d\n",sum(n1,n2));getchar();}演示3#include "stdio.h"int maxnum(int,int,int);main(){int a,b,c;printf("Please enter 3 numbers:\n");scanf("%d,%d,%d",&a,&b,&c);printf("Maxnum is %d\n",maxnum(a,b,c));return 0;}int maxnum(int x,int y,int z) {int max=x;if(y>max)max = y;if(z>max)max = z;return max;}演示4#include <stdio.h>int s1(int n){int j,s;s=0;for(j=1;j<=n;j++)s=s+j;return s;}int sum(int n){int i,s=0;for(i=1;i<=n;i++)s=s+s1(i);return s;}void main(){int n;printf("n:");scanf("%d",&n);printf("s=%d\n",sum(n)); }演示5#include <stdio.h>void func(int n){int i;for(i=n-1;i>=1;i--)n=n+i;printf("n=%d\n",n);}void main(){int n;printf("Input n:");scanf("%d",&n);func(n);printf("n=%d\n",n);}演示6#include <stdio.h>void swap(int a,int b){int temp;temp=a;a=b;b=temp;printf("swap : a=%d,b=%d\n",a,b); }void main(){int a,b;a=3;b=10;swap(a,b);printf("a=%d,b=%d\n",a,b);}演示7#include <stdio.h>int func(int a,int b){int c;c=a+b;return c;}void main(){int x=6,y=7,z=8,r;r=func((x--,y++,x+y),z--);printf("%d\n",r);}演示8#include <stdio.h>max(float x,float y){return x>y? x:y;}void main(){printf("%d\n",max(2,3.5));}演示9#include <stdio.h>int sum(int n){int i,s=0;for(i=0;i<=n;i++)s=s+i;return s;}void main(){int m,sn;scanf("%d",&m);sn=sum(m);printf("the sum is %d\n",sn);}演示10#include <stdio.h>void swap(int x,int y);int main(){int a,b;printf("input 2 numbers :\n");scanf("%d,%d",&a,&b);printf("input number is:a=%d,b=%d \n",a,b);swap(a,b);printf("input 2 numbers is:a=%d,b=%d\n",a,b); return 0;}void swap(int x,int y){int temp;temp = x;x = y;y = temp;printf("swap number is : x = %d,y = %d \n",x,y); }演示11#include "stdio.h"#define K 3#define N 5long f2(int n,int k){long power = n;int i;for(i=1;i<k;i++)power *=n;return power;}long f1(int n,int k){long sum = 0 ;int i;for(i=1;i<=n;i++)sum = sum + f2(i,k);return sum;}int main(void){printf("sum of %d power of integer from 1 to %d = ",K,N);printf("%ld\n",f1(N,K));return 0;}演示12#include <stdio.h>int min(int a,int b);int main(void){int j,k,mininum;printf("input 2 integers:");scanf("%d,%d",&j,&k);mininum = min(j,k);printf("\n of the two values %d and %d,the mininum is %d\n",j,k,mininum);return 0;}int min(int a,int b){if(a<b)return a;elsereturn b;}演示13#include <stdio.h>int func(int a,int b);void main(){int k=4,m=1,p;p=func(k,m);printf("%d\n",p);}int func(int a,int b){int m=0,i=2;i+=m+1;m=i+a+b;return m;}演示14#include <stdio.h>int max(int x,int y){int z;z=x>y?x:y;return z;}void main(){extern int A,B; //声明外部变量printf("%d\n",max(A,B));}int A=13,B=-8; //定义外部变量演示15#include <stdio.h>int f1(int xb){extern int xa;return (xa*xb);}int main(void){extern int xb;int xa = 5;printf("xa=%d,xb=%d,result=%d",xa,xb,f1(xa)); return 0;}int xa = 3,xb = 4;演示16#include <stdio.h>void num(){extern int x,y;int a=15,b=10;x=a-b;y=a+b;}int x,y;void main(){int a=7,b=5;x=a+b;y=a-b;num();printf("%d,%d\n",x,y);}演示17#include <stdio.h>void main(){void swap();extern int a,b;a=3;b=10;swap();printf("a=%d,b=%d\n",a,b);}int a,b;void swap(){int temp;temp=a;a=b;b=temp;}演示18#include <stdio.h>void auto_static(void){int var_auto = 0;static int var_static = 0;printf("var_auto = %d,var_static = %d\n",var_auto++,var_static++); }void main(){int i;for (i=0;i<3;i++)auto_static();}演示19#include <stdio.h>void swap(int x,int y){int t;t=x;x=y;y=t;}void main(){int a,b;scanf("%d,%d",&a,&b);swap(a,b);printf("%d,%d\n",a,b);}----------------------------------------------------------------------------------------------------------#include <stdio.h>int x,y;void swap(int ,,int){int t;t=x;x=y;y=t;}void main(){scanf("%d,%d",&x,&y);swap(x,y);printf("%d,%d\n",x,y);}#include <stdio.h>void swap(int x,int y){int t;t=x;x=y;y=t;}void main(){scanf("%d,%d",&x,&y);swap(x,y);printf("%d,%d\n",x,y);}----------------------------------------------------------------------------------------------------------------------演示20#include <stdio.h>int fac(int n){static int f=1;f=f*n;return f;}void main(){int i;for(i=1;i<=5;i++)printf("%d!=%d\n",i,fac(i));}演示21#include "stdio.h"int main(void){int a = 2;int p = a;printf("%d\n",a);{int a =7;printf("%d\n",a);printf("%d\n",p);}printf("%d\n",++a);return 0;}#include <stdio.h>int func(int a,int b);void main(){int k=4,m=1,p;p=func(k,m);printf("%d,",p); p=func(k,m);printf("%d\n",p); }int func(int a,int b){static int m=0,i=2;i+=m+1;m=i+a+b;return m;}演示23#include <stdio.h>f(int n){int c;if(n==6)c=1;elsec=(f(n+1)+1)*2;return c;}void main(){printf("%d\n",f(1));}演示24#include <stdio.h>long power(int n){long f;if(n>1)f=power(n-1)*n;elsef=1;return f;}main()int n;long x;printf("input an integer number:\n"); scanf("%d",&n);x=power(n);printf("%d!=%ld\n",n,x);getchar();}演示25#include <stdio.h>int fact(){static int i=5;if(i==0) return 1;else{i--;return (i+1)*fact();}}void main(){printf("fact=%d\n",fact());}演示26#include <stdio.h>int fun(int k);int w=3;void main(){int w=10;printf("%d\n",fun(5)*w);}int fun(int k){if(k==0) return w;return(fun(k-1)*k);}演示27#include <stdio.h>int fac(int n)register int i,f=1;for(i=1;i<=n;i++)f=f*i;return f;}main(){int i;for(i=1;i<=5;i++)printf("%d!=%d\n",i,fac(i));}演示28#include <stdio.h>age(int n){int c;if(n==1)c=10;elsec=age(n-1)+2;return c;}void main(){printf("%d\n",age(5));}演示29#include <stdio.h>#define PI 3.14#define circuit(r) 2*PI*r#define area(r) PI*r*rvoid main(){float ra,c,a;scanf("%f",&ra);c=circuit(ra);a=area(ra);printf("ra=%f,c=%f,a=%f",ra,c,a); }。
C语言递归调用实例——汉诺塔问题动画实现(附完整代码)

二、程序框架
古人云,不谋全局者,不足谋一域。同样,在编写代码之前,我们必 须得有个大体的思路和整体上的把握。不能一上来就稀里糊涂地乱敲一通。 当然,这里我也只能仅仅谈自己的个人想法,不一定就是最优的解决方案, 还希望能和大家一起相互交流,共同进步。整个程序的框架,我把它分为 动画效果和核心算法两大部分。我首先实现的是动画效果部分,等能够实 现盘子的随意移动后,我才开始研究核心算法的实现。这样一来,在核心 算法部分,我们正好可以利用前面的动画效果来直观地反映出我们的思路, 有助于代码的调试和缩短程序的开发周期。为了尽量减少废话,我们可以 用一张图来进行表示:
图 1-1 移动第一个圆盘..................................................................................................................... 4 图 1-2 移动第二个圆盘...................................................................................................................... 5 图 1-3 移动最后一个圆盘................................................................................................................. 6
能移动一个圆盘,且圆盘在放到棒上时,大的不能放在小的上面。中间的一根
棒作为辅助移动用。” 事实上,对此曾经有人作过分析,按这个规则,众僧耗尽毕生精力也
不可能完成圆盘的移动,因为需要移动圆盘的次数是一个天文数字 18446744073709551615(64 个圆盘需要移动的次数为 2 的 64 次方)。假设 1us 进行一次移动,也需要约一百万年的时间,使用计算机也很难解决 64
c语言动画程序源码

mousehide(); mouseh ide(); C 语言动画程序#include<math.h>#include<stdio.h>#include<graphics.h>#include<dos.h>#definepi3.1415926535doubleca3mm1(doublem1,doublem2);doubleca3fm1(doublecosine,doublesine);doubleca5fm2(doublea6m,doublea5m,doublea4m,doublea4f,intshang);doubleca6fm2(doublea4m,doublea4f,doublea5m,doublea5f);charinbo*(int*,inty,int*1,inty1);charbuf();main(){doublem=3.0;double*o=100.0,yo=200.0,a1=30.0,t1=pi;double*c=*o+m*a1,yc=yo;doublea2=8.0,a3,a4=25.0,a5=30.0,a6=20.0,a7=35.0;doublet2,t3,t4,t5,t6,t7;double*o1=*o+m*150,yo1=yo;double*c1=*o1-m*a1,yc1=yo1;doublei,j,k;doublel1;doublen=116.1,nt;initscreen();setfillstyle(SOLID_FILL,DARKGRAY);bar(0,0,640,480);mybutton(10,10,"BEGIN",1,0);mybutton(500,10,"E*IT",1,0);line(0,69,640,69);mouseinit();changemousecross();setmouse*y(320,20);mouseshow();setmousearea(0,0,640,60);do{if(inbo*(10,10,70,26)&&button()==1){mousehide();mybutton(10,10,"BEGIN",0,0);mouseshow();mousehold();mybutton(10,10,"BEGIN",1,7);mouseshow();break;}if(inbo*(500,10,555,26)&&button()==1){mousehide();mybutton(500,10,"E*IT",0,0);mouseshow();mousehold();mybutton(500,10,"E*IT",1,7);mouseshow();e*it(0);}if(buf()==56)for(i=0;i<10000;i++){switch(buf()){case18:{mousehide();mybutton(500,10,"E*IT",0,0);mouseshow();delay(4000);mousehide();mybutton(500,10,"E*IT",1,7);mouseshow();e*it(0);}case48:{mousehide();mybutton(10,10,"BEGIN",0,0);mouseshow();delay(4000);mousehide();mybutton(10,10,"BEGIN",1,7);mouseshow();gotorun;}default:break;}}}while(1);run:drawjijia(*o,yo,1);drawjijia(*c,yc,1);drawjijia(*o1,yo1,1);drawjijia(*c1,yc1,1);setwritemode(1);do{for(i=0;i<360.0;i+=1.0){t2=i;a3=ca3mm1(a1*cos(t1)+a2*cos(t2*pi/180.0),a1*sin(t1)+a2*sin(t2*pi/180.0));t3=ca3fm1(a1*cos(t1)+a2*cos(t2*pi/180.0),a1*sin(t1)+a2*sin(t2*pi/180.0));a4=a3;t4=t3;t5=ca5fm2(a6,a5,a4,t4,0);t6=ca6fm2(a4,t4,a5,t5);t7=t6-90.0;l1=*c1-*c-2*m*a7*cos(t7*pi/180);nt=(asin(l1/2/(n/2))*180/pi)-90.0;drawline(*o,yo,a2,t2,m,LIGHTGRAY);drawline(*o+m*a2*cos(t2*pi/180),yo-m*a2*sin(t2*pi/180),a5,t5, m,LIGHTGRAY);drawline(*c,yc,a6,t6,m,LIGHTGRAY);drawline(*c,yc,a7,t7,m,LIGHTGRAY);drawline1(*o1,yo1,a2,t2,m,LIGHTGRAY);drawline1(*o1+m*a2*cos((180-t2)*pi/180),yo1-m*a2*sin((180-t2)*pi/180),a5,t5,m,LIGHTGRAY);drawli ne1(*c1,yc1,a6,t6,m,LIGHTGRAY);drawline1(*c1,yc1,a7,t7,m,LIGHTGRAY);for(j=-1;j<20;j++){drawline(*c+m*a7*cos(t7*pi/180),(yc-m*a7*sin(t7*pi/180)-j*n*sin(nt*pi/180)),n,nt,1.0,GREEN);drawlin e1(*c1-m*a7*cos(t7*pi/180),(yc1-m*a7*sin(t7*pi/180)-j*n*sin(nt*pi/180)),n,nt,1.0,DARKGRAY);}drawline(*o,yo,a2,t2,m,LIGHTGRAY);drawline(*o+m*a2*cos(t2*pi/180.0),yo-m*a2*sin(t2*pi/180.0),a5, t5,m,LIGHTGRAY);drawline(*c,yc,a6,t6,m,LIGHTGRAY);drawline(*c,yc,a7,t7,m,LIGHTGRAY);drawline1(*o1,yo1,a2,t2,m,LIGHTGRAY);drawline1(*o1+m*a2*cos((180-t2)*pi/180),yo1-m*a2*sin((180-t2)*pi/180),a5,t5,m,LIGHTGRAY);drawli ne1(*c1,yc1,a6,t6,m,LIGHTGRAY);drawline1(*c1,yc1,a7,t7,m,LIGHTGRAY);for(j=-1;j<20;j++){drawline(*c+m*a7*cos(t7*pi/180),(yc-m*a7*sin(t7*pi/180)-j*n*sin(nt*pi/180)),n,nt,1.0,GREEN);drawlin e1(*c1-m*a7*cos(t7*pi/180),(yc1-m*a7*sin(t7*pi/180)-j*n*sin(nt*pi/180)),n,nt,1.0,DARKGRAY);}setwritemode(0);if(inbo*(500,10,555,26)&&button()==1){mousehide();mybutton(500,10,"E*IT",0,0);mouseshow();mousehold();mousehide();mybutton(500,10, "E*IT",1,7);mouseshow();e*it(0);}if(buf()==56)for(k=0;k<10000;k++){switch(buf()){case18:{mousehide();mybutton(500,10,"E*IT",0,0);mouseshow();delay(4000);mousehide();mybutton(500,10,"E*IT",1,7);mouseshow();e*it(0);}default:break;}}setwritemode(1);}}while(1);}drawline(double*o,doubleyo,doublemo,doublefujiao,doublem,intcolor){double*,y;*=(*o+m*mo*cos(fujiao*pi/180));y=(yo-m*mo*sin(fujiao*pi/180));setcolor(color);line(*o,yo,*,y);}drawline1(double*o,doubleyo,doublemo,doublefujiao,doublem,intcolor){double*,y;*=(*o-m*mo*cos(fujiao*pi/180));y=(yo-m*mo*sin(fujiao*pi/180));setcolor(color);line(*o,yo,*,y);}drawjijia(double*,doubley,intshang){setcolor(RED);circle(*,y,3);line(*-3.0,y+3.0,*-15.0,y+20.0);moveto(*-15,(int)(y+20));lineto((int)(*+15),(int)(y+20));moveto((int)(*+15),(int)(y+20));lineto(*+3,y+3);}setcolor(RED);if(shang==0){circle((int)*,(int)y,3);line(*-3,y-3,*-15,y-20);moveto(*-15,y-20);lineto(*+15,y-20);moveto(*+15,y-20);lineto(*+3,y-3);}}doubleca3mm1(doublem1,doublem2){doubletemp;temp=sqrt(m1*m1+m2*m2);return(temp);}doubleca3fm1(doublecosine,doublesine){floattemp;if(sine>0&&cosine>0)temp=atan(sine/cosine)*180/pi;if(sine>0&&cosine<0)temp=(atan(sine/cosine)+pi)*180/pi;if(sine<0&&cosine<0)temp=(atan(sine/cosine)+pi)*180/pi;if(sine<0&&cosine>0)temp=(atan(sine/cosine)+2*pi)*180/pi;return(temp);}doubleca5fm2(doublea6m,doublea5m,doublea4m,doublea4f,intshang){doubletemp,sine1,cosine1;cosine1=(a6m*a6m-a4m*a4m-a5m*a5m)/(2*a4m*a5m);sine1=sqrt(1-cosine1*cosine1);if(shang==0)sine1=sine1*(-1);if(sine1>0&&cosine1>0)temp=a4f+(atan(sine1/cosine1)*180/pi);if(sine1>0&&cosine1<0)temp=a4f+((atan(sine1/cosine1)+pi)*180/pi);if(sine1<0&&cosine1<0)temp=a4f+((atan(sine1/cosine1)+pi)*180/pi);if(sine1<0&&cosine1>0)temp=a4f+((atan(sine1/cosine1)+2*pi)*180/pi);return(temp);}doubleca6fm2(doublea4m,doublea4f,doublea5m,doublea5f){doubletemp,sine1,cosine1;sine1=a4m*sin(a4f*pi/180)+a5m*sin(a5f*pi/180);cosine1=a4m*cos(a4f*pi/180)+a5m*cos(a5f*pi/180); if(sine1>0&&cosine1>0)temp=(atan(sine1/cosine1)*180/pi);if(sine1>0&&cosine1<0)temp=((atan(sine1/cosine1)+pi)*180/pi);if(sine1<0&&cosine1<0)temp=((atan(sine1/cosine1)+pi)*180/pi);if(sine1<0&&cosine1>0)temp=((atan(sine1/cosine1)+2*pi)*180/pi);return(temp);}initscreen(){intgd=DETECT,gm;registerbgidriver(EGAVGA_driver);initgraph(&gd,&gm,""); }。
c语言有趣的代码

c语言有趣的代码有趣的C语言代码C语言是一门广泛应用于计算机科学领域的编程语言,它的语法简单易懂,功能强大,可以用来编写各种各样的程序。
在C语言中,有一些有趣的代码,它们不仅可以让我们更好地理解C语言的特性,还可以让我们在编程中更加有趣。
下面,我将介绍一些有趣的C语言代码。
1. Hello WorldHello World是C语言中最简单的程序,它可以输出一句话“Hello World”。
这个程序的代码非常简单,只需要一行:```c#include <stdio.h>int main() {printf("Hello World\n");return 0;}```这个程序的输出结果是:```Hello World```2. Fibonacci数列Fibonacci数列是一个非常有趣的数列,它的每个数都是前两个数的和。
在C语言中,我们可以用递归函数来实现Fibonacci数列的计算。
下面是一个计算Fibonacci数列的程序:```c#include <stdio.h>int fibonacci(int n) {if (n == 0 || n == 1) {return n;} else {return fibonacci(n - 1) + fibonacci(n - 2);}}int main() {int n = 10;for (int i = 0; i < n; i++) {printf("%d ", fibonacci(i));}printf("\n");return 0;}```这个程序的输出结果是:```0 1 1 2 3 5 8 13 21 34```3. 猜数字游戏猜数字游戏是一种非常有趣的游戏,它可以让我们在编程中体验到游戏的乐趣。
在C语言中,我们可以用随机数生成函数来实现猜数字游戏。
下面是一个简单的猜数字游戏程序:```c#include <stdio.h>#include <stdlib.h>#include <time.h>int main() {srand(time(NULL));int number = rand() % 100 + 1;int guess;do {printf("Guess a number between 1 and 100: "); scanf("%d", &guess);if (guess > number) {printf("Too high!\n");} else if (guess < number) {printf("Too low!\n");} else {printf("You win!\n");}} while (guess != number);return 0;}```这个程序的输出结果是:```Guess a number between 1 and 100: 50Too high!Guess a number between 1 and 100: 25Too low!Guess a number between 1 and 100: 37Too high!Guess a number between 1 and 100: 31Too high!Guess a number between 1 and 100: 28You win!```总结以上是三个有趣的C语言代码,它们分别是Hello World、Fibonacci数列和猜数字游戏。
超级玛丽c语言代码

超级玛丽c语言代码以下是一个简单的超级玛丽游戏的C语言代码示例: c.#include <stdio.h>。
#include <conio.h>。
int main() {。
int x = 0, y = 0; // 玩家的初始位置。
char map[5][10] = {。
"##########",。
"# #",。
"# #",。
"# #",。
"##########"}; // 地图。
while (1) {。
system("cls"); // 清屏。
// 打印地图。
for (int i = 0; i < 5; i++) {。
printf("%s\n", map[i]);}。
// 获取玩家输入。
char input = getch();// 移动玩家。
switch (input) {。
case 'w': // 上。
if (y > 0 && map[y 1][x] == ' ') {。
map[y][x] = ' ';y--;}。
break;case 's': // 下。
if (y < 4 && map[y + 1][x] == ' ') {。
map[y][x] = ' ';y++;}。
break;case 'a': // 左。
if (x > 0 && map[y][x 1] == ' ') {。
map[y][x] = ' ';x--;}。
break;case 'd': // 右。
if (x < 9 && map[y][x + 1] == ' ') {。
C语言源代码

C语言源代码C 语言作为一门经典的编程语言,在计算机科学领域中具有举足轻重的地位。
C 语言源代码是用 C 语言编写的程序的原始文本形式,它是程序员思想的具体体现,也是计算机能够理解和执行的指令集合。
C 语言源代码的基本组成部分包括预处理指令、变量声明、函数定义、控制结构等。
预处理指令通常以“”开头,比如“include <stdioh>”,它用于在编译前对源代码进行一些预处理操作,如包含所需的头文件。
变量声明用于指定程序中使用的数据类型和名称。
C 语言中有多种数据类型,如整型(int)、浮点型(float、double)、字符型(char)等。
例如,“int age =25;”声明了一个名为 age 的整型变量,并初始化为 25。
函数是 C 语言中的重要概念,它将一段具有特定功能的代码封装起来,方便重复使用和代码的组织。
一个简单的函数可能如下所示:```cint add(int a, int b) {return a + b;}```在上述代码中,“add”是函数名,“int”表示函数返回值的类型,“a”和“b”是函数的参数。
控制结构用于决定程序的执行流程,包括顺序结构、选择结构(如ifelse 语句)和循环结构(如 for 循环、while 循环)。
比如,ifelse 语句用于根据条件执行不同的代码块:```cif (age >= 18) {printf("You are an adult\n");} else {printf("You are a minor\n");}```for 循环用于重复执行一段代码一定的次数:```cfor (int i = 0; i < 5; i++){printf("%d\n", i);}```while 循环则在条件为真时持续执行代码:```cint count = 0;while (count < 10) {printf("%d\n", count);count++;}```C 语言源代码的编写需要遵循严格的语法规则。
C语言课程设计贪吃蛇源代码

C语言课程设计贪吃蛇源代码c语言程序贪吃蛇代码#include#include#include#include#include#definen21file*fp;ints;voidboundary(void);//已经开始界面voidend(void);//完结voidgotoxy(intx,inty)//位置函数{coordpos;pos.x=x;pos.y=y;setconsolecursorposition(getstdhandle(std_output_han dle),pos);}voidcolor(inta)//颜色函数{setconsoletextattribute(getstdhandle(std_output_handle),a);}voidinit(intfood[2])//初始化函数(初始化围墙、显示信息、苹果){system(\inti,j;//初始化围墙intwall[n+2][n+2]={{0}};//初始化围墙的二维数组for(i=1;i<=n;i++){for(j=1;j<=n;j++)wall[i][j]=1;}color(10);for(i=0;iprintf(\}gotoxy(n+3,3);//显示信息color(14);printf(\按a,b,c,d改变方向\\n\gotoxy(n+3,1);color(14);printf(\按任意键暂停,按1回到,按2选择退出\\n\gotoxy(n+5,3);color(14);printf(\food[0]=rand()%n+1;//随机发生食物}food[1]=rand()%n+1;gotoxy(food[0],food[1]);color(12);printf(\voidplay()//具体内容玩玩的过程{system(\inti,j;int**snake=null;//定义蛇的二维指针intfood[2];//食物的数组,food[0]代表横坐标,food[1]代表纵坐标intscore=0;//为罚球inttail[2];//此数组为了记录蛇的头的座标intnode=3;//蛇的节数charch='p';srand((unsigned)time(null));//随机数发生器的初始化函数init(food);snake=(int**)realloc(snake,sizeof(int*)*node);//发生改变snake所指内存区域的大小为node长度for(i=0;igotoxy(snake[i][0],snake[i][1]);color(14);printf(\}while(1)//步入消息循环{gotoxy(5,0);color(10);printf(\gotoxy(0,5);color(10);printf(\gotoxy(0,7);color (10);printf(\gotoxy(0,9);color(10);printf(\tail[0]=snake[node-1][0];//将蛇的后一节座标参数值tail数组tail[1]=snake[node-1][1];gotoxy(tail[0],tail[1]);color(0);printf(\for(i=node-1;i>0;i--)//蛇想前移动的关键算法,后一节的占有前一节的地址座标{snake[i][0]=snake[i-1][0];snake[i][1]=snake[i-1][1];gotoxy(snake[i][0],snake[i][1]);color(14);printf(\}if(kbhit())//抓取输出信息{gotoxy(0,n+2);ch=getche();}switch(ch){case'w':snake[0][1]--;break;case's':snake[0][1]++;break;case'a':snake[0][0]--;break;case'd':snake[0][0]++;break;case'1':boundary();break;case'2':end();brea k;default:break;}gotoxy(snake[0][0],snake[0][1]);color(14);printf(\sleep(abs(2 00-0.5*score));//并使随着分数的快速增长蛇的移动速度越来越快if(snake[0][0]==food[0]&&snake[0][1]==food[1])//吞下食物后蛇分数提1,蛇长提1{score++;//分数减少s=score;node++;//节数减少snake=(int**)realloc(snake,sizeof(int*)*node);snake[node-1]=(int*)malloc(sizeof(int)*2);food[0]=rand()%n+1;//产生随机数且要在围墙内部。
少儿编程动画制作案例

少儿编程动画制作案例一、动画主题构思。
咱们先得想个有趣的主题,就像要盖房子先得画个蓝图一样。
我想啊,小朋友们都喜欢恐龙,那咱们就做个小恐龙的冒险动画。
小恐龙出生在一个神秘的山谷里,它要去寻找传说中的魔法水晶,这个水晶能让山谷永远充满生机。
二、角色设计。
1. 小恐龙。
这小恐龙得长得萌萌的,身体是绿色的,背上有一些黄色的斑点。
它的眼睛大大的,像两颗黑宝石,透着好奇和勇敢。
咱们用编程工具(比如说Scratch)里的绘图功能来画它。
先画个椭圆做身体,再加上四条腿、一条长长的尾巴和脑袋。
给它画上锋利的小牙齿,不过牙齿不要太吓人,毕竟是可爱风格的嘛。
在编程里,我们要给小恐龙设置一些属性。
比如它的移动速度,刚开始可以设得慢一点,因为它还是个小恐龙宝宝呢。
当它吃到一些神奇的果实后,速度就可以变快。
2. 其他角色。
还有一些小动物,像小兔子。
小兔子是小恐龙的好朋友,它可以给小恐龙一些提示,告诉小恐龙魔法水晶可能在什么地方。
小兔子就画成白色的,耳朵长长的,红红的眼睛。
然后还有个大反派,是一只会飞的黑蝙蝠。
这黑蝙蝠总是想阻止小恐龙找到魔法水晶,它的翅膀大大的,身体黑乎乎的,眼睛闪着邪恶的光。
三、场景搭建。
1. 神秘山谷。
用编程里的背景绘制功能或者找一些素材来搭建神秘山谷的场景。
山谷里有高高的山峰,山上长满了绿色的大树,还有五颜六色的花朵。
山谷中间有一条清澈的小溪,溪水潺潺流淌。
在编程里,我们可以设置一些互动元素。
比如说,小恐龙走到小溪边的时候,如果按下某个键,就能看到小鱼在水里游来游去。
2. 黑暗森林。
小恐龙在寻找魔法水晶的路上会经过黑暗森林。
这里的树又高又大,但是很阴森,阳光只能透过树叶的缝隙洒下一点点光线。
森林里有一些隐藏的陷阱,像地上的大坑。
我们通过编程来让这些陷阱发挥作用。
如果小恐龙不小心走到陷阱上面,就会掉进去,然后要通过按特定的键才能爬出来。
3. 魔法洞穴。
最后小恐龙要到达魔法洞穴才能找到魔法水晶。
魔法洞穴里闪闪发光,墙上镶嵌着各种宝石。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言动画程序#include <>#include <>#include <>#include <>#define pidouble ca3mm1(double m1,double m2);double ca3fm1(double cosine,double sine);double ca5fm2(double a6m,double a5m,double a4m,double a4f,int shang);double ca6fm2(double a4m ,double a4f,double a5m , double a5f);char inbox(int x,int y,int x1,int y1);char buf();main(){double m=;double xo=,yo=,a1=,t1=pi;double xc=xo+m*a1,yc=yo;double a2=,a3,a4=,a5=,a6=,a7=;double t2,t3,t4,t5,t6,t7;double xo1=xo+m*150,yo1=yo;double xc1=xo1-m*a1,yc1=yo1;double i,j,k;double l1;double n=,nt;initscreen();setfillstyle(SOLID_FILL,DARKGRAY);bar(0,0,640,480);mybutton(10,10,"BEGIN",1,0);mybutton(500,10,"EXIT",1,0);line(0,69,640,69);mouseinit();changemousecross();setmousexy(320,20);mouseshow();setmousearea(0,0,640,60);do{if(inbox(10,10,70,26)&&button()==1){mousehide(); mybutton(10,10,"BEGIN",0,0); mouseshow(); mousehold(); mousehide(); mybutton(10,10,"BEGIN",1,7); mouseshow(); break; }if(inbox(500,10,555,26)&&button()==1){mousehide(); mybutton(500,10,"EXIT",0,0); mouseshow(); mousehold(); mousehide(); mybutton(500,10,"EXIT",1,7); mouseshow(); exit(0); }if(buf()==56)for(i=0;i<10000;i++){switch (buf()){case 18:{mousehide();mybutton(500,10,"EXIT",0,0);mouseshow();delay(4000);mousehide();mybutton(500,10,"EXIT",1,7);mouseshow();exit(0);}case 48: {mousehide();mybutton(10,10,"BEGIN",0,0);mouseshow();delay(4000);mousehide();mybutton(10,10,"BEGIN",1,7);mouseshow();goto run;}default:break;}}}while(1);run:drawjijia(xo,yo,1);drawjijia(xc,yc,1);drawjijia(xo1,yo1,1);drawjijia(xc1,yc1,1);setwritemode(1);do{for(i=0;i<;i+={t2=i;a3=ca3mm1(a1*cos(t1)+a2*cos(t2*pi/,a1*sin(t1)+a2*sin(t2*pi/);t3=ca3fm1(a1*cos(t1)+a2*cos(t2*pi/,a1*sin(t1)+a2*sin(t2*pi/);a4=a3;t4=t3;t5=ca5fm2(a6,a5,a4,t4,0);t6=ca6fm2(a4,t4,a5,t5);t7=;l1=xc1-xc-2*m*a7*cos(t7*pi/180);nt=(asin(l1/2/(n/2))*180/pi);drawline(xo,yo,a2,t2,m,LIGHTGRAY);drawline(xo+m*a2*cos(t2*pi/180),yo-m*a2*sin(t2*pi/180),a5,t5,m,LIGHTGRAY); drawline(xc,yc,a6,t6,m,LIGHTGRAY);drawline(xc,yc,a7,t7,m,LIGHTGRAY);drawline1(xo1,yo1,a2,t2,m,LIGHTGRAY);drawline1(xo1+m*a2*cos((180-t2)*pi/180),yo1-m*a2*sin((180-t2)*pi/180),a5,t5,m,L IGHTGRAY);drawline1(xc1,yc1,a6,t6,m,LIGHTGRAY);drawline1(xc1,yc1,a7,t7,m,LIGHTGRAY);for(j=-1;j<20;j++){ drawline(xc+m*a7*cos(t7*pi/180),(yc-m*a7*sin(t7*pi/180)-j*n*sin(nt*pi/180)),n ,nt,,GREEN);drawline1(xc1-m*a7*cos(t7*pi/180),(yc1-m*a7*sin(t7*pi/180)-j*n*sin(nt*pi/180)), n,nt,,DARKGRAY);}delay(300);drawline(xo,yo,a2,t2,m,LIGHTGRAY);drawline(xo+m*a2*cos(t2*pi/,yo-m*a2*sin(t2*pi/,a5,t5,m,LIGHTGRAY);drawline(xc,yc,a6,t6,m,LIGHTGRAY);drawline(xc,yc,a7,t7,m,LIGHTGRAY);drawline1(xo1,yo1,a2,t2,m,LIGHTGRAY);drawline1(xo1+m*a2*cos((180-t2)*pi/180),yo1-m*a2*sin((180-t2)*pi/180),a5,t5,m,L IGHTGRAY);drawline1(xc1,yc1,a6,t6,m,LIGHTGRAY);drawline1(xc1,yc1,a7,t7,m,LIGHTGRAY);for(j=-1;j<20;j++){ drawline(xc+m*a7*cos(t7*pi/180),(yc-m*a7*sin(t7*pi/180)-j*n*sin(nt*pi/180)),n ,nt,,GREEN);drawline1(xc1-m*a7*cos(t7*pi/180),(yc1-m*a7*sin(t7*pi/180)-j*n*sin(nt*pi/180)), n,nt,,DARKGRAY);}setwritemode(0);if(inbox(500,10,555,26)&&button()==1){mousehide(); mybutton(500,10,"EXIT",0,0); mouseshow(); mousehold(); mousehide(); mybutton(500,10,"EXIT",1,7); mouseshow(); exit(0); }if(buf()==56)for(k=0;k<10000;k++){switch (buf()){case 18:{mousehide();mybutton(500,10,"EXIT",0,0);mouseshow();delay(4000);mousehide();mybutton(500,10,"EXIT",1,7);mouseshow();exit(0); }default:break;}}setwritemode(1);}}while(1);}drawline(double xo,double yo,double mo,double fujiao,double m,int color) {double x,y;x=(xo+m*mo*cos(fujiao*pi/180));y=(yo-m*mo*sin(fujiao*pi/180));setcolor(color);line (xo,yo,x,y);}drawline1(double xo,double yo,double mo,double fujiao,double m,int color) {double x,y;x=(xo-m*mo*cos(fujiao*pi/180));y=(yo-m*mo*sin(fujiao*pi/180));setcolor(color);line (xo,yo,x,y);}drawjijia(double x,double y,int shang){setcolor(RED);if (shang==1){circle(x,y,3);line,y+,,y+;moveto(x-15,(int)(y+20));lineto((int)(x+15),(int)(y+20));moveto((int)(x+15),(int)(y+20));lineto(x+3,y+3);}setcolor(RED);if (shang==0){circle((int)x,(int)y,3);line (x-3,y-3,x-15,y-20);moveto(x-15,y-20);lineto(x+15,y-20);moveto(x+15,y-20);lineto(x+3,y-3);}}double ca3mm1(double m1,double m2){double temp;temp = sqrt(m1*m1 + m2*m2);return(temp);}double ca3fm1(double cosine,double sine){float temp;if (sine > 0 && cosine > 0)temp = atan(sine / cosine) * 180 / pi;if (sine > 0 && cosine < 0)temp = (atan(sine / cosine) + pi) * 180 / pi;if (sine < 0 && cosine < 0)temp = (atan(sine / cosine) + pi) * 180 / pi;if (sine < 0 && cosine > 0)temp = (atan(sine / cosine) + 2 * pi) * 180 / pi;return(temp);}double ca5fm2(double a6m,double a5m,double a4m,double a4f,int shang) {double temp,sine1,cosine1;cosine1 = (a6m *a6m - a4m *a4m - a5m*a5m) / (2 * a4m * a5m);sine1 = sqrt(1 - cosine1 *cosine1);if (shang==0)sine1 = sine1*(-1);if (sine1 > 0 && cosine1 > 0)temp = a4f + (atan(sine1 / cosine1) * 180 / pi);if (sine1 > 0 && cosine1 < 0)temp = a4f + ((atan(sine1 / cosine1) + pi) * 180 / pi);if (sine1 < 0 && cosine1 < 0)temp = a4f + ((atan(sine1 / cosine1) + pi) * 180 / pi);if (sine1 < 0 && cosine1 > 0)temp = a4f + ((atan(sine1 / cosine1) + 2 * pi) * 180 / pi);return(temp);}double ca6fm2(double a4m ,double a4f,double a5m , double a5f) {double temp,sine1,cosine1;sine1 = a4m * sin(a4f * pi / 180) + a5m * sin(a5f * pi / 180); cosine1 = a4m * cos(a4f * pi / 180) + a5m * cos(a5f * pi / 180);if (sine1 > 0 && cosine1 > 0)temp = (atan(sine1 / cosine1) * 180 / pi);if (sine1 > 0 && cosine1 < 0)temp = ((atan(sine1 / cosine1) + pi) * 180 / pi);if (sine1 < 0 && cosine1 < 0)temp = ((atan(sine1 / cosine1) + pi) * 180 / pi);if (sine1 < 0 && cosine1 > 0)temp = ((atan(sine1 / cosine1) + 2 * pi) * 180 / pi);return(temp);}initscreen(){int gd=DETECT,gm;registerbgidriver(EGAVGA_driver);initgraph(&gd,&gm,"");}。