大学计算机基础第章编程基础课件_第1页
大学计算机基础第章编程基础课件_第2页
大学计算机基础第章编程基础课件_第3页
大学计算机基础第章编程基础课件_第4页
大学计算机基础第章编程基础课件_第5页
已阅读5页,还剩94页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第4程序设计基础了解程序设计的基本概念和方法,掌握JavaScript的基础程序设计技术。1主要内容程序设计基本概念JavaScript语言及其运行环境JavaScript编程基础WSH的输入/输出功能JavaScript流程控制调试JavaScript程序JavaScript函数2一、程序设计基本概念程序设计语言算法与流程图结构化程序设计3一、程序设计基本概念(续)程序用计算机语言描述的解决某一问题的步骤,由符合一定词法、语法和语义规则的符号序列组成程序设计语言用于编写计算机程序的语言,包括一组符号定义和相应规则分类机器语言汇编语言高级语言4一、程序设计基本概念(续)程序设计语言(续)机器语言二进制代码语言,能被计算机硬件直接识别并执行例:计算4+6的机器语言程序00100011000001000000001100000110000000105一、程序设计基本概念(续)程序设计语言(续)汇编语言一种面向机器的低级语言:用助记符代替操作码、用地址符代替操作数例:计算4+6的汇编语言程序MOVA,4HADDA,6HOUTLBUS,A6一、程序设计基本概念(续)程序设计语言(续)高级语言表达方法接近于人的自然语言和数学表达式,不依赖于机器的特定属性例:Print4+6两种工作方式:编译方式解释方式7一、程序设计基本概念(续)算法与流程图算法计算机解决问题的方法和步骤算法描述工具自然语言流程图…程序设计语言8一、程序设计基本概念(续)算法与流程图(续)流程图用一些几何框图、流程线和文字说明表示各种类型的操作9一、程序设计基本概念(续)算法与流程图(续)算法描述实例:求8!自然语言描述:S1:将1值存入被乘数变量f:1→f;将2值存入乘数变量m:2→mS2:将f与m的乘积存入f:f*m→f;使m的值加1:m+1→mS3:若m≤8,转S2;否则,转S4S4:输出结果f并结束流程图描述:10一、程序设计基本概念(续)算法与流程图(续)算法描述实例:求自然语言描述:S1:设累加和变量sum,且1→sum;设分母变量deno,且2→deno;设数符变量sign,且1→sign;S2:(-1)sign→sign;sign(1/deno)→term;sum+term→sum;deno+1→denoS3:若deno≤100,转S2;否则,转S4S4:输出结果sum并结束流程图描述:11一、程序设计基本概念(续)算法与流程图(续)算法评价标准正确性可读性通用性高效率12一、程序设计基本概念(续)程序设计设计、编制和调试程序的方法和过程一般步骤问题分析、算法设计、程序编写、程序调试、资料整理…常用方法结构化程序设计(StructuredProgramming,SP)方法面向对象程序设计(Object-OrientedProgramming,OOP)方法13一、程序设计基本概念(续)结构化程序设计按照模块化、层次化的方法设计程序核心思想程序模块化语句结构化自顶向下、逐步求精14一、程序设计基本概念(续)例:某班80名学生,求某次考试的不及格率任务分解模块结构图15一、程序设计基本概念(续)用流程图描述各模块的实现算法使用某种程序设计语言加以实现顶层流程图”输入成绩“流程图”统计不及格人数“流程图16二、JavaScript语言及其环境JavaScript解释型的、基于对象的脚本语言适用于创建短小的应用程序脚本用脚本语言编写的程序通常解释执行脚本宿主执行脚本的解释器17二、JavaScript语言及其环境(续)JavaScript脚本的用途动态网页编程Web服务器编程自动管理Windows系统18二、JavaScript语言及其环境(续)Windows脚本宿主(WSH)Windows脚本的运行环境内嵌在微软的Windows操作系统中脚本引擎某种脚本语言的解释程序安装WSH时已自动安装JavaScript和VBScrip这两种脚本引擎WSH可以执行以文本文件格式独立存在的Windows脚本,如.js、.vbs、.wsf、.wsh19二、JavaScript语言及其环境(续)编写JavaScript脚本程序使用纯文本编辑器(如:记事本程序)将程序代码保存为.js文件例:WScript.Echo("HelloWorld!");20二、JavaScript语言及其环境(续)WSH的两种形式窗口式(WScript)对应可执行文件WScript.exe命令式(CScript)对应可执行文件CScript.exeWScript和CScript的区别:输出形式不同21二、JavaScript语言及其环境(续)脚本的执行方式显式启动WSH执行脚本启动窗口式WSH(WScript) wscriptE:\Scripts\S0404.js启动命令式WSH(CScript)cscriptE:\Scripts\S0404.js隐式启动WSH执行脚本鼠标双击脚本文件通过Windows“开始”菜单的“运行”命令在命令提示符中键入脚本文件的完整路径名22二、JavaScript语言及其环境(续)使用Windows脚本帮助“MicrosoftWindows脚本技术”文档(CHM格式)微软的脚本中心站点microsoft/china/technet/community/scriptcenter/default.mspx23三、JavaScript编程基础基本概念数据类型常量变量运算符表达式24三、JavaScript编程基础(续)数据类型与常量数值型整数常量十进制整数八进制整数以0开头例:032,-032十六进制整数以0X或0x开头例:0x32,-0x2B25三、JavaScript编程基础(续)数据类型与常量(续)数值型(续)浮点数常量普通形式由整数部分、小数点和小数部分组成如:3.2、12.0、12.、.5、-1.8指数形式指数是-324~308之间的整数如:5.34e5(表示5.34×105)、312E-4(表示312×10-4)NaN(NotaNumber的缩写,即“非数字”)26三、JavaScript编程基础(续)数据类型与常量(续)字符串型由0个或多个字符组成的序列字符串常量必须用双引号“””或单引号“‘”括住例:"Helloword!"‘亚运欢迎你!'"a"或'a''"Hi!"Isaid.'转义字符以反斜杠“\”开头,后跟一个或多个字符如:'\n','\t','\\'27三、JavaScript编程基础(续)数据类型与常量(续)布尔型即逻辑型,只有两个值:逻辑“真”和逻辑“假”,分别对应于布尔常量true和false其他类型的常量null空值常量,表示空的或不存在的对象引用undefined未定义值常量,表示变量还没有赋值28三、JavaScript编程基础(续)变量程序中一个已命名的存储单元两个基本特征变量名:标识变量的名称变量值:变量存储的数据变量的值可以通过赋值发生变化29三、JavaScript编程基础(续)变量(续)命名以字母或下划线开头,由字母、数字和下划线构成不能使用JavaScript保留字,如var区分大小写易于记忆、有意义可以使用中文字符30三、JavaScript编程基础(续)变量(续)声明使用关键字var声明变量,形如:

varvariablename;或:

varname,age,weight;隐式声明31三、JavaScript编程基础(续)变量(续)赋值声明变量的同时给定初始值如:varname="张三丰";使用赋值语句如:age=20;32三、JavaScript编程基础(续)变量(续)读取变量的值把该变量的名字放在常量可以出现的位置:表达式中赋值符的右边函数调用的实参表中33三、JavaScript编程基础(续)例:变量的基本用法和含义,代码注释varname; //声明变量namename="张三";//把字符串“张三”存储到变量name中age=20; //变量age被隐式声明,并赋值整数20/*以上语句声明两个变量name、age,并赋值;以下语句取出这两个变量的值、并使用WScript.Echo方法输出。*/WScript.Echo(name); //取出变量name的值,并输出WScript.Echo("今年"); //输出字符串“今年”WScript.Echo(age); //读取变量age的值,并输出WScript.Echo("岁"); //输出字符串“岁”34三、JavaScript编程基础(续)变量(续)类型变量值所属的数据类型JavaScript是一种弱类型的编程语言,允许把任何类型的数据赋值给变量,因此JavaScript变量的类型是动态的,只有在程序运行时才能动态确定35三、JavaScript编程基础(续)例:变量类型的动态性varx=20;WScript.Echo(typeof(x));x="您好";WScript.Echo(typeof(x));x=true;WScript.Echo(typeof(x));使用CScript执行该程序,输出为:numberstringboolean36三、JavaScript编程基础(续)变量(续)作用域变量起作用的范围,在该范围内可引用该变量全局变量在所有函数之外定义作用范围是同一个脚本文件,从定义处到文件结束局部变量在函数内定义作用范围局限于函数37三、JavaScript编程基础(续)运算符指定计算操作的符号(如+、-、*、\等)。被计算的值称为操作数。基本属性优先级结合性单目运算符、双目运算符、三目运算符算术运算符、关系运算符、逻辑运算符…38三、JavaScript编程基础(续)表达式运算符和操作数组合而成的式子例:256、x、x+600表达式的值对操作数实施运算符所确定的计算后产生的结果值例:若有定义varx=256;则:256、x、x+600的值分别是数值256、256、85639三、JavaScript编程基础(续)运算符的优先级决定各运算符的执行次序:优先级高的先计算例:尽量使用简单的表达式40三、JavaScript编程基础(续)运算符的结合性在运算符优先级相同的情况下,由结合性决定运算顺序左结合左边的运算符优先计算例:100-20+5右结合右边的运算符优先计算例:x=y=12341三、JavaScript编程基础(续)表达式计算中的类型转换JavaScript会根据运算符的特性和操作数的类型进行隐式类型转换控制方法对于+运算符如果有一个操作数为字符串,则为字符串连接运算如果两个操作数都不是字符串,则是算术加运算对于其他运算符自动把操作数转换为相应类型使用函数parseInt()和parseFloat()显式转换42三、JavaScript编程基础(续)算术运算符操作数和计算结果都是数值型+-*/%++--例:12%5//若有varx=10,y;y=++x;y=x++;y=--x;y=x--;43三、JavaScript编程基础(续)算术运算符(续)例:网购一本书,书价7折,运费5元,共付款61元,问:书价是多少?paid=price*discount+transCostsprice=(paid–transCosts)/discount44三、JavaScript编程基础(续)关系运算符对操作数进行比较,返回一个布尔值又称比较运算符<<=>>===!====!==运算规则两个操作数都是字符串进行字符串比较运算(比较字符的Unicode码值)例:"xyz">"XYZ"、"x">"XYZ“至少有一个操作数不是字符串先将非数值型操作数转换为数值,然后进行数值比较运算例:2>"10"、1>true、true>false、2=="0X2"、1==true、"true"==true

45三、JavaScript编程基础(续)逻辑运算符操作数和计算结果都是布尔值&&||!例:score>=85&&score<=100year%4==0&&year%100!=0||year%400==0

46三、JavaScript编程基础(续)位操作运算符用于对整数的二进制位进行操作,计算结果仍为整数&|^<<>>>>>例:vara=4,b=7,c=2,result;WScript.Echo("a=4(0100),b=7(0111),c=2");result=a&b;WScript.Echo("a&b="+result);result=a<<c;WScript.Echo("a<<c="+result);result=a>>c;WScript.Echo("a>>c="+result);result=-1>>2;WScript.Echo("-1>>2="+result);result=-1>>>2;WScript.Echo("-1>>>2="+result);

结果:-1无符号右移结果:230-147三、JavaScript编程基础(续)赋值运算符=组合赋值运算符=+=-=*=/=%=&=|=^=<<=>>=>>>=

48三、JavaScript编程基础(续)条件运算符condition?

true_result:false_result例: varnumber,dataOK;number=5;dataOK=(number>0)?true:false;

49四、WSH的输入/输出功能借助脚本宿主对象所提供的有关方法进行1、使用WScript对象的Echo方法命令格式:WScript.Echo([Arg1][,Arg2][,Arg3]...);例:WScript.Echo("HelloWorld!");WScript.Echo("Hello","World!");WScript.Echo("1+2","=",1+2);

50四、WSH的输入/输出功能(续)2、使用WScript.Shell对象的Popup方法命令格式:

iB=object.Popup(strText,[nSecondsToWait],[strTitle],[nType])例:varshell=WScript.CreateObject("WScript.Shell");varBtnCode=shell.Popup("您是会员吗?",8,"确认框示例",1);varisMember=(BtnCode==1);varshow_text=isMember?"欢迎!请进!":"对不起!我们只对会员开放";WScript.Echo(show_text);

51四、WSH的输入/输出功能(续)3、使用WScript对象的子对象StdIn、StdOut只能用CScript执行WScript.StdIn对象的ReadLine方法从标准输入流中读取一行文本使用转换函数parseInt()和parseFloat()WScript.StdOut对象的WriteLine方法向标准输出流输出一行文本

52四、WSH的输入/输出功能(续)3、使用WScript对象的子对象StdIn、StdOut例1:

varage;WScript.StdOut.WriteLine("请输入你的年龄:");age=WScript.StdIn.ReadLine();WScript.Echo("比你年长5岁的人今年",age+5,"岁");

请输入你的年龄:20比你年长5岁的人今年205岁53四、WSH的输入/输出功能(续)3、使用WScript对象的子对象StdIn、StdOut例2:

varage;WScript.StdOut.WriteLine("请输入你的年龄:");age=parseInt(WScript.StdIn.ReadLine());WScript.Echo("比你年长5岁的人今年",age+5,"岁");

请输入你的年龄:20比你年长5岁的人今年25岁54五、JavaScript流程控制三种流程结构顺序选择循环

if语句switch语句while语句for语句do…while语句55五、JavaScript流程控制(续)if语句基本形式:

if(判定条件)语句1;

else语句2;56五、JavaScript流程控制(续)例:判断用户输入的一个年份是否为闰年varyear;WScript.StdOut.WriteLine("请输入年份:");year=parseInt(WScript.StdIn.ReadLine());if(year%4==0&&year%100!=0||year%400==0)WScript.Echo(year+"年"+"是闰年");elseWScript.Echo(year+"年"+"不是闰年");57五、JavaScript流程控制(续)if(year%4==0&&year%100!=0||year%400==0)WScript.Echo(year+"年"+"是闰年");elseWScript.Echo(year+"年"+"不是闰年");这个if语句的功能能否不用if语句实现?58五、JavaScript流程控制(续)if语句(续)形式2:

if(判定条件)语句1例:求3个变量x,y,z中的最大值。

max=x;if(max<y)max=y;if(max<z)max=z;

59五、JavaScript流程控制(续)代码缩排使用语句组60五、JavaScript流程控制(续)例:if((carDoors==4)&&(driverAge>24)){premium=650.00;WScript.Echo("保险费="+premium+"LOWRISK");}else{premium=1200.00;WScript.Echo("保险费="+premium+"HIGHRISK");}61五、JavaScript流程控制(续)if语句(续)嵌套形式:一个if语句中包含其他的if语句例:等级成绩评定

62五、JavaScript流程控制(续)switch语句

switch(表达式){case表达式1:语句1;[break;]case表达式2:语句2;[break;]…default:语句n+1;[break;]}63五、JavaScript流程控制(续)例:根据用户输入的一个数字(0-6),输出它对应的是星期几 //… switch(weekday) { case0:WScript.Echo("星期日");break; case1:WScript.Echo("星期一");break; case2:WScript.Echo("星期二");break; case3:WScript.Echo("星期三");break; case4:WScript.Echo("星期四");break; case5:WScript.Echo("星期五");break; case6:WScript.Echo("星期六");break; default: WScript.Echo("输入有误");break; }64五、JavaScript流程控制(续)当一些语句需要反复执行时,就要用到循环结构的语句,即循环语句。JavaScript常用的循环语句for语句while语句do…while语句65五、JavaScript流程控制(续)for语句格式:for(初值表达式;循环判定式;更新表达式)循环体语句;执行步骤:66五、JavaScript流程控制(续)例:求varsum=1,deno,sign=1,term;for(deno=2;deno<=100;deno++){sign=(-1)*sign;term=sign*(1/deno);sum+=term;}WScript.Echo("该多项式的和为:",sum);67五、JavaScript流程控制(续)例:显示十六进制数的数码0123…ABCDEFfor(i=0;i<16;i++)//i遍历每个数码{switch(i){//将十进制数i转换为对应的十六进制数码case10:digit="A";break;case11:digit="B";break;...default:digit=i;break;//0…9}digits=digits+digit;}WScript.Echo("十六进制的16个数码是:",digits);68五、JavaScript流程控制(续)while语句格式:

while(循环判定式)循环体语句;执行步骤:69五、JavaScript流程控制(续)例:求varsum=1,deno=2,sign=1,term;while(deno<=100){sign=(-1)*sign;term=sign*(1/deno);sum+=term;deno++;}WScript.Echo("该多项式的和为:",sum);

70五、JavaScript流程控制(续)do...while语句格式:

do循环体语句while(循环判定式);执行步骤:71五、JavaScript流程控制(续)例:求varsum=1,deno=2,sign=1,term;do{sign=(-1)*sign;term=sign*(1/deno);sum+=term;deno++;}while(deno<=100);WScript.Echo("该多项式的和为:",sum);72代码的输出结果?vari=0,text="";while(i<5){text+=i;i++;}WScript.Echo("text=",text);vari=0,text="";while(i<5);{text+=i;i++;}WScript.Echo("text=",text);73代码的输出结果?vari=8,text="";while(i<5){text+=i;i++;}WScript.Echo("text=",text);vari=8,text="";do{text+=i;i++;}while(i<5);WScript.Echo("text=",text);do…while的特点:至少执行一次循环体语句74在什么情况下,循环体及判定表达式皆相同的while和do...while不等价?75五、JavaScript流程控制(续)break语句格式:break;功能:结束循环语句(或switch语句)的执行continue语句格式:continue;功能:结束循环体的当次执行在循环体中与if语句配合使用,控制循环

76五、JavaScript流程控制(续)例:一段楼梯,每步跨2级,最后剩1级;每步跨3级,最后剩2级;每步跨4级,最后剩3级;每步跨5级,最后剩4级;每步跨6级,最后剩5级;每步跨7级,则最后不剩。问:楼梯最少有多少级?varsteps=7;while(true){if(steps%3==2&&steps%4==3&&steps%5==4&&steps%6==5)break;steps+=7;}WScript.Echo("楼梯最少有"+steps+"级");77五、JavaScript流程控制(续)vartext="",i,count=0;for(i=1;i<100;i++){if(i%8==0)continue;

count++;text=text+i+"\t";

if(count%5==0)text+="\n"}WScript.Echo(text);例:以每行5个数的方式输出1~100之间不能被8整除的数78五、JavaScript流程控制(续)循环的嵌套在一个循环语句的循环体中包含另一个循环语句例:求100~1000之间的所有素数思路:逐个数进行检查,是素数,则输出判断某数number是否为素数:看能否被2~number-1之间的数整除,能,则不是素数79代码varnumber,submul,count=0;vartext="100~1000之间的素数:\n\n";for(number=100;number<=1000;number++){

for(submul=2;submul<number;submul++)if(number%submul==0)break;if(submul==number){text=text+number+"";count++;if(count%10==0)text+="\n";}}WScript.Echo(text);80小结WSH的输入/输出流程控制选择结构if;switch循环结构for;while;do-whilebreakcontinue81六、调试JavaScript程序调试程序:排除程序中的错误程序错误语法错误程序不能正常执行利用WSH错误提示进行排除语义错误程序可以执行,但结果不正确利用调试工具进行排除跟踪程序的执行并查看执行中变量值的变化情况82六、调试JavaScript程序(续)使用Microsoft脚本编辑器来调试程序步骤1:在调试器中执行脚本如:CScriptE:\jaj\S0425-withError.js

//X2:设置断点、执行到断点3:逐语句执行,观察变量值的变化4:找到问题后,结束本次调试执行83七、Javascript函数函数语句序列作用:完成程序中的一个子任务优点:可重用预定义函数自定义函数84七、Javascript函数(续)预定义函数eval():计算在字符串中的常量表达式的值escape():将字符串中的非字母数字的ASCII字符转换为%AA、或将非ASCII字符(如汉字)转换为%uUUUU。例:varescapestr=escape("您好!John");把变量escapestr赋值为字符串

%u60A8%u597D%21%20Johnunescape():功能与escape()相反85七、Javascript函数(续)预定义函数(续)isNaN():确定一个变量是否是NaNisFinite():确定一个数值型变量是否有限例:isFinite(1)返回true,而isFinite("a")返回falseparseFloat():将字符串中开头的数字部分转换为浮点数。例:parseFloat("123.45abc")//123.45parseFloat("abc123.45")//NaNparseFloat(true)//NaNparseInt()86七、Javascript函数(续)自定义函数定义格式:function函数名([形参1][,形参2]...){函数体}例:自定义无参函数functionHello(){WScript.Echo("您好!");}87七、Javascript函数(续)自定义函数(续)例:判断整数是否为素数的函数functionisPrime(number){for(submul=2;submul<number;submul++)if(number%submul==0)break;if(submul==number)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论