1、第3章 算法的程序实现浙教浙教版版 信息技术信息技术(高中)(高中)必修必修1 1 数据与计算数据与计算3.3 3.3 简单算法及其程序实现简单算法及其程序实现 学习目标123解析算法及其程序实现。枚举算法及其程序实现。算法程序实现的综合应用。12重点难点重点:算法程序实现的综合应用。难点:算法程序实现的综合应用。课堂导入 算法设计完成后,就可以用程序设计语言来描述算法,本节介绍如何使用python程序设计语言来描述一些简单算法。3.3.1解析算法及其程序实现答题卡填涂识别(1)抽象与建模灰度值=0.299x红色颜色分量+0.587x绿色颜色分量+0.114x蓝色颜色分量(2)设计算法给定颜色
2、初值:输入某像素在RGB颜色模式下的各颜色分量。转换颜色模式:将彩色(RGB颜色模式)值转化成灰度值。判定黑、白颜色:若灰度值小于132,则判定为黑色;否则判定为白色。(3)编写程序3.3.2枚举算法及其程序实现例如,求解某整数x的所有因子(不包含x本身)。判定某信息点是否被填涂,还需要对该信息点区域中的所有像素进行判断。(1)抽象与建模(2)设计算法(3)编写程序逐一列举某信息点中的各个像素。如果当前枚举的像素是黑色,那么黑色像素的数量加1。输出该信息点中黑色像素总数。count=si,si=ni=10(Gray_scale i 132 1(Gray_scale i 132)对300个像素的
3、颜色数据逐一进行列举并判断。fname=input(请输入文件名称:)f=open(fname,r+)count=0 line=f.readline0()while line:line=line.split()R,G,B=map(int,line)if 0.299*R+0.587*G+0.144*B =300*0.64:f.write(n已填涂!)else:f.write(n未填涂!”)f.close()拓展链接:Python的文件读写操作 读写文件是计算机中常见的输入输出操作,读写文件时会请求操作系统打开一个文件对象,然后通过操作系统提供的接口从这个文件对象中读取数据(读文件),或者把数据写
4、入这个文件对象(写文件)。Python内置了读写文件的函数。读文件时,可以使用内置的open0函数打开由参数指定的文件对象,并通过参数指定打开方式。如:f=open(test.txr,r)上述命令的作用是以读文件模式(参数丫)打开文件test.txt,如果文件打开成功,可以用read()方法将文件中的全部内容读取到内存。如果文件test.txt内容为“Hello,world!”,那么命令的执行结果为:f.readO Hello,world!由于调用read()会一次性读取文件的全部内容,为避免读取文件过大,可采用多次调用read(size)方法,每次最多读取size个字节的内容。另外,调用re
5、adline()可以每次读取一行内容,并按行返回list.因此,可根据实际需要灵活调用read()方法。如果文件很小,read()一次性读取比较方便;如果不能确定文件大小,反复调用read(size)比较安全;如果是配置文件,调用readlines()最方便。如:for line in f.readlines():print(line.strip0)文件使用完毕后必须关闭。关闭文件的方法如下:f.close0 调用open()函数写文件时,用参数w表示写文本文件模式;r+模式则表示在打开一个文本文件时同时允许读和写。例如,将“Hello,world!”写入test.txt,可使用下列命令:f=
6、open(test.txt,w)f.write(Hello,world!)f.close()问题与讨论:请结合枚举算法的学习经历,谈谈枚举算法的一般程序结构特点。3.3.3 算法程序实现的综合应用 创建函数bw_judge,能够根据彩色像素的RGB三种颜色分量值,通过计算进而识别该像素的颜色情况。def bw_judge(R,G,B):Gray_scale=0.299*R+0.587*G+0.114*B if Gray_scale =width*height*0.64:print(已填涂!”)else:print(未填涂!”)size中有两个参数,第1个参数为图像宽度值第2个参数为图像高度值根据像素坐标获得该点的 RGB值bw_judge函数用于判断黑、白像素问题与讨论:分析本节中的准考证号填涂识别算法及其程序实现,你认为在提高填涂识别的准确性及合理性等方面还可以做哪些完善?相应的程序又如何实现?实践与体验:图像字符画 字符画是一种由字母、标点、汉字或其他字符组成的图画。复杂的字符画通常利用占用不同数量像素的字符代替图像上不同明暗的点,用纯文字拼出该图像所对应的黑白图,可以由程序制作而成。谢 谢!Thanks!