#include <fstream>
using namespace std;
int main(int argc, char argv[])
{
int x=1,y=2;
double s=0;
for(;y<100;y++,x++)
s+=1/(float)(xy+1);
s+=1/(float)((x+1)(y+1));
cout<<s<<endl;
return 0;
}
图自己根据程序画吧,很简单的!
15 |
分析:分析程序中各变量、各语句的作用,再根据流程图所示的顺序,可知:该程序的作用是利用循环计算I值,并输出满足条件I>105的第一个k值,模拟程序的运行过程,用表格将程序运行过程中变量k的值的变化情况进行分析,不难给出答案。 程序在运行过程中各变量的值如下表示: k I 是否继续循环 循环前 0 0 是 第一圈 1 1 是 第二圈 2 1+2 是 第三圈 3 1+2+3 是 第四圈 4 1+2+3+4 是 依此类推 第十六圈 15 1+2+3+…+15>105 否 故最后输出的k值为:15, 故答案为:15。 点评:根据流程图(或伪代码)写程序的运行结果,是算法这一模块最重要的题型,其处理方法是::①分析流程图(或伪代码),从流程图(或伪代码)中即要分析出计算的类型,又要分析出参与计算的数据(如果参与运算的数据比较多,也可使用表格对数据进行分析管理)②建立数学模型,根据第一步分析的结果,选择恰当的数学模型③解模。 |
1.(1)i < = 50(2)p=" p" + i ; 2.程序详见试题解析. |
试题分析:1.按照程序框图执行下去,即可把(1)(2)补充完整 ; 2.用当型循环把程序框图改写成算法语句即可. (1)i < = 50 ;(2)p=" p" + I 7分 (2)程序: i=1 p=1 s=0 WHILE i<="50" s=" s" + p p=" p" + i i=i+1 WEND PRINT s END 10分 |
用自然语言描述算法:(1)输入N;(2)将1送入I(I←1);(3)重复执行下面的 *** 作,直至I=N;(4)将2送入K(K←2);(5)重复执行下面 *** 作,直到K=I-1;A.将I除以K的商送入J(J←I/K);B.若J是整数,I增加1并转向(3);C.否则将K增加1并转向(5);(6)输出I,I增加1并转向(3);(7)结束。根据以上算法,用QBASIC语言可编写如下程序:10 INPUT N20 FOR I=1 TO N30 FOR K=2 TO I-140 J=I/K50 IF J=INT(J) THEN GOTO 8060 NEXT K70 PRINT I,80 NEXT I90 END程序中使用了GOTO无条件转移语句,破坏了程序的结构。寻找另一思路:判断一个自然数M是不是素数,可用2、3、4……去除M,如果这些数都不能整除M,则M是素数。用结构化流程图N-S图描述该算法。INPUT NFOR M=1 TO N STEP 2 K=INT(SQR(M)) I=2 FLAG=1 DO WHILE (I<=K) AND (FLAG=1) IF M MOD I=0 THEN FLAG=0 I=I+1 LOOP IF FLAG=1 THEN PRINT M,NEXT MEND程序中FLAG是一个“标志变量”,FLAG=1表示M未被任何一个整数整除过。如果在某一次循环中,M能被一个整数I整除,则FLAG就置成0。设置FLAG变量的目的主要是为了避免转移语句的出现。因为如果没有设置FLAG变量,在循环执行中,某一次M能被I整除,则要么继续执行循环,直到内循环全部执行完毕,要么用转移语句直接跳出内循环。显然,前者是毫无效率地浪费时间,而后者又不符合结构化程序设计的要求。
以上就是关于设计算法求1/1×2+1/2×3+~~~~+1/99×100的值 要求画出程序框图,写出用基本语句编写的程序全部的内容,包括:设计算法求1/1×2+1/2×3+~~~~+1/99×100的值 要求画出程序框图,写出用基本语句编写的程序、如下图所示,程序框图(算法流程图)的输出结果是  、给出50个数,1,2,4,7,11,…,其规律是:第1个数是1,第2个数比第1个数大1,第3个数比第2个数大2,第等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)