大学计算机基础第4章编程基础.ppt

上传人:sccc 文档编号:5379063 上传时间:2023-07-01 格式:PPT 页数:99 大小:827.51KB
返回 下载 相关 举报
大学计算机基础第4章编程基础.ppt_第1页
第1页 / 共99页
大学计算机基础第4章编程基础.ppt_第2页
第2页 / 共99页
大学计算机基础第4章编程基础.ppt_第3页
第3页 / 共99页
大学计算机基础第4章编程基础.ppt_第4页
第4页 / 共99页
大学计算机基础第4章编程基础.ppt_第5页
第5页 / 共99页
点击查看更多>>
资源描述

《大学计算机基础第4章编程基础.ppt》由会员分享,可在线阅读,更多相关《大学计算机基础第4章编程基础.ppt(99页珍藏版)》请在三一办公上搜索。

1、1,第4章,程序设计基础,2,主要内容,程序设计基本概念JavaScript语言及其运行环境JavaScript编程基础WSH的输入/输出功能JavaScript流程控制调试JavaScript程序JavaScript函数,3,一、程序设计基本概念,程序设计语言算法与流程图结构化程序设计,4,一、程序设计基本概念(续),程序用计算机语言描述的解决某一问题的步骤,由符合一定词法、语法和语义规则的符号序列组成程序设计语言用于编写计算机程序的语言,包括一组符号定义和相应规则分类机器语言汇编语言高级语言,5,一、程序设计基本概念(续),程序设计语言(续)机器语言二进制代码语言,能被计算机硬件直接识别并

2、执行例:计算4+6的机器语言程序 00100011 00000100 00000011 00000110 00000010,6,一、程序设计基本概念(续),程序设计语言(续)汇编语言一种面向机器的低级语言:用助记符代替操作码、用地址符代替操作数例:计算4+6的汇编语言程序 MOV A,4H ADD A,6H OUTL BUS,A,7,一、程序设计基本概念(续),程序设计语言(续)高级语言表达方法接近于人的自然语言和数学表达式,不依赖于机器的特定属性例:Print 4+6 两种工作方式:编译方式解释方式,8,一、程序设计基本概念(续),算法与流程图算法计算机解决问题的方法和步骤算法描述工具自然语

3、言流程图程序设计语言,9,一、程序设计基本概念(续),算法与流程图(续)流程图用一些几何框图、流程线和文字说明表示各种类型的操作,10,一、程序设计基本概念(续),算法与流程图(续)算法描述实例:求8!,自然语言描述:S1:将1值存入被乘数变量f:1f;将2值存入乘数变量m:2mS2:将f与m的乘积存入f:f*mf;使m的值加1:m+1mS3:若m8,转S2;否则,转S4S4:输出结果f并结束,流程图描述:,11,一、程序设计基本概念(续),算法与流程图(续)算法描述实例:求,自然语言描述:S1:设累加和变量sum,且1sum;设分母变量deno,且2deno;设数符变量sign,且1sign

4、;S2:(-1)signsign;sign(1/deno)term;sum+termsum;deno+1denoS3:若deno100,转S2;否则,转S4S4:输出结果sum并结束,流程图描述:,12,一、程序设计基本概念(续),算法与流程图(续)算法评价标准正确性可读性通用性高效率,13,一、程序设计基本概念(续),程序设计设计、编制和调试程序的方法和过程一般步骤问题分析、算法设计、程序编写、程序调试、资料整理常用方法结构化程序设计(Structured Programming,SP)方法面向对象程序设计(Object-Oriented Programming,OOP)方法,14,一、程序

5、设计基本概念(续),结构化程序设计按照模块化、层次化的方法设计程序核心思想程序模块化语句结构化自顶向下、逐步求精,15,一、程序设计基本概念(续),例:某班80名学生,求某次考试的不及格率任务分解 模块结构图,16,一、程序设计基本概念(续),用流程图描述各模块的实现算法使用某种程序设计语言加以实现,顶层流程图,”输入成绩“流程图,”统计不及格人数“流程图,17,二、JavaScript语言及其环境,JavaScript解释型的、基于对象的脚本语言适用于创建短小的应用程序脚本用脚本语言编写的程序通常解释执行脚本宿主执行脚本的解释器,18,二、JavaScript语言及其环境(续),JavaSc

6、ript脚本的用途动态网页编程Web服务器编程自动管理Windows系统,19,二、JavaScript语言及其环境(续),Windows脚本宿主(WSH)Windows脚本的运行环境内嵌在微软的Windows操作系统中脚本引擎某种脚本语言的解释程序安装WSH时已自动安装JavaScript和VBScrip这两种脚本引擎WSH可以执行以文本文件格式独立存在的Windows脚本,如.js、.vbs、.wsf、.wsh,20,二、JavaScript语言及其环境(续),编写JavaScript脚本程序使用纯文本编辑器(如:记事本程序)将程序代码保存为.js文件例:,WScript.Echo(Hel

7、lo World!);,21,二、JavaScript语言及其环境(续),WSH的两种形式窗口式(WScript)对应可执行文件WScript.exe命令式(CScript)对应可执行文件CScript.exeWScript和CScript的区别:输出形式不同,22,二、JavaScript语言及其环境(续),脚本的执行方式显式启动WSH执行脚本启动窗口式WSH(WScript)wscript E:ScriptsS0404.js启动命令式WSH(CScript)cscript E:ScriptsS0404.js隐式启动WSH执行脚本鼠标双击脚本文件通过Windows“开始”菜单的“运行”命令在

8、命令提示符中键入脚本文件的完整路径名,23,二、JavaScript语言及其环境(续),使用Windows 脚本帮助“Microsoft Windows 脚本技术”文档(CHM 格式)微软的脚本中心站点http:/,24,三、JavaScript编程基础,基本概念数据类型常量变量运算符表达式,25,三、JavaScript编程基础(续),数据类型与常量数值型整数常量十进制整数八进制整数以0开头例:032,-032十六进制整数以0X或0 x开头例:0 x32,-0 x2B,26,三、JavaScript编程基础(续),数据类型与常量(续)数值型(续)浮点数常量普通形式由整数部分、小数点和小数部分

9、组成如:3.2、12.0、12.、.5、-1.8指数形式指数是-324308之间的整数如:5.34e5(表示5.34105)、312E-4(表示31210-4)NaN(Not a Number的缩写,即“非数字”),27,三、JavaScript编程基础(续),数据类型与常量(续)字符串型由0个或多个字符组成的序列字符串常量必须用双引号“”或单引号“”括住例:Hello word!亚运欢迎你!a 或 aHi!I said.转义字符以反斜杠“”开头,后跟一个或多个字符如:n,t,28,三、JavaScript编程基础(续),数据类型与常量(续)布尔型即逻辑型,只有两个值:逻辑“真”和逻辑“假”,

10、分别对应于布尔常量true和false其他类型的常量null空值常量,表示空的或不存在的对象引用undefined未定义值常量,表示变量还没有赋值,29,三、JavaScript编程基础(续),变量程序中一个已命名的存储单元两个基本特征变量名:标识变量的名称变量值:变量存储的数据变量的值可以通过赋值发生变化,30,三、JavaScript编程基础(续),变量(续)命名以字母或下划线开头,由字母、数字和下划线构成不能使用JavaScript保留字,如var区分大小写易于记忆、有意义可以使用中文字符,31,三、JavaScript编程基础(续),变量(续)声明使用关键字 var 声明变量,形如:v

11、ar variablename;或:var name,age,weight;隐式声明,32,三、JavaScript编程基础(续),变量(续)赋值声明变量的同时给定初始值 如:var name=张三丰;使用赋值语句 如:age=20;,33,三、JavaScript编程基础(续),变量(续)读取变量的值把该变量的名字放在常量可以出现的位置:表达式中赋值符的右边函数调用的实参表中,34,三、JavaScript编程基础(续),例:变量的基本用法和含义,代码注释var name;/声明变量 namename=张三;/把字符串“张三”存储到变量 name 中age=20;/变量 age 被隐式声明,

12、并赋值整数 20/*以上语句声明两个变量name、age,并赋值;以下语句取出这两个变量的值、并使用WScript.Echo方法输出。*/WScript.Echo(name);/取出变量name的值,并输出WScript.Echo(今年);/输出字符串“今年”WScript.Echo(age);/读取变量age的值,并输出WScript.Echo(岁);/输出字符串“岁”,35,三、JavaScript编程基础(续),变量(续)类型变量值所属的数据类型JavaScript是一种弱类型的编程语言,允许把任何类型的数据赋值给变量,因此JavaScript变量的类型是动态的,只有在程序运行时才能动态

13、确定,36,三、JavaScript编程基础(续),例:变量类型的动态性var x=20;WScript.Echo(typeof(x);x=您好;WScript.Echo(typeof(x);x=true;WScript.Echo(typeof(x);,使用CScript执行该程序,输出为:numberstringboolean,37,三、JavaScript编程基础(续),变量(续)作用域变量起作用的范围,在该范围内可引用该变量全局变量在所有函数之外定义作用范围是同一个脚本文件,从定义处到文件结束局部变量在函数内定义作用范围局限于函数,38,三、JavaScript编程基础(续),运算符指定

14、计算操作的符号(如+、-、*、等)。被计算的值称为操作数。基本属性优先级结合性单目运算符、双目运算符、三目运算符算术运算符、关系运算符、逻辑运算符,39,三、JavaScript编程基础(续),表达式运算符和操作数组合而成的式子例:256、x、x+600表达式的值对操作数实施运算符所确定的计算后产生的结果值例:若有定义 var x=256;则:256、x、x+600的值分别是数值256、256、856,40,三、JavaScript编程基础(续),运算符的优先级决定各运算符的执行次序:优先级高的先计算例:尽量使用简单的表达式,41,三、JavaScript编程基础(续),运算符的结合性在运算符

15、优先级相同的情况下,由结合性决定运算顺序左结合左边的运算符优先计算例:100-20+5右结合右边的运算符优先计算例:x=y=123,42,三、JavaScript编程基础(续),表达式计算中的类型转换JavaScript会根据运算符的特性和操作数的类型进行隐式类型转换控制方法对于+运算符如果有一个操作数为字符串,则为字符串连接运算如果两个操作数都不是字符串,则是算术加运算对于其他运算符自动把操作数转换为相应类型使用函数parseInt()和parseFloat()显式转换,43,三、JavaScript编程基础(续),算术运算符操作数和计算结果都是数值型+-*/%+-例:12%5/若有 var

16、 x=10,y;y=+x;y=x+;y=-x;y=x-;,44,三、JavaScript编程基础(续),算术运算符(续)例:网购一本书,书价7折,运费5元,共付款61元,问:书价是多少?,paid=price*discount+transCosts,price=(paid transCosts)/discount,45,三、JavaScript编程基础(续),关系运算符对操作数进行比较,返回一个布尔值又称比较运算符=!=!=运算规则两个操作数都是字符串进行字符串比较运算(比较字符的Unicode码值)例:xyzXYZ、xXYZ“至少有一个操作数不是字符串先将非数值型操作数转换为数值,然后进行数

17、值比较运算例:210、1true、truefalse、2=0X2、1=true、true=true,46,三、JavaScript编程基础(续),逻辑运算符操作数和计算结果都是布尔值&|!例:score=85&score=100 year%4=0&year%100!=0|year%400=0,47,三、JavaScript编程基础(续),位操作运算符用于对整数的二进制位进行操作,计算结果仍为整数,结果:-1,无符号右移结果:230-1,48,三、JavaScript编程基础(续),赋值运算符=组合赋值运算符=+=-=*=/=%=&=|=,49,三、JavaScript编程基础(续),条件运算符

18、condition?true_result:false_result例:var number,dataOK;number=5;dataOK=(number0)?true:false;,50,四、WSH的输入/输出功能,借助脚本宿主对象所提供的有关方法进行1、使用WScript对象的Echo方法命令格式:WScript.Echo(Arg1,Arg2,Arg3.);例:WScript.Echo(HelloWorld!);WScript.Echo(Hello,World!);WScript.Echo(1+2,=,1+2);,51,四、WSH的输入/输出功能(续),2、使用WScript.Shell对

19、象的Popup方法命令格式:iB=object.Popup(strText,nSecondsToWait,strTitle,nType)例:var shell=WScript.CreateObject(WScript.Shell);var BtnCode=shell.Popup(您是会员吗?,8,确认框示例,1);var isMember=(BtnCode=1);var show_text=isMember?欢迎!请进!:对不起!我们只对会员开放;WScript.Echo(show_text);,52,四、WSH的输入/输出功能(续),3、使用 WScript对象的子对象StdIn、StdOu

20、t 只能用CScript执行WScript.StdIn对象的ReadLine方法从标准输入流中读取一行文本使用转换函数parseInt()和parseFloat()WScript.StdOut对象的WriteLine方法向标准输出流输出一行文本,53,四、WSH的输入/输出功能(续),3、使用 WScript对象的子对象StdIn、StdOut 例1:var age;WScript.StdOut.WriteLine(请输入你的年龄:);age=WScript.StdIn.ReadLine();WScript.Echo(比你年长5岁的人今年,age+5,岁);,请输入你的年龄:20比你年长5岁的

21、人今年 205 岁,54,四、WSH的输入/输出功能(续),3、使用 WScript对象的子对象StdIn、StdOut 例2:var age;WScript.StdOut.WriteLine(请输入你的年龄:);age=parseInt(WScript.StdIn.ReadLine();WScript.Echo(比你年长5岁的人今年,age+5,岁);,请输入你的年龄:20比你年长5岁的人今年 25 岁,55,五、JavaScript流程控制,三种流程结构顺序选择循环,if 语句,switch 语句,while 语句,for 语句,dowhile 语句,56,五、JavaScript流程控制

22、(续),if语句基本形式:if(判定条件)语句1;else 语句2;,57,五、JavaScript流程控制(续),例:判断用户输入的一个年份是否为闰年var year;WScript.StdOut.WriteLine(请输入年份:);year=parseInt(WScript.StdIn.ReadLine();if(year%4=0,58,五、JavaScript流程控制(续),if(year%4=0,这个if语句的功能能否不用if语句实现?,59,五、JavaScript流程控制(续),if语句(续)形式2:if(判定条件)语句1例:求3个变量x,y,z中的最大值。max=x;if(max

23、y)max=y;if(maxz)max=z;,60,五、JavaScript流程控制(续),代码缩排使用语句组,61,五、JavaScript流程控制(续),例:if(carDoors=4),62,五、JavaScript流程控制(续),if语句(续)嵌套形式:一个if语句中包含其他的if语句例:等级成绩评定,63,五、JavaScript流程控制(续),switch语句 switch(表达式)case 表达式1:语句1;break;case 表达式2:语句2;break;default:语句n+1;break;,64,五、JavaScript流程控制(续),例:根据用户输入的一个数字(0-6

24、),输出它对应的是星期几/switch(weekday)case 0:WScript.Echo(星期日);break;case 1:WScript.Echo(星期一);break;case 2:WScript.Echo(星期二);break;case 3:WScript.Echo(星期三);break;case 4:WScript.Echo(星期四);break;case 5:WScript.Echo(星期五);break;case 6:WScript.Echo(星期六);break;default:WScript.Echo(输入有误);break;,65,五、JavaScript流程控制(续

25、),当一些语句需要反复执行时,就要用到循环结构的语句,即循环语句。JavaScript常用的循环语句for语句while语句dowhile语句,66,五、JavaScript流程控制(续),for语句格式:for(初值表达式;循环判定式;更新表达式)循环体语句;执行步骤:,67,五、JavaScript流程控制(续),例:求,var sum=1,deno,sign=1,term;for(deno=2;deno=100;deno+)sign=(-1)*sign;term=sign*(1/deno);sum+=term;WScript.Echo(该多项式的和为:,sum);,68,五、JavaSc

26、ript流程控制(续),例:显示十六进制数的数码0123ABCDEF,for(i=0;i16;i+)/i遍历每个数码 switch(i)/将十进制数i转换为对应的十六进制数码 case 10:digit=A;break;case 11:digit=B;break;.default:digit=i;break;/09 digits=digits+digit;WScript.Echo(十六进制的16个数码是:,digits);,69,五、JavaScript流程控制(续),while语句格式:while(循环判定式)循环体语句;执行步骤:,70,五、JavaScript流程控制(续),例:求,va

27、r sum=1,deno=2,sign=1,term;while(deno=100)sign=(-1)*sign;term=sign*(1/deno);sum+=term;deno+;WScript.Echo(该多项式的和为:,sum);,71,五、JavaScript流程控制(续),do.while语句格式:do 循环体语句 while(循环判定式);执行步骤:,72,五、JavaScript流程控制(续),例:求,var sum=1,deno=2,sign=1,term;do sign=(-1)*sign;term=sign*(1/deno);sum+=term;deno+;while(d

28、eno=100);WScript.Echo(该多项式的和为:,sum);,73,代码的输出结果?,var i=0,text=;while(i5)text+=i;i+;WScript.Echo(text=,text);,var i=0,text=;while(i5);text+=i;i+;WScript.Echo(text=,text);,74,代码的输出结果?,var i=8,text=;while(i5)text+=i;i+;WScript.Echo(text=,text);,var i=8,text=;do text+=i;i+;while(i5);WScript.Echo(text=,t

29、ext);,dowhile的特点:至少执行一次循环体语句,75,在什么情况下,循环体及判定表达式皆相同的while和do.while不等价?,76,五、JavaScript流程控制(续),break语句格式:break;功能:结束循环语句(或switch语句)的执行continue语句格式:continue;功能:结束循环体的当次执行在循环体中与if语句配合使用,控制循环,77,五、JavaScript流程控制(续),例:一段楼梯,每步跨2级,最后剩1级;每步跨3级,最后剩2级;每步跨4级,最后剩3级;每步跨5级,最后剩4级;每步跨6级,最后剩5级;每步跨7级,则最后不剩。问:楼梯最少有多少级

30、?,var steps=7;while(true)if(steps%3=2,78,五、JavaScript流程控制(续),var text=,i,count=0;for(i=1;i100;i+)if(i%8=0)continue;count+;text=text+i+t;if(count%5=0)text+=nWScript.Echo(text);,例:以每行5个数的方式输出1100之间不能被8整除的数,79,五、JavaScript流程控制(续),循环的嵌套在一个循环语句的循环体中包含另一个循环语句例:求1001000之间的所有素数思路:逐个数进行检查,是素数,则输出判断某数number是否

31、为素数:看能否被2number-1之间的数整除,能,则不是素数,80,代码,var number,submul,count=0;var text=1001000之间的素数:nn;for(number=100;number=1000;number+)for(submul=2;submulnumber;submul+)if(number%submul=0)break;if(submul=number)text=text+number+;count+;if(count%10=0)text+=n;WScript.Echo(text);,81,小结,WSH的输入/输出流程控制选择结构if;switch循

32、环结构for;while;do-whilebreakcontinue,82,六、调试JavaScript程序,调试程序:排除程序中的错误程序错误语法错误程序不能正常执行利用WSH错误提示进行排除语义错误程序可以执行,但结果不正确利用调试工具进行排除跟踪程序的执行并查看执行中变量值的变化情况,83,六、调试JavaScript程序(续),使用Microsoft脚本编辑器来调试程序步骤1:在调试器中执行脚本 如:CScript E:jajS0425-withError.js/X2:设置断点、执行到断点3:逐语句执行,观察变量值的变化4:找到问题后,结束本次调试,执行,84,七、Javascript

33、函数,函数语句序列作用:完成程序中的一个子任务优点:可重用预定义函数自定义函数,85,七、Javascript函数(续),预定义函数eval():计算在字符串中的常量表达式的值escape():将字符串中的非字母数字的ASCII字符转换为%AA、或将非ASCII字符(如汉字)转换为%uUUUU。例:var escapestr=escape(您好!John);把变量 escapestr 赋值为字符串%u60A8%u597D%21%20Johnunescape():功能与escape()相反,86,七、Javascript函数(续),预定义函数(续)isNaN():确定一个变量是否是NaNisFi

34、nite():确定一个数值型变量是否有限 例:isFinite(1)返回true,而isFinite(a)返回falseparseFloat():将字符串中开头的数字部分转换为浮点数。例:parseFloat(123.45abc)/123.45 parseFloat(abc123.45)/NaN parseFloat(true)/NaN parseInt(),87,七、Javascript函数(续),自定义函数定义格式:function 函数名(形参1,形参2.)函数体例:自定义无参函数,function Hello()WScript.Echo(您好!);,88,七、Javascript函数(

35、续),自定义函数(续)例:判断整数是否为素数的函数,function isPrime(number)for(submul=2;submulnumber;submul+)if(number%submul=0)break;if(submul=number)return true;else return false;,89,七、Javascript函数(续),给函数添加返回值 return 表达式;,90,七、Javascript函数(续),函数调用形式:函数名(实参1,实参2)例:调用无参函数Hello调用流程,/Hello();/,91,七、Javascript函数(续),函数调用(续)例:调用

36、isPrime函数求1001000之间的素数,var number,submul,count=0;var text=1001000之间的素数:nn;for(number=100;number=1000;number+)if(isPrime(number)text=text+number+;count+;if(count%10=0)text+=n;WScript.Echo(text);,92,七、Javascript函数(续),函数与过程过程:只返回undefined的函数无return语句只有return;语句过程调用单独构成一条语句,而函数调用通常出现在表达式中,93,七、Javascrip

37、t函数(续),函数的嵌套调用函数定义的函数体语句中出现对另一个函数的调用,94,七、Javascript函数(续),递归函数函数定义的函数体中出现对自身的直接(或间接)调用例:一个农夫现有一头刚出生的母牛,且,每头母牛从其出生的第4年起,每年生一头母牛,问:第n年农夫共有多少牛?,95,问题分析,年份:1 2 3 4 5 6 7 8 9 10新生牛数目:1 0 0 1 1 1 2 3 4 6牛的总数目:1 1 1 2 3 4 6 9 13 19,牛的总数=上年牛的总数+本年新生牛的数目本年新生牛的数目=倒数第三年的牛的总数,96,数学公式,Cows(year-1)+Cows(year-3)(y

38、ear3),1(1=year=3),Cows(year)=,97,代码,function CountCows(year)var cows;if(year=3)return 1;cows=CountCows(year-3)+CountCows(year-1);return cows;WScript.stdOut.Writeline(要计算第几年的牛的数目?n);year=parseInt(WScript.stdIn.Readline();WScript.Echo(第+year+年牛的数目为:+CountCows(year);,98,七、Javascript函数(续),变量作用域变量的作用范围,在该范围内可引用该变量全局变量 vs.局部变量由变量定义所处的位置决定(函数中/函数外)“局部优先”尽量使用局部变量,以避免冲突,99,小结,JavaScript程序调试函数定义调用嵌套调用递归函数,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 农业报告


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号