程序设计语言与程序设计方法学习重点和难点程序设计的基本概念算法的概念和描述结构化程序设计方法面向对象的程序设计概念和方法1.1程序设计语言简介语言(按级别分类)机器语言汇编语言高级语言程序程序是完成某一特定任务的一组指令序列,或者说,为实现某一算法的指令序列称为“程序”程序设计使用某种计算机语言,按照某种算法,编写程序的活动程序=数据结构+算法程序=算法+数据结构+程序设计方法+语言工具和环境(重新定义)1.2算法及其描述1.2.1算法的概念算法——解决某个问题或处理某件事的方法和步骤,这里所讲的算法是专指用计算机解决某一问题的方法和步骤计算机算法的分类数值计算算法非数值计算算法1.2.2算法举例[例题1-1][例题1-2][例题1-3]例题1-1有两个杯子A和B,分别盛放茶和咖啡,要求将杯中的饮料互换,即A中盛放咖啡,B中盛放茶增加一个空杯C作为过渡算法可以表示为:步骤1:先将A杯中的茶倒入C杯中步骤2:再将B杯中的咖啡倒入A杯中步骤3:最后将C杯中的茶倒入B杯中ACB①茶③茶②咖啡茶茶咖啡咖啡茶该算法常常被用于实现两个数据内容的互换(1)A→C(2)B→A(3)C→B例题1-2求两个数A、B中的最大数算法可以表示为:步骤1:将数A、B进行比较,如果A大于等于B,则转向步骤2,否则转向步骤3。步骤2:A是最大数步骤3:B是最大数常常用于通过比较求最值或进行排序例题1-3求n!分析:如果n=4,则4!=1*2*3*4,所以可以先假设S代表累乘之积,I代表累乘项算法可以表示为:步骤1:S=1,I=1步骤2:如果I≤n,则执行步骤3,否则停止,S中的值即为所求的n!步骤3:将S与I的乘积存入S中步骤4:使I增1,转向执行步骤2常常用于数学和统计领域中级数的累积运算1.2算法及其描述1.2.3算法的特征有穷性确定性有零个或多个输入有一个或多个输出有效性1.2.4算法的表示自然语言伪代码流程图图形符号名称输入/输出处理判断起止特定过程流程线连接点例题1-1(实现)A和B数据互换增加一个C作为过渡算法可以表示为:步骤1:A→C步骤2:B→A步骤3:C→B开始结束输入数据A、B输出数据A、BA→CB→AC→B结构化源程序面向对象源程序例题1-2(实现)求两个数A、B中的最大数算法可以表示为:步骤1:将数A、B进行比较,如果A大于B,则转向步骤2,否则转向步骤3。步骤2:A是最大数步骤3:B是最大数开始结束输入数据A、B输出最大数MAXA→MAXABB→MAXTrueFalse结构化源程序面向对象源程序例题1-2(结构化代码)PrivateSubmain()DimAAsInteger,BAsInteger,maxAsInteger'变量定义A=InputBox(PleaseinputnumberA:)'输入变量AB=InputBox(PleaseinputnumberB:)'输入变量BIfABThen'比较A与Bmax=AElsemax=BEndIfDebug.Printmax=;max'打印最大值EndSub例题1-3(实现)求n!算法可以表示为:步骤1:S=1,I=1步骤2:如果I≤n,则执行步骤3,否则停止,S中的值即为所求的n!步骤3:将S与I的乘积存入S中步骤4:使I增1,转向执行步骤2S*I→S开始结束FalseTrue1→S1→II≤n输出n!的值SI+1→I输入n结构化源程序面向对象源程序抛硬币本程序的功能是利用随机函数模拟投币,方法是:每次随机产生一个0或1的整数,相当于一次投币,1代表正面,0代表反面。程序演示电脑模拟摇奖由计算机自动随机产生2000个100000~999999之间的数据,第2000个即为中奖号码Fori=1To2000intranum=Int((999999-100000+1)*Rnd)+100000ForJ=1To10000'利用空循环延时NextJTxtnum.Text=CStr(intranum)Txtnum.Refresh'文本框刷新Nexti若想实现6位中奖号码的每一个数字是分别滚动产生程序演示程序演示小结算法是解决问题的核心内容使用流程图来表示的算法,逻辑清楚,形象直观,容易理解掌握相应语言(如VB)的组成要素及编写方法,将很容易编写出对应程序