2.4可以复用的代码(第1课时) 课件(共34张PPT) 2023—2024学年教科版(2019)高中信息技术必修1

资源下载
  1. 二一教育资源

2.4可以复用的代码(第1课时) 课件(共34张PPT) 2023—2024学年教科版(2019)高中信息技术必修1

资源简介

(共34张PPT)
2.4 可以复用的代码 (第1课时)
学习内容
一、编程解决复杂问题的思想与方法
二、函数的定义与调用
三、使用函数解决问题
一、计算机解决问题的一般过程
知识回顾
二、算法的三种基本结构
顺序结构
分支结构
循环结构
小挑战
有6根火柴棒,列出所有能摆出的自然数,要求火柴棒正好用完。
小挑战
6, 2, 5, 5, 4, 5, 6, 3, 7, 6 根火柴棒
有6根火柴棒,列出所有能摆出的自然数,要求火柴棒正好用完。
小挑战
6, 2, 5, 5, 4, 5, 6, 3, 7, 6 根火柴棒
6根火柴可以摆出最小的自然数是( 0 )?
6根火柴可以摆出最大的自然数是( 111 )?
有6根火柴棒,列出所有能摆出的自然数,要求火柴棒正好用完。
小挑战
有6根火柴棒,列出所有能摆出的自然数,要求火柴棒正好用完。
snum=6
print("你可以拼出这些数字: ") for i in range(112):
if
== snum :
print ( i )
i 需要的火柴棒数
range(0 , 112 , 1)
0≤i<112
小挑战
有6根火柴棒,列出所有能摆出的自然数,要求火柴棒正好用完。
有6根火柴棒,列出所有能摆出的自然数,要求火柴棒正好用完。
print ( i )
小挑战
细化问题:如何计算一个自然数需要的火柴棒总数?
snum=6
print("你可以拼出这些数字: ") for i in range(112):
if
== snum :
i 需要的火柴棒数
小挑战
有6根火柴棒,列出所有能摆出的自然数,要求火柴棒正好用完。
细化问题:如何计算一个自然数需要的火柴棒总数?
=
例如:14需要多少根火柴棒?
下标
f = [ 6, 2, 5, 5, 4, 5, 6, 3, 7, 6 ]
1 4
f [ 4 ] 4
+
f [ 1 ] 2
6
求出每一位上(个位、十位......)的数所用的火柴棒数在相加。
小挑战
有6根火柴棒,列出所有能摆出的自然数,要求火柴棒正好用完。
细化问题:如何计算一个自然数需要的火柴棒总数?
小挑战
细化问题:如何计算一个自然数需要的火柴棒总数?
num=int(input(“请输入一个数:“)) f=[6,2,5,5,4,5,6,3,7,6]
total=0
while (num>0):
x=num % 10 total=total+f[x] num=num//10
print(total)
# 输入一个自然数
# 0-9的数字分别需要多少根小棒
# 火柴棒总数变量赋初值
# 取num的个位数
# 所需火柴棒数累加
# 去掉num的个位
有6根火柴棒,列出所有能摆出的自然数,要求火柴棒正好用完。
小挑战
有6根火柴棒,列出所有能摆出的自然数,要求火柴棒正好用完。
细化问题:如何计算一个自然数需要的火柴棒总数?
num=int(input(“请输入一个数:“))
f=[6,2,5,5,4,5,6,3,7,6]
total=0
while (num>0):
x=num % 10 total=total+f[x] num=num//10
print(total)
测试数据:14,108,0
小挑战
有6根火柴棒,列出所有能摆出的自然数,要求火柴棒正好用完。
细化问题:如何计算一个自然数需要的火柴棒总数?
num=int(input(“请输入一个数:“))
f=[6,2,5,5,4,5,6,3,7,6]
total=0
while (num>0):
x=num % 10 total=total+f[x] num=num//10
print(total)
测试数据:14,108,0
小挑战
有6根火柴棒,列出所有能摆出的自然数,要求火柴棒正好用完。
细化问题:如何计算一个自然数需要的火柴棒总数?
num=int(input(“请输入一个数:“)) f=[6,2,5,5,4,5,6,3,7,6]
if num==0:
total=f[0] else:
total=0 while (num>0):
x=num % 10 total=total+f[x] num=num//10
print(total)
测试数据:0,50,100
# 判断输入数字为0时的特殊情况
有6根火柴棒,列出所有能摆出的自然数,要求火柴棒正好用完。
面对一些复杂的问题,可以采用自顶向下、逐步细化的方法
编程解决复杂问题的思想与方法
面对一些复杂的问题,可以采用自顶向下、逐步细化的方法
有6根火柴棒,列出所有能摆出的自然数,要求火柴棒正好用完。
编写代码时,可以运用函数实现化繁为简、分而治之。
if
== snum :
print ( i )
i需要的火柴棒数
snum=6
print("你可以拼出这些数字: ") for i in range(112):
num=int(input(“请输入一个数: “))
f=[6,2,5,5,4,5,6,3,7,6]
if num==0:
total=f[0] else:
total=0 while (num>0):
x=num % 10 total=total+f[x] num=num//10
print(total)
#求解一个自然数需要的火柴棒总数
编程解决复杂问题的思想与方法
函数
函数可分为系统函数和用户自定义函数两种类型。系统函数即函数库中的标准函数。
在前面单元使用过的print()和input()函数都是系统函数。
自定义函数基本格式:
def 函数名(参数): #函数说明
语句或语句组(函数体)
return 返回值
参数是用来向函数传递值的,当有多个参数时, 各 个参数之间用逗号分隔开。
函数执行完成后,由return语句将表达式值返回给调用者,结束函数。
函数的调用采用函数名(参数)的方式。
数学运算类函数;数据转换类函数;字符串操作类函数;输人输出函数;文件操作类函数;其他类函数。
函数的定义与调用
print(total)
#求解一个自然数需要的火柴棒总数
定义函数
函数名
参数
def match_num(num):
num=int(input(“请输入一个数: “)) f=[6,2,5,5,4,5,6,3,7,6]
if num==0:
total=f[0] else:
total=0 while (num>0):
x=num % 10 total=total+f[x] num=num//10
return total
返回值
函数体
案例分析:用自定义函数求n!
def factorial(n): #自定义函数名为factorial,有一个参数为n
s=1
for i in range(2,n+1):
s=s*i
return s #函数返回值为 s
#调用factorial函数
total=factorial(4)
print(total)
print(total)
#求解一个自然数需要的火柴棒总数
def match_num(num):
num=int(input(“请输入一个数: “)) f=[6,2,5,5,4,5,6,3,7,6]
if num==0:
total=f[0] else:
total=0 while (num>0):
x=num % 10 total=total+f[x] num=num//10
return total
#主程序
snum=6
print("你可以拼出这些数字: ") for i in range(112):
if match_num( i ) == snum : print ( i )
函数的定义与调用
三、调用函数
通过函数名即可调用函数
先声明、后调用
参数传递要对应
测试程序:
练习:求解 1! + 2! + 3! + 4! ……+ 100!
(可参照课本P42)
运用函数解决问题
调用函数
自定义函数
【运行结果】
ü代码复用
ü模块化设计
一、面对一些复杂的问题,可以采用自顶向下、逐步细化的方法二、编写代码时,可以用函数实现化繁为简、分而治之
三、运用函数解决问题,必须先定义再调用
本课小结
自定义函数
主程序
疑问一:程序遇到函数时执行过程是怎样的?
有6根火柴棒,列出所有能摆出的自然数,要求火柴棒正好用完。
疑问二:定义函数和调用函数的参数有什么不同?
定义函数match_num(num)中的num为形参调用函数match_num( i )中的 i 为实参
多个参数时形参与实参的个数和顺序,必须保持一致,每个参数之间用逗号隔开。参数也可以没有,但括号不能省略。
有6根火柴棒,列出所有能摆出的自然数,要求火柴棒正好用完。
【范例程序】
def plus( a, b ):
# 自定义函数求2个参数的和
s = a + b
return s
# 调用plus函数 total = plus( 10, 20 ) print (total)
形参
实参
返回结果
】?
【运行结果 30
有6根火柴棒,列出所有能摆出的自然数,要求火柴棒正好用完。
疑问二:定义函数和调用函数的参数有什么不同?
定义函数match_num(num)中的num为形参调用函数match_num( i )中的 i 为实参
退出函数return [参数] ,可以将结果返回给调用方。
多个参数时,每个参数之间用逗号隔开。如果没有参数,则return语句返回None。
疑问二:定义函数和调用函数的参数有什么不同?
有6根火柴棒,列出所有能摆出的自然数,要求火柴棒正好用完。
求解 1! + 2! + 3! + 4! ……+ 100!
(可参照课本P42)
自定义函数
主程序
练习讲解
求解 1! + 2! + 3! + 4! ……+ 100!
(可参照课本P42)
形参
实参
练习讲解
求解 1! + 2! + 3! + 4! ……+ 100!
(可参照课本P42)
返回结果
练习讲解
求解 1! + 2! + 3! + 4! ……+ 100!
(可参照课本P42)
【运行结果】
练习讲解

展开更多......

收起↑

资源预览