00:00
我们再来看三个关于方法的课程练习题啊,那我们看第一个题,他说编写一个方法,判断一个数是奇数还是偶数好,这个对我们来说应该没有难度的,对不对?还是比较简单,那还是在这接着写好吧。还在这写?那这次呢,我们还在这个上做一个修改就可以了,也非常简单,那这个时候呢,我们知道其实老师刚才讲过,我们最好呢,给他绑定这个结构体的指针类型,这样子呢,这个MU就不会进行只拷贝了,对吧?好,那我这次就改成这个类型啊。他说判断是奇数还是偶数,那么就来一个加。De g啊,加number好吧,加number就是判断一个数,那既然判断一个数,你是不是应该把这个数传给我呀,那所以说呢,我有个number in,那他说判判断一个数是奇数还是偶数,那我直接就在这个函数里边把这个判断结果输出来就可以了,是不是我就没有什么返回值了啊,那就这样判断,如果number。
01:08
二如果它等于零说明什么问题?说明它刚好能够被二整数,那么此时此刻我们认为它是什么呢?它就是一个整数,就是一个偶数。对吧,走我就说是偶数。没问题吧,手术A,如果他不能够被二整除呢?我们就输出一个判断,就说是奇数。好吧,是奇数。OK。技术。啊,这样子啊,奇数啊奇数。可以了。就这么简单,那现在呢,我们来调用它一下,同学们我们看看如何调用它,因因为这个时候呢,它是指针类型,所以说严格来说呢,我们调用的时候应该是这么调用,怎么调用呢。
02:00
其实应该是这么调用MU对吧,先找到它指针这个类型,然后再调他写的这个叫做价number。是这样调吧,我给他传一个数,比如说十这样写,但是实际上呢,大家都知道,因为呃,编译器底层做了一个优化,所以说呢,也可以直接这样写。就可以了,好,我们来写一个,把这个数输出来,就说这什么什么数,是啊,把它输出来一下,就是number。Number轴是偶数,再来number是奇数,这样更好一点。我们跑一个吧,同学们跑一下,我们发现呢,十是偶数,我换一个换一个数,比如说11。我们再来一下。11是奇数,它输出11是奇数,OK,第一个题咱们就做完了。第一个题就做完了,我们再来看第二个题,它说根据行列字符打印对应的数和呃,对应的对应的行数和列数的字符,比如说行为三,列为二,字符呢为星,就打印相应的效果,那也就是说这个时候我们应该接受几个参数呢?应该接受几个参数,大家想一想,是不是应该接收三个参数了?
03:19
对吧,你要分析出来哦。因为这块比较简单,我就直接告诉大家了,它应该有三个参数,一个是行,一个是列,还有一个就是打印,这个字符到底是什么字符是吧,那我就写了。好,因为前面这一部分是差不多了,所以说我把它粘过来,把这镂空判断名字,我们就叫print。哦,Print print前面是不是有有这个方法了,有个print,那就PRINT3了,打印好这时候呢,他要给我传一个行列,那就是N。M是列,假设M是列,然后呢,还需要传一个字符,那就用字符串来接收好吧,比如说它的这个它的这个这个K啊,他这个K。
04:04
就是它那个字符要打印那个字符是什么样子的,是尊。好,这样就可以了,诶小写S。好,现在呢,我们就根据他的实际情况来打印就可以了,嗯,那怎么打印呢?因为有M有N了,所以说肯定是一个负循环,对不对,是个负循环,好,那就是I。等于I等于一。I小于等于N,然后I加加写完。然后再for循环一把。高。对吧,勾等于一勾小于等于M。对吧,然后勾加加。好,现在呢,拿到这个值过后,我们就输出,怎么输出呢?Print print好,那这个时候输出的时候,其实就是这个字符了,你把这个K输出来就行。是不是输完了过后,输完了过后呢,我们换行。
05:01
好,这样就完事了,就说做的更加灵活了,来,我们来调一下。来走一个MU点。我们要打印的是PRINT3。好,我们来做一下,那么这次呢,我要打印个七行几列呢?比如说是20列,然后我要打印什么字符呢?比如说这次呢,我们要打印这种井号的。我们看看能不能打印出来跑一个。好,我们可以看到它打印出来的就是我们需要的效果,对不对,那这个时候就很轻松了,就说比如说你要打另外一个符号,比如说现在你要打这个艾特符。也可以。对吧,一致性它全部变成爱德福了。这就是一个小练习,嗯,这个练习完了过后呢,我们再来看第三个题,第三个第下一个题啊叫定义一个小小计算器的结构体,叫calculator计算器,实现加减乘除四个功能,那么它要求实现的形式呢,有两种,一种是分四个方法实现,一种呢,一种呢就用一个方法搞定,大家想想这个你怎么做。
06:06
用用,如果用四个方法搞定,其实。大家是不是一下就想出来了?就加减乘除吗?如果你要是用一个方法搞定的话呢,我们先把它整理一下。好,实现形式我先整理一下,如果你分四个方法搞定,那就。分别计算加减乘除就完了。就是这样分别。分别计算。计算加。对吧,分别计算加减。乘除就可以了。加减乘除就可以了,那么如果你要用一个方法搞定的话呢,各位那你那你肯定这地方要接收两个数,同时还要接收运算符对吧,那你就说需要接收。需要接收两个数。两个数。
07:01
还需要什么,还有还有一个运算符。对不对,这个肯定跑不了,那同学们我们来,我们来做一做吧,那第一这种方法我就不讲了,四个方法我就写一个啊,我就写两个,大家试一下,一实验方法一。这个应该。这样写。首先你先定一个结构体。这个你肯肯定跑不了,所以说type。Calculator,然后呢?对吧,然后他需要两个数,呃,如果是需要两个数,你有两种方式,第一种呢,就是把参数直接写到这个cul里边去,用字段的形式体现,第二种方式呢,就直接接收也可以。再说一遍啊,如果你要养个数,你可以写到这,比如NUMBER1IN。啊,NUMBER2。那我就通过这个结构体把这个传进去,这是一个思路,第二种方式呢,就是你把这个呃数呢,通过这个传进去也可以,就看你的需求了,对吧,看你的需求,那我就用这种方式好吧,我定义两个字段,定义到这里面去,我按int来进行这个运算就行。
08:11
当然你也可以改成其他类型,好,如果是写成四个方法的话,那就这样写,Fun。然后呢,我们写个calculator的。一个名字。好,那为了好写呢,直接写成小写就可以。然后心。对不对,我这个时候用星号就代表它是个,它是一个指针,那首先呢,我们要求和,那就这样写上完事,他要返回值吗?那就返回一个吧,Int。好这样就做完,那做完干脆我们这方写成float吧,这样子应该更好一点,因为也有可能应该是那这个小数传的对吧,那这个地方返回是什么呀,应该是FLOAT60。那这个就简单了,那怎么算呀,同学们是不是return。从这个变量里边取出NUMBER1,再加上从这个变量里面取出NUMBER2就完事了。
09:07
其他因此类推,如果你要写减法,求它的这这个差就sub sub的话,把它改成这个就行了,好,其他我就不写了啊,还有另外两个大家自己去写,那我给大家测试一下。来,同学们测试一下。测试一下OK,嗯,那测试的时候呢,首先你还是得先创建一个calculator的结构体变量,这个肯定是跑不了的。好,我写到这里来。好,那就干脆用他的名字。好,写完了,写完的话我们就掉了啊。就通过cul来调,那首先你要给他赋值嘛,对吧,NUMBER1你给他多少。比如说这个NUMBER1,我给了是1.2,对不对。这样子串NUMBER2。给他一个。比如说是2.422.2好,然后我们就调用它的一个方法,Calculator里面点get上。
10:06
带上。那该上面它是返回,他要返回的话,我要接收一下,那我就直接打印了,好吧,我也不接收了,直接打印。我就直接说。呃,Sum等于多少完事?那我就把这个参数直接传给他了啊。怎么传?很简单,那这就不用传了,因为他已经通过这个结构体变量本身就带过去了,对吧,它的差。我们也把它求出来。好,同学们,我们跑一下。先保存一下,看代码有没有问题。抛弃了。我们运行一下,我们发现呢,没有问题,看到没有,诶有问题啊和和叉一样的,那就不对了。好,我们看看问题是在哪哪个位置。啊,我这调的是同一个方法。对吧,那现在呢,重新把它改一下。看到这样就可以了,当然它它这个精度保持这么高,是因为我没有做这个格式化处理,如果大家做一个格式化处理的话,也非常简单,你这样你你这样把它处理一下就完了,就是用那个s print f把它处理一下就完了,对不对,还记得怎么处理吧。
11:16
这样处理啊,再给大家。演示一下,要处理的话也可以这样处理,就是这样输出吧。Sprint f。对不对,十分之F,然后呢,咱们保留小数点两位点2F不就完了吗。好,但是呢,因为你加了一个这个函数这样写。好,我们再来跑一下。好,看到这边有问题啊,我们看问题在什么地方。按定啊,不能这样写啊,在包里边这样写就可以了。跑起来。诶。哼,不能这样写,因为因为你这是返回一个结果,你在前面这样输出是不行的,那就只能这样子了,F对不对,那你这个地方应该是怎么样?V能理解了吧,就是因为你是格式化输出的吗?这个地方是把格式化完了过这个结果返回我们再跑一下。
12:13
好,咦,这个地方是怎么回事,看看啊。看一下这个地方的问题,我们把它整理一下。好,我们这边的问题,刚才老师看了一下啊,主要是这个地方是不是应该加个百分号就可以了,我们这格式化应该加个百分号,好这样子就可以了,然后呢,换一个行还是老规矩换行来走一个吧,现在应该就没问题了,来跑一个,我们可以看到现在输出结果是3.40,保留到小数点两位,下面也是一样的,同学们也可以按照这个方式来处理,对不对,那如果说我来处理的话呢,相当于说把这个下面拿过来。对不对。对不对,然后把这个改成他就完事了,后面这个删掉。对吧,删掉了,删掉过后呢,我们同样把它进行格式化输出,诶这样子呢,看起来就比较OK好。
13:05
同样换行。跑一个。运行起来这个呢是负1.00。没问题,大家可以这样去试一下,好,这是呢,第一种方案就是把它分开写的,人家说了还有方式二实现方式二呢,他要求大家用什么呀?就是用用一个方法实现所有的加减乘除,那这个也很简单了,那怎么做呢?非常简单,Function来我们呢这样子写还是把它。给这个指针绑定一个方法,比如说我们就叫get result,好吧,那这里面呢,我们需要给它传入一个这样的东西,比如说。我们再增加一个,我们再增加一个,呃,这个字段,比如说叫做运算符是什么。或者说从这个参数里面传进去,也可以看你的喜好,那我就从这传好吧,比如说我传一个BAT,比如叫做它的运算符叫operator operator是我们操作符的意思,大家查一下这个英用单词叫operator,那么我们认为是个bit类型没问题吧,好,最后呢,他也返回一个结果是FLOAT64。
14:16
这个没毛病,那这时候呢,我们要做一个判断了,因为你这个运算符是什么,我要判断过后才能知道,所以说我现在呢,要做这个这个事情,先定一个结果放到这。默认给他一个0.0,没有没有问题吧,好,我用Switch语句做判断,Switch。这个operator operator,所以operator走一个case,如果他进来是一个加。那么我就。我就这样把它,把它加的这个结果统计出来,就是什么呢?就是通过它的这个变量访问到number一再加上。
15:00
对不对,加上它的第二一个。这个字段写完了。好,然后呢,当然它也可能传进来,是一个减法。那我把减法进行一个处理。简单运算。减,如果是减的话呢,这咱们也改成减,对不对,紧接着我们再来一个,如果它是乘法。如果是乘法的话呢,对不对,那这地方我们就是乘,同样它还有一种可能性就是除法,那除法呢,我们也做一个处理,没有问题吧。当然它还有一种可能性,就是他给的运算符不对,我们来一个default。对吧,Deat。好,这边我们都少写了一个什么呀。少写了一个这个。稍微的整理一下。没问题吧,好,嗯,那这块如果他是默认的话,就是没有没有取到,那么就输出一句话。
16:01
说出一句话,说一句话就说你的运算符有问题对吧?For my print运算符输入有误。运算符输入有误。对不对,输入有误,好,那如果有误的话呢,我们还是得给他返回一个值,那这个result s呢,我们就保留原先这个0.0就行了,好吧,就相当于说这个没有结果,但是我这地方会有一句话输出他也知道啊,他也知道好那整个这个做完了以后呢,我们就return res就完事了。好,那现在呢,我们来调他一下,看看能不能用对不对,能不能用,我就直接这样写啊同学们。FMt.print。呃,我就偷了一个懒啊,直接这样运算。嗯,这样子吧,我还是分开写。走res,那么我用它的这一个C的变量来调用它的一个方法,这个方法呢,就是刚才写的叫get result。
17:01
Get result里面我传一个字符进去,比如说加法。好,加法完了过后,我们把它输出来,我们就这样输出。RS等于多少好吧。我们跑一下。跑起来看代码。我发现R是等于还是一样的,三点四零一样的,因为我这没有格式化,所以说它输入小数点非常多,这个不去管它了。这里我就不去管它了,好OK,那现在呢,加法有了,你把这个改成减法,诶它就按减法预算了,看到没有。对吧,负1.0没问题,如果你把它改成乘法。改成乘法。好,那么这个地方就应该是。这两个数相乘的结果,2.64好,其他意,其他依此类推,其他依此类推,好这个呢,就是我们讲的第六一个案例,第六一个案例,那么我把这个板书一下同学们。
18:01
这些地方我都没板书,我来板书一下啊。前面讲的三个题,我们都没有板书。把它进行一个板书来走一个,这是第四一个。编写方法。好的。往这儿挪用一下。那么嗯,这地方判断一个数是奇数还是偶数,我们这边代码呢,是这样写的。怎么写的?在这儿是不是?诶,在这儿。这是我们的这个判断一个数是奇数还是偶数的一段代码。我把它放在这里。也很简单。这里想,我们再来看,还有呢,就是这个地方,他说。根据输入的行列和字符打印相应的效果,这个呢我们也做了,把它也进行一个板书。好,这块是我们板书的啊,OK,将其整理一下也没问题,紧接着呢,我们还写了一个小小计算器。
19:09
小小计算器。那小小计算器呢,我们这边写的是分成了两种方式,第一种呢,就是分别计算,第二种就是用一个方法把它搞定的对不对,好这块呢,我们这是第一个方法。实现方式一。对不对,这是实现的方式一。不板书。还有一个呢,就是实验方式二,我们也把它板述一下,在哪里呢,在这。这些基本语法大家都要记得住,不要说诶现在写到这的时候,把前面的内容又全部忘掉了,对吧。所以说要多写代码。好,同学们,那关于这块的这个练习就说到这,那么下面呢,我还要布置几个课堂练习题啊,课后练习题大家做一做,要求同学们做这个在methods u tr结构体中编写一个方法,编一个方法,从键盘可以收入收接收一个整数一到九。
20:06
大家还回忆一下,我们在前面是不是讲过输出这个九九乘法表,还记得吧,然后呢,你写一个方法,可以接收一个数,打印对应的乘法表,类似于这个效果。大家课后要去练习第二个呢,编写一个方法,给定一个给你一个二维数组,是三乘以三这样一个二维数组,对这个二维数组进行一个转置,什么转置就这个意思。比如说我的二位数只是123456789,那么到时间你要给我进行一个调换转置,就是行列相互相换,你看这是四,这是二。你看四和二调换了,同样七和三交换了,七和三交换了,八和六交换了,九不变,因为九呢,它刚好是两行两列的这个位置,它互相调换,还是他自己。
21:03
把这个题做一下。这题有一定难度对不对?其实也不是很难,大家动动脑筋就能把它做出来。也就是说第一题,第二题同学们先考虑自己先去做一做,然后呢,如果实在做不出来,到时间看老师的评讲,OK。好,这是课后练习题,我给大家布置到这里。一定要去做啊,同学们再说一遍,不要看老师写的轻松,当你自己去写的时候,你就突然发现没有思路了。对不对啊,写一个方法。方法的课后。课后。练习题。练习题。课后练习题。好,我把它给大家整理一下好吧。这个是放在我们第三个标题里边去。课后练习题,我把它排版板述一下。OK。
22:02
分号。问题吧,同学们。好,同学们,那关于课后练习和刚才讲的课堂练习我们就全部说完了,大家看看对方法是不是了解的更加细致了,对吧?其实他的基本语法并不难,但是呢,当我们用到项目里边去的时候呢,你会突然发现有些地方你就不熟悉了,因此同学们再次强调,把这个把这个老师布置的作业一定要去做啊,如果你自己不做的话,肯定你你光听一下这个视频,或者说听一下老师讲,效果肯定是不会特别好。这点是用用无数个用无数个学生的案例证明了啊,同学们,所以说再次强调。强调就一定要去做,自己要去做,一定自己要做一下。要做,否则这个效果肯定不好啊,否则学习效果。否则学习效果不好。大家一定要注意这个问题,好,那这块呢,我们就先介绍到这里。
我来说两句