技巧如下:
设备:联想电脑
软件:WPS2019
系统:Windows10
1、首先打开ppt,点击上方的“插入-智能图形”。
2、点击左侧的“矩阵”。
3、选中要的矩阵,点击“插入”。
4、选中其中的矩形框,点击上方的“格式”。
5、点击“填充”中的“图片或纹理”中的“本地图片”。
6、选中一个本地图片,点击“打开”。
7、最后依次填充图片,如下图所示,这样一个矩阵的样式就设计完成了。
//希望kutpbpb的回答能对你有所帮助!//《原创》该程序已调试,并可正确运行,可根据自己需要再作调整!
#include <iostream>
using namespace std
const int NUM = 5
//趣味矩阵类的声明;
class FunnyMatrix
{
public:
FunnyMatrix()
void GetSqure()
void GetSnake()
void GetCircleExToIn()
void GetCircleInToEx()
void PrintElem()
private:
int elem[NUM][NUM]
}
//类构造函数
FunnyMatrix::FunnyMatrix()
{
int i = 0,j = 0
for(i=0i<NUMi++)
for(j=0j<NUMj++)
elem[i][j]=i*NUM+j+1
}
void FunnyMatrix::PrintElem()
{
cout<<"\nOut the Matrix:\n"
int i=0,j=0
for(i=0i<NUMi++)
{
for(j=0j<NUMj++)
cout<<elem[i][j]<<" "
cout<<endl
}
}
void FunnyMatrix::GetSqure()
{
int i=0,j=0,temp[NUM][NUM]={0,0,0}
for(i=0i<NUM-1i++)
{
temp[0][0]=1
if(i%2==0)
{
//右移一步
temp[0][i+1]=temp[0][i]+1
//下移i+1步
for(j=1j<=i+1j++)
temp[j][i+1]=temp[j-1][i+1]+1
//左移i+1步
for(j=ij>=0j--)
temp[i+1][j]=temp[i+1][j+1]+1
}
else
{
//下移一步
temp[i+1][0]=temp[i][0]+1
//右移i+1步
for(j=1j<=i+1j++)
temp[i+1][j]=temp[i+1][j-1]+1
//上移i+1步
for(j=ij>=0j--)
temp[j][i+1]=temp[j+1][i+1]+1
}
}
for(i=0i<NUMi++)
for(j=0j<NUMj++)
elem[i][j]=temp[i][j]
}
void FunnyMatrix::GetSnake()
{
int i=0,j=0,k=0,temp[NUM][NUM]={0,0,0}
temp[0][0]=1
temp[NUM-1][NUM-1]=NUM*NUM
for(i=0i<NUM-1i++)
{
if(i%2==0)
{
//右移一步
temp[0][i+1]=temp[0][i]+1
//左下移
for(j=i,k=1j>=0j--,k++)
temp[k][j]=temp[k-1][j+1]+1
}
else
{
//下移一步
temp[i+1][0]=temp[i][0]+1
//右上移
for(j=i,k=1j>=0j--,k++)
temp[j][k]=temp[j+1][k-1]+1
}
}
for(i=NUM-1i>1i--)
{
if((NUM-1-i)%2==0)
{
//左移
temp[NUM-1][i-1]=temp[NUM-1][i]-1
//右上移
for(k=NUM-2,j=ij<=NUM-1j++,k--)
temp[k][j]=temp[k+1][j-1]-1
}
else
{
//上移一步
temp[i-1][NUM-1]=temp[i][NUM-1]-1
//左下移
for(k=NUM-2,j=ij<=NUM-1k--,j++)
temp[j][k] = temp[j-1][k+1]-1
}
}
for(i=0i<NUMi++)
for(j=0j<NUMj++)
elem[i][j]=temp[i][j]
}
void FunnyMatrix::GetCircleExToIn()
{
int i=0,j=0,k=0,temp[NUM][NUM]={0,0,0}
temp[0][0]=1
for(i=0i<NUM/2i++)
{
if(i!=0)
temp[i][i]=temp[i][i-1]+1
//右移
for(j=i+1j<NUM-ij++)
temp[i][j]=temp[i][j-1]+1
//下移
for(j=i+1j<NUM-ij++)
temp[j][NUM-1-i]=temp[j-1][NUM-1-i]+1
//左移
for(j=NUM-2-ij>=ij--)
temp[NUM-1-i][j]=temp[NUM-1-i][j+1]+1
//上移
for(j=NUM-2-ij>ij--)
temp[j][i]=temp[j+1][i]+1
}
if(NUM%2==1)
temp[NUM/2][NUM/2]=NUM*NUM
for(i=0i<NUMi++)
for(j=0j<NUMj++)
elem[i][j]=temp[i][j]
}
void FunnyMatrix::GetCircleInToEx()
{
int i=0,j=0,k=0,temp[NUM][NUM]={0,0,0}
temp[0][NUM-1]=NUM*NUM
for(i=0i<NUM/2i++)
{
if(i!=0)
temp[i][NUM-i-1]=temp[i-1][NUM-i-1]-1
//下移
for(j=i+1j<NUM-ij++)
temp[j][NUM-1-i]=temp[j-1][NUM-1-i]-1
//左移
for(j=NUM-2-ij>=ij--)
temp[NUM-1-i][j]=temp[NUM-1-i][j+1]-1
//上移
for(j=NUM-2-ij>=ij--)
temp[j][i]=temp[j+1][i]-1
//右移
for(j=i+1j<NUM-i-1j++)
temp[i][j]=temp[i][j-1]-1
}
if(NUM%2==1)
temp[NUM/2][NUM/2]=1
for(i=0i<NUMi++)
for(j=0j<NUMj++)
elem[i][j]=temp[i][j]
}
int main(void)
{
FunnyMatrix fm
cout<<"\n矩阵初始化信息:"
fm.PrintElem()
cout<<"\n第一种矩阵: "
fm.GetSqure()
fm.PrintElem()
cout<<"\n第二种矩阵: "
fm.GetSnake()
fm.PrintElem()
cout<<"\n第三种矩阵: "
fm.GetCircleExToIn()
fm.PrintElem()
cout<<"\n第四种矩阵: "
fm.GetCircleInToEx()
fm.PrintElem()
cout<<"\n\n!!!Hello World,kutpbpb!!!"/* prints !!!Hello World!!! */
return 0
}
问的很仔细啊,其实根据矩阵乘法的运算规则按着写就行了啊。如:
//a(mxn)*b(nxp)
double** MultiMatrix(double ** aMat,int m,int n,double ** bMat,int p)
{
//动态生成一个保存结果的二维数组result
//按矩阵的法则写 result[i][j]=a[i][k]*b[k][j]对k求和
//返回result
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)