计算机硬件系统设计--运算器实验---里面的内容全部实现,对理解运算器工作原理有很大的帮助。
2021-11-28 18:03:02 692KB logisim 运算器实验
1
输入要求:稀疏矩阵的行、列和非零元素个数 以及每个非零元素在矩阵的位置 以三元组格式存储稀疏矩阵 输出要求:根据选项输出 稀疏矩阵的转置、加法、减法、乘法
2021-11-25 00:43:31 218KB 稀疏矩阵
1
#include #define maxsize 100 typedef struct { int i,j; //该非零元的行和列 int v; //该非零元的值 }triple; typedef struct { triple data[maxsize]; //非零元三元组表,data[0]未用 int rpos[maxsize]; int m,n,t; //矩阵的行数,列数和非零元个数 }tripletable; void convert() //矩阵的转置 { int k; tripletable A,B; printf("输入稀疏矩阵A的行数,列数和非零元个数:"); scanf("%d %d %d",&A.m,&A.n,&A.t); for(k=1;k<=A.t;k++) { printf("输入第%d个非0元素的行数,列数和值:",k); scanf("%d %d %d",&A.data[k].i,&A.data[k].j,&A.data[k].v); } B.m=A.m;B.n=A.n;B.t=A.t; if(B.t) { int p; int q=1,col; for(col=1;col<=A.n;++col) { for(p=1;p<=A.t;++p) { if(A.data[p].j==col) { B.data[q].i=A.data[p].j; B.data[q].j=A.data[p].i; B.data[q].v=A.data[p].v; ++q; } } } int shuru[100][100]={0}; for(k=1;k<=B.t;k++) { shuru[B.data[k].j][B.data[k].i]=B.data[k].v; } printf("输入为:\n"); for(k=1;k<=B.m;k++) { int l; for(l=1;l<=B.n;l++) printf("%d ",shuru[k][l]); printf("\n"); } int result[100][100]={0}; for(k=1;k<=B.t;k++) { result[B.data[k].i][B.data[k].j]=B.data[k].v; } printf("结果为:\n"); for(k=1;k<=B.n;k++) { int l; for(l=1;l<=B.m;l++) printf("%d ",result[k][l]); printf("\n"); } } } void add() //矩阵的加法 { int k; tripletable A,B; printf("输入稀疏矩阵A的行数,列数和非零元个数:"); scanf("%d %d %d",&A.m,&A.n,&A.t); for(k=1;k<=A.t;k++) { printf("输入第%d个非0元素的行数,列数和值:",k); scanf("%d %d %d",&A.data[k].i,&A.data[k].j,&A.data[k].v); } printf("输入稀疏矩阵B的行数,列数和非零元个数:"); scanf("%d %d %d",&B.m,&B.n,&B.t); for(k=1;k<=B.t;k++) { printf("输入第%d个非0元素的行数,列数和值:",k); scanf("%d %d %d",&B.data[k].i,&B.data[k].j,&B.data[k].v); } if(A.m!=B.m||A.n!=B.n) { printf("输入错误:A与B的行数或列数不相同,请重新输入\n"); return; } int a[100][100]={0}; for(k=1;k<=A.t;k++) { a[A.data[k].i][A.data[k].j]=A.data[k].v; } printf("A输入为:\n"); for(k=1;k<=A.m;k++) { int l; for(l=1;l<=A.n;l++) printf("%d ",a[k][l]); printf("\n")
2021-11-25 00:30:01 730KB 数据结构
1
稀疏矩阵运算器 有输入界面(图形或文字界面都可),能区分加法和转置;能处理任意输入的典型数据和进行出错数据处理(例如加法,当第一个矩阵和第二个矩阵的行数和列数不相等时,不能运算);必须采用三元组作存储结构,不能采用数组等形式;输出要求用矩阵的形式输出(即习题集136页的形式)
2021-11-24 20:07:27 84KB 稀疏矩阵 转置 实验报告
1
一、实验目的: 1. 掌握运算器的组成及工作原理; 2.了解4位函数发生器74LS181的组合功能,熟悉运算器执行算术操作和逻辑操作的具体实现过程; 3.验证带进位控制的74LS181的功能。 二、实验设备: EL-JY-II型计算机组成原理实验系统一套,排线若干。
2021-11-21 15:23:25 31KB 运算器实验
1
(1)参加运算的两个操作数均用补码表示。 (2)符号位作为数的一部分参加运算。 (3)被减数与减数的机器复数相加。 (4)判断是否溢出。
2021-11-19 18:03:30 59KB 计算机组成原理
1
2. 验证串行加法器逻辑实现 能设计 8 位可控加减法电路 3. 掌握快速加法器逻辑实现 能设计 4 位先行进位电路 能设计 4 位快速加法器 4. 理解组内先行,组间先行的基本原理 利用 4 位快速加法器构建 16 位,32 位快速加法器
1
C语言实现的稀疏矩阵运算器,通过用数据结构来实现(一部分),主要是矩阵的实现
2021-11-17 21:51:53 4KB 稀疏矩阵运算器
1
清华大学版《数据结构》第三次试验代码,原创
2021-11-17 21:46:50 5KB C语言 稀疏矩阵运算
1
计算机系统组成课程 脱机运算器 实验报告