给定有限状态机M1和M2的状态图如图8-15所示。证明:
a)当且仅当输入申是能被3整除的二进制数时,有限状态机M1输出为1,其他为0;
b)当且仅当输入串是能被4整除的二进制数时,有限状态机M2输出为1,其他为0。
【程序说明】 计算1~30之间能够被3整除的奇数的阶乘和。
【程序】
** 主程序
SET TALK OFF
S=0
FOR I=1 TO 30 STEP 2
IF (4)
(5)
S=S+N
ENDIF
ENDFOR
?“1到30之间能被3整除的奇数阶乘和为:”+ (6)
SET TALK ON
RETURN
** 过程 P1.PRG
PARAMETERS M
(7)
N=1
FOR J=1 TO M
N=N*J
ENDFOR
(8)
(4)
A.MOD(I,3)>=0
B.MOD(I,3)>0
C.MOD(I,3)<>0
D.MOD(I,3)=0
Private Sub Command1 _Click()
For i = 1 To 20
x=Int(【 】*200+ 100)
If【 】 = 0 Then
Print x
S = S +【 】
End If
Next I
Print "Sum = "; S
End Sub
部分程序、读函数read_dat(int xx[200])及输出格式已给出。
试题程序:
include<conio.h>
include<stdio.h>
define N 200
void read_dat(int xx[N])
{
int i,j;
FILE *fp;
fp=fopen("IN92.DAT","r");
for(i=0;i<20;i++)
{
for(j=0;j<10;j++)
{
fscanf(fp,"%d,",&xx[i*10+j]);
printf("%d",xx[i*10+j]);
}
printf("\n");
}
fclose(fp);
}
void main()
{
int i,k,cnt,xx[N],max;
float pj;
FILE *fw;
long j=0;
clrscr();
fw=fopen("out92.dat","w");
read_dat(xx);
printf("\n\nmax=%d,cnt=%d,pj=%6.2f/n",max,cnt,pj);
fprintf(fw,"%d\n%d\n%6.2f\n",max,cnt,pj);
fclose(fw);
}
请编写函数count Value(intn),它的功能是:求n以内(不包括n)同时能被3与7整除的所有自然数之和的平方根s, s作为函数返回值,最后结果S输出到文件out.dat中。 例如若n为1000时,函数值应为:s=153.909 064。
阅读以下说明和流程图,回答问题,将解答填入对应栏内。
[流程图]
[说明]
把指定区间上的所有整数分解质因数,每一整数表示为质因数按从小到大顺序排列的乘积形式。如果被分解的数本身是素数,则予以注明。例如,90=2×3× 3×5,91=素数。
下面的流程图描述了分解质因数的过程。对每一个被分解的整数j,赋值给b(以保持判别运算过程中j不变),用K (从2开始递增1取值)试商,若不能整除,打印输出“*k”,b除以k的商赋给b(b=b/k)后继续用k试商(注意,可能有多个k因数),直至不能整除,k增1继续。
将流程图中的(1)~(5)处补充完整。