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

Posted mrf1209

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了20172327 2017-2018-2 《程序设计与数据结构》第六周学习总结相关的知识,希望对你有一定的参考价值。

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

教材学习内容总结

- 数组元素:


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实在没想通,不过我还在研究,争取周一晚之前把这道题交上。

代码托管

技术分享图片
技术分享图片

结对及互评

点评模板:

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

  • 参考示例

点评过的同学博客和代码

  • 本周结对学习情况
    • 20172317
    • 结对照片
    • 结对学习内容
      • XXXX
      • XXXX
      • ...
    • 20172320
    • 结对照片
    • 结对学习内容
      • XXXX
      • XXXX
      • ...

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

xxx
xxx

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 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

尝试一下记录「计划学习时间」和「实际学习时间」,到期末看看能不能改进自己的计划能力。这个工作学习中很重要,也很有用。
耗时估计的公式:Y=X+X/N ,Y=X-X/N,训练次数多了,X、Y就接近了。

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

  • 计划学习时间:20小时

  • 实际学习时间:18小时

  • 改进情况:无

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

参考资料




















































































以上是关于20172327 2017-2018-2 《程序设计与数据结构》第六周学习总结的主要内容,如果未能解决你的问题,请参考以下文章

20172327 2017-2018-2 《程序设计与数据结构》实验3报告

20172327 2017-2018-2 《程序设计与数据结构》实验2报告

20172327 2017-2018-2 《程序设计与数据结构》实验1报告

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

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

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