做木皮的网站,竞价系统,网站建设乙方义务,计算机网站设计锯齿形斜纹组织图#xff1a;
分析#xff1a; 前半齿长度k#xff0c;表示山谷到山峰的列数#xff0c;也就是锯齿的宽度#xff1b; 锯齿飞数s#xff0c;表示山峰到山峰的行数#xff0c;也就是锯齿的高度。
起始点相差4格#xff0c;也就是第一部分整体向上移动…锯齿形斜纹组织图
分析 前半齿长度k表示山谷到山峰的列数也就是锯齿的宽度 锯齿飞数s表示山峰到山峰的行数也就是锯齿的高度。
起始点相差4格也就是第一部分整体向上移动4格即可得到第二部分同样道理第二部分向上移动4格即可得到第三部分
一、求出N1和N2 其中W为以一个完整循环中的锯齿数V为一个锯齿内的经纱根数。 锯齿形之所以有个上升的趋势是因为下降的高度和上升的高度有一个差即S也就是少下降了S根故上升的山峰高度差为S。 核心代码如下 aN1;bs;while(a!b) //当ab时结束{if(ab) //如果ab则aa-b{aa-b;}else //否则babb-a{bb-a;}}wN1/a;v(2*k-2)-s;N2w*v;printf(w:%d\n,w);printf(v:%d\n,v);printf(N1:%d\n,N1);printf(N2:%d\n,N2);效果图如下
二、求F1第一段锯齿
可以把整体分为多个部分每个锯齿的行为N1列为V。即每一个锯齿都为N1×V的子矩阵最终的组织矩阵就是多个子矩阵并列即可。 为了形成锯齿K和S之间必须满足以下关系 1对第1列元素赋值 其中i1,2,3…,N1j2,3,4…,K
2对第2到k列进行赋值 其中i2,3…,N1j2,3,4…,K
3对第k1列到V列进行赋值 Ⅰ转变飞数f由正转为负 Ⅱ之后再进行赋值i1,2,3,…,N1jK1K2…V
核心代码如下
/*
对第1列进行赋值
*/i1;//先对第一列赋值从第一列的第一行开始for(j0;jm-1;j){while(c[j]0){x[N1-i1][1]1;//因为是分子所有值都赋值为1c[j]--;i;}while(d[j]0){x[N1-i1][1]0;//因为是分母所有值都赋值为0d[j]--;i;}}/*
对第2列到第k列 进行赋值
*/for(j2;jk;j){for(i1;iN1;i){if((if)N1) x[i][j] x[if-N1][j-1];else x[i][j]x[if][j-1];}}fN1-f;//求kj列到N2列右半部分的飞数需要将负值转变为正数
/*
对第k1列到V列 进行赋值
*/for(jk1;jv;j){for(i1;iN1;i){if((if)N1) x[i][j] x[if-N1][j-1];else x[i][j]x[if][j-1];}}
效果图如下
三、根据F1求F2第二段锯齿以及剩余的锯齿的值
锯齿飞数s为正向上移动s为负向下移动 其中i1,2,…, N1j1,2,…,V
优化公式其中i1,2,....,N1j1,2,...,vk1,2,...,w-1
程序流程图如下
四、最终优化代码如下
#include iostream
#includestdio.h
using namespace std;int main()
{int i,j,N1,N2,m,w,v,k,s,a,b,f;int c[10],d[10],x[100][100]{0};printf(please input m:);scanf(%d,m);for(i0;im;i){printf(please input C[%d]:,i1);scanf(%d,c[i]);printf(please input D[%d]:,i1);scanf(%d,d[i]);}printf(please input K:);scanf(%d,k);printf(please input S:);scanf(%d,s);printf(please input f:);scanf(%d,f);N10;for(i0;im-1;i){N1N1c[i]d[i];}/*
求N1和s的最大公约数
*/aN1;bs;while(a!b) {if(ab) {aa-b;}else {bb-a;}}wN1/a;v(2*k-2)-s;N2w*v;/*
对第1列进行赋值
*/i1;//先对第一列赋值从第一列的第一行开始for(j0;jm-1;j){while(c[j]0){x[N1-i1][1]1;//因为是分子所有值都赋值为1c[j]--;i;}while(d[j]0){x[N1-i1][1]0;//因为是分母所有值都赋值为0d[j]--;i;}}/*
对第2列到第k列 进行赋值
*/for(j2;jk;j){for(i1;iN1;i){if((if)N1) x[i][j] x[if-N1][j-1];else x[i][j]x[if][j-1];}}fN1-f;
/*
对第k1列到V列 进行赋值
*/for(jk1;jv;j){for(i1;iN1;i){if((if)N1) x[i][j] x[if-N1][j-1];else x[i][j]x[if][j-1];}}for(k1;kw-1;k){for(j1;jv;j){for(i1;iN1;i){if(isN1){x[i][k*vj]x[is-N1][(k-1)*vj];}else x[i][k*vj]x[is][(k-1)*vj];}}}/*
输出二维数组a[i][j]
*/for(i1;iN1;i){for(j1;jN2;j){printf(%5d,x[i][j]);}printf(\n);}getchar();return 0;
}
运行结果如下