当前位置: 首页 > article >正文

《XML》教案 第1章 学习XML基础

《XML》教案
第1章 学习XML基础
主讲人:×××

回顾上一章: [10分钟] 2
课程知识点讲解: 2
while 循环和do…while 循环的区别:[15分钟] 3
for 循环的使用 :[5分钟] 4
嵌套 for 循环 :[20分钟] 5
本章总结 [10分钟] 6
考核点 6
测试题 6
扩展部分: 7
学员问题汇总: 7
作业: 7

本章主要的目的
识别XML作为一种标准数据交换格式的需求
识别XML文档的结构
本章重点
条件结构
本章难点
循环结构
回顾上一章:
课程知识点讲解:
变量操作符:
算术操作符
算术赋值操作符
一元操作符
比较运算符
逻辑运算符
条件结构: [15分钟]
if…. else 结构
switch….case结构
if…. else 结构
案例讲解:
/* 范例名称:使用while循环将2相加1000次的示例

  • 源文件名称:while语句.cpp
  • 要 点:语句可以是空语句、一个简单的语句或语句块
  1. 如果while循环中包含一组语句,必须用{}括起来

  2. 只要条件为真循环就会迭代
    */
    例题内容:{
    int sum = 0, times = 1;
    while(times<=1000)
    {
    sum = sum+2;
    times = times+1;
    }
    printf(“Sum = %d \n”,sum);
    }

    老师提问:
    问题1:while和for的区别?
    问题2:若条件测试没有为false时,程序将如何运行?
    do…while循环: [15分钟]
    格式:do{
    语句;
    }while(条件)
    与for和while循环不同的是,该循环在循环的末尾才会检查条件,就是说即使条件已开始就是false,这个循环至少会执行一次
    do语句的循环至少执行一次
    知识点讲解1
    案例讲解
    /* 范例名称:的示例

  • 源文件名称:do…while.cpp
    • * 要 点:在条件测试执行前执行一次条件变为 False 时,do while 循环终止;
    •1. 控制权传递给紧跟在 while 语句之后的语句
    */
    例题内容: int sum = 0,times = 1;
    do
    {
    sum = sum+2;
    times = times+1;
    }while(times<=1000);
    printf(“Sum = %d \n”,sum);

while 循环和do…while 循环的区别:[15分钟]
while语句是当型循环控制语句,一般形式为:
    while <表达式> 语句;
    语句部分称为循环体,当需要执行多条语句时,应使用复合语句。
    while语句的流程图见图3 - 8,其特点是先判断,后执行,若条件不成立,有可能一次也不执行。

do . . . while是直到型循环的语句,它的一般形式为:
    do 语句while <表达式>
    其中语句通常为复合语句,称为循环体。
其基本特点是:先执行后判断,因此,循环体至少被执行一次。
但需要注意的是,do. . .while与标准的直到型循环有一个极为重要的区别,直到型循环是当条件为真时结束循环,而do. . .while语句恰恰相反,当条件为真时循环,一旦条件为假,立即结束循环,请注意do. . .while语句的这一特点。

知识点讲解1

案例讲解:

老师提问:

问题1:输入1,SUM值为多少,输入11,SUM值为多少?

for 循环的使用 :[5分钟]
for语句是循环控制结构中使用最广泛的一种循环控制语句,特别适合已知循环次数的情况。它的一般形式为:
    for (<表达式1 >;<表达式2 >;<表达式3>) 语句
    for语句很好地体现了正确表达循环结构应注意的三个问题:
    1) 控制变量的初始化。
    2) 循环的条件。
    3) 循环控制变量的更新。
表达式1:一般为赋值表达式,给控制变量赋初值;
表达式2:关系表达式或逻辑表达式,循环控制条件;
表达式3:一般为赋值表达式,给控制变量增量或减量。
语句:循环体,当有多条语句时,必须使用复合语句。
    for循环的流程图如图3 - 11,其执行过程如下:
首先计算表达式1,然后计算表达式2,若表达式2为真,则执行循环体;否则,退出for循环,执行for循环后的语句。如果执行了循环体,则循环体每执行一次,都计算表达式3,然后重新计算表达式2,依此循环,直至表达式2的值为假,退出循环。

计算自然数1到n的平方和。
#include <stdio.h>
#include <math.h>
main( )
{
    int i;
    float s;
    printf(“please input n :”);
    scanf(“%d” ,&n);
    s = 0.0;
    for(i = 1; i<= n; i++)
    s = s + ( float ) (i) * ( float ) (i);
    printf(“11 + 22 +…+%d*%d = %f\n” ,n,n,s ) ;
}
运行结果如下:
please input n : 5
11 + 22 + … + 5* 5 = 55.000000
for语句的几种格式
for语句的三个表达式都是可以省略的,但分号“;”绝对不能省略。

三种语句的选用
    同一个问题,往往既可以用w h i l e语句解决,也可以用do. . .while或者for语句来解决,但在实际应用中,应根据具体情况来选用不同的循环语句,选用的一般原则是:

  1. 如果循环次数在执行循环体之前就已确定,一般用f o r语句;如果循环次数是由循环体
        的执行情况确定的,一般用while语句或者do. . . while语句。
  2. 当循环体至少执行一次时,用do. . .while语句,反之,如果循环体可能一次也不执行,选用while语句。
    嵌套 for 循环 :[20分钟]
    知识点讲解1
    案例讲解:

/* 范例名称:输出半边*号的菱形

  • 源文件名称:Cpp5.cpp
  • 要 点:

*/
例题内容:
#include <stdio.h>
void main()
{
int num,j,i;
for (num = 1; num <=5; num++)
{

		for (i = 1; i <= num; i++)
		{
			printf("*");
		}
		printf("\n");
	} 
	for (num = 4; num >=1; num--) 
	{ 
		 
		for (j = 1; j <= num; j++)
		{
			printf("*");
		}
		printf("\n");
	} 
}

循环的嵌套
    一个循环的循环体中有另一个循环叫循环嵌套。这种嵌套过程可以有很多重。一个循环外面仅包围一层循环叫二重循环;一个循环外面包围两层循环叫三重循环;一个循环外面包围多层循环叫多重循环。
    三种循环语句for、while、do. . .while可以互相嵌套自由组合。但要注意的是,各循环必须完整,相互之间绝不允许交叉。如下面这种形式是不允许的:
do
{
    …
    for (;😉
    {
        …
    }while( );
}

格式:for(…,…,… ) 要强调中间的逗号不能少。。。
{
for(…,…,…)
}
首先执行第一个for循环语句,接着进入第二个,在第二个for循环没有跳出前,第一个for循环下的语句不会执行,且第二个循环结束后再回到第一个for中,继续执行语句直到第一个for循环也结束才执行以后的语句了。
一个for循环中包含多个for循环,重要的是边界条件!!相互嵌套的2个for循环之间的条件应该多加注意!!
跳转语句(return和goto): [7分钟]
return用于从函数返回,goto可将控制权传递给c程序中本函数内的任何其他语句,还可以跳转到某代码块和从某代码块跳出
跳转语句(break,continue和exit): [27分钟]
return,goto,break,continue都是无条件转移的语句
exit()函数是程序立即中止,控制权传回操作系统;c语言中不是很支持

本章总结 [10分钟]
理解 C 语言中的 for 循环
使用逗号运算符
理解嵌套循环
理解 while 循环和 do-while 循环
使用 break 和 continue 语句
理解 exit() 函数
考核点
考核点1:理解嵌套循环
考核点2:理解while 循环和 do-while 循环

测试题
测试题1:
测试题2:

扩展部分:
扩展部分1:while 循环和 do-while 循环的区别
扩展部分2:
扩展部分3:
学员问题汇总:
学员问题1:
学员问题2:
作业:
习题1:打印魔方
习题2: 打印复杂的菱形
习题3:求鸡兔公笼的问题
习题4:求5!
习题5:求任意两个数之间的和;


http://www.kler.cn/a/446725.html

相关文章:

  • Swin transformer 论文阅读记录 代码分析
  • 嵌入式C语言,函数指针参数的用法详解!!!
  • Azure虚拟机非托管磁盘大小调整
  • 【bodgeito】攻防实战记录
  • linux普通用户使用sudo不需要输密码
  • 实现 WebSocket 接入文心一言
  • C# OpenCV机器视觉:图像拼接
  • 重拾设计模式--建造者模式
  • MFC/C++学习系列之简单记录8——消息映射
  • 2.6 网络面试问题
  • 二叉树 -- 堆(详解)
  • 网安信息收集(web层面)
  • springboot——登录认证(包括jwt技术、拦截器过滤器)
  • redis 在 win10中的使用
  • Linux Swap: 深入解析 mkswap, mkfs.swap, 和 swapon
  • Kubernetes(k8s)安装详细过程
  • 服务器数据恢复—RAIDZ离线硬盘数超过热备盘数导致阵列崩溃的数据恢复案例
  • Docker 部署 新版 Nacos、Seata
  • Spring Cloud Gateway 源码
  • DB-GPT V0.6.3 版本更新:支持 SiliconCloud 模型、新增知识处理工作流等
  • Redis篇--常见问题篇3--缓存击穿(数据查询上锁,异步操作,熔断降级,三种缓存问题综合优化策略)
  • RabbitMQ消息可靠性保证机制7--可靠性分析-rabbitmq_tracing插件
  • sqlite3 支持位运算 和view和 triger
  • 使用JUnit进行集成测试
  • QT网络(一):主机信息查询
  • 【Super Tilemap Editor使用详解】(七):图块集纹理编辑器(Tileset Atlas Editor)