zoukankan      html  css  js  c++  java
  • 20172327 2017-2018-2 《程序设计与数据结构》第六周学习总结

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

    教材学习内容总结

    - 数组元素:

    1.具有N个值的数组索引为0~(N-1).
    - 声明和使用数组:

    1.可以用new运算符实例化数组,为数组分配保存值的内存空间。在Java中,数组是必须实例化的对象。
    - 边界检查:

    1.所应值可以自动执行边界检查,可保证引用数组有效范围内的索引值。
    2.Java有两种数组声明方式:第一种是将方括号和数组元素类型相关联,第二种是将方括号和数组名相关联。
    3.初始值表可以用于实例化一个数组对象,这时不需要用new运算符创建数组对象。 4.整个数组可以作为一个参数传递给方法,使方法的形成为原始数组的别名。
    - 对象数组:

    1.实例化对象数组只是为了保存对象而预留空间,对每个元素所代表的对象必须分别实例化。
    - 命令行实参:

    1.命令行实参储存在String对象的数组中,并将传递给main方法。
    - 可变长度参数表:

    1.通过使用某种特殊语法的形参表,使所定义的方法能接受任意个数的参数,并将参数自动存入数组以便在方法中进行处理。
    - 二维数组和多维数组:

    1.在二维数组中的值,必须使用两个索引值来引用,一个索引值指行,另一个索引值指列。
    2.与一维数组类似,二维数组也可以用初始值表实例化,初始值表中的每一个元素本身就是一个一维的初始值表。

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

    • 问题1:定义数组有哪几种方法:

    • 问题1解决方案:有下面这几类:

    • 方式1(推荐,更能表明数组类型)

        
      type[] 变量名 = new type[数组中元素的个数];
        
      比如:
        
      int[] a = new int[10];
        
      数组名,也即引用a,指向数组元素的首地址。

    • 方式2(同C语言)

        
      type变量名[] = new type[数组中元素的个数];
        
      如:
        
      int a[] = new int[10];

    • 方式3 定义时直接初始化

        
      type[] 变量名 = new type[]{逗号分隔的初始化值};
        
      其中红色部分可省略,所以又有两种:
        
      int[] a = {1,2,3,4};
        
      int[] a = new int[]{1,2,3,4};
        
      其中int[] a = new
      int[]{1,2,3,4};的第二个方括号中不能加上数组长度,因为元素个数是由后面花括号的内容决定的。

    • 问题2:一维数组与二维数组的区别:

    • 问题2解决方案:

      int arr[10]

      arr int* 指向一维数组首元素的地址

      arr[0] int 第一个格子的值

      arr+1 int* 指向一维数组第二个元素的地址,但是不会覆盖指向首元素的指针

      arr[0]+1 int 第一个格子的值加1


      int brr[3][4]

      brr int(p)[4] 指向二维数组第一行的数组指针

      brr[0] int
      brr[0]=arr 指第一行的地址

      brr+1 int(p)[4] 指向二维数组第二行的数组指针,但是不会覆盖第一行的指针

      brr[0]+1 int
      brr[0]=arr 指第一行的第二个元素

      brr[0][0] int 第一行第一列的值

      brr[0][0]+1 int 第一行第一列的值+1

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

    • 问题1:在做pp8.1时,遇到到了一大堆问题

    • 问题1解决方案:首先是符号粗心,位置打错,后来是就是for循环没打括号,人家提示非法的类型开始

    • 问题2:在做pp08.5时,我想的是将

      for (int x1=0;x1<n;x1++)

      循环一遍就可以将三个要求的值都求出来,结果就错了。还有就是我想一次性用
      Math.sqrt(+=Math.pow(list[12]-mean,2))

      将标准方差算出来,但是语法错误啊,很纠结

    • 问题2解决方案:前面一个问题改一下顺序就可以,后面一个问题我又设了一个变量b,把计算过程分开才可以。

    • 问题3:能力有限,pp8.6实在没想通,不过我还在研究,争取周一晚之前把这道题交上。

    代码托管


    结对及互评

    点评:

    • 博客中值得学习的或问题:

      • 错题呢,解决问题的方式不要复制粘贴,比如问题1中方式3中红色部分是啥

      • 代码中值得学习的或问题:

      • 建议使用IDEA,可减少很多符号位置错误等问题

    • 基于评分标准,我给本博客打分:14 。得分情况如下:

    1. 正确使用Markdown语法(加1分):
    2. 模板中的要素齐全(加1分)
    3. 教材学习中的问题和解决过程, 加4分
    4. 代码调试中的问题和解决过程, 加4分
    5. 本周有效代码超过300分行,加2分
      6 其他加分,加2分 :
    • 排版精美的加一分
    • 进度条中记录学习时间与改进情况的加1分

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

    这周我对Markdown研究了一下,在这次的博客中,我对字体,颜色,底色都有更改,不过在学习上,我是真的menbi了,数组真的让人很迷,到现在我连pp8.6都不会,思路不好找啊。

    学习进度条

    代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
    目标 5000行 30篇 400小时
    第一周 95/95 1/1 18/18
    第二周 515/620 1/2 22/40
    第三周 290/910 1/3 20/60
    第四周 1741/2651 1/4 30/84
    第五周 579/3230 1/5 20/104
    第六周 599/3829 1/6 18/122

    参考:软件工程软件的估计为什么这么难软件工程 估计方法

    • 计划学习时间:20小时

    • 实际学习时间:18小时

    • 改进情况:无

    (有空多看看现代软件工程 课件
    软件工程师能力自我评价表
    )

    参考资料

  • 相关阅读:
    docker 基本概念
    6_State 游戏开发中使用状态机
    5_Singleton 游戏开发中的单例模式
    4_Prototype 原型
    3_observer
    2_flyweight, 轻量化模式
    1_Command 游戏开发命令模式
    CentOS7 Failed to start LSB: Bring up/down解决方法
    CentOS 7 中firewall-cmd命令
    CentOS查询端口占用和清除端口占用的程序
  • 原文地址:https://www.cnblogs.com/mrf1209/p/8848266.html
Copyright © 2011-2022 走看看