00:01
为了加深对函数的理解呢,我们再来做几个关于函数的练习题。第一个题。函数呢,可以没有任何返回值的案例,我们走一个编写一个函数,从终端输入一个整数,打印对应的金字塔,哎,这个题是不是我们前面有有一个案例,就是教大家怎么用for循环完成一个金字塔的输出,但是呢,现在别人要求把它改成用函数来实现,并且呢,是从终端输入一个整数,打印出对应金字塔来,我们完成一下。当然这个题呢,我不会再重新写一遍哈,我把以前写的那个打金字塔的核心代码拿过来,封装到一个函数就可以了,也就是说现在我们只需要干一个什么呢?将原来写的,原来写的代码封装到,封装到一个函数中即可。那现在看一下老师怎么来进行这个封装。好,首先呢,我还把这个先注销一下。
01:02
把这些先注销一下,OK。然后呢,我再写一个文件。叫做函数的练习。对不对,还是我们函数练习方式。Function,然后呢,Exer c。你。好,现在呢,我们把这个后缀,诶把这个后缀改一下。函数练习是一个。那现在我们要做的事情呢,它非常的简单哈,就是打一个金字塔,但是呢,用函数来完成std。来走一个吧,然后呢,我们把需求先拿过来。对,先把需求拉过来。这边呢,我们仍然写一个VO的主函数。那既然是打一个函数,首先我们想他会说接收到打印金字塔的一个整数,那就成数呗,这个整数我们理解就是打多少层。
02:02
是不是那就简单了,那老师就这写了啊,呃,我们先写一个没有返回直播里的,我就叫spring。Print打印的意思,打印一个star,打星星嘛,打印星星,那这边肯定会接收到一个值,待会想想怎么写哈,核心代码我就不去写了,我找到原先咱们写的代码在哪里讲的,我们是不是在这打stars。是不是金字塔最后核心的代码是不是就这么一块。是不是从这开始的?这段代码我肯定不会再重新重新写了,因为我们以前写过,再重写重写一遍也没什么意思,那我把这个注销打开。我把这个注销打开,大家看能不能不能理解哈,打开过后再格式化写。那这里面呢,同学们可以看到这里面我们需要传入的是个什么呀,是不是传入的是一个to level,是不是因此呢,我就投一个呢,我就直接给他名字。行参的名字给他保持一致就可以了。
03:01
那这个值各位同学显然不是从这得到的,这边就不要给了。也就是说我们这个to level呢,是作为行山传进来的就完事了,大们就写完了,看到没有。看看懂了吗?也就是说也说这个陈数陈数。陈述。这个totali。干什么呢,是。是形参传入的,是通过一个形参。行参传入能理解吧,那这样子看数据写完了,写完过后呢,我们就来可以写了,来我们玩一把,首先提示用户请输入金字塔的陈述。没问题。那第二次陈述我就搜一下,我先定义一个变量。Int。To level。我把这个辩论听到。这面去啊,但是它不是同一个,这是在main函数里面的一个to level,这个是在。
04:01
Print star函数里面的一个to live,这两个是不一样的概念,两个是在不同的函数里面的,所以它不是同一个意思哈,这个是main里面的to leave,这个to live是print star里面to live,他们都是局部变量,所以他们不冲突。不要认为呃,都叫to Li好像有冲突,不对哈,那现在呢,拿到过我们输入一个变量,怎么输进去呢,SKY。对不对,输一个,那怎么收到白毛地,然后呢,一个爱的福porter level。搜一下就可以了。Level好,拿到这个值过后,我们调用对,调用我们的方法啊,调用函数。调用函数,调用哪一个函数呢?就是prime。把什么传进去?同学们把我们接收到的这个to liver给他传进去就可以了。最后为了好看呢,给它插一下就行。这边要输两个get叉,因为你这输一个成输过有回车,所以说要输两次get差,原因我不解释了,已经说过了,第一个是过滤回车,第二个才是暂停控制台写完了。
05:11
那喜欢过呢?我们来玩一把呗,看看到底OK还是不OK,跑起来。运行一下。运行下。好,现在运行呢,他应该说金字塔我们输一个五吧,哎,是不是打印出这样一个空心金字塔了。我们原先是不是,嗯,打的空心金字塔呀,可以的,那如果说你这次再换一个。对,比如说我这次要打出20的金字塔一样的。明白,好,这就是我们这一个题的编写,只是呢,他这要求打出实心,你打空心比打实心还难一点,对不对,自己去完成一下。第二个题呢,编写一个函数,从终端输入一个一到九的数,打印对应的乘法表,这个是不是也写过呀,我们也来做一个封装。一样的道理来写一个。呃,现在呢,我写一个print,呃,叫做九九乘法表吧,叫PRINT99。
06:05
PRINT99。然后呢,我们是不是也把原先那个核心的代码拿过来用一下就行了,我不再写了,核心代码是在哪写的,是不是multi for multiply for exercise。在这里面是不是是我们的核心代码。当时我还说了,呃说了怎么去先死后活,功能逐步逐步完成这个讲,呃完成这一个九九乘法表的时候,我的思路分析还在这呢。好,这次呢,我就直接拿过来用。把这个注销拿掉。格式化一下。那同学们想,现在要变的是不是这个变量?也就是说不一定是九九乘法表了,那现在呢,我们输一个什么呢?Number进去就可以了,N也行,把这个九换成N,代码就写完了。能理解吧?就写完了,那现在我们再来玩一个呗,再来玩一个,在这个基础上再来,再来跑一跑。
07:00
嗯,怎么玩呢?呃,怎么玩呢?那我先把这个注销吧,因为两个都在一起,很容易自己搞混乱,先把注销了,注销过后呢,我仍然提示他一句话啊,还是老规矩,写个N。N初始化来一个零吧,然后呢,提示他请输入一个N值。对,请输入N。对不对,那输入这个N过呢,我把它接收了。我把它接收到这个N里面去输入完了后调用我们的PRINT99。把什么传进去呢?把N传进去即可。最后为了好看,我们输两次get叉代码就写完了,那这个时候呢,你根据输入输入的N就打印出对应的这个乘法表,我们来运行一下跑起来。代码并不难,对不对。好同学,同学们看代码,现在呢,我们输一个N,比如说我们输一个九吧,现在就是九九乘法表。我们现在再来玩一个,我换一个,比如说输入一个七啊,那就是它就到第七行就结束了,好,这个代码我们就讲完了,下面接着来看,下面呢,编写一个函数,对给定的一个二维二维数组进行一个转置,那么因为现在我们还没有讲数组,因此这个题呢。
08:19
同学们听完这个数组过后,我们再回来做。再来看第四个题,第一个函数实现,求两个double数字的最大值并返回,这个是不是特别简单啊,写一个吧。这个太简单了,我们也给他写一遍吧,加深一个印象。把题的要求拉过来。把题的要求拿过来,Very easy哈,我们写一个,比如说VO啊,这个不是void了,返回值了,Get max。是不是get max?当然接受两个数double。啊,第1DOUBLE第二。那么怎么返回这个值呢?非常简单,第一大于第二,如果成立,就返回第一,否则返回第二,代码写完了。
09:07
这个我们用那个三元运算啊。第第二这写错了,第二就是说这里面我们使用一个三目运算或叫三元运算。三元。三元运算就很简单。你看这个一句话就写完了,我们试一下呗。试一下,那我也把这个注销一下。我们来试一下。来玩一把哈,嗯,怎么说呢,咱们可以这样写。打出这个结果就行了。最大值,最大值等于百分号,点iff按照一个小数来输出,那么我直接调这个get max输入一个一点。一再输一个7.8。包起来就行,也就是说这个地方我们可以直接放一个函数也是可以的啊,就各种键,各种写法,大家都看一看运行,为了好看呢,这边还得有个get char。
10:03
对,运行一下同学们。运行过了呢,应该返回一个7.8。就对了。返回是不是7.8呢,是7.8,没没问题,这个写完了再下一个题,第一个函数,嗯,返回输入啊就是。啊,返回三个int类型的和,啊求应该是求。求出三个int类型的和并返回,这个题更简单啊更简单了。那怎么写呢?求和,我把这个题拿过来啊,虽然简单,我们还是写一遍吧。虽然简单,但是也写一下。加深一个印象,那肯定返回的是个int了和肯定也是int,那么get什么呢?Get soon。然后这边呢,我们写int n1TN2TN3,因为它是三个整数嘛,你要说清楚了,然后直接re n1加N2加N3。当然了,有些同学老师,我能不能先把这三个和放到一个局部变量再返回也可以,有些人喜欢这样写。
11:06
R等于N1加N2对。再加一个N3,然后呢,这边返回res,其实这个写法也可以,上面这个写法也可以,只是有点啰嗦,那你何必呢,对吧,你一步步这样返回不就完了吗?你你再去创建一个局部变量,意义不是很大好吧,所以说我一般呢,就直接返回这个代码,我我就不去测试了,非常简单。好,再看下一个题,下一个题呢,求出int类型数组中最大的索引,最大值的索引,这个呢,学完数组再说,还有一个,还有一个就是可以接收一个double的类型的数组,使用冒泡法对齐排序,那这里面涉及到一个冒泡,还有一个数组都没讲,因此呢,把这个数组和冒泡讲完了,我们再来完成。好,各位同学,那关于函数的练习呢,我们就讲到这里啊,就是其主要的目的就是让大家去把我们前面学过的for循环啊,或者分支控制啊,或者Switch啊,能够跟我们函数讲的这个知识点怎么样融合起来。
12:10
就知道是它是怎么融合起来的就可以了,各位我把它梳理一下。那这边讲的是函数的练习题,没问题,那一共我们讲了这些题,大家梳理一下。好的。板说到这里,好吧。这是我们的第一个练习题。这是我们的第二一个练习题。对,那么我们就直接,嗯,把这个题的答案给他拿过来就可以了,好不好,挺简单的。这这这题都放在一起了,好像咱们就放在一起吧。在一起或者单独拿下也行,那就没关系,我单独给你分享,这是print star这个函数,分一下吧。为了同学们将来好复习,我给大家分享。来插入一个表格对吧。这是个方法,然后呢写一个VO的完事,然后在这边呢可以调用,怎么调用的呢。
13:04
调用的时候,我们是这样调用的。把这打开一下。是不是在这打开的。然后把这段代码呢,给大家放过来就行。没问题,这是第一个题,再看第二个题。呃,第二个题呢,是打印一个对应的这个九九乘法表。对,就算报表上面是打出信息,那这边这个题的这个答案呢,我们也给他梳理一下。对,怎么梳理呢,就是打印PRINT99嘛。8699。放一个表格进去。放进来,然后这边来写一个VO。主函数在这里面我们怎么调用的呢?我们怎么调用呢,其实就是在这调用的,对吧。这么屌用。我把它复制到我们的笔记中,一看就明白了。把这个。把这个往后面挪一下。
14:01
好,这是我们讲的这个题。好,紧接着呢,我们是不是还讲了后面的3456,但是这里面有有些题呢,是跟我们的数组相关的,所以说我们就没有再多说了,把这个粘过来吧。这是又一个标号。三。这个往这边挪一下是。这是第四一个,那整体给排一个号就行。对吧。这个不要。这个第四个在这儿。第四个在这儿。那为什么老跑上面去呢?那不要了。我就行,这是第四一个。往下面挪一下,那这个第三个题呢,它有一个,呃,有有这么一个图,我先放这后边我们学完数组过后呢,再回头来解决就可以了。并不难,这个题只要你学完数组过后再回头看就变变得比较简单,后面这个第四题,第五题的答案呢,我给大家放到这就行了。
15:07
它的答案就是两个函数对。一个是这个函数,我就直接拿函数就行了,好吧,这两个函数写到这就行,函数。阐述到这里。使用了我就不写了,因为太简单了,这个东西你调一下函数还不会掉吗?现在对不对?好,各位同学,那关于我们函数的练习题先评价到这儿,那这里面呢,涉有些涉及到数组,还有排序的这个内容,这几个题呢,没有没有讲,等到我们学完数组过后,同学们再回来做也会觉得非常的轻松。各位这一讲,我们就聊到这里。
我来说两句