已阅读5页,还剩94页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,第 4 章,程序设计基础,2,主要内容,程序设计基本概念 JavaScript语言及其运行环境 JavaScript编程基础 WSH的输入/输出功能 JavaScript流程控制 调试JavaScript程序 JavaScript函数,3,一、程序设计基本概念,程序设计语言 算法与流程图 结构化程序设计,4,一、程序设计基本概念(续),程序 用计算机语言描述的解决某一问题的步骤,由符合一定词法、语法和语义规则的符号序列组成 程序设计语言 用于编写计算机程序的语言,包括一组符号定义和相应规则 分类 机器语言 汇编语言 高级语言,5,一、程序设计基本概念(续),程序设计语言(续) 机器语言 二进制代码语言,能被计算机硬件直接识别并执行 例:计算4+6的机器语言程序 00100011 00000100 00000011 00000110 00000010,6,一、程序设计基本概念(续),程序设计语言(续) 汇编语言 一种面向机器的低级语言:用助记符代替操作码、用地址符代替操作数 例:计算4+6的汇编语言程序 MOV A,4H ADD A,6H OUTL BUS,A,7,一、程序设计基本概念(续),程序设计语言(续) 高级语言 表达方法接近于人的自然语言和数学表达式,不依赖于机器的特定属性 例:Print 4+6 两种工作方式: 编译方式 解释方式,8,一、程序设计基本概念(续),算法与流程图 算法 计算机解决问题的方法和步骤 算法描述工具 自然语言 流程图 程序设计语言,9,一、程序设计基本概念(续),算法与流程图(续) 流程图 用一些几何框图、流程线和文字说明表示各种类型的操作,10,一、程序设计基本概念(续),算法与流程图(续) 算法描述实例:求8!,自然语言描述: S1:将1值存入被乘数变量f:1f; 将2值存入乘数变量m:2m S2:将f与m的乘积存入f:f*mf; 使m的值加1:m+1m S3:若m8,转S2;否则,转S4 S4:输出结果f并结束,流程图描述:,11,一、程序设计基本概念(续),算法与流程图(续) 算法描述实例:求,自然语言描述: S1:设累加和变量sum,且1sum; 设分母变量deno,且2deno; 设数符变量sign,且1sign; S2:(-1)signsign;sign(1/deno)term; sum+termsum;deno+1deno S3:若deno100,转S2;否则,转S4 S4:输出结果sum并结束,流程图描述:,12,一、程序设计基本概念(续),算法与流程图(续) 算法评价标准 正确性 可读性 通用性 高效率,13,一、程序设计基本概念(续),程序设计 设计、编制和调试程序的方法和过程 一般步骤 问题分析、算法设计、程序编写、程序调试、资料整理 常用方法 结构化程序设计(Structured Programming,SP ) 方法 面向对象程序设计(Object-Oriented Programming,OOP) 方法,14,一、程序设计基本概念(续),结构化程序设计 按照模块化、层次化的方法设计程序 核心思想 程序模块化 语句结构化 自顶向下、逐步求精,15,一、程序设计基本概念(续),例:某班80名学生,求某次考试的不及格率 任务分解 模块结构图,16,一、程序设计基本概念(续),用流程图描述各模块的实现算法 使用某种程序设计语言加以实现,顶层流程图,”输入成绩“流程图,”统计不及格人数“流程图,17,二、JavaScript语言及其环境,JavaScript 解释型的、基于对象的脚本语言 适用于创建短小的应用程序 脚本 用脚本语言编写的程序 通常解释执行 脚本宿主 执行脚本的解释器,18,二、JavaScript语言及其环境(续),JavaScript脚本的用途 动态网页编程 Web服务器编程 自动管理Windows系统,19,二、JavaScript语言及其环境(续),Windows脚本宿主(WSH) Windows脚本的运行环境 内嵌在微软的Windows操作系统中 脚本引擎 某种脚本语言的解释程序 安装WSH时已自动安装JavaScript和VBScrip这两种脚本引擎 WSH可以执行以文本文件格式独立存在的Windows脚本,如.js、.vbs、.wsf、.wsh,20,二、JavaScript语言及其环境(续),编写JavaScript脚本程序 使用纯文本编辑器(如:记事本程序) 将程序代码保存为.js文件 例:,WScript.Echo(“Hello World!“);,21,二、JavaScript语言及其环境(续),WSH的两种形式 窗口式(WScript) 对应可执行文件WScript.exe 命令式(CScript) 对应可执行文件CScript.exe WScript和CScript的区别:输出形式不同,22,二、JavaScript语言及其环境(续),脚本的执行方式 显式启动WSH执行脚本 启动窗口式WSH(WScript) wscript E:ScriptsS0404.js 启动命令式WSH(CScript) cscript E:ScriptsS0404.js 隐式启动WSH执行脚本 鼠标双击脚本文件 通过Windows“开始”菜单的“运行”命令 在命令提示符中键入脚本文件的完整路径名,23,二、JavaScript语言及其环境(续),使用Windows 脚本帮助 “Microsoft Windows 脚本技术” 文档(CHM 格式) 微软的脚本中心站点/china/technet/community/scriptcenter/default.mspx,24,三、JavaScript编程基础,基本概念 数据类型 常量 变量 运算符 表达式,25,三、JavaScript编程基础(续),数据类型与常量 数值型 整数常量 十进制整数 八进制整数 以0开头 例:032,-032 十六进制整数 以0X或0x开头 例:0x32,-0x2B,26,三、JavaScript编程基础(续),数据类型与常量(续) 数值型(续) 浮点数常量 普通形式 由整数部分、小数点和小数部分组成 如: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“ 或 a “Hi!“ I said. 转义字符 以反斜杠“”开头,后跟一个或多个字符 如: n , t , ,28,三、JavaScript编程基础(续),数据类型与常量(续) 布尔型 即逻辑型,只有两个值:逻辑“真”和逻辑“假”,分别对应于布尔常量true和false 其他类型的常量 null 空值常量,表示空的或不存在的对象引用 undefined 未定义值常量,表示变量还没有赋值,29,三、JavaScript编程基础(续),变量 程序中一个已命名的存储单元 两个基本特征 变量名:标识变量的名称 变量值:变量存储的数据 变量的值可以通过赋值发生变化,30,三、JavaScript编程基础(续),变量(续) 命名 以字母或下划线开头,由字母、数字和下划线构成 不能使用JavaScript保留字,如var 区分大小写 易于记忆、有意义 可以使用中文字符,31,三、JavaScript编程基础(续),变量(续) 声明 使用关键字 var 声明变量,形如: var variablename; 或: var name,age,weight; 隐式声明,32,三、JavaScript编程基础(续),变量(续) 赋值 声明变量的同时给定初始值 如: var name = “张三丰“; 使用赋值语句 如: age = 20;,33,三、JavaScript编程基础(续),变量(续) 读取变量的值 把该变量的名字放在常量可以出现的位置: 表达式中赋值符的右边 函数调用的实参表中,34,三、JavaScript编程基础(续),例:变量的基本用法和含义,代码注释 var name; /声明变量 name name=“张三“;/把字符串“张三”存储到变量 name 中 age=20; /变量 age 被隐式声明,并赋值整数 20 /* 以上语句声明两个变量name、age,并赋值; 以下语句取出这两个变量的值、并使用WScript.Echo方法输出。 */ WScript.Echo(name); /取出变量name的值,并输出 WScript.Echo(“今年“); /输出字符串“今年” WScript.Echo(age); /读取变量age的值,并输出 WScript.Echo(“岁“); /输出字符串“岁”,35,三、JavaScript编程基础(续),变量(续) 类型 变量值所属的数据类型 JavaScript是一种弱类型的编程语言,允许把任何类型的数据赋值给变量,因此JavaScript变量的类型是动态的,只有在程序运行时才能动态确定,36,三、JavaScript编程基础(续),例:变量类型的动态性 var x=20; WScript.Echo(typeof(x); x=“您好“; WScript.Echo(typeof(x); x=true; WScript.Echo(typeof(x);,使用CScript执行该程序,输出为: number string boolean,37,三、JavaScript编程基础(续),变量(续) 作用域 变量起作用的范围,在该范围内可引用该变量 全局变量 在所有函数之外定义 作用范围是同一个脚本文件,从定义处到文件结束 局部变量 在函数内定义 作用范围局限于函数,38,三、JavaScript编程基础(续),运算符 指定计算操作的符号(如+、-、*、等)。被计算的值称为操作数。 基本属性 优先级 结合性 单目运算符、双目运算符、三目运算符 算术运算符、关系运算符、逻辑运算符,39,三、JavaScript编程基础(续),表达式 运算符和操作数组合而成的式子 例:256、x、x+600 表达式的值 对操作数实施运算符所确定的计算后产生的结果值 例: 若有定义 var x=256; 则:256、x、x+600的值分别是数值256、256、856,40,三、JavaScript编程基础(续),运算符的优先级 决定各运算符的执行次序:优先级高的先计算 例: 尽量使用简单的表达式,41,三、JavaScript编程基础(续),运算符的结合性 在运算符优先级相同的情况下,由结合性决定运算顺序 左结合 左边的运算符优先计算 例:100-20+5 右结合 右边的运算符优先计算 例:x=y=123,42,三、JavaScript编程基础(续),表达式计算中的类型转换 JavaScript会根据运算符的特性和操作数的类型进行隐式类型转换 控制方法 对于+运算符 如果有一个操作数为字符串,则为字符串连接运算 如果两个操作数都不是字符串,则是算术加运算 对于其他运算符 自动把操作数转换为相应类型 使用函数parseInt()和parseFloat()显式转换,43,三、JavaScript编程基础(续),算术运算符 操作数和计算结果都是数值型 + - * / % + - 例: 12%5 /若有 var 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码值) 例:“xyz“XYZ“、“x“XYZ“ 至少有一个操作数不是字符串 先将非数值型操作数转换为数值,然后进行数值比较运算 例:2“10“、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编程基础(续),条件运算符 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对象的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、StdOut 只能用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岁的人今年 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流程控制(续),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 (maxy) 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),输出它对应的是星期几 / 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流程控制(续),当一些语句需要反复执行时,就要用到循环结构的语句,即循环语句。 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,五、JavaScript流程控制(续),例:显示十六进制数的数码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流程控制(续),例:求,var 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(deno=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=“, text);,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级,则最后不剩。问:楼梯最少有多少级?,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 += “n“ WScript.Echo(text);,例: 以每行5个数的方式输出1100之间不能被8整除的数,79,五、JavaScript流程控制(续),循环的嵌套 在一个循环语句的循环体中包含另一个循环语句 例:求1001000之间的所有素数 思路: 逐个数进行检查,是素数,则输出 判断某数number是否为素数:看能否被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 循环结构 for;while;do-while break continue,82,六、调试JavaScript程序,调试程序:排除程序中的错误 程序错误 语法错误 程序不能正常执行 利用WSH错误提示进行排除 语义错误 程序可以执行,但结果不正确 利用调试工具进行排除 跟踪程序的执行并查看执行中变量值的变化情况,83,六、调试JavaScript程序(续),使用Microsoft脚本编辑器来调试程序 步骤 1:在调试器中执行脚本 如:CScript E:jajS0425-withError.js /X 2:设置断点、执行到断点 3:逐语句执行,观察变量值的变化 4:找到问题后,结束本次调试,执行,84,七、Javascript函数,函数 语句序列 作用:完成程序中的一个子任务 优点:可重用 预定义函数 自定义函数,85,七、Javascript函数(续),预定义函数 eval( ) :计算在字符串中的常量表达式的值 escape( ):将字符串中的非字母数字的ASCII字符转换为%AA、或将非ASCII字符(如汉字)转换为%uUUUU。 例:var escapestr=escape(“您好! John“); 把变量 escapestr 赋值为字符串 %u60A8%u597D%21%20John unescape( ):功能与escape( ) 相反,86,七、Javascript函数(续),预定义函数(续) isNaN( ) :确定一个变量是否是NaN isFinite( ):确定一个数值型变量是否有限 例:isFinite(1)返回true,而isFinite(“a“)返回false parseFloat( ):将字符串中开头的数字部分转换为浮点数。 例: parseFloat(“123.45abc“) /123.45 parseFloat(“abc123.45“) /NaN parseFloat(true) /NaN parseInt( ),87,七、Javascript函数(续),自定义函数 定义格式: function 函数名(形参1 ,形参2.) 函数体 例:自定义无参函数,function Hello( ) WScript.Echo(“您好!“); ,88,七、Javascript函数(续),自定义函数(续) 例:判断整数是否为素数的函数,function isPrime(number) for(submul=2; submulnumber; submul+) if(number%submul = 0) break; if(submul = number) return true; else return f
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 山东省莒县第二中学2026届生物高一上期末质量检测模拟试题含解析
- 医疗数据存储的区块链安全应用落地
- 江苏省常州市武进区礼嘉中学2026届高一上数学期末质量检测试题含解析
- 胃插管术课件
- 肿瘤营养支持
- 医疗数据区块链中心化与去中心化的权衡
- 肾腺瘤MRI课件教学课件
- 连续性肾替代治疗抗菌药物剂量调整专家共识解读总结2026
- 肾科普课件教学课件
- 2026届山西省太原市重点中学生物高一第一学期期末统考试题含解析
- 河南省许昌市2024-2025学年八年级上学期数学期末测评卷(含答案与解析)
- 资材部年度工作总结
- 2024-2025学年四川省成都市高一上学期期末教学质量监测英语试题(解析版)
- 人生中的转折点主题班会
- GB/T 44934-2024电力储能用飞轮储能单元技术规范
- 陈景润数学家人物介绍
- 【浙教版】一年级上册《劳动》《水培植物我养护》
- 2024秋期国家开放大学本科《国际经济法》一平台在线形考(形考任务1至4)试题及答案
- 医学伦理学(山东中医药大学)智慧树知到答案2024年山东中医药大学
- DB22T 5077-2023 建设工程质量检测文件标准
- 房屋租赁预定意向确认书
评论
0/150
提交评论