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

Slides:



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

VB 程序设计语言 主讲教师:王 杨. 西南石油大学计算机科学学院  n=12 Dim a(1 To n) As Integer  Dim a%[3,3]  Dim a(1,1,2) As Integer  Dim a%(10) ReDim a(1 To 12)  Dim a!() ReDim.
第2章 Visual Basic 6.0编程基础 (第一部分)
計算機概論 第4章 基本視窗程式應用 4-1 程式語言簡介 4-2 演算法與流程圖 4-3 視窗程式語言設計 4-4 資料結構.
第四章 控制结构.
程式語言(I)- Visual Basic 6.0 第 9 章 結構化程式設計
高中信息技术新课程探讨 算法与程序设计教学实践与探讨 江苏省新海高级中学  张丽.
实训十 子 过 程 一、实训目的 二、实训内容 1、通用过程 【实训要求】 1、掌握通用过程的定义和调用方法。
Access数据库程序设计 总复习.
网 络 课 程 马 鞍 学 网 络 山 课 程 大 络 网 Visual Basic程序设计 第 一 讲 最容易接受的编程语言
高等医药院校药学类第三轮规划教材——大学计算机基础
算法和程序设计 第4课 分支结构的算法设计 •.
第五章 数组.
Visual Basic程序设计.
程式語言Visual Basic 變數的可視範圍
第二章 Visual Basic语言基础.
講師:戴志華 國立台灣大學電機工程研究所 Visual Basic 程式設計 講師:戴志華 國立台灣大學電機工程研究所.
VB程序设计语言 主讲教师:王 杨.
数组 第 6 章.
第5章 数组 Visual Basic程序设计.
Visual Basic程序设计 第七章 数组
1、数组的概念 2、静态数组 3、动态数组 4、数组的基本操作 5、控件数组
Visual Basic程序设计 第八章 过程 -子程序和函数
过程 第 7 章.
第5章 数组 Visual Basic程序设计.
初识Visual Basic.
第4章 程序控制结构与算法基础.
新觀念的 VB6 教本 第七章 讓程式轉彎的控制敘述.
流程控制、陣列 台南市聖功女子高級中學 毛全良.
高等学校计算机基础教育教材 Visual Basic 6.0 程序设计 上海中医药大学现代教育技术中心 计算机教学部.
计算机程序设计强化复习 Visual Basic 6.0.
走进编程 程序的顺序结构(二).
程序的基本要素 2018/12/6.
程式語言Visual Basic 傳址與傳值
3.5 用递归法解决问题 黄学鸿.
第12章 VBA模块设计.
第一单元 初识C程序与C程序开发平台搭建 ---观其大略
第8章 过程 郭清溥.
新觀念的 VB6 教本 第 6 章 資料型別.
第5章 Visual Basic控制结构 之 常用算法举例
Visual Basic 程序设计 教师:王 杨 电话:
第 8 章 过程.
VB程序设计语言 主讲教师:王 杨.
Visual Basic程序设计.
算法与程序设计 周少品.
VB程序设计语言 主讲教师:王 杨.
VB程序设计语言 主讲教师:王 杨.
VB程序设计语言 主讲教师:王 杨.
For x = 0 To 9 For y = 0 To 9 z = *x + 10*y …… Next y
第六章 过程 Visual Basic 程序设计.
C++语言程序设计 C++语言程序设计 第七章 类与对象 第十一组 C++语言程序设计.
C语言程序设计 主讲教师:陆幼利.
现代信息技术 微电子技术 计算机技术 传感技术 通信技术 处理、存储信息的技术 传感、采集技术 传递信息的技术
程序基础 2019/4/25.
第二章、第三章错题分析.
VB程序设计语言 主讲教师:王 杨.
成绩是怎么算出来的? 16级第一学期半期考试成绩 班级 姓名 语文 数学 英语 政治 历史 地理 物理 化学 生物 总分 1 张三1 115
第4章 Excel电子表格制作软件 4.4 函数(一).
用穷举法设计程序 南京师范大学 教育技术系 倪佳慧
3.16 枚举算法及其程序实现 ——数组的作用.
1位选手参加了歌唱比赛,评委们的评分如下:
多层循环 Private Sub Command1_Click() Dim i As Integer, j As Integer
1位选手参加了歌唱比赛,评委们的评分如下:
第5章 数组 5.1 数组概述 5.2 静态数组和动态数组 5.3 数组的基本操作 5.4 控件数组 5.5 数组在自定义数据类型中的应用.
1、过程概述 2、函数过程 3、子过程 4、过程的使用 5、传递参数 6、过程的嵌套
解析算法与枚举算法.
WEB程序设计技术 数据库操作.
程序调试与错误处理.
顺序结构程序设计 ——关于“字符串”和数值.
第二次课后作业答案 函数式编程和逻辑式编程
Presentation transcript:

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

数组算法 最值 排序 查找

作 业 西南石油大学有15个院系进行合唱比赛,总共邀请了13名评委打分。打分规章是去掉一个最高分,去掉一个最低分,剩下求平均分,要求: 作 业 西南石油大学有15个院系进行合唱比赛,总共邀请了13名评委打分。打分规章是去掉一个最高分,去掉一个最低分,剩下求平均分,要求: 13个评委打分使用文本框控件数组,其余界面自行设计 根据评委打分计算出每个学院的最后成绩并将名次和成绩输出在窗体上 输入任意一个学院的名字查询其得分

思 考 如果每个院系信息还包括学院编号、指导教师、歌曲名称信息。查询时候要求输入学院编号则输出该院系所有信息,应该怎么办?

引例 输入5个学生的学号、姓名和3门课的成绩,计算每个学生的总分和平均分,在窗体上显示学生的总分和平均分。 学号 姓名 成绩1 成绩2 成绩3 总分 平均分 001 Li 89 88 87 264 002 Liu 90 91 92 273 003 Qiu 78 79 80 228 004 Xie 85 86 84 255 005 Mao 64 65 63 195

自定义数据类型 Type student no As String * 3 name As String * 8 学号 姓名 成绩1 成绩2 成绩3 总分 平均分 001 Li 89 88 87 264 Type student no As String * 3 name As String * 8 mark(1 to 3) As integer total as integer aver As Integer End Type a.aver 88 a.total 264 a.mark(3) 87 a.mark(2) a.mark(1) 89 a.name "Li" a.no 001 Type 自定义类型名 元素名1[(下标)] As 类型名 … [元素名2[(下标)] As 类型名] End Type Dim a As Student

Type 自定义类型名 元素名1[(下标)] As 类型名 … [元素名2[(下标)] As 类型名] End Type 自定义数据类型定义位置 1、标准模块中定义,默认为Public 2、窗体层定义,需要加上Private

a(1).aver 88 a(1).total 264 a(1).mark(3) 87 a(1).mark(2) a(1).mark(1) 89 a(1).name "Li" a(1).no 001 Type student no As String * 3 name As String * 8 mark(1 to 3) As integer aver As Integer 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

思考题 使用自定义类型数组,输入5个学生的学号、姓名 和4门课的成绩,计算每个学生的总分和平均分。 并按平均成绩从高到低输出每个学生的学号、姓 名、每门课的成绩,总分和平均分。

引例 计算(n!+m!)/(n+m)! w = (f(n)+f(m))/f(m+n) w=(a+b)/c Private Funciton f(y as integer) f = t End function n=val(inputbox(“输入数据n”)) m=val(inputbox(“输入数据m”)) a = 1 :b=1:c=1 For i = 1 to n a=a*i Next I For i = 1 to m b=b*i For i = 1 to n+m c=c*i Privat sub cmd1_click( ) n= val(inputbox(“输入n”)) m= val(inputbox(“输入m”)) w1 = f(n) w2 = f(m) w3 = f(m+n) w = (w1+w2)/w3 print w End sub t= 1 For i= 1 to y t=t*i Next i w = (f(n)+f(m))/f(m+n) w=(a+b)/c

【例】1!+2!+…+10! Private Sub Command1_Click() dim i as integer for i = 1 to 10 s=s+f(i) next i End Sub Private function f (n as integer) f = 1 for i = 1 to n f=f*i next i End function

【举例】计算多边形的面积 变量=函数过程名([实参表]) 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) 变量=函数过程名([实参表])

Function 格式 窗体通用处 标准模块 手动写过程 工具菜单 [Private|Public][Static] Function 函数过程名 ([形参表]) [As 类型] …… [Exit function] ……. 函数过程名=表达式 End Function 窗体通用处 标准模块 手动写过程 工具菜单

不计算某个结果 计算多个结果 【思路】一元二次方程的一般式为 它的两个根可以由 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

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

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