码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2018-04-15 21:52:50      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:because   increase   pre   tee   you   因此   length   令行   第一周   

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

教材学习内容总结

  1. 学习了如何声明和使用一个数组。
  2. 学习了要进行边界检查,确保只因用数组有效范围之内的索引值。
  3. 学习了数组不同的声明方式和初始化方式。
  4. 学习了当数组保存对象时的使用。
  5. 初步学习了命令行实参的使用。
  6. 学习了如何在调用方法时怎样接受任意个数的参数。
  7. 初步学习了二维数组的使用

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

  • 问题1:书上在介绍数组的概念时,说数组的索引值从0开始而不是从1开始能够使元素地址的计算更为简单。
  • 问题1解决方案:如果索引为0的话,那么数据起始地址也就是0了,在计算的时候不用再进行相加运算,从而提高了访问效率。
  • 问题2:刚开始学习命令行实参时,真的有点懵,不明白书上所要表达的意思是什么。
  • 问题2解决方案:在看了书上的例题后,又从资料上又找了个示例,算是初步弄明白了。
  • 代表运行是传入的参数,
    main(String[] args){
    System.out.print("args[0] = " + args[0]);
    }
    如果运行的时候,假设程序名是testMain.java
    然后输入 java testMain hello;
    输出的就是args[0] = hello;

  • 问题3:在学习书上的例题8.8的时候,实在是不知道increaseSize的含义到底是什么。
  • 我一度还上网搜索并且还翻看了之前学习的内容,我以为是我在哪个部分的知识存在着遗漏,直到最后我才发现原来方法是写在代码最后的/(ㄒoㄒ)/~~,学习的进程才又一次得以进行。这也为我提供了一个编写代码的的格式,在前面先写上一个方法来解决问题,最后再对方法进行详细的阐述。

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

  • 问题1:在做习题8_1的时候,运行代码时总显示我有非法字符。可我在代码里并没有其他的非代码字符啊。
    技术分享图片

  • 问题1解决方案:我仔细的看了下,原来是我把分号用成中文的了,原来我用vim进行编写的时候,中英文的标点符号差距比较明显,所以也就更好区分。换用IDEA后暂时还没有习惯过来,以后还是要多加小心才是。
  • 问题2:在编写习题8_5的时候,在屏幕上输出是否继续输入后并不能输入,直接跳过了这一不,并且显示标准方差不存在。
    技术分享图片

  • 问题2解决方案:由于不能输出,所以我就想我的another=scan.nextLine到底是哪出了错误,我仔细检查了一遍,前后也不存在中英文半角符号用错的现象,语法上也没有出现问题,我就又联想到了以前王老师上课时所讲的问题,我原来也犯过这种错误,为了加深印象,在这里再一次进行记录。
  • nextInt只读取整数,并没有读取输入进去的\n,也就是说后面的nextLine会读取\n,但并不返回,会导致后面的一个语句显示没有读取输入就直接跳过了。

  • 问题3:还是在做习题8_5的时候,不能正确的显示标准方差的值。
    技术分享图片

  • 问题3解决方案:这个是由于粗心大意问题连计算时的表达式的代码都写错了( ̄_ ̄),这里也就不过多赘述了,直接附上正确的代码图。
    技术分享图片

  • 问题3:在编写习题8_6的时候,提示我没有返回语句,可我明明是写了返回语句的。
    技术分享图片

  • 问题3解决方法:我反复对代码进行了检查,发现我的return语句是在if条件语句之内的,也就是说在if语句内进行返回,在这个方法内却没有返回值,我把代码修改了一下,使得在这个方法内进行返回,详看下面的方法图。
    技术分享图片

代码托管

技术分享图片

上周考试错题总结

  • 错题1: The idea that program instructions execute in order (linearly) unless otherwise specified through a conditional statement is known as
    A . boolean execution
    B . conditional statements
    C . try and catch
    D . sequentiality
    E . flow of control
  • 解析 “控制流程”描述了指令执行的顺序。 它默认为线性(或顺序),但通过使用控制语句(如条件和循环)进行更改。
  • 原因:这道题完全就是粗心了,如果认真一点耐着性子好好地把英语读一遍是可以做对的。
  • 错题2: If a break occurs within the innermost loop of a nested loop that is three levels deep
    A . when the break is encountered just the innermost loop is "broken"
    B . when the break is encountered, all loops are "broken" and execution continues from after the while statement (in our example)
    C . when the break is encountered, all but the outermost loops are broken, and execution continues from the next iteration of the while loop (in our example)
    D . this is a syntax error unless there are break or continue statements at each loop level
    E . none of the above
  • 解析 最内层的循环(在我们的例子中为for循环)被破坏,执行从for循环结束后继续执行。
  • 原因:这道题应该是属于我的英语问题了...没有很好的理解这道题的意思,还是应该好好的提升下自己的英语水平...
  • 错题3: In order to compare int, float and double variables, you can use <, >, ==, !=, <=, >=, but to compare char and String variables, you must use compareTo( ), equals( ) and equalsIgnoreCase( ).
    A . true
    B . false
  • 解析 您也可以使用<,>,==,!=,<=,> =直接比较char变量,但对于任何字符串比较,必须使用compareTo(),equals()和equalsIgnoreCase()。
  • 原因:这道题确实不是特别清楚,要好好的识记一下。
  • 错题4: You might choose to use a switch statement instead of nested if-else statements if
    A . the variable being tested might equal one of several hundred int values
    B . the variable being tested might equal one of only a few int values
    C . there are two or more int variables being tested, each of which could be one of several hundred values
    D . there are two or more int variables being tested, each of which could be one of only a few values
    E . none of the above, you would never choose to use a switch statement in place of nested if-else statements under any circumstance
  • 解析 switch语句只能在被测试的单个变量使用时使用,并且它是一个整型(int或Java中的char)。 此外,因为您必须枚举每个可能的测试值,所以switch语句只有在被测试值的数量很小时才有意义。
  • 原因:这道题也是由于自己的疏忽,没有认真的读题导致了错误。
  • 错题5: If a switch statement is written that contains no break statements whatsoever,
    A . this is a syntax error and an appropriate error message will be generated
    B . each of the case clauses will be executed every time the switch statement is encountered
    C . this is equivalent to having the switch statement always take the default clause, if one is present
    D . this is not an error, but nothing within the switch statement ever will be executed
    E . none of the above
  • 解析 虽然写这样一个转换语句是不寻常的,但它是完全合法的。 开关语句执行的正常规则适用于在计算开关表达式后执行的匹配的case子句。 之后,依次执行所有后续子句,因为没有终止开关/大小写执行的中断语句。
  • 原因:概念的理解不清。
  • 错题6: A continue statement
    A . may be used within a while or a do-while loop, but not a for loop
    B . is identical to a break statement within Java loops
    C . may be used within any Java loop statement
    D . may be used within a for loop, but not within a while or a do-while loop
    E . none of the above
  • 解析 尽管应该避免使用continue语句,但是如果可能的话,它们可以在Java的三个循环中使用:for,while和do-while。
  • 原因:书本上的概念理解不清。
  • 错题7: Given that s is a String, what does the following loop do?
    for (int j = s.length( ); j > 0; j--)
    System.out.print(s.charAt(j-1));
    A . it prints s out backwards
    B . it prints s out forwards
    C . it prints s out backwards after skipping the last character
    D . it prints s out backwards but does not print the 0th character
    E . it yields a run-time error because there is no character at s.charAt(j-1) for j = 0
  • 解析 变量j从字符串的长度向下计数到1,每次在位置j-1打印出字符。 长度为1的字符是打印的第一个字符,这是字符串的最后一个字符。 它会一直持续到j = 1,并在位置j - 1或第0个字符处打印字符,以便向后打印整个字符串。
  • 原因:对题意的理解有问题。
  • 错题8: In Java, it is possible to create an infinite loop out of while and do loops, but not for-loops.
    A . true
    B . false
    解析 确实,循环可以是无限循环,但Java for循环也可以是无限循环。 在许多其他编程语言中,这种情况并非如此,其中for循环具有设置的起点和终点,但Java for-loops比大多数其他语言的for-loops灵活得多。

结对及互评

:

点评模板:

  • 博客中值得学习的或问题:
    • xxx
    • xxx
    • ...
  • 代码中值得学习的或问题:
    • xxx
    • xxx
    • ...
  • 基于评分标准,我给本博客打分:XX分。得分情况如下:xxx

点评过的同学博客和代码

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

这周的学习任务还是比较的重的,也增加了许多新的具有一定难度的内容,此外,在编写代码的过程中,我同样也发现了自己的一些问题,粗心大意的毛病还是没有改掉,也因此耽误了不少学习的进度。还是希望在以后的学习生活中得以改进和避免。

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 126 1/1 20/20
第二周 388/466 1/2 15/35
第三周 706/1162 1/3 17/52
第四周 1104/2266 1/4 20/72
第五周 1126/3392 1/5 15/87
第六周 906/4298 1/6 20/107
  • 计划学习时间:20小时

  • 实际学习时间:20小时

  • 改进情况:以后还是要更加努力地敲代码才行!!!

参考资料

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

标签:because   increase   pre   tee   you   因此   length   令行   第一周   

原文地址:https://www.cnblogs.com/yu-kunpeng/p/8849504.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!