结构矩阵分析及程序设计习题
《C语言程序设计教程(第二版)》习题答案

1 【C语言】《C语言程序设计教程(第二版)》习题答案说明1. 本文所指的《C语言程序设计教程(第二版)》是李凤霞主编、北京理工大学出版社出版的,绿皮。
2 第1章程序设计基础知识一、单项选择题(第23页)1-4.CBBC 5-8.DACA二、填空题(第24页)1.判断条件2.面向过程编程3.结构化4.程序5.面向对象的程序设计语言7.有穷性8.直到型循环9.算法10.可读性11.模块化12.对问题的分析和模块的划分三、应用题(第24页)2.源程序:main(){int i,j,k; /* i:公鸡数,j:母鸡数,k:小鸡数的1/3 */printf("cock hen chick\n");for(i=1;i<=20;i++)for(j=1;j<=33;j++)for(k=1;k<=33;k++)if (i+j+k*3==100&&i*5+j*3+k==100)printf(" %d %d %d\n",i,j,k*3);}执行结果:cock hen chick4 18 788 11 8112 4 843.现计算斐波那契数列的前20项。
递推法源程序:main(){long a,b;int i;a=b=1;for(i=1;i<=10;i++) /*要计算前30项,把10改为15。
*/{printf("%8ld%8ld",a,b);a=a+b;b=b+a;}}递归法源程序:main(){int i;for(i=0;i<=19;i++)printf("%8d",fib(i));}fib(int i){return(i<=1?1:fib(i-1)+fib(i-2));}执行结果:1 123 5 8 13 21 34 5589 144 233 377 610 987 1597 2584 4181 6765 4.源程序:#include "math.h";main(){double x,x0,deltax;x=1.5;do {x0=pow(x+1,1./3);deltax=fabs(x0-x);x=x0;}while(deltax>1e-12);printf("%.10f\n",x);}执行结果:1.32471795725.源程序略。
C语言程序设计练习题之数组与结构体

一、单项选择题(在每小题列出的四个备选项中只有一个是符合题目要求的。
) 1.若有定义 int a[4] = {l, 2, 3, 4};则 a[a[0]+2 * a[2]-a[3]]等于A. 1B. 2C. 3D. 42 .设有数组定义:char array [ ]=〃China 〃;则数组array 所占的空间为A. 4个字节B. 5个字节C. 6个字节D. 7个字节3 .设有定义 char a 口=“xyz”, b □二{'x',' y',' z'};,则语句 cout«sizeof (a)«* ,,«sizeof (b) «endl;的输出结果为 A. 3 3B. 3 4C. 4 3D. 4 44 .设 int b[ ][5]={1,2,3,4,5,6,7};,则元素 b[l] [2]的值是A. 0B. 2C. 6D. 75 .数组定义为int a L2J [3j={1, 2, 3, 4, 5, 6},值为1的数组元素是A. a [0] [0] B, a [1] [1] C. a [1] [2] D. a [2] [3]6 . C++中,若有说明:int a[3] [4];则对a 数组元素的正确引用是9 .设 char x[][10] = {〃Windows 〃,〃dos 〃,〃unix 〃};,执行 cout«x[l][2];后输出的结果是A. nB. iC. oD. s10 .以下叙述中错误的是A.对于double 类型数组,不可以直接用数组名对数组进行整体输入或输出B.数组名代表的是数组所占存储区的首地址,其值不可改变C.当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界” 的出错信息D.可以通过赋初值的方式确定数组元素的个数11 .设#pragma pack(l),则结构体类型变量占用内存的字节数是A.各成员占用内存字节数之和B.第一个成员占用的内存字节数C.占用内存最大成员所需的字节数D.最后一个成员占用的内存字节数12 .下面程序运行后,输出结果是#include <iostream> using namespace std;数组与结构体A. a[2][4] B, a[l + l][0] 7 .定义二维数组并初始化,正确的是A.mta[][]={l,2,3,4,5,6}; C.inta[][3]={ 1、2,3,4,5,6}; 8 .以下数组定义中,不正确的是A. inta[2][3];C. int c[100][100]={0};C. a(2)(l)D. a[l,3] B.int a[2][]={ 1,2,3,4,5,6};D.inta[2,3]={ 1,2,34,5,6};B. mt b[][3]={0,l,2,3);D. mt d[3][]={]l,2},{l,2,3},{l,2,3,4}};21int/mtp[8]={l,2,3,4,5,6,7,8}J=0,j=0;while(i++<7)if(p[i]%2) j+=p[i];cout<<j«endl;return 0;}A. 15B. 16C. 20D. 3613.下面程序运行后,输出结果是#include <iostream>using namespace std;int main()int a[3][3]={{l,2},{3,4},{5,6}},ij,s=0;fbr(i=l;i<3;i++)砧i(J=0jv=i;j++)s+=a[i][j];cout«s«endl;retuin 0;}A. 18B. 19C. 20D. 2114.下面程序运行后,输出结果是#mclude<iostieam>using namespace std;int main(){ mt a[3][3]={l,2,3,4,5,6,7,8,9},n,sum=0;fdi(n=0;n<3;n++)sum=sum+a [n] [n];cout«sum«endl;return 0:}A. 6B. 12C. 15D. 4515.下面程序运行后,输出结果是#include <iostream>using namespace std;stmct abc{ mt a, b, c; };int main。
09级结构矩阵分析与程序设计(A)

石家庄铁道大学2011-2012学年第1学期2009 级本科班期末考试试卷(A)课程名称:结构矩阵分析和程序设计 任课教师: 考试时间: 120 分钟考试性质(学生填写):正常考试()缓考补考()重修()提前修读()一、是非题(将判断结果填入题后的括号内,正确的画“○”,错误的画“×”) (本大题分4小题,共12分)1.(本小题3分)平面刚架的计算程序Frame.bas 的功能很强大,不用作任何处理就能够直接求解内部含有铰结点的刚架结构。
( ) 2.(本小题3分)一般刚架单元的坐标转换矩阵具有对称性和奇异性。
( ) 3.(本小题3分)结构原始刚度矩阵的主对角元素恒为正数。
( ) 4.(本小题3分)一般刚架自由式单元的单元刚度矩阵为对称矩阵。
( ) 二.选择题(将选中答案的字母填入题后的括号内) (本大题分3小题,共14分)1.(本小题5分)在矩阵位移法中,某一单元最后在局部坐标系下的杆端力计算公式为: ( ) A.F {}[][]{}{}e e e e F T K F δ=+;B.F {}[][]{}{}e e e e F T K F δ=+; C.F {}[][]{}{}e e e e F T K F δ=+;D.F {}[][]{}{}e e e e F T K F δ=+. 2.(本小题4分)只需要对平面刚架的计算程序Frame.bas 中的某些变量赋以恰当的数值,便可以用该程序近似求解平面桥架的静力问题,也就是说,只要某些参数赋值恰当,便可以用Frame.bas 程序计算平面桁架,此时: ( ) A.杆件的弯曲刚度和拉压刚度均取无穷大; B.杆件的弯曲刚度和拉压刚度均取较小值; C.杆件的弯曲刚度取较小值;拉压刚度取实际值; D.杆件的弯曲刚度取实际值;拉压刚度取较小值。
第1页(本试卷共6页)——————————————————密————封————线————内————答————题————无————效————————————学号: 姓名: 班级:2(4,5,6)3.(本小题5分)单 元 刚 度 矩 阵 中 元 素 k ij 的 物 理 意 义 是 : ( )A .当 且 仅 当 δi =1 时 引 起 的 与 δj 相 应 的 杆 端 力 ;B .当 且 仅 当 δj =1时 引 起 的 与 δi 相 应 的 杆 端 力 ;C .当 δj =1时 引 起 的 δi 相 应 的 杆 端 力 ;D .当 δi =1时 引 起 的 与 δj 相 应 的 杆 端 力。
建筑结构设计中的矩阵方法探究

建筑结构设计中的矩阵方法探究建筑结构设计,随着科技的不断发展,越来越多的新技术被运用到其中。
其中,矩阵方法是一种广泛应用于结构计算和分析领域的方法。
本文将探究建筑结构设计中的矩阵方法。
一、矩阵方法的概念矩阵方法是一种数学方法,是运用矩阵理论和计算机技术研究和处理工程结构问题的方法。
它将结构模型、荷载及边界条件等问题转化为矩阵及其运算的问题。
在建筑结构设计中,矩阵方法主要用于以下三个方面。
1. 结构分析在建筑结构设计的过程中,需要对结构进行分析,确定其受力情况、变形情况等。
这时就可以运用矩阵方法进行有限元分析、弹性分析、非线性分析等。
例如,在有限元分析中,可以将结构模型分成若干小区域,每个小区域都对应一个矩阵。
然后,通过矩阵的乘法和加法运算,就可以得到整个结构的受力情况和变形情况。
2. 结构设计在建筑结构设计的过程中,需要确定结构的形状、尺寸、材料等,并计算其承受荷载的能力。
这时就可以运用矩阵方法进行双向梁设计、板设计、柱设计等。
例如,在板设计中,可以将板模型分成一个个小单元,每个小单元都对应一个刚度矩阵。
然后,通过矩阵的加法和乘法运算,就可以得到整个板的刚度矩阵。
再运用弹性原理和平衡方程,就可以计算出板的变形和应力分布。
3. 结构优化在建筑结构设计的过程中,还需要对结构进行优化,以达到最优的设计方案。
这时就可以运用矩阵方法进行结构拓扑优化、参数优化等。
例如,在结构拓扑优化中,可以将结构模型分成若干小区域,每个小区域都对应一个单元。
然后,通过单元的添加、删除或材料的调整,就可以得到不同的结构方案。
再运用矩阵方法进行分析,就可以确定最优的设计方案。
二、矩阵方法的优点相比传统的手算方法,矩阵方法具有以下优点。
1. 精度高矩阵方法运用了现代数学和计算机技术,可以更准确地模拟结构受力的情况,得到更精确的计算结果。
2. 效率高矩阵方法运用了矩阵的运算规律,可通过计算机程序实现快速计算。
相比手算方法,矩阵方法可以大大提高计算效率。
结构矩阵分析原理与程序设计上机心得

结构矩阵分析原理与程序设计上机心得在结构分析中,把各项计算公式表达称矩阵形式,进行矩阵运算,称为矩阵方法。
再利用计算机对矩阵进行运算,就可以很快得到计算结果。
我们所编写的程序就是进行这项工作。
整个程序由各个子块组成:数组变量的定义,原始数据的输入、输出(input1),组集总刚(wsiff)、综合结点荷载的计算(load)、支承条件的引入(bound)、解方程的结点位移(gauss)、各单元最后杆端力的计算(nqm)。
这些就是结构矩阵分析的总体思路和流程.在程序编写中,首先是要细致,要在理解程序的基础上输入程序,知道每个变量的定义,每个子块的作用及其运算原理,结合PAD图理解,程序输错时可以在电脑提示下修改,最后使程序运行成功。
再者就是数据输入时的问题。
数据输入前要对结构中的节点单元进行编号,结构中的单元划分必须使个单元均质,等截面直杆;结点编号先编可动支座,再编不可动支座,这主要是因为程序使用前后处理结合法。
单元局部坐标系由小号到大号。
输入荷载时,若荷载与杆件成一定夹角,则需要把荷载分解成沿杆轴方向和垂直于杆轴方向的荷载,变成一个杆件上的两个荷载,按照表2.3进行两次输入,局部坐标系下荷载的正负也需要注意,例如例4.1中从结点左到右的单元上的荷载向上但是负值。
在输入直接结点荷载时若某非固定支座上有结点荷载,则该结点上与约束相对应的荷载分量可以输入任意值。
该结点上数据输入时需把各字母代表的含义搞清楚按照input1中的程序编写的输入顺序输入。
最后,我所做的修改程序题中一个是改为主一付零法,首要是知道其原理,即先把总刚中主元素换为1,使用r(k,k)数组,使用循环语句时i,j的循环范围,例如i是从1 到n,n是总刚阶数,在前面程序中已给出,可以直接使用。
修改弹性支座的过程中,关键是弹性支座输入时的处理,要先撤去弹性支座,使该支座在弹性约束方向上自由移动;第二步则需要把弹性支座信息输入,输入其弹性支座个数,编号(i),对应的位移变量编号(ibd(i)),刚度系数(sk(nk)),最后在结构刚度矩阵中【k】中与⊿i相对应的主元素kii加上弹性刚度系数k。
MATLAB程序设计期末复习题集

第1章 MATLAB系统环境一、选择题1.最初的MATLAB核心程序是采用()语言编写的。
A.FORTRAN B.C C.BASIC D.PASCAL2.2016年3月发布的MATLAB版本的编号为()。
A.MATLAB 2016Ra B.MATLAB R2016aC.MATLAB 2016Rb D.MATLAB R2016b3.下列选项中能反应MATLAB特点的是()。
A.算法最优 B.不需要写程序C.程序执行效率高 D.编程效率高4.当在命令行窗口执行命令时,如果不想立即在命令行窗口中输出结果,可以在命令后加上()。
A.冒号(:) B.逗号(,) C.分号(;) D.百分号(%)5.如果要重新执行以前输入的命令,可以使用()。
A.左移光标键(←) B.右移光标键(→)C.下移光标键(↓) D.上移光标键(↑)6.MATLAB命令行窗口中提示用户输入命令的符号是()。
A.> B.>> C.>>> D.>>>>7.plot(x,y)是一条()命令。
A.打印 B.输出 C.绘图 D.描点8.以下两个命令行的区别是()。
>> x=5,y=x+10>> x=5,y=x+10;A.第一个命令行同时显示x和y的值,第二个命令行只显示x的值B.第一个命令行同时显示x和y的值,第二个命令行只显示y的值C.第一个命令行只显示x的值,第二个命令行同时显示x和y的值D.第一个命令行只显示y的值,第二个命令行同时显示x和y的值9.下列命令行中,输出结果与其他3项不同的是()。
A.>> 10+20+... B.>> ...30 10+20+30C.>> 10+20+30%5 D.>> %10+20+3010.下列选项中,不是MATLAB帮助命令的是()。
A.lookfor B.lookfor –all C.search D.help二、填空题1.MATLAB一词来自的缩写。
结构矩阵分析原理与程序设计教学设计

结构矩阵分析原理与程序设计教学设计Part 1 简介结构矩阵分析法是一种结构分析的方法,它首先将结构拟成矩阵的形式,再通过进行矩阵运算实现对结构的分析。
这种方法既可以对结构的稳定性进行分析,也可以对结构的振动特性进行分析。
此文档将介绍结构矩阵分析原理以及如何将其运用到程序设计教学设计中,帮助学习者更好地理解该方法及其应用。
Part 2 原理介绍2.1 矩阵分析在数学中,矩阵是数字的一个矩形数组,它数值的每个位置都表示矩阵中与该位置相对应的实体属性或关系。
矩阵分析是研究矩阵基本性质的数学分支,通过矩阵的运算及相关算法,实现对结构的分析。
2.2 结构矩阵结构矩阵是用来描述结构中元素之间运动和力的关系的矩阵。
在结构中,节点和元素都可以表示为矩阵。
如果节点之间存在支承,在结构矩阵中则会有对应的值表示。
同样,如果元素之间存在刚度或压力,也会在结构矩阵中有对应的值表示。
2.3 结构稳定性分析使用结构矩阵分析法进行结构稳定性分析,需要通过求解结构的特征方程来获取结构的一些基本性质参数,如共振频率、振动模态等。
2.4 结构振动特性分析使用结构矩阵分析法进行结构振动特性分析,需要通过约束条件等来确定结构的初始位移状态,然后对结构矩阵进行特征值分解,同时还需要对得到的特征模态进行归一化,以获取结构的振动状态。
Part 3 程序设计教学设计3.1 设计目标和目的本教学设计旨在通过将结构矩阵分析原理运用到程序设计中,帮助学习者更好地理解该方法的原理以及实现方式。
本教学设计主要面向计算机科学专业的学生,旨在使其更好地学习程序设计基础知识。
3.2 设计过程•步骤1:介绍结构矩阵分析法的基本原理。
•步骤2:引导学习者设计结构矩阵分析程序,包括矩阵的输入、运算和输出。
•步骤3:引导学习者通过程序实现结构稳定性分析,包括计算结构的特征值、共振频率和振动模态等。
•步骤4:引导学习者通过程序实现结构振动特性分析,包括计算结构的初始位移状态、特征值分解和归一化处理。
结构力学(I)-结构静力分析篇6 矩阵位移法

用数字描述体系的位置,单元的属性。
10 / 105
第六章
例如
单元 FP
矩阵位移法
3(5,6)FP
2
1
2
2
结点
1
1(1,2) 单元方向 1
1
2(3,4)
2
1,2,3 ----结构结点编码(总码) (1,2,3) ----结点位移编码
1 2 ----杆端结点编码(局码)
1 2 ----单元编码
11 / 105
9 / 105
第六章
矩阵位移法
六、结构的离散化工作
将一个在荷载作用下的连续结构剖分成若干 个各自独立的单元,单元之间是由结点连接,用 此计算模型模拟原结构的受力和变形特性。 模型和原结构是有差别的,这个差别可以通 过单元的适当选取给予降低。 主要工作:单元的划分;体系的数字化。
直杆体系按自然选取杆件的汇交点、截面的 变化点、支撑点或荷载作用点作为结点,将结构 划分成一系列只在结点相连的单元集合。
EA l e
矩阵位移法
0
6 EI l2 4 EI l
0
12 EI l3 6 EI l2
EA l
0 12l EI 3 6lEI 2 0
12 EI l3 6 EI l2
0 0
EA l
0 12l EI 3
6 EI l2
0 6lEI 2
2 EI l
0 0
0 1 6 EI l2 2 2 EI 3 l 0 4 6lEI 5 2 4 EI 6 l
单元刚度方程
F k
e e
e
c语言程序设计教程课后题及模拟题参考答案

main()
{ int x,y;
scanf(“%d,%d”,&x,&y);
if (x*x+y*y>1000)
printf(“%d\n”,(x*x+y*y)/100);
else
printf(“%d\n”,x+y);
}
3.输入一个整数,判断它能否同时被3、5、7整除,并输出“yes”或“no”字样。
a1=a%10 ; a=a/10;
a2=a%10; a=a/10;
a3=a%10;
printf(“%d%d%d\n”, a1, a2, a3);
}
4.编写程序,读入3个double型数据,求它们的平均值,保留此平均值小数点后1位数,对小数点后第2位数进行四舍五入,最后输出结果。
#include "stdio.h"
7. (1)10,6,4 (2)6,9,15 (3)3,60,83
8. 55
习题3
3
1-5BDABC6-10ADCAC 11-12BB
3
1.3
2.0261
3.0x10
4. 2, 1互换a,b的值
5.6.6
6.–003
8.7
7.5.0,4,c=3<Enter>
8.i=10,j=20<Enter>
9.(1) 65
#include "stdio.h"
main()
{ float a, b, h, s;
a=10;b=20;
h=5;s=(a+b)*h/2;
printf("s=%f\n" , s );
MATLAB程序设计及应用(第二版)课后实验答案

MATLAB程序设计及应⽤(第⼆版)课后实验答案Matlab 课后实验题答案实验⼀ MATLAB 运算基础1. 先求下列表达式的值,然后显⽰MATLAB ⼯作空间的使⽤情况并保存全部变量。
(1) 0122sin851z e=+ (2) 221ln(1)2z x x =++,其中2120.455i x +??=??-?? (3) 0.30.330.3sin(0.3)ln , 3.0, 2.9,,2.9,3.022a a e e az a a --+=++=-- (4) 2242011122123t t z t t t t t ?≤,其中t =0:0.5:2.5 解:M ⽂件:z1=2*sin(85*pi/180)/(1+exp(2))x=[2 1+2*i;-.45 5];z2=1/2*log(x+sqrt(1+x^2)) a=-3.0:0.1:3.0;z3=(exp(0.3.*a)-exp(-0.3.*a))./2.*sin(a+0.3)+log((0.3+a)./2) t=0:0.5:2.5;z4=(t>=0&t<1).*(t.^2)+(t>=1&t<2).*(t.^2-1)+(t>=2&t<3) .*(t.^2-2*t+1)2. 已知:1234413134787,2033657327A B --==-求下列表达式的值:(1) A+6*B 和A-B+I (其中I 为单位矩阵) (2) A*B 和A.*B (3) A^3和A.^3 (4) A/B 及B\A(5) [A,B]和[A([1,3],:);B^2] 解:M ⽂件:A=[12 34 -4;34 7 87;3 65 7];B=[1 3 -1;2 0 3;3 -2 7]; A+6.*BA-B+eye(3) A*B A.*B A^3 A.^3 A/B B\A [A,B][A([1,3],:);B^2]3. 设有矩阵A 和B1234166789101769,111213141502341617181920970212223242541311A B-???==-???(1) 求它们的乘积C 。
石家庄铁道大学 结构力学 平面刚架静力分析的程序设计上机作业

结构矩阵分析程序设计上机作业专业桥梁工程班级试桥梁17姓名聂嘉瑜指导老师符立勇2020年5月30日结构矩阵分析程序设计上机作业(作业要求打印原题目、结果输出文件,画出最后内力图)一、调试frame程序,并验证程序的正确性1.验证程序正确性。
教材例2.1,与教材结果相比较;Plane Frame Structural Analysis***********************************Input Data================Structural Control Data---------------------------------nn ne nf nd ndf npj npe n4 3 2 1 2 1 3 6Nodal Coordinates-----------------------------Node x y1 4 42 8 43 0 44 4 0Element Information--------------------------------ELe.No. jl jr ea ei al1 1 3 2e+006 64000 42 1 2 2e+006 64000 43 14 2e+006 64000 4Nodal Load----------------------i mj xd yd md1 1 0 0 80Element Loads--------------------------i mf ind aq bq q1 q21 12 0 4 30 302 2 1 2 0 -100 03 3 1 2 0 80 0Boundary Conditions------------------------------------i ibd bd1 4 02 5 0Output Data=================nodal displacement----------------------------------Node No. u v fai1 5.02153e-005 -0.000260503 0.0004507452 2.51077e-019 1.25595e-019 -0.001104313 0 0 04 0 0 0 Element No.& Menber-End Force:----------------------------------------------------------Ele No. n(l) q(l) m(l) n(r) q(r) m(r)1 -25.1077 -67.6919 62.5956 25.1077 -52.3081 -31.82822 25.1077 62.5595 -50.2382 -25.1077 37.4405 -2.13163e-0143 130.251 -50.2153 67.6425 -130.251 -29.7847 -26.7813二、利用调试好的frame程序,计算下列各题1.利用程序计算教材第二章课后习题2.8;解:1.数据准备与输入对结构的结点、单元编号,并取结构坐标系如图所示。
数据结构程序设计-矩阵的运算

二.概要设计:
1、抽象数据类型定义如下: ADT SparseMatrix{ 数据对象D:D={aij|i=1,2,3…,m;j=1,2,3…,n; ai ∈ElemSet,m和n分别称为矩阵的行数和列数} 数据关系R: R={Row,Col} Row={<ai,j,ai,j+1>|1≤i≤m, 1≤j≤n-1} Col={<ai,ai+1,j>|1≤i≤m-1, 1≤j≤n} 基本操作 本程序中,用三元组顺序表作为存储结构。 (1)、CreatSMatrix (TSMatrix &M) 操作结果:创建矩阵M。 (2)、AddSMatrix(TSMatrix A,TSMatrix B,TSMatrix &C,int n) 初始条件:矩阵A和B的行数和列数对应相等。 操作结果:求矩阵A、B的和C=A+B。 (3)、SubMatrix (TSMatrix *a,TSMatrix *b) 初始条件:矩阵A和B的行数和列数对应相等。 操作结果:求矩阵A、B的和C=A+B。 (4)、MultiplicationMatrixPow (TSMatrix *a,TSMatrix *b,TSMatrix *c) 初始条件:矩阵A和B的行数和列数匹配 操作结果:求矩阵A、B的和C=A*B。 (5) OutputSMatrix(TSMatrix M) 初始条件:矩阵M已存在 操作结果:输出矩阵M 2、 本程序包含5个模块
for(i=1;i<=M->mu;i++)//输出矩阵 { for(j=1;j<=M->nu;j++) printf("%5d",a[i][j]); printf("\n"); } } //*************矩阵的求和运算*****************// int AddSMatrix(TSMatrix *M,TSMatrix *N,TSMatrix *Q)//求 采用三元组顺序表存储表示的稀疏矩阵M和N的和,结果赋给矩阵Q { int i,j,p,q,x=0,y=0; if((M->mu<=0)||(M->nu<=0)||(M->tu<=0)||(N->mu<=0)||(N>nu<=0)||(N->tu<=0))//判断行数列数非零元素个数是否符合匹配 return ERROR; if(M->mu!=N->mu||M->nu!=N->nu)//判断A与B的行列数 是否相等的 return ERROR; Q->mu=M->mu;//矩阵Q的初始化 Q->nu=M->nu; Q->tu=0; for(i=1;i<=Q->mu;i++) { for(j=1;j<=Q->nu;j++)//寻找矩阵M,N中非零元素相等 的行列 { for(p=1;p<=M->tu;p++)//求矩阵M行列中所对应的 非零元素的值 赋值给X { if((i==M->data[p].row)&&(j==M->data[p].col))// 如果i是矩阵M中非零元素行,j是其列 { x=M->data[p].e;
第9章 矩阵位移法-结构矩阵分析基础

阵位移法的符号表示方法和正负号规定,则(d) 式中相应符号应做如下变换
M AB = M i
M BA = M j
FQAB = −FQi
§9-2 单元刚度阵
杆件结构的离散化 9.2.1 单元与结点的划分和编码
由若干根杆件组成的结构称为杆件结构。使用 矩阵位移法分析结构的第一步,是将结构“拆散” 为一根根独立的杆件,这一步骤称为离散化。为方 便起见,常将杆件结构中的等截面直杆作为矩阵位 移法的独立单元,这就必然导致结构中杆件的转折 点、汇交点、支承点、截面突变点、自由端、材料 改变点等成为连接各个单元的结点。只要确定了杆 件结构中的全部结点,结构中各结点间的所有单元 也就随之确定了。
3)单元杆端力和杆端位移
单元杆端截面的内力和位移分别称为单元杆端 力和杆端位移。
下图所示为平面刚架中的单元 e ,其始端为i, 末端为j。
13
§9-2 单元刚度阵
f 3 ( 3)
f1 ( 1)
i
e
f 2 ( 2)
j f 6 ( 6)
y
f 5 ( 5)
x
f4 ( 4)
(a) 单元坐标系下的广义分量
Mi ( i)
(b)
7
§9-2 单元刚度阵
9.2.2 两种直角坐标系
结构离散化后,杆件单元的方向千差万别。在 作整体分析时,需要在结点处建立平衡方程,为此 又需要一个统一的计算基准坐标系。因此,这里引 入两套直角坐标系来建立后续需要研究的力和位移 等物理量之间的关系。
(1)单元坐标系
单元坐标系(又称局部坐标系)是单元分析时 使用的坐标系,它只与具体某一单元相对应。对结 构中任意单元 e ,本章约定其坐标系用 x − y表示; 坐标系原点取为该单元一端的端结点i(称为始结 点或始端);由原点指向另一端结点j(称为末结 点或末端)的方向,为杆轴 x 坐标正向,记作x (e) ;
结构矩阵02

2.8试填写计算如图3所示刚架的的原始数据,并打印出结果。
已知各杆27100.3m kN E ⨯=;横梁:412104.0,35.0m I m A ==;立柱:422201.0,24.0m I m A ==。
1、 数据输入4, 3, 1, 1,2 ,3 ,2 1, 0.0, 0.0 2, 0, 4.0 3, 6, 4.0 4, 6, 0.0 1, 1, 2, 7.2E6,3E5 2, 2, 3, 10.5E6, 1.2E6 3, 3, 4, 7.2E6, 3.0E5 1, 1, 10, 0.0, 0.0 2, 3, -194305, 0.0, -2618 3,4,1963.5,0,5236 1, 1, 1, 2.0. 0.0, -15, 0.0 2, 2, 2, 0.0, 6.0, -10, -10 1, 2, 0.0 2, 3, 0.02、 数据输出plane frame structural analysis ************************* input data=============== structural control data --------------nn ne nf nd nedf npj npe n 4 3 0 2 5 2 2 12 nodal coordinates --------------- node x y②①③3 1241 0 02 0 43 6 44 6 0element information-------------------ele.no. jl jr ea ei al1 12 7200000 300000 42 23 10500000 1200000 63 34 7200000 300000 4nodal load-------------------i mj xd yd md1 1 10 0 02 3 20 0 0element loads-----------------------i mf ind aq bq q1 q21 1 12 0 -15 02 2 2 0 6 -10 -10boundary conditions-----------------------i ibd bd1 2 02 3 03 10 04 11 05 12 0.0174Output Data===============Nodal Displacement----------------Node No. u v fai1 4.13464494569759E-02 1.67180043383951E-18 -9.69348669939494E-192 3.93837418926928E-02 9.2877801879973E-05 -8.25798226585989E-043 3.93694561784071E-02 -1.26211135213307E-04 1.88472808920349E-034 4.5E-19 -2.27180043383953E-18 0.0174Element No.&member-end force:======================Ele No. n(l) q(l) m(l) n(r) q(r) m(r)------------------------1 -167.180043383948 -10.0000000000001 89.4348669939495 167.180043383948 25.0000000000001 -19.43486699394892 24.9999999999955 -167.180043383948 19.4348669939492-24.9999999999955 227.180043383948 1253.645393309743 227.180043383948 45.0000000000001 -1253.64539330974 -227.180043383948 -45.0000000000001 1073.645393309743、绘制内力图M图Q图N图2.9试完成图4所示结构原始数据的填写,打印出结果,并绘内力图。
结构矩阵分析与程序设计(连续梁vb代码)

'================================================'Structural Analysis Program For Continous Beam'================================================Option ExplicitPublic n As Integer, ld As IntegerPublic ne As Integer, nw As Integer, jl As Integer, jr As Integer, nld As Integer, kw As Integer Public ac As Double, kc As Integer, npj As Integer, npe As IntegerPublic ei(20) As Double, al(20) As Double, eil(20) As Double, r(30, 2) As DoublePublic p(21, 60) As Double, mj(20) As Integer, qj(20) As Double, fq(20, 2) As Double Public fm(20, 2) As Double, ff(6) As Double, mf(20) As Integer, ind(20) As IntegerPublic aq(20) As Double, bq(20) As Double, q1(20) As Double, q2(20) As DoublePublic inposition(100) As Integer'================================================'Main Program'================================================Sub beam()Open "h:\juzheng\连续梁\br4.1.txt" For Input As 2Open "h:\juzheng\连续梁\bw4.1.txt" For Output As 3Call data1Call wstiffld = 1Do While ld <= nldinposition(ld) = Seek(2)Call input1(ld)Call load(ld)ld = ld + 1LoopCall boundCall bgaussCall qmeClose 2Close 3End Sub'================================================'SUB-1'================================================Sub data1()Dim i As IntegerInput #2, n, ne, nw, jl, jr, nld, kw, kc, acIf (kc = 0) ThenPrint #3, "Influnence Line Values Of Internal", "Force"ElsePrint #3, "Analysis Of Continous Beam Structurs"End IfPrint #3,Print #3, "Input Data"Print #3,Print #3, "Control Data"Print #3, "*********************************************************************" Print #3, "n"; Spc(4); "ne"; Spc(4); "nw"; Spc(3); "jl"; Spc(2); "jr"; Spc(3); "nld"; Spc(3); "kw"; Spc(3); "kc"; Spc(2); "ac"Print #3, "*********************************************************************" Print #3, n; Spc(2); ne; Spc(2); nw; Spc(2); jl; Spc(2); jr; Spc(2); nld; Spc(2); kw; Spc(2); kc; Spc(2); acPrint #3,Print #3, "Element Information"Print #3, "Ele.No"; Spc(5); "EI"; Spc(5); "L"; Spc(7); "EI/L"Print #3,For i = 1 To neInput #2, i, ei(i), al(i)eil(i) = ei(i) / al(i)Print #3, Spc(2); i; Spc(3); ei(i); Spc(3); al(i); Spc(5); eil(i)Next iEnd Sub'================================================'SUB-2'================================================Sub wstiff()Dim k As Integerr(1, 1) = 4# * eil(1)r(1, 2) = 2# * eil(1)r(n, 1) = 4# * eil(n - 1)r(n, 2) = 0#For k = 2 To n - 1r(k, 1) = 4# * (eil(k - 1) + eil(k))r(k, 2) = 2# * eil(k)Next kEnd Sub'============================================'SUB-3 Read And Print Loading Information'============================================Sub input1(ld)Dim i As IntegerInput #2, npj, npeIf npj <> 0 ThenFor i = 1 To npjInput #2, i, mj(i), qj(i)Next iEnd IfIf npe <> 0 ThenFor i = 1 To npeInput #2, i, mf(i), ind(i), aq(i), bq(i), q1(i), q2(i)Next iEnd IfIf (kw = 0) ThenPrint #3, "Number Of Loading Condition", "ld="; ldPrint #3, "结点荷载数", "非节点荷载作用单元数"Print #3, Spc(4); npj; Spc(10); npePrint #3, "Nodal Loads"Print #3, "No."; Spc(5); "mj"; Spc(6); "qj"For i = 1 To npjPrint #3, i; Spc(5); mj(i); Spc(6); qj(i)Next iPrint #3,Print #3, "Element Loads"Print #3, "No."; Spc(8); "mf"; Spc(7); "ind"; Spc(6); "aq"; Spc(7); "bq"; Spc(6); "q1"; Spc(7); "q2"Print #3,For i = 1 To npePrint #3, "===================================================================== ===="Print #3, Spc(2); i; Spc(6); mf(i); Spc(7); ind(i); Spc(6); aq(i); Spc(6); bq(i); Spc(5); q1(i); Spc(5); q2(i)Next iEnd IfEnd Sub'=============================================== 'SUB-4Set Up the Total Nodal Vector {p(n,ld)}'=============================================== Sub load(ld)Dim i As Integer, k As IntegerFor i = 1 To np(i, ld) = 0#Next iIf npj <> 0 ThenFor i = 1 To npjk = mj(i)p(k, ld) = qj(i)Next iEnd IfIf npe <> 0 ThenFor i = 1 To npek = mf(i)Call efix(i)p(k, ld) = p(k, ld) - ff(3)p(k + 1, ld) = p(k + 1, ld) - ff(6)Next iEnd IfEnd Sub'5'=========================Sub efix(i)Dim j As Integer, k As IntegerDim a As Double, b As Double, sl As DoubleDim p1 As Double, p2 As DoubleDim b1 As Double, b2 As Double, b3 As DoubleDim c1 As Double, c2 As Double, c3 As DoubleDim d1 As Double, d2 As DoubleFor j = 1 To 6ff(j) = 0#Next jk = mf(i)sl = al(k)a = aq(i)b = bq(i)p1 = q1(i)p2 = q2(i)b1 = sl - (a + b) / 2#b2 = b - ab3 = (a + b) / 2#c1 = sl - (2# * b + a) / 3#c2 = b2c3 = (2# * b + a) / 3#d1 = b ^ 3 - a ^ 3d2 = b * b - a * aSelect Case ind(i)Case 1ff(2) = -p1 * (sl - a) * (sl - a) * (1# + 2# * a / sl) / sl ^ 2ff(3) = p1 * a * (sl - a) * (sl - a) / sl ^ 2ff(5) = -p1 - ff(2)ff(6) = -p1 * a * a * (sl - a) / sl ^ 2Case 2ff(2) = -p1 * b2 * (12# * b1 ^ 2 * sl - 8# * b1 ^ 3 + b2 ^ 2 * sl - 2# * b1 * b2 ^ 2) / (4# * sl ^ 3)ff(3) = p1 * b2 * (12# * b3 * b1 ^ 2 - 3# * b1 * b2 ^ 2 + b2 ^ 2 * sl) / (12# * sl ^ 2)ff(5) = -p1 * b2 - ff(2)ff(6) = -p1 * b2 * (12# * b3 ^ 2 * b1 + 3# * b1 * b2 ^ 2 - 2# * b2 ^ 2 * sl) / (12# * sl ^ 2) Case 3ff(2) = -p2 * c2 * (18# * c1 ^ 2 * sl - 12# * c1 ^ 3 + c2 ^ 2 * sl - 2# * c1 * c2 ^ 2 - 4# * c2 ^ 3 / 45#) / (12# * sl ^ 3)ff(3) = p2 * c2 * (18# * c3 * c1 ^ 2 - 3# * c1 * c2 ^ 2 + c2 ^ 2 * sl - 2# * c2 ^ 3 / 15#) / 36# / sl ^ 2ff(5) = -0.5 * p2 * c2 - ff(2)ff(6) = -p2 * c2 * (18# * c3 ^ 2 * c1 + 3# * c1 * c2 ^ 2 - 2# * c2 ^ 2 * sl + 2# * c2 ^ 3 / 15#) / 36# / sl ^ 2Case 4ff(2) = -6# * p1 * sl * (sl - a) / sl ^ 3ff(3) = p1 * (sl - a) * (3# * a - sl) / sl ^ 2ff(5) = -ff(2)ff(6) = p1 * a * (2# * sl - 3# * a) / sl ^ 2Case 5ff(2) = -p1 * (3# * sl * d2 - 2# * d1) / sl ^ 3ff(3) = p1 * (2# * d2 + (b - a) * sl - d1 / sl) / slff(5) = -ff(2)ff(6) = p1 * (d2 - d1 / sl) / slCase 6ff(1) = -p1 * (1# - a / sl)ff(4) = -p1 * a / slCase 7ff(1) = -p1 * (b - a) * (1# - (b + a) / (2# * sl))ff(4) = -p1 * d2 / 2# / slCase 8ff(3) = -a * (p1 - p2) * ei(k) / bff(6) = -ff(3)End SelectEnd Sub'================================='SUB-6 Introduce Support Conditions'================================== Sub bound()Dim i As IntegerIf jl <> 0 Thenr(1, 1) = 1#r(1, 2) = 0#i = 1Do While i <= nldp(1, i) = 0#i = i + 1LoopEnd IfIf jr <> 0 Thenr(n, 1) = 1#r(n, 2) = 0#r(n - 1, 2) = 0#For i = 1 To nldp(n, i) = 0#Next iEnd If'============================================= 'sub-7 solve equilibrium equations'========================================Sub bgauss()Dim n1 As Integer, m As IntegerDim k As Integer, im As Integer, k1 As IntegerDim i As Integer, l As IntegerDim jm As Integer, j As Integer, g As Doublen1 = n - 1k = 1Do While k <= n1im = k + nw - 1If n < im Then im = nk1 = k + 1For i = k1 To iml = i - k + 1g = r(k, l) / r(k, 1)For ld = 1 To nldp(i, ld) = p(i, ld) - p(k, ld) * gNext ldjm = nw - l + 1For j = 1 To jmm = j + i - kr(i, j) = r(i, j) - r(k, m) * gNext jNext ik = k + 1LoopFor ld = 1 To nldp(n, ld) = p(n, ld) / r(n, 1)Next ldk = 1Do While k <= n1i = n - kjm = k + 1If nw < jm Then jm = nwFor j = 2 To jml = j + i - 1For ld = 1 To nldp(i, ld) = p(i, ld) - r(i, j) * p(l, ld)Next jFor ld = 1 To nldp(i, ld) = p(i, ld) / r(i, 1)Next ldk = k + 1LoopPrint #3,Print #3, "output data"Print #3,For ld = 1 To nldPrint #3, "======================================="Print #3, "number of loading conditions", "ld="; ldPrint #3,Print #3, "nodal angular routation"Print #3, "node no."; Spc(3); "fai"Print #3, "======================================="For i = 1 To nPrint #3, Spc(2); i; Spc(6); p(i, ld)Next iNext ldEnd Sub'=========================w========================='=================================================='sub-8 member-end forces of elements'==================================================Sub qme()Dim ie As Integer, i As Integer, k As Integerkw = 1For ld = 1 To nldSeek #2, inposition(ld)Call input1(ld)Print #3,Print #3, "member-end forces of elements", "ld="; ldPrint #3, "ele.no."; Spc(14); "qi"; Spc(20); "mi"; Spc(27); "qj"; Spc(19); "mj" Print #3,For ie = 1 To nefm(ie, 1) = 4# * eil(ie) * p(ie, ld) + 2# * eil(ie) * p(ie + 1, ld)fm(ie, 2) = 2# * eil(ie) * p(ie, ld) + 4# * eil(ie) * p(ie + 1, ld)fq(ie, 1) = -(fm(ie, 1) + fm(ie, 2)) / al(ie)fq(ie, 2) = -fq(ie, 1)If npe = 0 ThenPrint #3, Spc(2); ie; Spc(5); fq(ie, 1); Spc(4); fm(ie, 1); Spc(7); fq(ie, 2); Spc(3); fm(ie, 2) Elsei = 1Do While i <= npek = mf(i)If k = ie ThenCall efix(i)fq(ie, 1) = fq(ie, 1) + ff(2)fq(ie, 2) = fq(ie, 2) + ff(5)fm(ie, 1) = fm(ie, 1) + ff(3)fm(ie, 2) = fm(ie, 2) + ff(6)End Ifi = i + 1LoopEnd IfPrint #3, Spc(2); ie; Spc(9); fq(ie, 1); Spc(4); fm(ie, 1); Spc(7); fq(ie, 2); Spc(3); fm(ie, 2) If ie = kc ThenCall kcqmEnd IfNext ieNext ldEnd Sub'=================================================='sub-9'==================================================Sub kcqm()Dim k As Integer, fqcl As DoubleDim fqcr As Double, fmc As Doublek = mf(1)If k = kc Then GoTo 10fqcl = fq(kc, 1)fqcr = fq(kc, 1)fmc = fq(kc, 1) + fq(kc, 1) * ac10 If (aq(1) - ac) < 0 Thenfqcl = -fq(kc, 2)fqcr = -fq(kc, 2)fmc = fq(kc, 2) * (al(kc) - ac) - fm(kc, 2)ElseIf (aq(1) - ac) = 0 Thenfqcl = -fq(kc, 2)fqcr = fq(kc, 1)fmc = fm(kc, 1) + fq(kc, 1) * acElsefqcl = fq(kc, 1)fqcr = fq(kc, 1)fmc = fm(kc, 1) + fq(kc, 1) * acEnd IfPrint #3,Print #3, Spc(2); "kc="; kc; Spc(3); "fqcl"; fqcl; Spc(3); "fqcr="; fqcr; Spc(3); "fmc="; fmc Print #3,End Sub。
Sap2000操作演练(组合结构)

●操作演练●模型概要组合结构静力计算计算组合结构轴力、弯矩、剪力(算例来自《结构矩阵分析及程序设计》第145页)说明:建议自己试着独立完成这一题目。
如果你能独立完成分析过程,那么你可以跳过这一节。
如果你在建模中遇到问题,然后按照下列步骤进行操作。
●建立几何形状1.在状态栏中的下拉对话框中选择KN-m单位制2.从File功能表选择New Model﹍显现出样本模型的对话框。
3在弹出的对话框的Number of Grid Spaces中›X direction编辑框中输入4›Y direction编辑框中输入0›Z direction编辑框中输入3在Grid Spacing中›X direction编辑框中输入3›X direction编辑框中输入1.0›X direction编辑框中输入0.25›按下OK屏幕上显现模型的3-D及2-D影象,右侧为位于Z=0.75的X-Y平面。
左侧视窗显现3-D透视。
5.点击3D-view窗口右上角“X”,关闭该窗口6. 点击窗口工具条上按钮,得到Y=0的X-Z平面7. 双击X方向最顶上的网格线7.在对话框中使Z location列表中0.75高亮度显示,并在编辑框中将其修改成-0.7。
按下Move Grid Line 按钮。
8.按下左边的工具条中Draw Frame Element按钮。
依次选择节点网格线的交点处1,2,3,4,5,6,4,右击鼠标键,顺次选择6,7,2,右击鼠标键,选择7,1点位置。
按下工具条中Set Element按钮,使Joints 和 Frames 两栏中labels选择框变成选择状态。
然后按下OK,如下图所示。
●定义材料属性9.从Define菜单选择Mat erials…打开材料属性定义对话框。
单击Click to选择框中的Add New Material选项.10.在弹出的对话框中›接受Mat1为Material Name›在Type of Design 中选择Other选项›输入弹性模量值是否为3e7,将其他值改为0›单击OK›单击Click to选择框中的Add New Material选项›接受Mat2为Material Name›在Type of Design 中选择Other选项›输入弹性模量值是否为2e8,将其他值改为0›两次单击OK●定义截面类型11. 选择功能菜单Define中Frame Sections…项,打开截面定义对话框12.在右上角的下拉列表选择框中,单击I/Wide Flange区域,然后选择Add General ,然后在弹出的对话框中单击OK。
C语言程序设计习题集7-10套

for(i=0;i<N;i++)
for(j=0;(5);j++)
{ t=a[i][j];
(6);
a[j][i]=t;
}
}
4、用递归法求n!
递归公式如下:
#include<stdio.h>
int jx(int n)
{
int f;
if(n==1)(7);
else f=(8);return来自f;}main()
{
int n,f;
printf(“Input n :”);
scanf(“%d”,&n);
f= jx(n);
printf("\n n!=%d",f);
}
5、求3*4数组中的最大值及其下标。
#include <stdio.h>
main()
{ int a[3][4]={{1,2,3,4}, {9,8,7,6},{-10,10,-5,2}};
}
四、编写程序(每题10分,共30分)
1.编写一个程序,提示用户输入一个用磅表示的重量,然后程序将磅转换为公斤。输出转换结果。已知1磅=454克,1公斤=1000克。
2.编写程序,判断整数n的奇偶性。n由键盘输入。如果n为0则输出“zero”,若为奇数则输出“odd”,若为偶数则输出“even”。
3.编写一个函数,计算下面公式:
8.jx(n-1)*n
9.max=a[i][j];
10.colum=j
四、根据题目要求编写完整程序(每题10分,共30分)
1、
#include<stdio.h>
voidmain()