第07章 for循环结构
07第七章 游标和异常处理

By esoft_zsx@ Version 3.0 Oct 2009
Oracle 10g
1-1 Copyright © ESOFT, 2009. All rights reserved.
课程内容
• • • • 游标的概念 隐式游标 显式游标 异常处理
Oracle 10g
Oracle 10g
1-12 Copyright © ESOFT, 2009. All rights reserved.
下面对这两种格式进行说明: 第一种格式中的变量名是用来从游标中接收数据 的变量,需要事先定义。变量的个数和类型应与 SELECT语句中的字段变量的个数和类型一致。 第二种格式一次将一行数据取到记录变量中,需 要使用%ROWTYPE事先定义记录变量,这种形式使用 起来比较方便,不必分别定义和使用多个变量。 定义记录变量的方法如下: 变量名 表名|游标名%ROWTYPE; 其中的表必须存在,游标名也必须先定义。
Oracle 10g
1-19 Copyright © ESOFT, 2009. All rights reserved.
DBMS_OUTPUT.PUT_LINE(v_ename||','||v_sal); END LOOP; CLOSE emp_cursor; END; 执行结果为: KING,5000 SCOTT,3000 FORD,3000 PL/SQL 过程已成功完成。 说明:该程序在游标定义中使用了ORDER BY子 句进行排序,并使用循环语句来提取多行数据。
Oracle 10g
1-21 Copyright © ESOFT, 2009. All rights reserved.
FOR Emp_record IN emp_cursor LOOP DBMS_OUTPUT.PUT_LINE(Emp_record.empno|| Emp_record.ename); END LOOP; END;
C语言之for语句说课(王晓菲)ppt课件

printf("母鸡有%d只,公鸡有%d只,小鸡有 %d只\n",x,y,z); } } return 0; }
整理ppt
仅有此语句 不太熟悉。 该语句实现 了功能呢?
15 15
学过程设计
演示程序
以学生为主 分析程序
用。
灵 活 运 用 for 循 环 语
难点
句实现题目要求;掌
握for循环的应用。
整理ppt
7 7
教、学法:
教法
情景教学 任务驱动法 分组讨论法 演示法
学法
自主探究 分析归纳 总结评价 应用迁移
整理ppt
8 8
教、学法:
1.教学对象分析
理论知识
厌学
较好
习题、简单实 验能力
整理ppt
实际操作
乐学
较差 解决实际 问题能力
For语句的 下一条语句
17 17
教学过程设计
演示程序
以学生为主 分析程序
引出新 知识点
讲授新 知识点
小组讨论 完成任务
布置小组 任务
整理ppt
18 18
新任务
输出一个菱形图,如图所示 :
☼ 让学生模仿老师程序,降低难度,增强学生自信, 提高学习兴趣。同时也突出了本节课重点。
整理ppt
19 19
情感 目标
能力 目标
在轻松愉悦的环境下学习,提高学习兴趣, 增强自信心;同时要形成踏实、谨慎的学习 态度。
能够掌握问题的分析、逻辑思维能力,知识 迁移能力。
知识 目标
算法与程序设计教学反思

1.1计算机解决问题的过程课堂教学反思2011年01月07日 10:58:52 来源:隆德县第二中学【字体:大中小】“1.1计算机解决问题的过程”课堂教学反思本节是对用计算机程序解决问题的基本过程的入门介绍,是体验计算机程序,体验并理解用计算机程序解决问题的基本过程。
这个过程包含以下环节:分析问题,设计算法,编写程序,调试运行,检测结果。
学情分析:1、高中学生已具备了较丰富的计算机使用经验,但接触的多是文字处理、媒体表达等常用工具软件及网络应用等,对于计算机程序只有极少的学生接触过,许多学生只是听说,对于计算机程序的工作过程、设计过程知之甚少。
2、高中学生具有很强的逻辑思维能力,也掌握了较高的数学知识水平,对于初步了解计算机程序困难不很大。
我设计了这样一个问题“农夫带着狼、羊、白菜从河的左岸到河的右岸,农夫每次只能带一样东西多河,而且,没有农夫看管,狼会吃羊,羊会吃白菜。
”让同学们设计一解决这个问题的方案,大家立刻讨论起来,不一会儿提出了两种不同的方案,问题解决了,通过这个问题的引入,调动了学生的积极性很自然的引入这节课的内容,起到了比较好的作用。
紧接着“韩信点兵问题的设计”学生很自然的想到应用计算机解决,成功地引领学生走进了程序设计的殿堂,让他们有兴趣、有意识地进行更多的实践与探索。
这种引导,正是本课的重点,也是本课最成功之处。
本节课的目的是通过激发学生的兴趣,吸引学生自主地体验程序,感受程序解决问题的过程,理解程序的概念,从教学效果来看,学生从一开始就被深深吸引,很主动地投入到教学活动过程中探究体验程序的运行过程。
本节课比较困难的是如何向没有任何程序概念、从未接触过程序语句的学生讲述程序及其作用,如何突破这个难点是本节课的关键。
为此设计了先让学生体验“100!”的程序,学生体验到计算机的计算能力和运算速度,并且懂得了程序是由一系列语句组成,运行程序计算机会自动按语句执行。
巧妙设计教学任务,采用任务驱动式的教学过程,学生能够体验到应用计算机解决问题的过程,实现本节课的教学目标。
第07章 实现

12
(1)序言性注释 通常臵于每个程序模块的开头部分,它应当给出 程序的整体说明,对于理解程序本身具有引导 作用。有些软件开发部门对序言性注释做了明 确而严格的规定,要求程序编制者逐项列出。 有关项目包括: – 程序标题;
– 有关本模块功能和目的的说明; – 主要算法; – 接口说明:包括调用形式,参数描述, 子程序清单;
4
应用领域
数值计算(科学计算):FORTRAN 、True BASIC、 QBasic .商业和管理 : COBOL、 数据库系统(dBASE、FoxBASE、Foxpro) .人工智能 : Lisp、ProLog .系统设计 : C语言,C++ .多媒体(图、声、文技术) Visual BASIC .计算机网络: 分布处理数据库系统:SYBASE、ORACLE WWW文件:HTML(Hyper Text Markup Language)、 Java
32
当 i<j 时, i / j = 0 当 j<i 时, j / i = 0 得到的数组 当 i ≠j 时 V[i][j] = ( i/j ) * ( j/i ) = 0 当 i= j 时 V[i][j] = ( i/j ) * ( j/i ) = 1 这样得到的结果 V 是一个单位矩阵
33
写成以下的形式,就能让读者直接了解程 序编写者的意图。 for ( i=1; i <= n; i++ ) for ( j=1; j <= n; j++ ) if ( i == j ) V[i][j] = 1.0; ELSE V[i][j] = 0.0;
15
(2)功能性注释
功能性注释嵌在源程序体中,用以描述其 后的语句或程序段是在做什么工作,或是 执行了下面的语句会怎么样。而不要解释 下面怎么做。 例如,
VFP课后题答案

第二章
一、问答
1.自由表:不属于任何数据库而独立存在的表成为自由表。
数据库表与自由表的区别:数据库表可以使用长表名,在表中可以使用长字段名;
可以为数据库表中字段指定标题和添加注释;可为数据库表字段指定默认值和输入掩码;数据库表字段有默认控件类;可为数据库表规定字段级规则和记录级规则;数据库表支持主关键字、参照完整性和表间关联;支持INSERT、UPDATE、DELETE事件触发器。
● UNIQUE:指定该字段为一个候选关键字段。
4. 修改表结构的命令是ALTER TABLE,该命令有以下3种格式。
格式1:
ALTER TABLE <表名> ADD|ALTER [COLUMN] <字段名> <类型>[(<宽度>[,<小数位数>])]
该格式命令可以添加(ADD)新的字段或修改(ALTER)已有的字段。
格式2:
ALTER TABLE <表名> ALTER [COLUMN] <字段名>
[SET DEFAULT<表达式>][SET CHECK<条件表达式>]
[DROP DEFAULT][DROP CHECK]
该格式用于增加、修改或删除有效性规则和默认值定义。
格式3:
ALTER TABLE <表名> [DROP [COLUMN] <字段名>]
层次模型——用树型结构来表示实体及它们之间的联系。
网状模型——用网状结构表示实体及实体间关系。
关系模型——用二维表结构来表示实体及实体间联系。
VFP_07

二级VFP程序设计教程
第七章 程序设计基础
功能:在程序文件中定义若干个过程,或者使用 MODIFY COMMAND命令建立单独的过程文件。 ⑵内部过程的调用 如果过程与程序文件保存在同一个文件中,则过程调 用的格式如下: 格式1:DO <过程名> [WITH 参数1,参数2,…,参数N] 格式2:<文件名>|<过程名> ( [<参数1,参数2,…,参 数N >]) 功能:执行<过程名>中的程序段,WITH用于传递参 数。
二级VFP程序设计教程
第七章 程序设计基础
命令——单个字符输入语句 ③、wait命令 命令 单个字符输入语句 格式:wait[<提示信息>][to<内存变量 >][WINDOW[AT<行>,<列>]][NOWAIT][clear|noclear] [timeout<数值表达式>] 功能:程序暂时停止执行,等待用户从键盘上按一个 键并赋给指定变量,程序又接着运行; Windows:显示提示信息的窗口。 Nowait:不等待,直接往下执行。 Timeout:表示等待的时间。
二级VFP程序设计教程
第七章 程序设计基础
⑶打开与关闭过程文件 当多个过程定义在一个独立的过程文件中时,每个过 程的定义与前面一样。但是调用过程文件中的过程之前, 必须先打开包含该过程的过程文件,在主程序文件结束 前应关闭被调用的过程文件。 过程文件的扩展名仍为prg。
二级VFP程序设计教程
第七章 程序设计基础
2、内部过程 、 可以把多个过程组织在一个文件中,这个文件称为过 程文件;也可以把过程放在调用它的程序文件的末尾。 这样在打开过程文件或程序文件的同时,所有过程就调 入了内存。
最新VB教程 07 第七章

授课教师:赵海燕 2010年10--12月
第7章 数组与自定义数据类型
2
数组 7.1 数组概述
数组是变量的扩展,一个数组可以存储多个值,通过数组名和下
标对这些值进行存取。 1.数组的优点
与变量相比,数组有以下优点:
(1)数组能够保存多个值; (2)数组可与循环语句配合实现复杂算法; (3)数组可作通用过程的参数,传递大量的值; (4)数组可作函数过程的返回值,可返回大量的值; (5)数组常用来表示与一维、二维、三维空间分布相关的数据,非常 直观; (5)动态数组可根据需要开辟内存空间,优化程序、提高效率。
打开【例7.2】
14
7.3 动态数组
当在编程时不能预料应该为数组定义多少个元素时,可以使用Visual Basic提供的动态数组。动态数组的维数和下标上下界可以在程序运行
过程中改变。
1, 定义动态数组
定义动态数组的的语法结构与定义常规数组相似,只是括号是空
的: Public|Private|Dim|Static动态数组名( )[As数据类型名] 定义语句确定了动态数组的名称、作用域和数据类型。在使用
10
多维数组
多维数组是指三维或三维以上的数组,是在一维和二维概念上的扩展。多维数 组的定义、元素的访问方式与一维和二维数组类似。 【例】下面定义的是2个多维数组。 Dim a(3,3,4) As Integer ' 3维数组 Dim b(1 To 10,-4 To 5, 10,20) As Single ' 4维数组
m为下标下界,n为下标上界。m和n必须为整型常量,可以
是负值,并要求m≤n。
5
(2)只指定下标上界,由Option Base语句指定下标下界: Dima(n)As... 在模块“代码”窗口顶部的声明段中使用以下语句定义下标下界是0或 1: Option Base0|1 使用“0”时,上界n必须是非负整数常量,使用“1”时,上界n必须是 正整数常量。如果没使用Option Base语句,默认为0。
for命令的用法

tokens=2和前例相同,表示将第二列(由=作为分隔符)作为循环值。
再来个更有用的例子:
我们知道 date /t (/t表示不要询问用户输入)的输出是象这样的:
Sat 07/13/2002
将输出:
8 Dir(s) 1,361,334,272 bytes free
15 Dir(s) 8,505,581,568 bytes free
12 Dir(s) 12,975,149,056 bytes free
7 Dir(s) 11,658,854,400 bytes free
for /r . %a in (*.txt) do @find "bluebear" %a
find 前面的 @ 只是让输出结果不包括 find 命令本身。这是DOS很早就有的功能。和FOR无关。
当用 . 作为循环范围时,for 只将子目录的结构(目录名)作为循环范围,而不包括里面的文件。有点象 TREE 命令,不过侧重点不同。TREE 的重点是用很漂亮易读的格式输出,而FOR的输出适合一些自动任务,例如,我们都知道用CVS管理的项目中,每个子目录下都会有一个CVS目录,有时在软 件发行时我们想把这些CVS目录全部去掉:
用它可以使一些不支持通配符的命令对一系列文件进行操作。在WIN9X中,TYPE命令(显示文件内容)是不支持*.txt这种格式的(WIN2K开始TYPE已支持通配)。遇到类似情况就可以用FOR:
for %a in (*.txt) do type %a
这些还不是FOR最强大的功能。我认为它最强大的功能,表现在以下这些高级应用:
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
循环录入成绩,判断录入正确性:录入错 误,使用break语句立刻跳出循环;否则, 累加求和
如何使用break语句2-2
…… for(int i = 0; i < 5; i++){ //循环5次录入5门课成绩 System.out.print("请输入第" + (i+1) + "门课的成绩: "); score = input.nextInt(); if(score < 0){ break; //输入负数 isNegative = true;
for (int i = 0; i < total; i++) { System.out.print("请输入第" + (i + 1) + "位学生的成绩: "); score = input.nextInt(); if (score < 80) { continue; }
对录入的分数进行判断,如 果小于80,跳出本次循环, } 执行下一次循环 System.out.println("80分以上的学生人数是: " + num);
for循环常见问题4-4
表达式全省略,无条件判断,循环变量无改变, 应在循环体内设法结束循环;否则会造成死循环 for(;;){ System.out.println("这是测试"); } 死循环
小结1
求1~100之间不能被3整除的数之和
提示: 1、循环条件:i<100 2、循环操作:if (i % 3 != 0) { sum = sum + i; }
区别1:语法
while 循环: while(<条件>){ //循环体 } do-while 循环: do{ //循环体 } while(<条件>); for 循环: for(初始化;条件;迭代){ //循环体 }
区别2:执行顺序
– while 循环:先判断,再执行 – do-while循环:先执行,再判断 – for循环:先判断,再执行
for循环常见问题4-2
编译正确,但是缺少 循环条件,造成死循环
for(int i=0;;i++){ System.out.println("这是 "+i); }
for循环常见问题4-3
编译通过,但是循环变量的 值无变化,造成死循环
for(int i=0;i<10;){ System.out.println("这是 "+i); i++; } 省略表达式3,在循环体内应设法改 变循环变量的值以结束循环
演示示例1:使用for循环结构
如何使用for循环3-3
2、输出如图所示加法表
1、循环初始化:i = 0;j = 输入值 2、循环条件:i<=输入值 3、循环操作:计算i+j 4、循环变量的改变:i++,j-表达式3可以是用“,”隔开的多 个表达式,运算顺序从左到右
for( int i = 0, j = val; i<=val; i++, j-- ){ System.out.println(i + " + " + j + " = " + (i+j)); } 表达式1中可以声明多个同一 类型的值并赋值,用“,”隔开 演示示例2:使用for循环结构
作用(循环结构中)
– break语句终止某个循环,程序跳转到循环块外的下一 条语句。 – continue跳出本次循环,进入下一次循环
小结3
求1~10之间的所有偶数和
提示 1、使用循环进行累加,循环的范围是从1至10 2 、判断当前数是否为偶数 3 、如果为奇数跳过,执行下一个循环,如果为偶数, 进行累加
什么是break语句
break:改变程序控制流
– 用于do-while、while、for中时,可跳出循环而执行循环后 面的语句
while(…) { …… …… …… break; …… …… …… }
break通常在循环中与 条件语句一起使用
跳 出 整 个 循 环
如何使用break语句2-1
预习检查
什么时候选用for循环结构? for循环结构的基本语法和执行顺序是什么?
本章任务
实现MyShopping:
– 统计顾客的年龄层次 – 循环录入会员信息 – 登录时用户信息验证
本章目标
会使用for循环结构 会在程序中使用break和continue
为什么使用for循环
指导——计算顾客比例
训练要点:
– for循环结构
讲解需求说明
需求说明:
– 商场对顾客的年龄层次进行调查 – 计算各层次的顾客比例
实现思路:
1、定义计数器变量 2、利用循环录入顾客年龄
难点指导:
– 循环条件和循环体
完成时间:25分钟
为什么需要break语句
描述 回顾4000 break 米长跑比赛 用于switch语句
回顾问题:输出100次“好好学习!”
使用while循环结构
特点:循环次数固定 使用for循环结构
int i=0; while(i<100){ System.out.println("好好学习!"); for(int i=0;i<100;i++){ System.out.println("好好学习!");
循环条件:循环的次数不 足5,继续循环 循环操作:录入成绩,计 算成绩之和
如何使用for循环3-2
初始值:i= 0 循环条件:i<5 循环变量改变:i++
//省略声明变量
for(int i = 0; i < 5; i++){ //循环5次录入5门课成绩 System.out.print("请输入5门功课中第" + (i+1) + "门课的成绩: "); score = input.nextInt(); //录入成绩 sum = sum + score; //计算成绩和 } 循环操作执行5次 avg = sum / 5; //计算平均分 System.out.println(name + "的平均分是:" + avg);
练习——验证用户登录信息
需求说明:
– 用户登录验证。验证次数最多3次
完成时间:20分钟
循环结构总结2-1
到目前为止所学的循环结构有哪些?
需要多次重复执行一个或多个任务的问题考虑使用循环来解决 无论哪一种循环结构,都有4个必不可少的部分:初始部分、循环条件、 循环体、迭代部分
循环结构总结2-2
}
sum = sum + score; } …循环外的语句… //累加求和 对录入的分数进行判断,如 果小于0,标记出错状态,并 立即跳出整个for循环
演示示例3:使用break语句
小结2
1~10之间的整数相加,得到累加值大于20 的当前数
提示 1、使用循环进行累加,从1到10 2、判断累加值是否大于20 3、如果大于20,则跳出循环,并打印当前值
第 七 章
循环结构(二)
回顾
while循环和do-while循环结构之间的异同?
代码填空: 实现整数反转
public class huiwen { public static void main(String[ ] args) { int val = 12345; int r_digit; System.out.print("反转后的整数是:"); while(_______){ while(val!=0){ _____________________; r_digit = val %10; _____________________; System.out.print(r_digit); _____________________; val = val /10; } } } }
指导——循环录入会员信息
训练要点:
– for循环结构 – continue语句 讲解需求说明
需求说明:
– 循环录入3位会员的信息 – 会员号合法,显示录入信息; 否则显示录入失败
实现思路:
1、循环录入3位会员信息。 2、会员号无效,利用continue 实现程序跳转
难点指导:
– continue的使用 完成时间:25分钟
while(…) { …… …… …… continue; …… …… } 通常与条件语句一起使 用,加速循环 继 续 下 一 次 循 环 for(int i = 0; i<10;i++){ 跑400米; if(!口渴){ continue; //不喝水,继续跑 } 接过水壶,喝水; }
示例
如何使用continue语句
区别3:适用情况
– 循环次数确定的情况,通常选用for循环 – 循环次数不确定的情况,通常选用while和do-while循环
总结
for循环结构如何执行? 在循环中使用什么方式跳出或终止循环? break与continue之间的差别是什么?
for循环常见问题4-1
编译错误: 变量 i 没有初始化 int i=0; for(;i<10;i++){ System.out.println("这是 "+i); } 表达式1省略,循环变量 的初始值在for语句之前 由赋值语句取得 可省略