390 likes | 604 Views
程序设计导论. 第一章 : 计算机程序介绍 第二章:脚本简介 第三章:数据和变量 第四章:使用程序逻辑 第五章:使用过程和函数 第六章:开发用户界面 第七章:数据处理简介 第八章:编程方法 第九章:软件开发过程简介 第十章:进阶学习目标. 第五章 使用过程和函数. 使用过程 使用函数. 使用过程. 学完本节后,将能够: 了解什么是过程 掌握如何建立过程 掌握如何向过程传递数据. 使用过程. 5.1 使用过程. 过程的定义 建立过程 使用过程 向过程传递数据 示例 使用过程. 过程的定义.
E N D
程序设计导论 • 第一章:计算机程序介绍 • 第二章:脚本简介 • 第三章:数据和变量 • 第四章:使用程序逻辑 • 第五章:使用过程和函数 • 第六章:开发用户界面 • 第七章:数据处理简介 • 第八章:编程方法 • 第九章:软件开发过程简介 • 第十章:进阶学习目标
第五章 使用过程和函数 • 使用过程 • 使用函数
使用过程 • 学完本节后,将能够: • 了解什么是过程 • 掌握如何建立过程 • 掌握如何向过程传递数据
使用过程 5.1 使用过程 • 过程的定义 • 建立过程 • 使用过程 • 向过程传递数据 • 示例 使用过程
过程的定义 5.1.1 过程的定义 • 过程是程序中可重复使用的执行代码段,包括声明语句和 End 语句 (1)过程类型 • Sub过程:执行操作但不向调用它的过程返回值 • Function过程:执行操作并可以向调用它的过程返回值
过程的定义 5.1.1 过程的定义 • (2)使用过程 • 可以在一个过程中调用另一个过程。在调用过程中,控制发生了转移。 • (3)示例
过程的定义 5.1.1 过程的定义 • (3)示例 Sub ProcedureA( ) Call ProcedureB( ) MessageBox.Show( “ Control passed back to ProcedureA ” ) End Sub Sub ProcedureB( ) MessageBox.Show( “ Control passed to ProcedureB” ) End Sub
过程的定义 5.1.1 过程的定义 调用流程: Sub ProcedureA( ) Sub ProcedureB( ) Call ProcedureB( ) MessageBox.Show ( “ Control passed to ProcedureB” ) Control passed back to ProcedureA End Sub
过程的定义 5.1.1 过程的定义 • (3)示例的结果 • 在一个消息框中先显示消息“Control passed to ProcedureB”,然后在另一个消息框中显示消息“Control passed back to ProcedureA”。 • 这是因为,ProcedureA()先将控制传递给了ProcedureB()。
建立过程 5.1.2 建立过程 • (1)建立 Sub 过程的语法 [accessibility] Sub subname[(argumentlist)] ' Sub 过程语句放在此处 End Sub [accessibility]:可访问性 [(argumentlist)]:参数列表
建立过程 5.1.2 建立过程 • 可访问性:是指使用它的权限,就是代码对元素进行读写的许可。 • Public:用Public关键字声明的元素可在一组程序中的任何地方访问。 • Protected:仅可以从同一类中或其派生类中访问。 • 类:是一组具有相同性质的数据的集合,它由数据成员和操作方法组成。 • 派生类:用现有的类A来定义新的类B,则类B是类A的派生类,B继承A 的性质。
建立过程 5.1.2 建立过程 • Friend:声明元素可从同一个工程中访问,但不能从工程外访问。 • Protected Friend:所声明的元素可从派生类或同一工程中访问。 • Private:所声明的元素只能从同一模块、类或结构中访问。
建立过程 5.1.2 建立过程 • (2)建立Sub过程举例 Private Sub AboutHelp( ) MessageBox.Show("MyProgram V1.0", "MyProgram Help") End Sub
使用过程 5.1.3 使用过程 • (1)代码流程 • 当调用Sub过程时,从Sub语句的第一句可执行的语句开始,到End Sub、 Exit Sub或 Return结束,结束后,将返回到Sub下一行代码。 • 当执行重复或共享任务时,需要对过程的参数列表赋值。传递给过程的值称为参数。
使用过程 5.1.3 使用过程 • (2)调用过程 • 语法规则为: [Call] Subname [(Argumentlist)]
使用过程 5.1.3 使用过程 • (2)调用过程 • 必须在代码中单独调用Sub过程。 • 调用语句必须提供所有必选参数的值。 • 可以有选择地使用Call语句来调用Sub过程。
使用过程 5.1.3 使用过程 • (3)调用举例 Sub Main( ) SetData( ) End Sub
使用过程 5.1.3 使用过程 • (4)使用Call语句举例 Sub Main( ) Call SetData( ) End Sub
向过程传递数据 5.1.4 向过程传递数据 • (1)形参和实参 • 在定义过程时,需要描述从调用过程中接收的数据和数据类型。此过程定义的元素称为形参。 • 用实际值代替每个形参,分配到形参位置的值称为实参。
向过程传递数据 5.1.4 向过程传递数据 • (2)声明参数 • 为过程声明参数的方法与声明变量的方法相同,指定参数名和数据类型。 • 为Sub和Function声明参数的语法是相同的。 [ByVal|ByRef] argumentname As datatype
向过程传递数据 5.1.4 向过程传递数据 例如: Public Sub Hello (ByVal Name As String) MessageBox.Show ( “Hello, ” & Name & “ ! ” ) End Sub
向过程传递数据 5.1.4 向过程传递数据 • 参数的传递包括值传递和引用传递两种。 • 使用ByVal关键字通过值传递可变参数,则被调用过程无法修改变量本身。 • 使用ByRef关键字传递可变参数,则被调用过程就能够修改变量本身。
示例 使用过程 5.1.5 示例 使用过程 • 代码 • 输出 Public Sub Button_Click() ……….. Bonus(nSal) End Sub Private Sub Bonus(ByVal salary as Integer) ……….. MessageBox.Show(……) End Sub
第五章使用过程和函数 • 使用过程 • 使用函数
使用函数 5.2 使用函数 • 建立函数 • 函数的定义 • 什么是预定义函数 • 函数的使用 • 课堂练习 使用函数
建立函数 5.2.3 建立函数 语法: [accessibility] Function functionName([arguments]) As returnType ……………. Return expression End Function
建立函数 5.2.3 建立函数 • 语法: [accessibility] Function functionName([arguments]) As returnType ……………. functionName = expression End Function
建立函数 5.2.3 建立函数 • 示例 Public Function Sum(ByVal nNum1 As Integer, ByVal nNum2 As Integer) as Integer Return (nNum1 + nNum2) End Function
函数的定义 5.2.1 函数的定义 • (1)调用函数 • 调用Function过程,只需在赋值语句右边或表达式中包含函数名称和参数。
函数的定义 5.2.1 函数的定义 Function 过程向调用过程返回值 • 示例 Function FtoC(ByVal temperature As Single) As Single 'Convert Fahrenheit to Celsius Return (temperature - 32.0) * (5 / 9) End Function 该函数将华氏温度转换成摄氏温度。
函数的定义 5.2.1 函数的定义 • 调用函数举例 Dim celsiusTemperature As Single celsiusTemperature = FtoC (80) If FtoC (userValue) < 0 Then… 第二行语句通过赋值语句调用FtoC函数 第三行语句通过表达式调用FtoC函数
函数的定义 5.2.1 函数的定义 • (2)代码流程 • 当调用Function过程时,从Function语句后的第一句可执行的语句开始,到End Function 、 Exit Function或 Return语句时结束。
什么是预定义函数 5.2.2 什么是预定义函数 • 在代码中使用预定义函数来提供常用功能 • 调用预定义函数的方法与调用其他函数的方法相同 • 示例 • InputBox函数 • “日期和时间”函数 • “字符串”函数 • “格式”函数 • “财务”函数
什么是预定义函数 5.2.2 什么是预定义函数 • 预定义函数举例: InputBox函数 • 第三章实验中代码行: mSalary = InputBox ( “ Enter Your Monthly Salary ” )
函数的使用 5.2.4 函数的使用 • 可以使用预定义函数或在代码中创建自己的函数 • (1)调用语法:使用赋值语句或表达式 • (2)字符串函数:对字符串进行处理、分析等操作。 • Trim函数:消除特定字符串前后空格
函数的使用 5.2.4 函数的使用 • (2)字符串函数 • Len函数:得到字符串中的字符数并保存 • 如:用户输入Alice,则使用Len函数得到5 • Left函数:从字符串左边开始返回制定数目的字符 • 如:Left ( customerName, 5 )
函数的使用 5.2.4 函数的使用 • (3)函数与表达式 • 通过算术运算符和逻辑运算符连接变量组成复杂的算式。 • 如:Dim x As Integer • Dim y As Integer • x = 10 • y = 20 • MsgBox ( x + y )
课堂练习 使用函数 5.2.5 课堂练习 使用函数 • 使用 Visual Studio .NET 文档来学习预定义函数并掌握如何在代码中使用这些函数
回顾 • 使用过程 • 使用函数