- 1
- 0
- 约2.86千字
- 约 24页
- 2017-04-22 发布于北京
- 举报
如何设计第1个程序
如何设计第一个程序;目前你已经学习了一些编程基础,让我们来进一步看看如何设计一个具体的程序。当你坐下准备写一个程序,通常你对于想解决的问题,或者想模拟的情况多少有一些想法。新手程序员经常感到在解决如何把想法变换成实际代码的问题上存在困难。但结果却是,你已经从日常学习生活中获得了很多你所需要的解决问题的技术。;请记住最重要的事情是要在你开始编写代码之前设计好你的程序,而这也是最困难的。在很多注意中,编程就像是盖房子。如果你在没有建筑设计平面图的情况下试图建造一个房子,那会发生什么?除非你是个天才,否则你会得到一所问题重重的房子:漏水的屋顶,凹凸不平的墙壁等等……同样的,如果你在设计好计划之前就开始编写程序,你会发现你所编写的代码有很多问题,你必须花费很多时间来修改问题,这本来是可以通过提前设计避免的。
一个预先的计划会长远的节约你的时间,避免挫折。;第一步:明确问题;第二步:明确你的目标;第三步:将任务分出层次;让我们来看一个关于这一点的例子。我们想写一个关于胡萝卜的报告。当前的任务层次是这样的:
。写关于胡萝卜的报告
一次性写一个关于胡萝卜的报告是一个很难的任务,所以我们把它分解成子任务:
。写报告
。做调查
。写概述
。填写关于胡萝卜的细节;我们现在有三个可以分别集中研究的任务,这是很容易办到的。然而,在这种情况下,做关于胡萝卜的研究是模糊不清的,所以我们可以进一步分解:
。写关于胡萝卜的报告
。做关于胡萝卜的调查
。去图书馆找有关于胡萝卜的书
。在网上搜索有关于胡萝卜的信息
。写概述
。关于生长的信息
。关于加工的信息
。关于营养的信息
。填写关于胡萝卜的细节;现在我们有了一个任务的层次,每个子任务都不是特别困难。通过完成每个相对容易做的子项目,我们可以完成关于写一个胡萝卜报告的更困难的全部任务。
创造任务层次的另一种方法是自底向上的方法。在这种方法中,我们从一个简单任务的列表开始,通过将它们分组来构造层次。 ;举个例子,很多人必须在工作日上班或者上学,所以我们想解决“从起床到上班”的问题。如果问早上从起床到上班你要做什么任务,你也许会想到如下的列表:
。挑选衣服
。穿衣服
。吃早饭
。开车去工作
。刷牙
。起床
。准备早饭
。进入车里
。洗淋浴;使用自底向上的方法,我们可以通过寻找相似点把项目组织起来的方法,将这些整理成一个项目层次:
。从起床到上班
。卧室的事情
。起床
。挑选衣服
。浴室的事情
。洗淋浴
。刷牙
。早餐
。准备早餐
。吃早餐
。交通的事情
。进入车里
。开车去工作;结果表明,这些任务层次对程序设计非常有用,因为一旦你有了一个任务层次,你就基本明确了整个程序的结构。最高级别的任务(在本例中,“写一个关于胡萝卜的报告”或者“从起床到上班”)成为main()(因为它是你要解决的主要项目)。子项目成为程序中的函数。
如果其中一个项目(或函数)太难实现,仅仅是把这个项目分解成多个子项目,再函数调用多个子项目来实现这些新任务。最终,你应该达到的目标是在你的程序中的每一个函数实现起来都是琐碎的。;第四步:确定项目的顺序;现在你的程序有了一个结构,然后就该确定如何将所有的任务联系在一起。第一步是确定项目的执行顺序。例如,当你早上起床,是什么决定了你做以上任务的顺序?顺序或许是这样的:
。起床
。挑选衣服
。洗淋浴
。穿衣服
。准备早餐
。吃早餐
。刷牙
。进入车里
。开车去工作;这个列表基本上定义了将要进入main()函数中的东西:
01 int main()
02 {
03 GetOutOfBed();
04 PickOutClothes();
05 TakeAShower();
06 GetDressed();
07 PrepareBreakfast();
08 EatBreakfast();
09 BrushTeeth();
10 GetInCar();
11 DriveToWork();
12 };或者在计算机的情况下:
01 int main()
02 {
03 // Get first number from user
04 GetUserInput();
05
06 // Get mathematical operation from user
07 GetMathematicalOperation();
08
09 // Get second number from user
10 GetUserInput();
11
您可能关注的文档
- 如何分析当代资本主义发展下.ppt
- 如何向外国申请专利[高静].ppt
- 奶粉行业重点工作和如何执行.ppt
- 如何向外国申请专利[霍蓓蓓].ppt
- 如何和人沟通_谈话的技巧.ppt
- 如何在经济持续健康发展的基础上促进社会及谐稳定.ppt
- 如何合法移民加拿大[中国最全最完整移民加拿大方法途径汇总].ppt
- 如何在工作中实施时间管理及工作组织.pptx
- 如何在课堂上进行概念辨析及归纳式的强化复习.ppt
- 如何培养孩子交.1.ppt
- 广东省广州省实验中学教育集团2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州大学附属中学2025-2026学年八年级上学期奥班期中物理试题(解析版).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(含答案).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第八十六中学2025-2026学年八年级上学期期中物理试题(解析版).docx
- 广东省广州市第八十九中学2025-2026学年八年级上学期期中考试物理试题(含答案).docx
- 广东省广州市第二中学2025-2026学年八年级上学期期中考试物理试题(解析版).docx
- 2026《中国人寿上海分公司营销员培训体系优化研究》18000字.docx
- 《生物探究性实验教学》中小学教师资格模拟试题.docx
最近下载
- 雷克萨斯-Lexus NX-产品使用说明书-NX200-ZGZ10L-AWXLPC2-NX200NX200t_OM78064C_01-1412-001.pdf VIP
- 小学语文五年级第二学期第二单元整体作业设计.docx
- 外研版小学英语(三年级起点)三年级上册Module2-Unit1同步检测.doc VIP
- 2025年河南省平顶山市中考生物试卷(含答案).pdf
- 【TD产业联盟】全球5G_6G产业发展报告(2024-2025).pdf VIP
- 乡镇卫生院年休假制度.docx VIP
- 职业技术教育教学管理新制度学分制.doc VIP
- 健康生活小常识100条.docx VIP
- 职业学校学分制实施细则.docx
- AP微观经济学 2010年真题 附答案和评分标准 AP Microeconomics 2010 Real Exam with Answers and Scoring Guidelines.pdf VIP
原创力文档

文档评论(0)