20172302《程序设计与数据结构》第二周学习总结

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


2302学习总结博客目录:[1](http://www.cnblogs.com/hzy0628/p/8539037.html) [2](http://www.cnblogs.com/hzy0628/p/8584976.html) [3](http://www.cnblogs.com/hzy0628/p/8642935.html) [4](http://www.cnblogs.com/hzy0628/p/8671888.html)
## 教材学习内容总结

1.字符串概念、使用,printprintln的用法区别;字符串拼接和转义序列使用。

2.变量和常量的概念,赋值语句的使用及八种基本数据类型:整型(4种)、浮点型(2种)、字符型、布尔型;还同时讲了数据类型的转换包括其安全性和技术。

3.第四节主要讲运算符,有算术运算符及运算符优先级和赋值运算符,还有特殊的运算符自增自减运算符。

4.最后学习的一节是交互式程序,学到这里我们才刚刚可以与程序完成简单的交互过程,学习了创建Scanner对象。

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

  • 问题1:书上概念型问题:

    (1)什么是参数?
    答:参数是当调用方法时传递给方法的数据。

参数分为实参和形参。方法名括号里面的参数是形参,调用方法或者函数的括号里面的是实参。

(2)什么是变量声明?
答 :变量声明确定了一个变量名及该变量可存储数据的类型。

变量声明:就是告诉编译器在程序中使用了哪些变量,及这些变量的数据类型以及变量的长度,然后为变量分配存储空间。

(3)请写出程序中使用符号变量而不是它所表示的常数值的三个好处。
答:a.通过给常量值赋予符号名,是程序代码比直接使用常熟之更容易直接理解;b.常数值在整个程序中使不可变的;c.如果需要修改程序中的常量值,只需在声明语句中修改一次该常量初始值。
其中我认为最重要的是第三点,我在开始编写时会选择让它出现常数值,因为我一开始是认为我直接可以写进常数,为什么要去设出符号变量,这样太麻烦,后来知道后把大部分出现常数的都修改了一遍。

  • 问题2: 对象和基本数据类型的区别。

  • 问题2解决方案:基本数据类型有8种,是基本值,如数值或字符。对象则是复杂的实体,一般都含有作为对象属性的基本数据。

  • 问题3:100/2/2/2/2=12

  • 问题3解决方案:这道题是将数学和这里的运算完全弄混,本身自己算出来是12.5,然后四舍五入,写上去了13。可能是真的已经混乱,现在还算清楚些。

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

  • 问题1:本周开始练习时出现了许多拼写语法错误,这在上周还是很少出现,这周可能是用心程度不如上周吧。


  • 问题1解决方案:如上面出现的语法错误,包括缺少“;”,“b”和“p”没区分,及x的大小写不分,造成编译错误,逐一改正后完成编译能够运行,这期间浪费了许多时间,以后先放慢点速度,保证一次性输入正确。

  • 问题2:编译正常的情况下,运行后没有输出,如图:

  • 问题2解决方案:在编辑过程中漏掉输出语句,主要是因为第一次编写交互式程序,没有看着书去写,背的过程中顾不上头脚,然后没有输出语句,改正完成后可以正常输出相应值。

  • 问题3:在做PP2.5时,始终的不到正确的值,预测输出的为9.0,实际上输出的为5.0,然后进入再次检查编辑。

  • 问题3解决方案: 自己算了一下是哪里出了问题导致这个结果,感觉是我的double A = 9/5 给我输出的不正确,我就在最后输出语句中添上了A的这个值输出,果真是它这里有问题,输出的为1.0,明白了以后我就把原来代码改为double A= 9.0/5.0,就是这样,得到的A才是我预测的结果,后面的计算也就是正确结果了。

  • 问题4:同问题3类似,做习题PP2.7的时候也是得不到我预测的结果,运行的效果如图。

  • 问题4解决方案:做这个程序的时候已经做了前面书上的练习题练习,它输出的是浮点数,但不是我想要的正确答案,说明他在运算过程中就已经把我想要的小数点后部分略掉,突发奇想我把读入进去的一个整型数在程序内部改为浮点数,是不是就能保留住我预测的小数点后部分,也就是把原来的t= s / v改为t = ( double ) s / v ,结果修改以后确实得到了预测结果。

代码托管

上周考试错题总结

  • 1.When executing a program, the processor reads each program instruction from (当执行一个程序时,处理器从main memory (主存储器)读取每个程序指令).
    解析:

当处理器执行程序时, 内存是一个临时存储设备,存储着程序和程序操作的数据。

而这里所说的内存也就是主存储器,所以说处理器是从主存储器读取程序指令的。
  • 2.It is important to dissect a problem into manageable pieces before trying to solve the problem because (试图解决问题之前,把一个问题分解成可控制的几部分是很重要的,因为) (A)
    A .most problems are too complex to be solved as a single, large activity (大多数问题太复杂,以至于不能作为一个单独大型的活动来解决)
    B.most problems are solved by multiple people and it is easy to assign each piece to a separate person (大多数问题都是由很多人解决的而且把每一部分分配给不同的人是很容易的)
    C.it is easier to integrate small pieces of a program into one program than it is to integrate one big chunk of code into one program (将程序的小部分整合到一个程序中比将一大块代码整合到一个程序中更容易)
    D.our first solution may not solve the problem correctly (我们的第一个方案可能无法正确解决问题)
    解析:任何大问题都很复杂,很难简单地解决。 分解的问题,我们可以为每一件进行解决,设计相应的解决方案建立并集成块。

  • 3.Java is an example of a(n) (Java是一个E的例子)
    A .machine language (机器语言)
    B .assembly language (汇编语言)
    C .high-level language (高级语言)
    D .fourth generation language (第四代语言)
    E .both C and D (C和D都是)
    解释:误选C选项,认为Java不属于第四代语言,书上也没有明确给出第四代语言的定义。通过搜索其原意是非过程化程序设计语言,是针对以处理过程为中心的第三代语言提出的,希望通过某些标准处理过程的自动生成,使用户只说明要做什么,而把具体的执行步骤的安排交软件自动处理,因为Java是面向对象的,且属于高层次的语言,所以应该也属于第四代语言。

  • 4.A unique aspect of Java that allows code compiled on one machine to be executed on a machine of a different hardware platform is Java's (Java的独特之处在于bytecodes (字节码),它允许在一台机器上编译的代码在不同的硬件平台上执行) .
    解析:一个java程序,翻译的过程是先把它编译成字节码,这是体系结构中立的,这也说明了Java的代码是可以跨平台进行执行的。而字节码是由编译器产生的,只要安装 了Java虚拟机(JVM),就可以在不同环境下执行这些字节码。

  • 5.Which of the following is true regarding Java syntax and semantics? (关于Java的语法和语义,下列哪一项是正确的?) (A)
    A.a Java compiler can determine if you have followed proper syntax but not proper semantics (Java编译器可以判定你是否遵循正确的语法,但不能判定正确的语义)
    B.a Java compiler can determine if you have followed proper semantics but not proper syntax (Java编译器可以判定你是否遵循正确的语义,但不能判定正确的语法)
    C.a Java compiler can determine if you have followed both proper syntax and semantics (Java编译器可以判定你是否遵循正确的语义和语法)
    D.a Java compiler cannot determine if you have followed either proper syntax or semantics (Java编译器不能判定你是否遵循正确的语义或语法)
    E.a Java compiler can determine if you have followed proper syntax and can determine if you have followed proper semantics if you follow the Java naming convention rules (如果你遵循Java的命名规范,Java编译器就可以判定你是否遵循正确的语法,并且可以判定你是否遵循正确的语义)
    解析:书上内容记忆不到位。P28页:** 编译过程中,将检查程序是否符合所有的语法规则。如果程序有语法错误,则编译器将给出错误信息并且不会产生字节码。 **这也就说明了编译这一过程只会去检查程序的语言规则,而不会去对你的语义进行判定,只要语法符合规则,编译器就可以进行编译产生字节码。

  • 6.Following Java naming convention, which of the following would be the best name for a class about store customers? (下列Java命名规范中,哪个是关于“store customers”类的最佳命名?) (A)
    A.StoreCustomer
    B.Store Customer
    C.storeCustomer
    D.STORE_CUSTOMER
    E.Store-Customer
    解析:这道题我们采用对比排除法,Java的命名约定,一般都应以大写字母开始,多个字的名字应该保持第一个词的第一个字母大写,其余字符是小写。词语应连接在一起,没有空格,或者可以使用“_”连接。答案B和E是不合法的名称,答案C、D不符合我们一般的命名规则,所以只剩下A项。

  • 7.A color image is broken down into individual pixels (points), each of which is represented by (一个彩色图像被分解成单个像素(点),其中每个像素表示) (B)
    A.a 1 for white and a 0 for black (白色的1和黑色的0)
    B.3 values denoting the intensity of red, green, and blue in the image (3个表示图像中红、绿和蓝色的亮度值)
    C.a single number indicating the intensity of color between white and black (一个单独的数字,它表示白色和黑色之间的颜色亮度)
    D.two numbers, a value that denotes where between white and black the color is, and a brightness (两个数字,一个表示白色和黑色之间的颜色,另一个表示亮度)
    E.none of the above, it is not possible to represent a color image (以上都不是,不可能表示一个彩色图像)
    解析:这道题误选A项。黑色和白色的图像是用0和1的来储存的,彩色图像则是使用三值存储,一个代表红色的程度,一个代表蓝的程度,还有一个代表绿色度。

  • 8.Java byte codes are directly executable whereas Java source code is not. (Java字节码是可以直接执行的,而Java源代码则不是。) ×
    解析:Java编译器将源代码编译为字节码,然后Java虚拟机解释执行所产生的字节码,而并非直接执行,这两者均是不可以直接执行的。

其他

感悟

本周的学习过程中主要是变得很不细心,出现了不少不应有的错误,这也浪费许多时间,学到交互式程序这里觉得做程序可算是用户与计算机交互数据,而不再是之前最简单的输出打印在屏幕上。当然在这里可以交互之后再加上之前的基本数据类型,这时候开始需要预测结果来验证程序是否可以正常使用,得不到正确答案时也需要去想哪里设计的不对,开始变得需要费点时间去思考一下。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 157/157 1/1 15/15
第二周 382/539 1/2 16/20

参考资料:

posted @ 2018-03-17 17:34  ◕‿◕  阅读(406)  评论(1编辑  收藏  举报
© 2018 GitHub, Inc.