⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 飞翔理科ii-new.txt

📁 一个 数学工具集 有菜单界面 单色显示
💻 TXT
📖 第 1 页 / 共 4 页
字号:
	if (width>=20)read_x=20;else read_x=width;
	if (height>=80)read_y=80;else read_y=height;
	ClearScreen();
	for(i=0;i<read_y;i++)
		{
		if(!imagetype)
			{
			fseek(fp,imageDataFrom,0);fread(READto,1,1600,fp);WriteBlock(0,0,160,80,1+fanxian,READto);break;
			}
		else if(imagetype==1)Seek=imageDataFrom+x+y*width;
		else if(imagetype==2)Seek=imageDataFrom+width*(height-(y+1))+x;
		
		fseek(fp,Seek,0);
		fread(READto,1,read_x,fp);
		if(imagetype==1)WriteBlock(0,i,read_x*8,1,1+fanxian,READto);
		else if(imagetype==2)WriteBlock(0,i,read_x*8,1,1+fanxian,READto);
		y++;//////////
		}Refresh();

}

long viewBlock()
{
char viewBlock_width;
char viewBlock_height;
char viewBlock_x;
char viewBlock_y;

if(FileType!=2)
	{
	viewTEXT();
	return -1;
	}

//Inkey();

fseek(fp,BlockOffset+BlockID*9,0);
KEY=getc(fp);
dataBegin=getc(fp)+getc(fp)*256+getc(fp)*256*256;
dataEnd=getc(fp)+getc(fp)*256+getc(fp)*256*256;

if (KEY==0)
	{
	viewTEXT();
	if(FileType==1)return -1;
	return 0;
	}
else 
	{
	fseek(fp,dataBegin,0);
	viewBlock_width=getc(fp);
	viewBlock_height=getc(fp);
	viewBlock_x=0;
	viewBlock_y=0;
	do	{
		printimage(dataBegin+2,filedata,viewBlock_width,viewBlock_height,viewBlock_x,viewBlock_y,1,0);
		do KEY=getchar(); while((KEY!=23)&&(KEY!=22)&&(KEY!=21)&&(KEY!=20)&&(KEY!=27)&&(KEY!=14)&&(KEY!=19));
			if(KEY==27)break;
			else if((KEY==23)&&(viewBlock_x>0))viewBlock_x--;
			else if((KEY==22)&&(viewBlock_x+20<viewBlock_width))viewBlock_x++;
			else if((KEY==20)&&(viewBlock_y>0)){if(viewBlock_y>=8)viewBlock_y=viewBlock_y-8;else viewBlock_y=0;}
			else if((KEY==21)&&(viewBlock_y+80<viewBlock_height)){if(viewBlock_y+88<=viewBlock_height)viewBlock_y=viewBlock_y+8;else viewBlock_y=viewBlock_height-80;}
		ReleaseKey(23);ReleaseKey(22);ReleaseKey(20);ReleaseKey(21);
		}while((KEY!=27)&&(KEY!=14)&&((KEY!=19)))
	1;
	return 1;
	}

}



void viewtextorimagedir()
{
char FileType_info;

FileType_info=FileType;

if(FileType==2)
	{
	fseek(fp,VTorId_add+7,0);
	VTorId_minID=getc(fp)+getc(fp)*256;
	getc(fp);getc(fp);getc(fp);
	VTorId_maxID=getc(fp)+getc(fp)*256;
	VTorId_i=VTorId_minID;	
	}

else{
	viewBlock();
	if(FileType!=2)return;
	}


while(1)
	{
	if(!fp)return;
	if(FileType_info==2){KEY=0;BlockID=VTorId_i;viewBlock();if(FileType==1)return;}
	
	if(VTorId_maxID==VTorId_minID)
		{
		break;
		}
	else 
		
		{
		if(KEY==27){KEY=0;break;}
		else if((KEY==14)&&(VTorId_i<VTorId_maxID))VTorId_i++;
		else if((KEY==19)&&(VTorId_i>VTorId_minID))VTorId_i--;
		//else if(VTorId_i==VTorId_maxID)break;
		}
	
	}

}


void viewEBK()
{
char c;
dir_p=0;

ebk_v_BEGIN=EBK_only_for_mark_begin;
ebk_v_END=EBK_only_for_mark_end;
if(FileType==2)
	{
	c=0;
	dir_add=15;
	CurrentSubDir_p[dir_p]=0;
	fromSubDir=0;
	fseek(fp,3,0);
	BlockOffset=getc(fp)+getc(fp)*256+15;	
	}

else{viewtextorimagedir();if(FileType!=2)return;}

while(1)
	{
	if(!fp)return;
	CurrentSubDir=CurrentSubDir_p[dir_p];
	fromSubDir=CurrentSubDir-(CurrentSubDir%5);
	
	fseek(fp,dir_add,0);
	Num_of_SubDir=getc(fp);
	parentdir=getc(fp)+getc(fp)*256;
	
	
	dir_list();
	CurrentSubDir_Name_p=SubDir_name[CurrentSubDir-fromSubDir];
	while(1)
		{
		if(c!=29)
			{if(((c=getchar())==13)||(c==27))break;}
		else {dir_list();c=getchar();}
		if((c==20)&&(CurrentSubDir>0))
			{
			CurrentSubDir--;
			if(CurrentSubDir<fromSubDir){fromSubDir=fromSubDir-5;dir_list();}
			else {
				TextOut(12,(CurrentSubDir-fromSubDir+2)*13+2,"                         ",1);
				print_short(SubDir_name[CurrentSubDir+1-fromSubDir],len_SubDir,12,(CurrentSubDir-fromSubDir+2)*13+2,0,0);
				print_short(SubDir_name[CurrentSubDir-fromSubDir],len_SubDir,12,(CurrentSubDir-fromSubDir+1)*13+2,1,0);
				Refresh();
				}
			}
		else if((c==21)&&(CurrentSubDir+1<Num_of_SubDir))
			{
			CurrentSubDir++;
			if(CurrentSubDir>=fromSubDir+5){fromSubDir=fromSubDir+5;dir_list();}
			else {
				TextOut(12,(CurrentSubDir-fromSubDir)*13+2,"                         ",1);
				print_short(SubDir_name[CurrentSubDir-1-fromSubDir],len_SubDir,12,(CurrentSubDir-fromSubDir)*13+2,0,0);
				print_short(SubDir_name[CurrentSubDir-fromSubDir],len_SubDir,12,(CurrentSubDir-fromSubDir+1)*13+2,1,0);
				Refresh();
				}
			}
		else if ((c==14)&&(fromSubDir+5<Num_of_SubDir))
			{
			
			if(CurrentSubDir+5<Num_of_SubDir)
				{CurrentSubDir=CurrentSubDir+5;fromSubDir=fromSubDir+5;}
			else{CurrentSubDir=Num_of_SubDir-1;fromSubDir=fromSubDir+5;}
			dir_list();
			}			
		else if ((c==19)&&(CurrentSubDir>4))
			{
			CurrentSubDir=CurrentSubDir-5;
			fromSubDir=fromSubDir-5;
			dir_list();
			}
		else if(c==22)	
			{
			TextOut(12,(CurrentSubDir-fromSubDir+1)*13+2,"                          ",1);
			print_short(CurrentSubDir_Name_p,len_SubDir,12,(CurrentSubDir-fromSubDir+1)*13+2,1,0);
			Refresh();
			}
		//else if(c==29){if(DELETEorNOT())return;}

		CurrentSubDir_p[dir_p]=CurrentSubDir;
		}
	if (c==27)
		{
		fseek(fp,dir_add+1,0);
		parentdir=getc(fp)+getc(fp)*256;
		if(parentdir==0) {if(EXITorNOT())return;}
		else {dir_add=parentdir;CurrentSubDir_p[dir_p]=0;dir_p--;fromSubDir=CurrentSubDir_p[dir_p]/5*5;}
		}
	else if (c==13)
		{
		dir[dir_p]=SubDir_name[CurrentSubDir-fromSubDir];
		fseek(fp,SubDir_add[CurrentSubDir-fromSubDir],0);
		if(getc(fp)==0){VTorId_add=SubDir_add[CurrentSubDir-fromSubDir];viewtextorimagedir();if(FileType==1)return;}
		else {dir_add=SubDir_add[CurrentSubDir-fromSubDir];CurrentSubDir_p[dir_p]=CurrentSubDir;dir[dir_p++]=SubDir_name[CurrentSubDir-fromSubDir];CurrentSubDir=0;fromSubDir=0;}
		
		}
	}
}


char readAfile()
{
char FileTypeS[5];
int Mem_add1;
int Mem_add2;
char i;

if(FileType==255){/*viewTEXT();*/viewEBK();FileType=0;fclose(fp);fp=0;return 1;}
else if(!fopen_fp())return 0;
FileType=0;FileTypeS[0]=0;
Mem_add1=filestr;Mem_add2=0;

	FileType=2;
	viewEBK();

if(fp){fclose(fp);fp=0;}
return 1;
}

void Text()
{
char i;
long temp_var;
char c;
if ((fp=fopen(textfilename,"r"))==0)
	{
	WriteWin(1);
	WriteMenu(subject+1);
	TextOut(3,35,"文件打开错误!",1);
	TextOut(3,50,"请重新下载该文件。",1);
	TextOut(3,65,"错误文件:",1);
	TextOut(63,65,textfilename,1);
	Refresh();
	getchar();
	return;
	}
    else {
SetScreen(1);
c=0;pathpoint=0;
DatFileIsOK=0;
fclose(fp);
if(CheckKey(SHIFT_KEY))FileType=255;

	readAfile();
}
}


//工具
//=========================================================================================
//数学

//分数化简
void fenshu()
{
char zi[9],mu[9];
long fenzi,fenmu;
long p,q;
long a,b,temp,x,i;
WriteWin(1);
WriteMenu(1);
Block(10,55,70,56,1);
Rectangle(12,38,68,53,1);
Rectangle(12,58,68,73,1);
fenzi=InputNum(15,40,6);   
fenmu=InputNum(15,60,6);
a=fenzi;b=fenmu;
while(b!=0)
{
temp=a%b;
a=b;
b=temp;
}
fenzi=fenzi/a;
fenmu=fenmu/a;
Block(92,35,140,76,0);
TextOut(73,50,"=",1);
Block(80,55,140,56,1);
Rectangle(82,38,138,53,1);
Rectangle(82,58,138,73,1);
sprintf(zi,"%d",fenzi);
sprintf(mu,"%d",fenmu);
TextOut(84,40,zi,1);
TextOut(84,60,mu,1);
Refresh();
while(getchar()!=27);
}

long sqr(long x)
{ long i;
for (i=1;;i++)
{if((i*i)>x) return (i-1);}
}
char ispnum(long n)
{ char c,i;
c=1;
i=0;
if (n==1){c=0;return c;}
else if (n==2||n==3||n==5){c=0;return c;}
else if (n%2==0){return c;}
else if (n%3==0){return c;}
else if (n%5==0){return c;}
else if (n<49){c=0;return c;}
else {
for (i=7;i<=sqr(n);i=i+30)
{if (n%i==0){return c;}
else if (n%(i+4)==0){return c;}
else if (n%(i+6)==0){return c;}
else if (n%(i+10)==0){return c;}
else if (n%(i+12)==0){return c;}
else if (n%(i+22)==0){return c;}
else if (n%(i+24)==0){return c;}
}
}
c=0;
return c;
}
//==============================================================
//根式化简
void genshi()
{
long i,w,m;
long a,b,d,n,gb,ga;
b=1;
a=1;
WriteWin(1);
WriteMenu(1);
WriteBlock(8,38,7,16,1,gen);
Block(15,38,90,38,1);
Rectangle(16,40,88,54,1);
Refresh(); 
n=InputNum(18,41,5);   
w=1;m=1;
while(ispnum(n)){
for(i=2;i<=sqr(n);i++){
if(n%i==0){
if (n%(i*i)==0){
w=w*i;n=n/(i*i);}
else {n=n/i;m=m*i;}
break;}
}
}
if (w==1){gb=n*m;ga=1;a=gb;b=ga;}
else if(n*m==1)
{ga=w;gb=1;a=gb;b=ga;}
else {gb=n*m;ga=w;a=gb;b=ga;}
end:
WriteBlock(48,58,7,16,1,gen);
Block(55,58,90,58,1);
Rectangle(8,60,45,74,1);
Rectangle(53,60,88,74,1);
WriteNum(10,61,b);
WriteNum(55,61,a);
Refresh();
while(getchar()!=27);
}
//=========================================================================
//因数分解
void yinshu()
{
long n,i;
WriteWin(1);
WriteMenu(1);
TextOut(3,35,"输入一个数:",1);
n=InputNum(69,35,5);
SetScreen(1);
printf("======= 分解质因数 =======");
Locate(1,0);
printf("%d=",n);
for(i=2;i<=n;i++)
{
while(n!=1)
{
if(n%i==0)
{
printf("%d*",i);
n=n/i;
}
else
break;
}
}
printf("%d",n);
while(getchar()!=27);
}
//===================================================================
//约数倍数
void yueshu()
{
//long a,b,num1,num2,temp,gongyue,gongbei;
long a,b,c,d,t,aa,bb;
WriteWin(1);
WriteMenu(1);
TextOut(3,35,"输入第一个数:",1);
Refresh();
c=InputNum(81,35,5);
TextOut(3,50,"输入第二个数:",1);
Refresh();
d=InputNum(81,50,5);
a=c;
b=d;
while(b!=0)
{
  t=a%b;
  a=b;
  b=t;
}
aa=a;
bb=c*d/a;
WriteWin(1);
WriteMenu(1);
TextOut(3,35,"数      ,      的",1);
TextOut(3,50,"最大公约数:",1);
TextOut(3,65,"最小公倍数:",1);
WriteNum(15,35,c);
WriteNum(57,35,d);
WriteNum(69,50,aa);
WriteNum(69,65,bb);
Refresh();
while(getchar()!=27);
}
//========================================================
//判断质数
void panduanzhishu()
{
long na;
char c;
loop2:
WriteWin(1);
WriteMenu(1);
TextOut(3,35,"输入正整数:",1);
na=InputNum(69,35,6);
if(na<=1)
	{
	TextOut(3,50,"请输入正整数!",1);
	Refresh();
	getchar();
	goto loop2;
	}
else 
	{
	c=ispnum(na);
	if (c==1){TextOut(3,50,"您输入的是合数!",1);}
	else {TextOut(3,50,"您输入的是质数!",1);}
	Refresh();
	}
while(getchar()!=27);
}

//寻找质数
void xunzhaozhishu()
{
long i;
long na,nb,c;
loop3:
WriteWin(1);
WriteMenu(1);
TextOut(3,35,"从:",1);
na=InputNum(21,35,3);
TextOut(3,50,"到:",1);
nb=InputNum(21,50,3);
if(na==0||nb==0||na>nb){
TextOut(3,65,"输入错误!",1);
Refresh();
getchar();
goto loop3;}
else{
SetScreen(1);
printf("=========寻找质数=========");
printf("从%d到%d质数有:\n",na,nb);
for(i=na;i<=nb;i++)
{if (Inkey()==ESC_KEY) {break;}
c=ispnum(i);
if(c==0){printf("%d,",i);
}
}
printf("\n计算完毕!");
getchar();}
}

//内角和
void neijiaohe()
{
	int n;
	long du;
	WriteWin(1);
	WriteMenu(1);
	TextOut(3,35,"输入多边形边数:",1);
	n=InputNum(99,35,3);	
	WriteNum(3,50,n);
	TextOut(24,50,"边形的内角和是",1);
	WriteNum(110,50,(n-1)*180);
	Refresh();
	getchar();
}

//对角线数
void duijiaoxian()
{
	
}

//=========================================================================================
//物理



//=========================================================================================
//化学
void fenzishi()//分子式计算
{
int x,y,z,js;
long shiliang;
js=0;
WriteWin(1);
WriteMenu(3);
TextOut(3,35,"请输入式量:",1);
Refresh();
shiliang=InputNum(69,35,3);
SetScreen(1);
Locate(0,0);
printf("计算中...");
for(x=0;x<(shiliang/12)+1;x++)
{
	for(y=0;y<(shiliang)+1;y++)
	{

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -