zoukankan      html  css  js  c++  java
  • 20172332 《程序设计与数据结构》第五周学习总结

    20172332 2017-2018-2 《程序设计与数据结构》第五周学习总结

    教材学习内容总结

    第五章和第六章

    • 1.布尔表达式(条件语句和循环语句)
    • 2.三种条件语句(if、if-else、switch语句)
    • 3.三种循环语句(while、do、for语句还有一个for-each循环(for语句的加强版))
    • 4.相等性运算符(==、!=)
    • 5.关系运算符(<、>、<=、>=)
    • 6.操作数为布尔型的逻辑运算符(!、&&、||)
    • 7.使用语句块(语句块里的内容为一组,属于同一个if或者while中)
    • 8.if语句的嵌套
    • 9.数据比较(浮点数比较(差值小于一个值后,认为两数相等)、字符比较(unicode值比较)、字符串比较中的Striing类的返回布尔值的equals方法和返回整型值(字符相差值)的compareTo方法、对象比较(用implements Comparable接口))
    • 10.无限循环(Ctrl + C 强行终止正在运行的程序)
    • 11.嵌套循环(先结束内循环,再结束外循环)
    • 12.循环体中避免使用的break和continue语句
    • 13.能够一次处理某个集合的迭代器
    • 14.与数组有关的ArrayList类(索引值也是从0开始)
    • 15.三元运算符条件运算符?:(格式:a?b:c,a运算结果为true,则返回第一个表达式结果,否则返回第二个表达式结果)

    教材学习中的问题和解决过程

    • 问题1:算术运算符、逻辑运算符、关系运算符和相等性运算符的优先级
    • 问题1解决方案:先是运算逻辑非、再运算算术运算符,再运算关系运算符、再算相等性运算符,然后是逻辑与,最后是逻辑或。口诀:先算非,再算加减,比较大小,看相等不相等,然后与,最后或,有括号先算括号里的。
    • 问题2:逻辑与和逻辑或的结果
    • 问题2解决方案:逻辑与:只要有一个操作数是错的结果就是错的;逻辑或:只要有一个操作数是对的结果就是对的。(与错或对)
    • 问题3:逻辑运算符的优先级
    • 问题3解决方案:先算逻辑非,再算逻辑与,最后是逻辑或。口诀:飞鱼火(非与或),有括号先算括号里的。
    • 问题4:if语句的嵌套中有没有缩进对结果有影响吗
    • 问题4解决方案:没有影响,先满足第一个if的条件才会执行第二个if,要是不满足第一个if就直接执行对应第一个if的else。
    • 问题5:equalsIgnoreCase这个是什么方法

    • 问题5解决方案:判断对象与字符串是否相同,不区分大小写。这个循环语句开始的条件就是输入 y 才开始循环。
    • 问题6:这个循环语句是怎么循环的

    • 问题6解决方案:这种逻辑运算符连接的循环语句,就是结果为真时开始循环,结果为假就不循环,就需要用到与错或对这个口诀。
    • 问题7:

    • 问题7解决方案:例5.10成立的前提是假设有一个名称为urls.inp的输入文件,其中保存的是URL地址列表。但是在自己的虚拟机内没有这个假设的输入文件,所以这个程序能编译成功但却无法成功运行。
    • 问题8:创建ArrayList对象时,不指定元素类型会怎么样
    • 问题8解决方案:不指定元素的类型的话,保存的是Object类型的元素,也就是可以在列表中放入任何类型的对象。也就是说如果是基本数据类型,则需要自动装箱的步骤。所以,这不是一种好的做法。
    • 问题9:条件运算符的优先级
    • 问题9解决方案:排在逻辑或后面。
    • 问题10:三种循环语句的特点
    • 问题10解决方案:①while循环(先判断,执行0次或者多次);②do循环(至少执行一次后再判断);③for循环(先判断,循环次数确定或者容易计算)④if-each循环((迭代器)简单的处理对象中的各项元素)
    • 问题11:三种条件语句的特点
    • 问题11解决方案:①if(只能表达一件事情的一种情况);②if-else(可以把一件事情的所有情况的表达出来);③switch(只能判断相等性条件,>、<等无法判断)。

    代码调试中的问题和解决过程

    • 问题1:

    • 问题1解决方案:


    由图一改为图二要是不改,当a的值改变后,b的值就没有重新为1,一直累加就会出现这种错误。

    • 问题2:


    正面朝上的次数永远为0

    • 问题2解决方案:


    原因就是实例化对象时的位置不对,没在循环里面实例化,所以结果要不全是正面,要不全是反面,就没有进行正反面的判断,所以相应的输出的正面朝上的次数也不会变。

    • 问题3:pp5.5中的不考虑标点符号、空格该怎么实现
    • 问题3解决方案:用字符替代的方法,先用空格替代标点符号,再用""替代" "。如下图

    • 问题4:

    • 问题4解决方案:不能超过两个数同时比较。应把连续比较的数用逻辑与连接,即改为(注意括号

    代码托管

    上周考试错题总结

    1.Which of the following reserved words in Java is used to create an instance of a class?

    • A . class
    • B . public
    • C . public or private, either could be used
    • D . import
    • E . new
    • 答案:E ;我选的:A
    • 分析:这题的意思是哪个保留字实例化会用到,我理解成创建类所用到的保留字了= =,所以应该选E而不是A。
    • 单词:1.instance:实例。

    2.In order to preserve encapsulation of an object, we would do all of the following except for which one?

    • A . Make the instance data private
    • B . Define the methods in the class to access and manipulate the instance data
    • C . Make the methods of the class public
    • D . Make the class final
    • E . All of the above preserve encapsulation
    • 答案:D ;我选的:C
    • 分析:封装指的是类包含数据和操作数据所需的方法。要想正确的保存封装。第一:实例数据不应该直接从类的外部访问,所以应该用private保留字。第二:方法被定义为访问和操作实例数据。第三:访问和操作实例数据的方法是公开的,这样其他类就可以使用对象。保留字final与继承有关,与封装无关。所以D是错的。
    • 单词:1.encapsulation:封装。2.except:除了。3.Define:定义。4.manipulate:操作。5.access:访问。

    3.All Java classes must contain a main method which is the first method executed when the Java class is called upon.

    • A . true
    • B . false
    • 答案:B ;我选的:A
    • 分析:只有驱动类一定需要main方法,别的类不需要。
    • 单词:1.executed:执行。2.called upon:调用。

    4.Java methods can return more than one item if they are modified with the reserved word continue, as in public continue int foo( ) { ... }

    • A . true
    • B . false
    • 答案:B ;我选的:A
    • 分析:保留字return是一个项目,而保留字conitnue是退出一个循环的剩余部分。
    • 单词:1.modified:更改。

    5.A method defined in a class can access the class' instance data without needing to pass them as parameters or declare them as local variables.

    • A . true
    • B . false
    • 答案:A ; 我选的:B
    • 分析:实例数据对类的所有方法都是全局可用的,因此方法不需要作为参数接收它们,也不需要在本地声明它们。如果在方法中局部地声明同一个实例数据的变量,那么该实例数据只能在该方法中使用。
    • 单词:1.parameters:参数。

    6.In order to create a constant, you would use which of the following Java reserved words?

    • A . private
    • B . static
    • C . int
    • D . final
    • E . class
    • 答案:D ; 我选的:E
    • 分析:用保留字final声明常数,当时考试我以为constant是一个类= =所以选了E。
    • 单词:1.constant:常数。

    7.Inheritance through an extended (derived) class supports which of the following concepts?

    • A . interfaces
    • B . modulary
    • C . information hiding
    • D . code reuse
    • E . correctness
    • 答案:D ;我选的:A
    • 分析:通过扩展一个类继承它,新的类不需要执行任何这些继承的方法或实例数据,从而节省了程序员的努力。代码重用是为了满足您的需要而重用他人代码的能力。(这道题跟继承有关,暂时还不是很理解。)
    • 单词:1.Inheritance:接口。2.reuse:重新使用。

    8.In order to implement Comparable in a class, what method(s) must be defined in that class?

    • A . equals
    • B . compares
    • C . both lessThan and greaterThan
    • D . compareTo
    • E . both compares and equals
    • 答案:D;我选的:E
    • 分析:Comparable接口中只有一个compareTo方法。
    • 单词:无

    9.In which phase of program development would you expect the programmer(s) to create the pseudocode?

    • A . Software requirements
    • B . Software design
    • C . Software implementation
    • D . Software testing
    • E . Could occur in any of the above
    • 答案:B ;我选的:E
    • 分析:伪代码只有在软件设计的时候才能用到,是程序设计的一部分。
    • 单词:1.phase:阶段。2.pseudocode:伪代码。3.implementation:软件实施。

    10.Interface classes cannot be extended but classes that implement interfaces can be extended.

    • A . true
    • B . false
    • 答案:B ;我选的:A
    • 分析:任何类都可以扩展,无论它是接口、实现接口,还是两者都不可以扩展。唯一的例外是如果类被明确地修改为final这个保留字,在这种情况下它不能被扩展。
    • 单词:无

    其他(感悟、思考等,可选)

    • 1.循环语句和条件语句非常的常用,需要认真的学习。尤其循环语句特别容易出错,需要搞清楚哪个表达式应该放在循环中的,哪个表达式应该放在循环外的,也有可能在循环中进行实例化对象。(我的程序经历了无数次这种类型的错(T▽T),但是还是老记不住这个问题。)
    • 2.明显现在学的东西更多了,编程时能用到的东西也多了,当东西一多、一杂,就得需要对自己学到的知识进行一个框架排布了。尤其是对于书上提到的类中的方法,常用的需要知道,要不编程的时候真的不知道有方法可以简便自己的操作。
    • 3.小测不能指望有道啥的,因为有些专有名词,看英文还能看懂,有道翻译成中文反而看不懂了。所以需要看英文,不会的单词查中文,才能正确的理解题目。
    • 4.本周的代码测试里面的问题较少,因为多次出现的问题可能是属于同一类问题,因此就选择了典型,还有一些问题就是因为粗心打错符号,或者打错字母等问题,觉得没有必要再放在博客中。
    • 5.博客提交时,除了老师要求的pp以外。因为时间关系,只做完了第五章的pp,第六章的pp将在提交后继续全部完成。通过多做pp,我对循环语句和条件语句的用法更加娴熟,并且锻炼了自己的思维逻辑能力。
    • 6.发现自己编写的程序越来越复杂,但是却能成功运行的时候,成就感和自豪感比编写之前几章简单的程序时增加了好多好多倍!!!

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第一周 182/182 1/1 10/10
    第二周 458/640 1/2 15/25
    第三周 469/1109 2/4 18/43 学会IDEA的使用和调试,学会jdb调试。
    第四周 1536/2645 1/5 24/67
    第五周 980/3625 1/6 25/92
    • 计划学习时间:20小时

    • 实际学习时间:25小时

    • 改进情况:本周虽然两章内容,但是相关性很高,虽然课本很简单,但是有些pp不简单,尤其是老师没有布置的pp,大部分的时间都花在做其他的pp上了,有些时候可能一个小时,一道题都做不出来,虽然学习时间会多一些,但是主要就多在做pp上了,不像第七章花了很多的时间在课本上。

    参考资料

  • 相关阅读:
    15、Go语言基础之并发
    14、Go语言基础之反射
    13、Go语言基础之接口
    12、Go语言基础之包
    Golang ECHO中间件【10】
    Golang ECHO文件上传【9】
    关于数据治理的收获
    Java内存模型(JMM)和虚拟机(JVM)内存、GC
    图的m着色问题
    矩阵链乘法
  • 原文地址:https://www.cnblogs.com/yu757503836/p/8718417.html
Copyright © 2011-2022 走看看