结构化程序设计
第3章 结构化程序设计

循环体
是 P2 否
图3.7直到型循环结构示意图 直到型循环结构示意图
3.3 表述算法
• 通常用自然语言、计算机语言(代码)、伪代码[1]、传统流程图、 通常用自然语言、计算机语言(代码)、伪代码 、传统流程图、 )、伪代码 N-S流程图、PAD图等不同的方法来描述算法。 流程图、 图等不同的方法来描述算法。 流程图 图等不同的方法来描述算法 • 在例 中,采用了自然语言来表示算法。自然语言就是人们日常使 在例3.1中 采用了自然语言来表示算法。 用的语言,可以是汉语、英语,或其他语言。 用的语言,可以是汉语、英语,或其他语言。用自然语言表示算法通 俗易懂,但文字冗长,容易出现歧义性。自然语言表示的含义往往不 俗易懂,但文字冗长,容易出现歧义性。 太严格,要根据上下文才能判断其正确含义。此外, 太严格,要根据上下文才能判断其正确含义。此外,用自然语言来描 述包含分支和循环的算法,很不方便。因此, 述包含分支和循环的算法,很不方便。因此,除了那些很简单的问题 以外,一般不用自然语言描述算法。 以外,一般不用自然语言描述算法。 • [1] 伪代码是介于自然语言与计算机语言之间的文字符号。一般借助 伪代码是介于自然语言与计算机语言之间的文字符号。 一种高级语言的控制结构,而中间的操作用自然语言描述。 一种高级语言的控制结构,而中间的操作用自然语言描述。
P1 是 循环体
否
• 图3.6当型循环结构示意图 当型循环结构示意图
(2)直到型循环的执行过程为: )直到型循环的执行过程为: • 先执行循环体一次,然后判断控制循环的条件。 先执行循环体一次,然后判断控制循环的条件。 • 条件 成立,则继续上述循环体,直到条件不成立时,结束循环。 条件P2成立,则继续上述循环体,直到条件不成立时,结束循环。 成立
结构化程序设计

结构化程序设计2篇结构化程序设计(一)结构化程序设计是一种程序设计方法论,它以模块化和层次化为基础,旨在提高程序的可读性、可维护性和可测试性。
它强调程序应该按照一定的规则和约定进行组织,以便更加清晰和结构化地表达程序逻辑。
在结构化程序设计中,程序被划分为多个模块或函数,每个模块或函数负责执行特定的任务。
这些模块之间通过调用和传递数据来协同工作,从而完成整个程序的功能。
通过将程序划分为多个模块,结构化程序设计降低了代码的复杂度,使得代码更加易于理解和维护。
在结构化程序设计中,每个模块或函数都应该遵循以下几个原则:1. 单一入口原则:每个模块或函数都应该有且仅有一个入口点,这样可以提高代码的可读性和可测试性。
2. 自顶向下设计:程序应该从高层次的模块开始设计,逐渐细化为更详细的模块,直到设计完整的功能。
3. 逐步细化:模块或函数应该通过不断地逐步细化,将复杂的问题分解为更小、更简单的子问题,并逐个解决。
4. 信息隐藏原则:模块或函数应该隐藏内部实现细节,只对外部提供必要的接口,以保证模块之间的独立性和可重用性。
5. 顺序、选择和循环结构:程序的逻辑应该通过顺序、选择和循环结构进行控制,以保证程序的正确性和可读性。
结构化程序设计具有许多优点。
首先,它提供了一种清晰、结构化的方式来组织和表达程序逻辑。
其次,它降低了程序的复杂度,使得程序更加易于理解、调试和维护。
此外,结构化程序设计还可以提高程序的可重用性和可测试性,从而降低了开发和维护的成本。
然而,结构化程序设计也有一些限制。
它适用于解决相对简单和结构化的问题,但对于复杂的、非结构化的问题可能不太适用。
此外,结构化程序设计较为静态,不太适应快速变化和不断迭代的需求,因此在某些场景下可能需要其他的程序设计方法。
总的来说,结构化程序设计是一种经典的程序设计方法论,它可以提高程序的可读性、可维护性和可测试性。
通过合理地划分程序结构,结构化程序设计可以使程序更加清晰和结构化,从而提高开发和维护的效率。
结构化程序设计的定义。

结构化程序设计的定义。
结构化程序设计是一种利用模块化设计、顺序、选择和循环结构
等技术的编程方法。
其目标是使程序易于理解、易于修改和易于调试。
结构化程序设计强调在设计过程中对程序逻辑的抽象和模块化。
在结构化程序设计中,程序流程可以自然地被分解成模块,并通
过明确的调用和数据传递机制进行合作。
程序结构的清晰性、简洁性
和可读性都得到了很大程度的提高。
同时,这种设计方法还可以减少
代码错误和提高代码的可维护性和可重用性。
与之相对的,非结构化程序设计缺乏适当的控制结构,导致代码
难以阅读、更难以修改和重用。
这种编程方法也容易产生逻辑错误和
执行失败,导致程序的不确定行为。
因此,了解结构化程序设计的方法和技巧是很重要的。
在软件开
发中,遵循结构化程序设计原则可以使程序员更加容易理解代码的设
计和实现,提高代码的可维护性和可重用性,从而降低软件开发的成
本和风险。
总之,结构化程序设计是一种强调模块化设计、顺序、选择和循
环结构等技术的编程方法,具有清晰性、简洁性、可读性、可维护性
和可重用性的优点。
在软件开发中,遵循结构化程序设计原则可以有
效地提高软件开发的效率和质量。
004第4章结构化程序设计

4.3.1 条件语句
if (InputScore >= 70) { if (InputScore >= 80) { if (InputScore >= 90) { OutputScore = "优秀"; //优秀 } else { OutputScore = "良好"; //良好 } } else { OutputScore = "中等"; //中等 } }
if (Score >= 60) { Console.WriteLine("该成 绩合格。"); } else { Console.WriteLine("该成 绩不合格。"); } }
}
4.3.1 条件语句
如果程序的逻辑判定关系比较复杂,可以用if…else嵌套语句 形式如下: if(表达式1) if(表达式2) if(表达式3) ... 语句1; else 语句2; else 语句3; else 语句4;
}
4.3.1 条件语句
2. if…else语句 if…else语句是一种更为常用的选择语句。if…else语 句的语法如下: if(表达式) { 语句块A; }
else
{ 语句块B; }
【例4-3】根据输入的学生
成绩Score的值,显示 其是否及格。
using System; class Score { static void Main() { Console.WriteLine("请您 输入学生成绩:"); int Score = int.Parse(Console.ReadLi ne());//转换为整数
【例4-4】假设考查课的成绩按优秀、良好、中等、及格和不及
结构化程序设计

结构化程序设计在当今的计算机编程领域,结构化程序设计是一种基础且重要的编程方法。
它就像是为程序搭建的一座坚固而有序的大厦,让程序的逻辑清晰明了,易于理解和维护。
那么,什么是结构化程序设计呢?简单来说,它是一种编程理念,强调将程序分解为若干个功能明确、相对独立的模块,每个模块按照一定的结构和规则进行编写。
想象一下,如果我们要编写一个复杂的程序,比如一个学生成绩管理系统。
如果没有结构化程序设计的方法,我们可能会把所有的代码都混在一起,这样不仅会让代码变得混乱不堪,难以阅读和修改,而且很容易出现错误。
但通过结构化程序设计,我们可以将这个系统分解为多个功能模块,比如学生信息录入模块、成绩计算模块、成绩查询模块等等。
结构化程序设计有几个显著的特点。
首先是顺序结构,程序按照从上到下的顺序依次执行每条语句。
这就像是我们按照既定的步骤完成一项任务,一步接着一步,有条不紊。
其次是选择结构,根据不同的条件来决定程序的执行路径。
比如,如果学生的成绩大于等于 60 分,就显示“及格”,否则显示“不及格”。
这就像是在岔路口根据路标做出选择,决定我们前进的方向。
还有循环结构,用于重复执行一段代码,直到满足特定的条件为止。
比如说,要计算一个班级所有学生的总成绩,我们可以通过循环结构依次将每个学生的成绩相加。
这些结构的组合使用,使得程序能够处理各种复杂的逻辑和任务。
结构化程序设计的好处是显而易见的。
它使得程序的逻辑更加清晰,易于理解。
对于开发者来说,当他们回顾自己编写的代码或者其他人需要接手和修改代码时,能够迅速明白程序的功能和执行流程。
这大大提高了开发效率,减少了错误的发生。
而且,由于程序的结构清晰,调试和测试也变得更加容易。
我们可以针对每个独立的模块进行单独的测试,快速定位和解决问题。
另外,结构化程序设计还有助于提高代码的可重用性。
如果我们把一些常用的功能模块编写得足够通用和灵活,那么在其他项目中遇到类似的需求时,就可以直接复用这些模块,而无需重新编写代码,节省了时间和精力。
结构化程序设计的三种

结构化程序设计的三种结构化程序设计是一种编程范式,它强调使用结构化的控制流程来编写程序,以提高代码的可读性、可维护性和可靠性。
结构化程序设计主要包含三种基本结构:顺序结构、选择结构和循环结构。
下面将详细阐述这三种结构的特点和应用。
顺序结构顺序结构是最基本的程序结构,它按照编写的顺序依次执行各个语句。
在大多数编程语言中,顺序结构不需要特别的语法来标识,因为代码默认就是按照顺序执行的。
特点:- 简单直观:顺序结构的代码易于理解和编写。
- 直接执行:没有额外的控制结构,语句按照编写顺序执行。
应用场景:- 初始化变量。
- 执行一系列不需要条件判断或循环的计算。
- 打印输出信息。
选择结构选择结构允许程序在执行过程中根据条件选择不同的执行路径。
最常见的选择结构是`if`语句和`switch`语句。
特点:- 条件判断:基于条件表达式的结果来决定执行哪一段代码。
- 灵活性:可以根据不同的条件执行不同的代码块。
应用场景:- 根据用户输入做出响应。
- 处理不同的错误情况。
- 在满足特定条件时执行特定的操作。
循环结构循环结构允许程序重复执行一段代码,直到满足某个条件为止。
循环结构通常包括`for`循环、`while`循环和`do-while`循环。
特点:- 自动重复:根据给定的条件自动重复执行代码块。
- 可控性:可以通过循环控制语句(如`break`和`continue`)来提前退出或跳过某些迭代。
应用场景:- 处理数组或列表中的元素。
- 执行需要重复的操作,如打印乘法表。
- 等待某个条件成立,例如用户输入有效数据。
结构化程序设计的优势1. 提高代码的可读性:通过使用清晰的结构化控制流程,代码更容易被其他开发者理解。
2. 增强代码的可维护性:结构化的代码更易于修改和扩展。
3. 减少错误:结构化程序设计减少了复杂嵌套和“goto”语句的使用,从而降低了程序中出现逻辑错误的可能性。
4. 提高效率:结构化程序设计鼓励使用高级控制结构,这可以减少代码量,提高编程效率。
结构化程序设计的基本结构
结构化程序设计的基本结构随着计算机技术的不断发展,程序设计也逐渐成为了现代社会不可或缺的一部分。
在程序设计的过程中,结构化程序设计是一种被广泛使用的设计方法。
它以清晰、简洁、易于理解和维护的代码为目标,被广泛应用于各种类型的软件开发中。
本文将介绍结构化程序设计的基本结构,以及如何使用它来编写高效的程序。
一、结构化程序设计的概念结构化程序设计是一种程序设计方法,它通过将程序分解成小的模块,然后按照一定的结构组合这些模块,从而构建出一个完整的程序。
结构化程序设计的目标是编写高效、可读性强、可维护性好的程序。
结构化程序设计的核心思想是分而治之。
将一个大的问题分解成多个小的问题,然后使用适当的算法解决这些小的问题。
这种方法可以使程序更加清晰、易于理解和维护。
同时,结构化程序设计还强调程序的模块化,也就是将程序分解成多个模块,每个模块只完成一个特定的任务。
二、结构化程序设计的基本结构结构化程序设计的基本结构包括三种控制结构:顺序结构、选择结构和循环结构。
1.顺序结构顺序结构是指程序按照编写的顺序依次执行每个语句。
程序从程序的入口开始执行,依次执行每个语句,直到执行完所有语句为止。
例如:```a = 10b = 20c = a + bprint(c)```以上代码中,程序按照编写的顺序执行每个语句,先给变量a 赋值,然后给变量b赋值,然后计算a和b的和,最后输出结果c。
2.选择结构选择结构是指程序根据条件选择执行不同的语句。
选择结构有两种形式:if语句和switch语句。
(1)if语句if语句的基本形式如下:```if condition:statementelse:statement```其中,condition是一个条件表达式,statement是要执行的语句。
如果condition为True,则执行if后面的语句;否则执行else后面的语句。
例如:```a = 10b = 20if a > b:print('a > b')else:print('a <= b')```以上代码中,如果a大于b,则输出'a > b';否则输出'a <= b'。
结构化程序设计
结构化程序设计
结构化程序设计
结构化程序设计是一种软件开发方法,旨在通过模块化和顺序化的方式来设计和编写程序。
它强调程序应该被组织成一系列可重复使用和可维护的模块,以便增强开发效率和代码的可读性。
在结构化程序设计中,程序被划分为多个小的、相对独立的模块。
每个模块执行一个特定的任务,并且可以与其他模块进行通信和交互。
这种模块化的设计使得程序变得更加可靠和易于理解,因为每个模块都是独立的,它的功能可以被单独测试和验证。
,结构化程序设计还鼓励使用顺序、选择和重复等基本的控制结构来组织程序的执行流程。
顺序控制指的是按照代码的顺序依次执行语句,选择控制指的是根据条件选择执行不同的语句块,而重复控制则是通过循环执行一段代码多次。
结构化程序设计的目标是提高程序的可理解性和可维护性。
通过模块化的设计,可以将一个复杂的问题分解成多个简单的子问题,从而减少开发过程中的错误和bug。
结构化程序设计还使得程序的
测试和调试变得更加容易,因为每个模块都是相对独立的,可以单独进行测试和调试。
在实践中,结构化程序设计可以通过使用编程语言中的函数、类和模块等概念来实现。
通过将程序划分为多个函数或者类,可以实现程序的模块化和重用。
而通过使用模块化的设计,可以将程序的不同部分放入不同的模块中,从而提高代码的可读性和可维护性。
,结构化程序设计是一种重要的软件开发方法,可以提高程序的可读性、可维护性和可重用性。
通过将程序划分为多个模块,并使用基本的控制结构来组织程序的执行流程,可以更好地管理和开发复杂的软件系统。
结构化程序设计是每个程序员都应该熟悉和掌握的软件开发技术。
简述结构化程序设计方法的基本要点
结构化程序设计方法的基本要点简介结构化程序设计方法是一种用于构建大型程序的系统性方法。
它通过将程序分解为一系列小的、可管理的模块,以及规定了模块之间的交互方式,从而降低程序的复杂性,提高程序的可维护性和可读性。
本文将从以下几个方面详细介绍结构化程序设计方法的基本要点。
1. 模块化模块化是结构化程序设计方法的核心思想之一。
模块化将程序分解为多个功能相对独立的模块,每个模块负责完成一个特定的任务。
模块化有助于提高程序的可读性,可维护性和可重用性。
1.1 模块划分在进行模块划分时,可以按照功能划分原则,将程序划分为几个不同的功能模块,每个模块负责完成一个特定的功能。
也可以按照数据划分原则,将程序划分为几个处理不同数据的模块。
模块应该具有清晰的职责和界限,不同模块之间的功能和数据交互应该通过接口进行。
1.2 接口设计模块之间的接口设计是模块化的关键。
接口应该明确定义模块之间的输入和输出,以及数据的传递方式。
良好的接口设计可以降低模块之间的耦合度,提高代码的可复用性,使得模块可以独立开发和测试。
1.3 函数与过程模块可以通过函数或过程来实现。
函数是一段可重用的代码,用于执行特定的计算或操作,并返回一个结果。
过程是一段可重用的代码,用于执行一系列操作,不返回结果。
函数和过程有助于将程序划分为更小的单元,提高程序的可读性和可维护性。
2. 控制结构控制结构是结构化程序设计方法的另一个重要要点。
控制结构用于控制程序的执行流程,改变程序的执行顺序或执行条件。
2.1 顺序结构顺序结构是程序从上到下按照顺序执行的控制结构。
顺序结构是程序的基础,所有的程序都是从顺序结构开始进行。
2.2 选择结构选择结构用于根据条件选择执行不同的代码块。
常见的选择结构包括if语句和switch语句。
if语句用于判断一个条件是否成立,如果条件成立,则执行其中的代码块;否则执行其他代码块。
switch语句可以根据一个表达式的值选择执行不同的代码块。
结构化程序设计
如: disp all for 语文>80 .and. 化学<90 ;
fields 姓名,外语,性别,学号
22
6.3 程序的基本控制结构
1.顺序结构:按语句的先后顺序逐条执行。直 到最后一条语句执行完.
Clear Use c:\XJK LOCATE FOR 姓名=“杨灵” DISP USE
清屏 打开表
查找 显示 关闭
结束
20
编写程序的步骤 (1)明确题目要求解决什么问题 (2)明确输入什么数据,处理什么数据,
输出什么数据。 (3)画出流程图 (4)根据流程图编写程序 (5)运行调试程序
21
输入程序的规则: (1)一行只能输入一个命令且输完后要
按回车键; (2)如果一个命令一行输不下,则要分行
37
X=‘ ‘
@18,10 SAY “请输入1-3” GET X
READ
DO CASE
CASE X=‘1’
CREAT YYY
CASE X=‘2’
USE
YYY
APPE
CASE X=‘3’
EXIT
ENDCASE
38
三.循环结构
一.循环结构:某个程序段的反 复执行的结构;
二.基本格式
39
(1)第一种格式
3. 命令:MODIFY COMMAND 程序文件名
输入命令语句时,必须一条命令占一行,一行写不下时, 在行尾加续行符(;),换行后接着书写该命令语句。
3
命令序列
注释语句 4
6.1.3 程序文件的修改
对已建立的程序文件可以重新进入代码编辑窗口修改内容。 1.项目管理器:选中要修改的程序文件,单击“修改”按 钮,重新打开代码编辑窗口。修改后,选择“文件|保存” 命令,保存程序。 2.菜单:选择“文件|打开”命令,将要修改的程序文件调 入代码编辑窗口。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验5结构化程序设计【实验目的】1.掌握建立、修改、运行和调试程序文件的方法。
2.掌握顺序结构的程序设计方法。
3.掌握分支结构的程序设计方法。
4.掌握循环结构的程序设计方法。
5.掌握子程序调用的程序设计方法。
【实验内容】1.练习建立、修改、运行和调试程序文件。
2.练习顺序结构的程序设计。
3.练习分支结构的程序设计。
4.练习循环结构的程序设计。
5.练习子程序的程序设计。
【实验要求与步骤】【实验5.1】练习建立、修改、运行和调试程序文件。
实验分析建立、修改和执行程序可以使用主菜单、工具栏和命令3种方法来实现;其中命令:MODIFY COMMAND <程序文件名>用来建立和修改程序;命令:DO <程序文件名>用来执行程序。
(1)建立程序文件。
操作步骤①启动Visual FoxPro。
②在系统菜单中,选择【文件】|【新建】命令,在弹出的对话框中选择“程序”单选按钮,然后单击“新建文件”按钮,打开程序文件编辑窗口,如图1-5-1所示。
③输入程序,如图1-5-2所示。
④选择系统【文件】|【保存】命令,或单击工具栏中的“保存”按钮,弹出“另存为”对话框。
⑤选择保存路径,输入新建的程序文件名。
⑥关闭程序文件编辑窗口。
Visual FoxPro 程序设计上机指导·59·(2)修改程序文件。
操作步骤① 在系统菜单中,选择【文件】|【打开】命令,在弹出的“打开”对话框中选定文件类型为程序,然后选择程序文件所在文件夹,鼠标选中要打开的程序文件,单击“确定”按钮,如图1-5-3所示。
图1-5-3 选择要打开的程序文件② 进入程序文件编辑窗口后,修改程序。
③ 存盘退出程序文件编辑窗口。
(3)运行和调试程序。
操作步骤① 在系统菜单中,选择【程序】|【运行】命令,在弹出的“运行”对话框中选择程序文件所在文件夹,鼠标选中要运行的程序文件,单击“运行”按钮,如图1-5-4所示。
② 如果程序没有语法错误,则系统运行所指定的程序文件。
③ 如果程序中,存在语法错误,则系统显示“程序错误”对话框,在对话框中提示用户并给出错误信息,将程序编辑窗口中的错误语句高亮显示,如图1-5-5所示。
④ 根据需要,在“取消”、“挂起”、“忽略”、和“帮助”4个按钮中进行选择,每个按钮中的英文字母表示各个按钮所对应的按键。
选择后回到程序编辑窗口。
⑤ 修改程序。
⑥ 存盘后重复上述程序调试操作,直到程序正确。
技巧解析程序中的错误可以分为语法错误和逻辑错误,通常在Visual FoxPro 中,只能找到语法错误,在程序调试过程中,还要注意消除逻辑错误。
图1-5-4 选择要运行的程序 图1-5-5 “程序错误”对话框【实验5.2】数值计算类程序设计。
(1)计算100以内的所有奇数和并显示,程序运行结果如图1-5-6所示。
实验分析首先设定变量S用来存放奇数的和,把变量S初始值清0。
其次要实现题中要求,必须使用循环结构来对100以内的数据逐一进行判断,如果满足奇数条件则将其累加到变量S上,否则继续对下一个数据进行判断,直到100为止。
图1-5-6 “奇数和”程序运行结果在程序编辑器窗口输入如下代码。
SET TALK OFFCLEAR?SPACE(10)+"计算100以内的所有奇数和"S=0FOR I=1 TO 100IF INT(I/2)<>I/2S=S+IENDIFNEXT@5,10 SAY "100以内的所有奇数和为:"+STR(S,6)技巧解析其中循环语句可以使用DO WHILE…ENDDO,也可以使用FOR…ENDFOR循环,FOR 语句通常用来控制有固定循环次数的程序设计。
(2)求自然数1~N中能同时被5和3整除的数之和,运行结果如图1-5-7所示。
图1-5-7 “整除数求和”程序运行结果实验分析本程序完成将N个自然数中所有能被3和5整除的数求和,并输出计算结果的功能。
首先用INPUT语句从键盘接收自然数N,然后在循环体中使循环变量I从1增加到N,每次增加一个循环变量值,随着I的增加,将能被3和5整除的数筛选出来并求和。
当I>N时,循环结束,将总和S输出。
在循环体内的分支结构条件表达式中,欲判断I能否同时被3和5整除,条件表达式应为MOD(I,3)=0 .AND. MOD(I,5)=0。
·60·Visual FoxPro程序设计上机指导在程序编辑器窗口输入如下代码。
CLEARSET TALK OFF?"求自然数1~N中能同时被5和3整除的数之和"INPUT "请输入N的值:" TO NS=0FOR I=1 TO NIF MOD(I,3)=0 AND MOD(I,5)=0S=S+IENDIFENDFOR?"能同时被5和3整除的数之和",SRETURN技巧解析当使用.AND.操作符的时候,两个条件同时为真时,逻辑表达式结果为真;当使用.OR.操作符的时候,任意一个条件为真时,逻辑表达式结果为真。
(3)用户由键盘输入整数K(1<K<5)、M(5<M<8)值,程序计算S=K!+(K+1)!+…+M!的值,程序运行结果如图1-5-8所示。
图1-5-8 “阶乘和”程序运行结果实验分析本程序首先分别判断输入的整数K与M是否满足条件。
如果不满足条件,则由循环程序控制要求重新输入;如果输入数据满足条件,利用FOR循环,首先计算K的阶乘值,将求和变量S赋初始值为K!,设置(K+1)~M的循环,每次循环都计算一次新的阶乘,并加到变量S上,最终求得总和。
在程序编辑器窗口输入如下代码。
SET TALK OFFCLEAR?SPACE(30)+"本程序名是:求阶乘和.PRG"DO WHILE .T.DO WHILE .T.INPUT '请输入数值K(1<K<5):' TO KIF 1<K .AND. K<5 .AND. INT(K)=KEXITELSEWAIT '输入错误!请输入1到5之间的整数'LOOPENDIFENDDO·61·DO WHILE .T.INPUT '请输入数值M(5<M<8):' TO MIF 5<M .AND. M<8 .AND. INT(M)=MEXITELSEWAIT '输入错误!请输入5~8之间的整数'LOOPENDIFENDDOJC=1FOR I=1 TO KJC=JC*IENDFOR**计算SS=JCFOR I=K+1 TO MJC=JC*IS=S+JCENDFOR?' S='+LTRI(STR(K))+'!+'+LTRI(STR(K+1))+'!+…+'+LTRI(STR(M))+'!='??LTRIM(STR(S))+'(其中K='+LTRIM(STR(K))+',M='+LTRIM(STR(M))+')'WAIT '要进行下一次计算吗?(Y/N)' TO YORNIF UPPER(YORN)='Y'LOOPENDIFEXITENDDORETURN技巧解析在DO WHIIE <条件>…ENDDO循环结构中使用了LOOP语句与EXIT语句,LOOP语句的含义是回到本层循环开始处重新进行循环,EXIT语句的含义是退出本层循环,通常这两条语句与DO WHILE .T. …ENDDO循环一起使用。
(4)找出1~100之内的素数的个数并求和,程序运行结果如图1-5-9。
图1-5-9 “素数计算”程序运行结果实验分析首先设变量S存放素数的和,将其设初始值为0。
然后进入外层循环,最小的素数为3,因而外层循环变量I的初值为3,而终值为100。
进入内层循环是判断变量I是否是素数,定义内层循环变量J应从2开始,直到I-1为止,去除I,如果能够整除则不是素数,否则应累加到变量S中。
直到把所有的素数都找出来并相加求和后,再将结果输出。
这里使用一个逻辑型变量FLAG来标示是否是素数,在没有进入内层循环之前首先假定该数I是素数,进入·62·Visual FoxPro程序设计上机指导内层循环后如果数I能够被从2到I-1之中的任意一个数整除都将不是素数,应将素数标志FLAG设置为.F.,并立即退出内层循环。
在外层循环中检测FLAG标志,如为.T.,则说明是素数,应累加,否则不作任何处理。
在程序编辑器窗口输入如下代码。
SET TALK OFF@1,10 SAY "要求:找出1~100之内的素数,并求和"S=0N=0FOR I=3 TO 100FLAG=.T.FOR J=2 TO I-1IF I/J=INT(I/J)FLAG=.F.EXITENDIFENDFORIF FLAGS=S+IN=N+1ENDIFENDFOR? SPAC(10)+"1~100之内的素数一共有"+ALLT(STR(N))+"个"? SPAC(10)+"其中素数的合计数是:"+ALLT(STR(S))RETURN技巧解析I/J=INT(I/J) 表示I可以被J整除;I/J<>INT(I/J) 表示I不可以被J整除。
(5)打印100~999之间的水仙花数,“水仙花数”是指一个三位数,其中每一位数字的立方和等于该数本身。
如153是一个水仙花数,因为153=13+53+33,程序运行结果如图1-5-10所示。
图1-5-10 “水仙花数”程序运行结果实验分析利用循环遍历100~999之间的每一个数,对其中的每个数字都做测试,判断其各个位数字的立方和是否等于该数本身,如果是则输出显示;不是则换下一个数进行测试。
在程序编辑器窗口输入如下代码。
CLEAR?SPACE(10)+"要求:求出100~999之间的水仙花数"?·63·N=100M=0DO WHILE N<1000A=INT(N/100)B=INT(N/10)-INT(N/100)*10C=N%10IF N=A^3+B^3+C^3?SPACE(3),NM=M+1N=N+1LOOPELSEN=N+1LOOPENDIFENDDO@8,6 SAY "在100-999之间的"水仙花数"共有:"@8,35 SAY STR(M,2)@8,40 SAY "个"RETURN技巧解析利用相除再取整的方法A=INT(N/100),得到三位数N的百位数;利用整除取整相减的方法B=INT(N/10)-INT(N/100)*10,得到数N的十位数;利用求百分数的方法C=N%10,取N的个位数。