==============================
假设程序号为001,
TI刀具双刃立铣刀直径为16,
T2钻头,
正方形深度为10,
T1长补号为H1,半径补偿号为D2,
T2长补号为H2
==============================
O001;(程序号)
G0 G90 G54 G17;(工件坐标系G54,选择XY平面)
G40 G80;(取消径补,取消循环)
N01;(程序段,方便区分与呼叫)
G0 G91 G30 X0 Y0 Z0;(换刀点)
T1;(选刀)
M6;(换刀)
S1200 M3;(转速+正转)
G0 X-15 Y15;(安全点)
G43 Z-10 H1;(快速下刀到加工深度)
M8;(冷却液开)
G1 G41 X0 Y0 D2 F50;(G1到第一点)
X40;(第二点)
Y-40;(第三点)
X0;(第四点)
Y0;(回到第一点)
G0 G40 X-15 Y15;(取消半径补偿并快速回到安全点)
G0 Z100;(提刀)
N02;
G0 G91 G30 X0 Y0 Z0;(换刀点)
T2;(选刀)
M6;(换刀)
S1200 M3;
G0 X20 Y-20;
G43 Z1 H2;
M8;(冷却液开)
G99 G81 Z-10 R1 F80;(钻孔)
G0 G80 Z100;(取消循环并提刀)
M9;(冷却液关)
M30;(结束)
准备材料
windows电脑、VC++(DEV_C++)
1打开桌面上的DEV_C++,进入如下界面:
2快捷键“CTRL+N”建立新源代码。
3输入源代码,下面给出最简单的Hello,world源代码:
#include <stdioh>
int main( ){
printf("Hello,World\n");
return 0;
}
4按下F11编译并且运行源代码,得到运行结果:
5点击任意键返回源代码编辑界面可以继续进行开发,接下来就是C语言语法的学习了。
这种运算比较麻烦,不过4种运算符号优先级相同应该简单写,我这里有个算法,能进行简单的四则运算,delphi的,供参考
Function Math_Evaluate(S0:string):Extended;
Function Evaluate(S0:String):Extended;Forward;
Procedure CleanUp(var s0:string);
Var
I:integer;
Begin
S0:=LowerCase(s0);
I:=Pos(' ',s0);
While I>0 Do
Begin
Delete(S0,I,1);
I:=Pos(' ',S0);
End;
End;
Function GetFirstOpp(Tot:Integer;S0:String):Integer;
Const
Sopps:String=('+-/^');
Var
I:Integer;
Begin
If Tot=0 Then Tot:=Length(S0);
For I:=1 To 5 Do
Begin
Result:=Pos(Sopps[i],S0);
If ((I<3) And (Result>0)) Then
If ((Result=1) Or (Pos(S0[Result-1],Sopps)>0)) Then
Result:=0;
If Result>0 Then
If Result<Tot Then
Exit;
End;
If Result>Tot Then
Result:=0;
End;
Function SpecialF(P1:Integer;S0:String):Extended;
Var
Operstr:String;
Arg:Extended;
Begin
Result:=0;
Operstr:=Copy(S0,1,P1-1);
If S0[Length(S0)]<>')' Then
Exit;
Operstr:=LowerCase(Operstr);
Arg:=Evaluate(Copy(S0,P1+1,Length(S0)-P1-1));
if Operstr ='sin' Then
Result:=Sin(Arg)
Else if Operstr ='cos' Then
Result:=Cos(Arg)
Else if Operstr ='tan' Then
Result:=Sin(Arg)/Cos(Arg)
Else if Operstr ='arctan' Then
Result:=Arctan(Arg)
Else if Operstr ='log' Then
Result:=Ln(Arg)/Ln(10)
Else if Operstr ='ln' Then
Result:=Ln(Arg)
Else if Operstr ='exp' Then
Result:=Exp(Arg)
Else if Operstr ='sqrt' Then
Result:=Sqrt(Arg)
{enter additional functions here}
Else Exit;
End;
Function GetValue(S0:String):Extended;
Begin
Result:=0;
If Length(S0)<1 Then Exit;
If Length(S0)=1 Then
Result:=StrToFloat(S0)
Else
Case s0[1] Of
'x':Result:=1;
'y':Result:=1;
'z':Result:=1;
Else Result:=StrToFloat(S0);
End;
End;
Procedure MatchBracket(Var I:Integer;S0:String);
Var
J,Len:Integer;
Begin
J:=1;
Len:=Length(S0);
Repeat Inc(I);
If I>Len Then Exit;
If S0[I]='(' Then Inc(J);
If S0[I]=')' Then Dec(J);
If J<0 Then Exit;
Until J=0;
End;
Function Calculate(P1:Integer;S0:String):Extended;
Var
V1,V2:Extended;
Begin
Result:=0;
V1:=Evaluate(Copy(S0,1,P1-1));
V2:=Evaluate(Copy(S0,P1+1,Length(s0)-P1));
Case S0[P1] Of
'+': Result:=V1+V2;
'-': Result:=V1-V2;
'/': Result:=V1/V2;
'': Result:=V1V2;
'^': Result:=Exp(V2Ln(V1));
Else Exit;
End;
End;
Function Evaluate(S0:string):Extended;
Var
P1,P2,Q1:Integer;
Begin
P1:=Pos('(',S0);
P2:=P1;
If P2>0 Then
MatchBracket(P2,S0);
If P1=1 Then
Begin
If P2=Length(S0) Then
Begin
Delete(S0,P2,1);
Delete(S0,1,1);
Result:=Evaluate(S0);
End Else
Result:=Calculate(P2+1,S0);
Exit;
End;
Q1:=GetFirstOpp(P1,S0);
If (P1+Q1=0) Then
Begin
Result:=GetValue(S0);
Exit;
End;
If Q1<>0 Then
Result:=Calculate(Q1,S0)
Else If Length(S0)>P2 Then
Result:=Calculate(P2+1,S0)
Else
Result:=SpecialF(P1,S0);
End;
Begin
Try
CleanUp(S0);
Result:=Evaluate(S0);
Except
Result:=0;
End;
End;
#include<stdioh>
#include<stdlibh>
#include<timeh>
int main()
{
int count[9]={0};//1,2,3,8面
int i,randvalue,maxcount,maxflag;
srand(time(NULL));
for(i=1;i<=10000;i++)
{
randvalue = rand()%8+1;
count[randvalue]++;
}
maxcount=count[1];
maxflag=1;
for(i=1;i<=8;i++)
{
if(maxcount<count[i])
{
maxcount = count[i];
maxflag =i;
}
}
printf("%d %d\n",maxflag,maxcount);
return 0;
}
你没有注明用什么语言写,不过看你问题估计是用C语言。
以下是代码:
/你可以以固定的顺序来显示币值,那样比较容易些/
#include <stdioh>
int main(void)
{
int cnt25,cnt10,cnt5; //三个整形变量分别表示对应硬币的个数
int total; //总值
printf("请输入25美分的硬币个数,按回车结束输入:");
scanf("%d",&cnt25);
printf("请输入10美分的硬币个数,按回车结束输入:");
scanf("%d",&cnt10);
printf("请输入5美分的硬币个数,按回车结束输入:");
scanf("%d",&cnt5);
/经过上面三次输入后,cnt25,cnt10,cnt5均已经有了对应的个数了,下面就可以来计算了/
total = (25 cnt25) + (10 cnt10) + (5 cnt5);
printf("总共为 %d 美分。\n",total);
return 0;
}
补充:程序中提示是以中文写的,这样容易看些。
不要以为很多,其实很简单的,你可以变换一些数字代入运行,就会进一步了解了。
#include <malloch>
#include <stdioh>
#include <stdlibh>
#define LEN sizeof(struct scorenode)
#define DEBUG
#include <stringh>
struct scorenode
{int number;/学号/
char name[10];/姓名/
float yuwen;/语文成绩/
float yingyu;/英语成绩/
float shuxue;/数学成绩 /
struct scorenode next;
};
typedef struct scorenode score;
int n,k;/n,k为全局变量,本程序中的函数均可以使用它/
/==============================================================================================/
score creat2311(void)
/函数creat2311,功能:创建链表,此函数带回一个指向链表头的指针/
{
scorehead;
score p1,p2,p3,max;
int i,j;
float fen;
char t[10];
n=0;
p1=p2=p3=(score )malloc(LEN);head=p3; /开辟一个新单元/
printf("请输入学生资料,输0退出!\n");
repeat1: printf("请输入学生学号(学号应大于0):");/输入学号,学号应大于0/
scanf("%d",&p1->number);
while(p1->number<0)
{getchar();
printf("输入错误,请重新输入学生学号:");
scanf("%d",&p1->number);}
/输入学号为字符或小于0时,程序报错,提示重新输入学号/
if(p1->number==0)
goto end;/当输入的学号为0时,转到末尾,结束创建链表/
else
{
p3=head;
if(n>0)
{for(i=0;i<n;i++)
{if(p1->number!=p3->number)
p3=p3->next;
else
{printf("学号重复,请重输!\n");
goto repeat1;
/当输入的学号已经存在,程序报错,返回前面重新输入/
}
}
}
}
printf("请输入学生姓名:");
scanf("%s",&p1->name);/输入学生姓名/
printf("请输入语文成绩(0~100):");/输入语文成绩,成绩应在0-100/
scanf("%f",&p1->yuwen);
while(p1->yuwen<0||p1->yuwen>100)
{getchar();
printf("输入错误,请重新输入语文成绩");/输入错误,重新输入语文成绩直到正确为止/
scanf("%f",&p1->yuwen);}
printf("请输入英语成绩(0~100):");/输入英语成绩,成绩应在0-100/
scanf("%f",&p1->yingyu);
while(p1->yingyu<0||p1->yingyu>100)
{getchar();
printf("输入错误,请重新输入英语成绩");/输入错误,重新输入英语成绩直到正确为止/
scanf("%f",&p1->yingyu);}
printf("请输入数学成绩(0~100):");/输入数学成绩,成绩应在0-100/
scanf("%f",&p1->shuxue);
while(p1->shuxue<0||p1->shuxue>100)
{getchar();
printf("输入错误,请重新输入数学成绩");
scanf("%f",&p1->shuxue);}/输入错误,重新输入数学成绩直到正确为止/
head=NULL;
while(p1->number!=0)
{
n=n+1;
if(n==1)
head=p1;
else
p2->next=p1;
p2=p1;
p1=(score )malloc(LEN);
printf("请输入学生资料,输0退出!\n");
repeat2:printf("请输入学生学号(学号应大于0):");
scanf("%d",&p1->number);/输入学号,学号应大于0/
while(p1->number<0)
{getchar();
printf("输入错误,请重新输入学生学号:");
scanf("%d",&p1->number);}
/输入学号为字符或小于0时,程序报错,提示重新输入学号/
if(p1->number==0)
goto end;/当输入的学号为0时,转到末尾,结束创建链表/
else
{
p3=head;
if(n>0)
{for(i=0;i<n;i++)
{if(p1->number!=p3->number)
p3=p3->next;
else
{printf("学号重复,请重输!\n");
goto repeat2;
/当输入的学号已经存在,程序报错,返回前面重新输入/
}
}
}
}
printf("请输入学生姓名:");
scanf("%s",&p1->name);/输入学生姓名/
printf("请输入语文成绩(0~100):");
scanf("%f",&p1->yuwen);/输入语文成绩,成绩应在0-100/
while(p1->yuwen<0||p1->yuwen>100)
{getchar();
printf("输入错误,请重新输入语文成绩");
scanf("%f",&p1->yuwen);}/输入错误,重新输入语文成绩直到正确为止/
printf("请输入英语成绩(0~100):");
scanf("%f",&p1->yingyu);/输入英语成绩,成绩应在0-100/
while(p1->yingyu<0||p1->yingyu>100)
{getchar();
printf("输入错误,请重新输入英语成绩");
scanf("%f",&p1->yingyu);}/输入错误,重新输入英语成绩直到正确为止/
printf("请输入数学成绩(0~100):");
scanf("%f",&p1->shuxue);/输入数学成绩,成绩应在0-100/
while(p1->shuxue<0||p1->shuxue>100)
{getchar();
printf("输入错误,请重新输入数学成绩");
scanf("%f",&p1->shuxue);}/输入错误,重新输入数学成绩直到正确为止/
}
本文来自: 乘风原创程序(>
以上就是关于求数控编程高手编个简单的程序,铣一个正方形出来,边长是40*40,求整个程序的流程。不用太复杂,我是新手全部的内容,包括:求数控编程高手编个简单的程序,铣一个正方形出来,边长是40*40,求整个程序的流程。不用太复杂,我是新手、C语言程序编程、怎样编程简单的计算器程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)