
第三题答案:
将x值输入计算后不会始终在内循环计算而不输出y的值,只要输入x值,不过x>0或x<0或x=0,y的值都会输出,只不过循环的次数不同罢了。
理由:
以数学中心数字0为主
输入x=0后 减去4为-4,进入循环,-4的平方为16,16再乘以2等于32,,32减去4得到一个正值输出y=28
在意数学中心数相邻的两个数-1和1为例
输入x=-1后 -1的平方等于1 ,1乘以2等于2,,2减去4等于-2,-2进入循环,-2平方等于4,4乘以2等于8,8减去4得到一个正值输出y=4
输入x=1后 1的平方等于1,1乘以2等于2,,2减去4等于-2,-2进入循环,-2平方等于4,4乘以2等于8,8减去4得到一个正值输出y=4
有上列可知不管x值是0还是负值或正值,当x值第一次输入后所得值为大于等于零时都会输出y值
,当x值第一次输入后所得值为小于或等于0时都会将第一次所得值进行再次输入(内循环),而在第二次输入都会先为第一次输入所得值进行平方,所以小于零的值自然会变成正数,而且第一次输入x值后y值等于零的话也会进入循环而循环结果则和x=0如初结果一样,所以在一次循环或多次循环,不管x值是大于零还是小于零或等于零,x在经过这个程序流程是总会输出y值,主不过循环的次数不同罢了。
一、动态载荷的添加
通用程序控制中的外载荷为恒定载荷,对于材料在动态载荷作用下的破坏过程,所受的外载荷一般都是随着时间变化的载荷,例如三角波载荷等。通过对通用程序控制进行改进添加冲击三角波载荷,以适应对冲击问题的模拟。三角波载荷的示意图如图13-1所示。
图13-1 三角波载荷示意图
其中:Fmax为动态三角波冲击载荷的峰值;t1和t2分别为动态载荷的峰值时间和截止时间。
二、模型计算流程
岩石是一种典型的d脆性材料,在外力作用下,一般不会发生明显的塑性变形,因此可以不考虑材料的塑性变形。由于岩石的抗压强度远大于其抗拉强度,可以认为岩石在受压时,材料内部不会产生新的损伤,即不考虑体积压缩时的损伤累积。尽管在采用静态d性模型计算时,可以不考虑材料的损伤演化,但是由于在其他时步的计算过程中,产生的损伤是不会恢复的,所以在进行d性计算时,材料的d性模量将不同于最初的d性模量,变为损伤后的d性模量。根据以上的思路,可按照以下的计算流程来进行计算:
1总体计算流程(针对单个块体)
(1)若块体单元损伤变量D为1,则不再对该单元进行计算而直接进入下一个单元的计算,否则进入(2)。
(2)计算体积应变εv,如果εv<0即单元处于体积压缩状态,则进入(3),否则进入(4)。
(3)按照d性损伤模型,由应变计算应力,并且保持D值不变(不考虑体积压缩时的损伤积累),进入(5)。
(4)当岩石处于受拉状态时,材料的应力应变关系并不都是按照应力波衰减模型来计算的,而且还与应变变化率有一定的关系,仅当应变率大于10时,才能按照动态的应力波衰减模型,由应变计算应力值,进入(5);而当应变率小于10时,按照岩石受压状态下的d性损伤模型来计算(高尔新等,1999),然后进入(5)。
(5)如果D>1或D=1,则令D=1,并置当前所计算块体的压力和偏应力为零,进入下一步的计算。
在每一步的计算中需要对所有单元进行一一计算,并保存当前步的应力及应变计算结果以供下一步计算使用。
2具体的计算模型和公式
第一步计算:
(1)由于对D值的计算需要用到D的变化率,因此本步计算中保持D值不变。
(2)应变变化率
岩石断裂与损伤
(3)体积应变
岩石断裂与损伤
(4)动态应力波衰减模型
σij=3K(1-D)εδij+2G(1-D)eij
即
岩石断裂与损伤
(5)d性损伤模型
岩石断裂与损伤
在以上各式中:E、G、K、μ分别为材料的d性模量、剪切模量、体积模量和泊松比。
第二步及其以后的计算:
(1)D值的计算:
岩石断裂与损伤
(2)应变变化率的计算:
岩石断裂与损伤
(3)体积应变的计算:
岩石断裂与损伤
应力波衰减模型与d性损伤模型同第一步相同。
以上的讨论和建立的公式都是针对于平面应力问题而言的,如果要求解的问题属于平面应变问题,需要把以上方程式中的E换为,μ换为。
出这样的题,这老师的水平真是高,尤其是 ip 的变化!第一次看到这么牛的题。
这只有在debug中检查了,因为指令的长度是谁也记不太清楚的 !
两条指令共4个字节,故 ip=1004h。 其它两个空填的正确。
这个和你自己机器的位数、 *** 作系统位数有关系,和编译器也有关系,要具体看,这种实际就是 *** 作的位值,就相当于溢出,不同机器上的产生值不一样。具体就是所有数字全为1表示的十进制数值。
编程没有这么写的,这么写有很多编译器直接会打出警告。
算法的复杂性是算法效率的度量,是评价算法优劣的重要依据。一个算法的复杂性的高低体现在运行该算法所需要的计算机资源的多少上面,所需的资源越多,我们就说该算法的复杂性越高;反之,所需的资源越低,则该算法的复杂性越低。
计算机的资源,最重要的是时间和空间(即存储器)资源。因而,算法的复杂性有时间复杂性和空间复杂性之分。
不言而喻,对于任意给定的问题,设计出复杂性尽可能低的算法是我们在设计算法时追求的一个重要目标;另一方面,当给定的问题已有多种算法时,选择其中复杂性最低者,是我们在选用算法适应遵循的一个重要准则。因此,算法的复杂性分析对算法的设计或选用有着重要的指导意义和实用价值。
简言之,在算法学习过程中,我们必须首先学会对算法的分析,以确定或判断算法的优劣。
1时间复杂性:
例1:设一程序段如下(为讨论方便,每行前加一行号)
(1) for i:=1 to n do
(2) for j:=1 to n do
(3) x:=x+1
试问在程序运行中各步执行的次数各为多少?
解答:
行号 次数(频度)
(1) n+1
(2) n(n+1)
(3) nn
可见,这段程序总的执行次数是:f(n)=2n2+2n+1。在这里,n可以表示问题的规模,当n趋向无穷大时,如果 f(n)的值很小,则算法优。作为初学者,我们可以用f(n)的数量级O来粗略地判断算法的时间复杂性,如上例中的时间复杂性可粗略地表示为T(n)=O(n2)。
2空间复杂性:
例2:将一一维数组的数据(n个)逆序存放到原数组中,下面是实现该问题的两种算法:
算法1:for i:=1 to n do
b[i]:=a[n-i+1];
for i:=1 to n do
a[i]:=b[i];
算法2:for i:=1 to n div 2 do
begin
t:=a[i];a[i]:=a[n-i-1];a[n-i-1]:=t
end;
算法1的时间复杂度为2n,空间复杂度为2n
算法2的时间复杂度为3n/2,空间复杂度为n+1
显然算法2比算法1优,这两种算法的空间复杂度可粗略地表示为S(n)=O(n)
信息学比赛中,经常是:只要不超过内存,尽可能用空间换时间。
// C 程序
#include<stdioh>
void main()
{
int x,y,;
printf("请输入两个整型数:\n");
scanf("%d%d",&x,&y);
if(x>=0&&y>=0)
a=1;
else if(x<0&&y<0)
a=-1;
else
a=0;
printf("a=%d",a);
}
以上就是关于如何根据如图所示的程序计算全部的内容,包括:如何根据如图所示的程序计算、程序计算流程、一段汇编程序执行后,IP的值如何计算等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)