• 910.50 KB
  • 2022-04-29 14:48:26 发布

最新第四章第二节光的反射课件PPT.ppt

  • 57页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
'第四章第二节光的反射 学习目标:1、理解光的反射定律2、理解镜面反射与漫反射3、会应用光的反射定律解决实际问题 自学与交流自主学习:1.光的反射遵循什么规律?2.什么是法线,什么是入射角,什么是反射角?3.反射定律的内容。4.当你通过平面镜看别人的时候,别人也能看到你,这是因为什么?5.雨后晴朗的夜晚,为了不踩到积水,你应该怎样判断? ENF入射光线反射光线OM实验一 NF入射光线OME NF入射光线OME结论一:入射光线与反射光线、法线在同一平面 ENFOM实验二 ENFOM ENFOM结论二:入射光线和反射光线分居法线两侧;反射角等于入射角。 ①反射光线、法线、入射光线在同一平面上;②反射光线和入射光线分居法线两侧;③反射角等于入射角。反射定律 返回例:已知图中入射光线,请画出反射光线1,先作法线:过镜面在入射点作垂线.2,找入射角:量出入射角的度数.3,量出反射角:按反射角等于入射角量出反射角的度数..4,画出反射光线:按反射角度数,画出反射光线我会做图! 光能沿原路返回吗?在光的反射中,光路是可逆的。ABO 镜面反射 漫反射 光线照射到物体上,然后反射到我们的眼睛里,这就是我们能看到物体的原因。可是,同是反射,为什么玻璃看起来很亮,而木头较暗??我们是这样看到物体的返回 我找到了平行光线射到玻璃上后,反射光会平行射出,这种反射叫镜面反射。平行光线射到木头上后,反射光线会射向各个方向,这种反射叫漫反射。玻璃木头 现在,我知道了,当我们感到不发光的物体非常亮时,是因为光线在物体上发生了镜面反射,反射光线全部都进入我们的眼睛。当我们感到物体比较暗时,是因为光线在物体上发生了漫反射,反射光线有一部分进入我们的眼睛。 古时,行军打仗,士兵们都知道,夜晚走路时,路面上亮的地方是水,暗的地方是路。古人的方法 原来“明水暗道”是指,夜晚赶路时,月亮的光线经过水面后,发生镜面反射,进入我们的眼睛,所以,我们判断路面上亮的地方是水。但是这只是一种情况,那就是当我们迎着月亮走时,因为,这时反射光线正好进入我们的眼睛。反之当我们背着月光走时,那就是“暗水明道”了! 方法找到了当我们迎着月光走时,就选择暗的地方落脚。当我们背着月光走时,就选择亮的地方落脚。 总结与点评光的反射定律:反射光线与入射光线、法线在同一平面上;反射光线和入射光线分居法线的两侧;反射角等于入射角。光的可逆性:在反射时光路是可逆的。反射现象:一切物体都能反光;我们能看见不发光的物体是因为它们反射光进入了我们的眼睛。镜面反射、漫反射 30°)(入射角1、光线与镜面成30°角射在平面镜上(如下图),入射角是多大?试画出反射光线,标出入射角和反射角。训练与检测反射光线…………………(反射角60° 2、光线垂直射到镜面上时,入射角是______度,反射光线与入射光线______。3、我们能从不同方向看到本身不发光的物体,是由于光射到物体上时发生______的缘故。练习题0重合漫反射 练习题与水平面夹角为30度的光线经平面镜反射后竖直射入水中,该如何放置该平面镜?……………….. 校园网计算机二级C语言培训教案第三讲30 1、位运算符(~、<<、>>、&、^、|)2、位运算注意事项(1)对象只能是整数或字符型数据。(2)进行位运算前,一定要先将数据转换成二进制数。(3)各个位运算符的优先级注:字符型数据参与位运算时,采用其ASCII码进行运算。第九节位运算31 3、位运算的规则(1)~:0变1,1变0。(2)<<:a<>:a>>i表示a向右移动i位,左补符号位。(4)&:a&ba、b对应的二进制位,同时为1,则结果即为1,否则为0。(5)|:a|ba、b对应的二进制位,只要有一个为1,则结果即为1,否则为0。(6)^:a^ba、b对应的二进制位,相同为0,不同为1。注意:<<左移一位表示乘以2;>>右移一位表示除以232 (7)位数不同的运算数之间的运算规则a将两个运算数右端对齐b再将位数短的一个运算数往高位扩充,即:无符号数和正整数左侧用0补全,负数左侧用1补全,然后对补齐后位数相等的两个数按位进行位运算33 本章考点:考点考核几率分值printf函数(难点)100%3~4putchar函数60%1~2scanf函数(难点)100%3~4getchar函数60%1~2第二章数据输出与输入34 第一节数据输出1、printf函数的一般格式:printf(格式输出控制,输出列表)(1)格式输出控制:需用一对双引号括起来,双引号内包含“格式说明”和“普通字符”两部分。(2)输出列表:需要输出的数据,多个数据之间用逗号隔开。printf(“%d,%on”,m,n);printf(“m=%d,n=%on”,m,n);35 2、格式说明“格式说明”由“%”和格式字符组成,如%d,%c,更多格式说明请参考P34,表2-1。它的作用是把输出数据转换为指定格式输出。注:在printf函数中,若格式说明的个数少于输出项的个数,多余的输出项则忽略不输出,这是二级C考试中经常出现的题目,(参考P34,例2)36 3、普通字符普通字符会原样输出,转义字符需要输出对应的字符。注:printf函数输出数据时,学生做题很容易忽略普通字符的输出。在二级C考试中,这类题目常出现。例:main(){inta,b;a=10;b=15;printf("a+b=%d",a+b);}37 说明:(1)可以在%和格式字符之间加入一个整数来控制输出数据所占的宽度,如果整数指定的宽度大于实际输出数据的宽度,数据的输出采用右对齐的方式,左边自动补空格;反之,则以输出数据的实际宽度输出。输出语句输出结果printf(“%d”,258);258printf(“%2d”,258);258printf(“%4d”,258);□258printf(“%f”,1.25);1.250000printf(“%10f”,1.25);□□1.25000038 (2)当在%和格式字符f之间加入“整数1.整数2”来控制输出数据的格式时,“整数1”用于指定输出数据占的总宽度,“整数2”用于指定输出实数的小数部分的个数,当输出数据的小数个数多余“整数2”指定的个数时,截去多余的数据,并对截去的第一位小数做四舍五入处理,当输出数据的小数个数少于“整数2”指定的个数时,在小数的右边添0补足。输出语句输出结果printf(“%4.4f”,3.15);3.1500printf(“%7.4f”,3.15);□3.1500printf(“%2.0f”,3.15);□339 (3)如果在输出的八进制前添加0,或在输出的十六进制前添加0x,可在%号和格式字符0和x之间插入#号(注意:#号对其他格式字符通常不起作用)。输出语句输出结果printf(“%o”,207);317printf(“%#o”,207);0317printf(“%#x”,207);0xce40 特别说明:如果要输出“%”时,则应该在格式控制中用两个连续的“%”,即“%”来表示,也就是在格式控制中出现两个连续的“%”,则此时“%”不再用来代表格式说明。例如:printf(“%%d”,258);不会输出整数258,在屏幕上看到的结果为“%d”。因为“%%”会输出一个“%”,“d”会按原样输出,这时因为没有格式说明,整数258无法输出到屏幕上41 4、数据输出实例(已知inta=66;floatb=123.56;)通过以下各输出语句,讲解输出函数的各种格式。(1)printf("%d",a);66(2)printf("%3d",a);□66(3)printf("%-3d",a);66□(4)printf("%f",b);123.560000(5)printf("%7.2f",b);□123.56(6)printf("%-7.2f",b);123.56□(6)printf("%c",a);B(7)printf("%x",a);4242 5、putchar函数格式为:putchar(c)这里的c只能是字符型变量或字符型常量,即putchar函数只能输出字符型数据。例如putchar(‘C’)知指输出一个大写字母C到大屏幕上43 1、scanf函数的一般格式:scanf(格式输入控制,输入数据列表)格式输入控制与printf函数的格式输出控制相同。输入数据列表必须是一个或者是多个合法的地址表达式。scanf(“%d”,&a);scanf(“%f”,&a);scanf(“%c”,&a);参考书39页表2-5第二节数据输入函数44 2.说明:(1)当从键盘中输入多个数值数据时,输入数值数据之间用分隔符(包括空格符、制表符和回车符,但是不包括逗号)隔开。例如:intx,y,z;scanf(“%d%d%d”,&x,&y,&z);如对x、y、z三个整型变量分别输入10、20、30,则数据的输入格式如下:10<间隔符>20<间隔符>30<回车>45 (2)在输入控制中,格式说明的类型与输入项的类型应该一一对应匹配。如果类型不匹配,系统并不给出出错信息,但不能得到正确的输入数据。当输入长整型数据(long)时,必须使用%ld格式;输入double数据时,必须使用%lf或%le,否则不能得到正确数据。(3)与printf相似,在scanf函数中的格式字符前可以用一个整数指定输入数据所占的宽度,但对实数不能指定小数的位数。46 (4)在输入控制中,格式说明的个数与输入项的个数应该相同。如果格式说明的个数少于输入项的个数,系统自动结束输入,多余的数据没有被读入,但可以作为下一个输入操作的输入数据;如果格式说明的个数多余输入项的个数,系统同样自动结束输入。例如:对于如下输入语句:intx,y,z;scanf(“%d%d”,&x,&y,&z);如采用如下的输入形式:10<间隔符>20<间隔符>30<回车>,由于在输入控制中只有两个格式说明%d,则只能对x和y变量分别输入10和20,而30不能被读入,只能作为以后其他输入的输入数据。47 (5)跳过输入数据的方法。可以在格式字符与%之间加入一个“*”使输入过程跳过输入的数据。例如如下程序:intx,y,z;scanf(“%d%*d%d%d”,&x,&y,&z);如采用如下的输入形式:10<间隔符>20<间隔符>30<间隔符>40<回车>,则系统会把10赋给变量x,跳过数据20,把30赋给变量y,把40赋给变量z。48 (6)若在scanf函数的输入控制中含有其他的字符,则在输入时要求按一一对应的位置原样输入这些字符。例如:intx,y,z;scanf(“x=%dy=%dz=%d”,&x,&y,&z);要求按如下的形式输入:X=10<间隔符>y=20<间隔符>z=30<回车>49 3注意:(1)scanf的输入分隔符不包含逗号,因此在使用键盘输入数据时,不能以逗号作为分隔符。如果需要以逗号作为分隔符,则应该在格式控制字符串中使用逗号,例如:scanf(“%d,%d,%d”&x,&y,&z);注意:在以上三个%d之间有逗号隔开。按要求输入格式如下:10,20,30<回车>50 (2)一般情况下,scanf的格式控制字符串中不要包含其它非格式控制符,否则往往容易让人混淆。也就是说,在scanf中只使用格式控制符,可以简化操作。列如:scanf(“%d%d%d”&x,&y,&z);注意:在scanf的双引号中除了有3个%d外,没有其他任何字符。按要求如数格式如下:102030<回车>也可以输入一个数据就使用一个回车符号:10<回车>20<回车>30<回车>51 3)使用scanf时,如果数据输入未能完成,则程序一直等待键盘输入,此时用户应该完成数据输入。许多初学者在未输入数据的情况下回车,程序没有任何反映,好象死机了一样。这样是没有输入数据的缘故,只要用户输入数据即可。52 (4)使用scanf给变量赋值和直接使用赋值语句给变量赋值,都能使变量的值发生改变,但二者具有本质的区别。使用赋值语句给变量赋值,是将某一个固定的值在程序源代码中写死,当源代码编译成可执行程序(即用户软件)后,用户无法改变变量的值,每次执行的结果均相同。而使用scanf给变量赋值,是在程序运行过程中,使用键盘动态的给变量赋值,这样当生成可执行程序后,用户可以根据自身的需求,给变量赋不同的值,得到不同的运行结果。53 总结scanf函数的注意事项(1)输入数值型数据时,各数值间的分隔符可以是:空格、Tab、回车。(2)输入字符型数据时,空格、Tab、回车都会被认为是字符,而不是分隔符。(3)“格式输入控制”中的普通字符,在输入数据时一定要原样输入。(4)跳过输入数据,在%和格式字符之间加一个“*”。54 4、数据输入实例(已知charc1,c2;intc,d,e;)(1)scanf("%d%d%d",&c,&d,&e);输入:5<空格>6<空格>7<回车>输入:567<回车>输入:5<回车>6<回车>7<回车>//以上三种输入方式,c、d、e的值分别都为5、6、7。(2)scanf(“%d,%d,%d”,&c,&d,&e);输入:5,6,7<回车>若输入第一个数据后,使用了任意一种分隔符,则只确定输入了c的值为5,d和e为本身的初始值,若没有初始值,则为不定值。注:在C语言中,没有指定值的任何类型的变量,在输出时为不定值。55 (3)scanf(“%d%*d%d%d”,&c,&d,&e);输入:2<空格>3<空格>4<空格>5<回车>//c、d、e的值分别为2、4、5(4)scanf("%c%*c%*c%c",&c1,&c2);输入:a<空格>b4<回车>//c1、c2的值分别为a、4(5)scanf("%2d%d%d",&c,&d,&e);输入:123<空格>456<回车>//c、d、e的值分别为12、3、456(6)scanf("%d",&c,&d,&e);输入:1<空格>2<空格>3<回车>//c的值为1、d、e为不定值56 谢谢大家57'