struct lnode是什么结构类型_算法是什么?

70df1e21fc67aec019b19a577be4ec0a.png

观众老爷好,前几期都有提到程序是由算法和数据结构组成的,而算法其实就是数学里的加减乘除以及逻辑判断组成,数据结构是事物的特征和属性。那算法到底怎么实现的呢?请观众老爷拿好茶杯,取出零食饮料,跟小编一起再次向编程的世界走进一步。

e000a89bfdad2885fbdfc4e0644f9ad8.png

在上一期说过面向对象分析思想非常重要,这里观众老爷跟小编一起来复习一下,面对事物和问题,我们首先第一步是分析,形状(圆,方,三角形),大小(长、宽、高),材质(金属,塑料,布料等),问题(条件,工具,解决办法),当我们进行初步判断后,就要进行验证(会动吗?吃什么?对我们有没威害?能不能吃?方法合不合理?),最终得出结论(确定事物是什么构成,能做什么,对我们的危害和益处,是否达到我们所期望的目的,问题是否得到了解决)。下面咱们一起用面对对象的方法进行事物的分析判断。

136fb52682307546cf85de5b19b38893.png

观众老爷应该都有解答过"把大象装进冰箱需要几步?"这个脑筋急转弯吧?当我们遇到问题是第一时间会考虑这个问题的合理性?当然正常情况这个问题是不合理的?那如何判定这个问题是不合理的呢?接下来我们用编程来进行求解?

首先我们把大象与冰箱的特征和属性进行数据建模(当然我们还是用伪代码描述):

Class Elephant { //简单的建立一个大象的特征数据结构,这里也可以用struct

//具体涉及到编程语言时再详细说明Class与struct的差别和相同之处。

String species = NULL; //大象的品种,先赋值为空

Int long =0;//大象体长(以厘米为默认单位也可以用浮点float来进行变量类型申明)

Int width = 0;//大象肩宽

Int high = 0;//大象高度

//大象因为不存在填充行为,这里不建立填充函数,在冰箱里进行建立。

//当然大象的吃喝等行为在这里不是必要的也就不再进行数据化

Class Icebox {

String brand = null;//冰箱的品牌,先赋值为空

Int long = 0;//冰箱长度(这里是冰箱内部的长宽高,观众老爷可以忽略部分不合理的地方)

Int width = 0;//冰箱宽度

Int high = 0;//冰箱高度

//这里可以建立冰箱一些行为与功能函数

Void OpenDoor (){

Print("打开冰箱门!"); //打开冰箱门函数

}

//当然在装填之前肯定需要判断这个物品能不能填进冰箱,下面进行实例化后再进行判断

Void Fill (){

Print("把物品装进去!"); //冰箱填装函数

}

Void CloseDoor () {

Print("关上冰箱门!"); //关闭冰箱门函数

Elephant ElephantOne; //实例化一个大象数据结构

ElephantOne.species = "Asian elephant";//这里是亚洲象,当然也可以用非洲象,具体这里不再一一列举

ElephantOne.long = 500;//体长五米

ElephantOne.width =68;//大象身体宽度

ElephantOne.high = 210;//亚洲象最低肩高2.1米

//台式电冰箱:高度为750~850mm,宽度为900~1 000mm,深度为450~500mm。这里全部采用最大值

Icebox IceboxOne;//实例化一个冰箱数据结构

IceboxOne.brand = "geli";//格力冰箱

IceboxOne.long = 100;//冰箱长度

IceboxOne.width = 50;//冰箱宽度

IceboxOne.high = 85;//冰箱高度

/*到了这里观众老爷应该心里有了判断这个大象肯定不能填进冰箱的,但是编程就是要每一步都要进行详细的描述出来,我们的判断依据是什么?没有比较之前都不能作准,尤其数据我们需要让计算机自己来比对,我们只需要提供数据就行。*/

Int step = 0;//建立一个整形变量,计算所需步骤

If ( IceboxOne.long > ElephantOne.long && IceboxOne.width > ElephantOne.width && IceboxOne.high > ElephantOne.high ) {

//先进行三个值比对,然后三个值进行与操作,三个全为真这个条件才为真

step=step+1;//如果物体能装进冰箱第一步

IceboxOne.OpenDoor;//打开门,在判断之前也可以打开冰箱,可以在冰箱类里加个条件判断冰箱是否已经打开

step=step+1;//如果物体能装进冰箱第二步

IceboxOne.Fill;//装进冰箱

step=step+1;//如果物体能装进冰箱第三步

IceboxOne.CloseDoor;//关上冰箱门

Print("大象装进冰箱需要/n步

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值