VB程序设计语言 主讲教师:王 杨.

Slides:



Advertisements
Similar presentations
编程加工 信息的. 趣味导入拓展提升大显身手总结反思学以致用 传说古代印度有个国王叫舍罕,他很迷恋棋类,而 宰相达依尔是个聪明的大臣,发明了国际象棋。国王玩 得爱不释手,决定奖赏宰相。达依尔说:陛下,我别无 他求,请你在这张棋盘的第一个格子里赏我 1 粒麦子; 在第二个格子里赏我 2 粒麦子;在第三个格子里赏我.
Advertisements

第二章 VB程序设计基础 第1节 Visual Basic 概述 1.1 Visual Basic简介 1.2 面向对象的程序设计概念
第2章 Visual Basic 6.0编程基础 (第一部分)
報告人:教育部會計處處長 黃 永 傳 日 期:103 年12 月27 日
計算機概論 第4章 基本視窗程式應用 4-1 程式語言簡介 4-2 演算法與流程圖 4-3 視窗程式語言設計 4-4 資料結構.
ooxx這個遊戲程式,非常的簡單只要你小時候會玩井字遊戲即可把電腦打敗,可以說是一種考智力取勝的遊戲。
第四章 控制结构.
第 7 章 文 件.
赋值语句与输入、输出语句.
程式語言(I)- Visual Basic 6.0 第 9 章 結構化程式設計
高中信息技术新课程探讨 算法与程序设计教学实践与探讨 江苏省新海高级中学  张丽.
Access数据库程序设计 总复习.
組員:4A140013張瓊云 4A1I0039石宜芬 4A1I0909許峻綱 指導老師:王立杰老師
增值评价 2014级 初中起点报告 解读培训 辽宁省基础教育质量监测与评价中心.
网 络 课 程 马 鞍 学 网 络 山 课 程 大 络 网 Visual Basic程序设计 第 一 讲 最容易接受的编程语言
高等医药院校药学类第三轮规划教材——大学计算机基础
指導老師:陳韻如 班級:幼保二甲 姓名:林靜宜 學號:4A0I0033
算法和程序设计 第4课 分支结构的算法设计 •.
第五章 数组.
Visual Basic程序设计.
BLANK overview.
程式語言Visual Basic 變數的可視範圍
CH11.
第6章 数 组 6.1 一维数组 6.2 控件数组 6.3 二维数组.
第二章 Visual Basic语言基础.
講師:戴志華 國立台灣大學電機工程研究所 Visual Basic 程式設計 講師:戴志華 國立台灣大學電機工程研究所.
数组 第 6 章.
第5章 数组 Visual Basic程序设计.
Visual Basic程序设计 第七章 数组
1、数组的概念 2、静态数组 3、动态数组 4、数组的基本操作 5、控件数组
Visual Basic程序设计 第八章 过程 -子程序和函数
Visual Basic 程序设计教程 机械工业出版社同名教材 配套电子教案 2003 年 6月.
过程 第 7 章.
初识Visual Basic.
Visual Basic程序设计基础 计算机科学学院.
第4章 程序控制结构与算法基础.
流程控制、陣列 台南市聖功女子高級中學 毛全良.
计算机程序设计强化复习 Visual Basic 6.0.
程序的基本要素 2018/12/6.
Visual Basic 程序设计 教师:王 杨 电话:
程式語言Visual Basic 傳址與傳值
3.5 用递归法解决问题 黄学鸿.
第12章 VBA模块设计.
RWM600 (13.56MHz) Reader Antenna.
RWM600 (13.56MHz) Reader Antenna.
新觀念的 VB6 教本 第 6 章 資料型別.
第5章 Visual Basic控制结构 之 常用算法举例
VB程序设计语言 主讲教师:王 杨.
第 8 章 过程.
广州市教育局教学研究室编写的 初中《信息技术》第二册第二章 《程序设计初步》
Visual Basic程序设计.
算法与程序设计 周少品.
VB程序设计语言 主讲教师:王 杨.
VB程序设计语言 主讲教师:王 杨.
程序设计基础 第 2 章 学习程序设计的基本方法: 多练 模仿.
VB程序设计语言 主讲教师:王 杨.
程式語言(I)- Visual Basic 6.0 第 8 章 模組化程式設計I-副程式與自定函數.
For x = 0 To 9 For y = 0 To 9 z = *x + 10*y …… Next y
江西财经大学信息管理学院 《数据库应用》课程组2007
VB语言程序设计教程.
现代信息技术 微电子技术 计算机技术 传感技术 通信技术 处理、存储信息的技术 传感、采集技术 传递信息的技术
程序基础 2019/4/25.
第二章、第三章错题分析.
1位选手参加了歌唱比赛,评委们的评分如下:
Print方法和函数 2019/5/19.
第5章 数组 5.1 数组概述 5.2 静态数组和动态数组 5.3 数组的基本操作 5.4 控件数组 5.5 数组在自定义数据类型中的应用.
1、过程概述 2、函数过程 3、子过程 4、过程的使用 5、传递参数 6、过程的嵌套
解析算法与枚举算法.
VB语言基础 一、 常量 1 定义:在程序运行过程中不能发生改变的量 2 分类 整型常量: 整数 不带小数点的数 数值常量
程序调试与错误处理.
Presentation transcript:

VB程序设计语言 主讲教师:王 杨

a(i).no=Inputbox(“姓名”) a(i).name=inputbox(“姓名”) Type student no As String * 3 name As String * 8 mark(1 to 3) As integer aver As Integer End Type 自定义数据类型定义位置 1、标准模块中定义,默认为Public 2、窗体层定义,需要加上Private Type 自定义类型名 元素名1[(下标)] As 类型名 … [元素名2[(下标)] As 类型名] End Type Dim a(1 To 5) As Student For i=1 to 5 a(i).no=Inputbox(“姓名”) a(i).name=inputbox(“姓名”) a(i).mark(1)=inputbox(“成绩1”) a(i).mark(2)=inputbox(“成绩2”) a(i).mark(3)=inpuxbox(“成绩3”) a(i).aver= (a(i).mark(1)+ a(i).mark(2)+ a(i).mark(3))/3 Next i

【举例】计算多边形的面积 变量=函数过程名([实参表]) Function area(x!,y!,z!) As Single Dim c! End Function Dim c! c=1/2*(x+y+z) area=sqr(c*(c-x)*(c-y)*(c-z)) Private Sub Form_Click() Dim a!,b!,c!,d!,e!,f!g,! a=11:b=12:c=13:d=14:e=15:f=16:g=17 End Sub S1=area( a, b , c) S2=area( c, d , e) S3=area( e, f , g) 变量=函数过程名([实参表])

课堂练习 定义一个函数过程计算最大公约数供调用

不计算某个结果 计算多个结果 【思路】一元二次方程的一般式为 它的两个根可以由 Sub quad( ) , y1, y2 思考:已知a,b,c;计算任意一元二次方程的两个实根 【思路】一元二次方程的一般式为 它的两个根可以由 Sub quad( ) End Sub a!, b!, c! , y1, y2 y1 = (-b + Sqr(b * b - 4 * a * c)) / (2 * a) y2 = (-b - Sqr(b * b - 4 * a * c)) / (2 * a) Sub Command1_Click() dim x!,y!,z! x=2:y=8:z=4 Call quad(x, y, z ) root1 = x1: root2 = x2 End Sub 不计算某个结果 计算多个结果 ,x1!, x2! , x1, x2

Sub 子过程 Call test (a,b) Test a,b 子过程名没有返回值 在子过程体内不能给子过程名赋值 [Private|Public][Static] Sub 子程序过程名 [(形参表)] …… [Exit Sub] End Sub 子过程名没有返回值 在子过程体内不能给子过程名赋值 子过程的调用是一个独立的语句 Call test (a,b) Test a,b

函数过程和子过程 区别 函数过程名有值,有类型,在函数体内至少赋值一次 子过程名无值,无类型,在子过程体内不能对子过程名赋值 调用时,子过程调用是一句独立的语句 函数过程不能作为单独的语句加以调用,必须是表达式运算 当过程有一个函数值,使用函数过程较直观 若过程无返回值,或有多个返回值,使用子过程较直观

程序运行流程: Private Sub Command1_Click() Dim f1#, f2# f1 = jishu1(2#, 0.000001) Call jishu2(f2, 2#, 0.000001) Print "f1="; f1, "f2 = "; f2 End Sub Function jishu1(x!, a#) As Doubl …  jishu1=表达式 End Function   找函数名调用jishu1 ② ① 函数名带了值返回 ③ ④ Sub jishu2(s#, x!, a#) … s=表达式 End Sub 找子过程名调用jishu2 ⑥ ⑤ ⑦ ⑧

问 题 实参可以是? 参数能否是数组?

数组参数传递 调用tim,求 和 Function tim(a() As Integer) Dim t#, i% t = 1 For i = Lbound(a) To Ubound(a) t = t * a(i) Next i tim = t End Function Sub Command1_Click() Dim a%(1 To 5),b%(3 To 8) 给数组赋值 t1# = tim(a()) t2 # = tim(b()) Print t1, t2 End Sub

调用过程来计算出两个数的最大公约数并根据最大公约数计算出最小公倍数,并将结果输出到窗体上。 问题出在那里呢?

参数传递 传地址 Byref(默认) 传值 Byval

4 d a = 1: b = 2: c = 3: d = 4 Call test1(a, b, c, d) Print a; b; c; d … Private Sub test1(b%, c%, d%, e%) e=b+c+d End Sub 6 ‘ 1 2 3 6 e 传地址 e 4 d 传值 6 4 a = 1: b = 2: c = 3: d = 4 Call test2(a, b, c, d) Print a; b; c; d … Private Sub test2( b%, c%, d%, ByVal e%) e=b+c+d End Sub ‘ 1 2 3 4

例题 (A)2 (B)5 (C)10 (D)出错 4 6 12 6 7 14 8 8 16 Sub subP(b() As Integer) For i = 1 To 4 b(i) = 2 * i Next i End Sub Private Sub Command1_Click() Dim a(1 To 4) As Integer a(1) = 5 a(2) = 6 a(3) = 7 a(4) = 8 subP a() Print a(i) (A)2 (B)5 (C)10 (D)出错 4 6 12 6 7 14 8 8 16 a 1.要把整个数组作参数传递给过程,形参与实参都要使用数组名,但要省略数组的上下界,且保留括号; 2.整个数组作参数传递时,只能传地址; 3.单个数组元素作参数传递给过程时,实参要指明元素的下标 4. 使用LBound()和UBound()函数来确定数组的上下界。

嵌套和递归P131 组合数的计算 从前有座山,山里有座庙,庙里有个老和尚正在讲故事,讲的是什么呢?从前有座山…………….

思考 编写过程,对任意班级成绩进行降序排序。 你是如何给定这20名同学成绩的? 不足 你的统计结果以何种方式输出的? 通过随机函数产生 For i = 1 To 20 score(i) = Int(Rnd * 101) Next i 你的统计结果以何种方式输出的? 由键盘输入 For i = 1 To 20 score(i) = Int(InputBox("请输入成绩")) Next i 与同学实际成绩不相符 每次运行,需重新输入, 效率低 编程人员工作量大,程序 应用面窄 在窗体直接输出 Print Spc(8); "统计结果" Print "90~100"; Tab(10); "60~89"; Tab(20); "0~59" Print yx & "人"; Tab(10); hg & "人"; Tab(20); bjg & "人" 在程序中给定 score = Array(89, 56, 87, 90, 57, 66, 46, 88, 69, _ 85, 67, 80, 45, 56, 76, 80, 81, 73, 80, 74)

加分作业 编写过程,界面自行设计。单击命令按钮时,对任意数组进行升序排序。

加分作业 编写程序,打印100-200之间的所有素数 每行输出5个素数 利用Function过程判断每个数是否为素数,是返回1,不是返回0