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

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

教材学习内容总结

  • 重新温习了一遍计算机的基础
  • 总算了解了局域网广域网因特网万维网这些东西之间的区别了
  • 通过URL的例子知道了网址各个部分的含义
  • 对Java编程语言和程序开发有了一个粗浅的了解

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

  • 问题:练习题SR1.13出现了答案与题目不相符的情况
  • 问题解决方案:题中有个选项是“网卡”,答案中没有,反而有个题目没有的选项“调制解调器”(俗称“猫”的那个盒子),惊了。首先是去看英文版的教材检查,结果是一样的有问题,惊了,莫非两者是同一个东西。根据百度,网卡本应当被叫做“网络接口板”或者“网络适配器”,是工作在链路层的网络组件,局域网中连接计算机和传输介质的接口,能实现与局域网传输介质之间的物理连接和电信号匹配。而调制解调器是一种计算机硬件,能把计算机的数字信号翻译成可沿普通电话线传送的模拟信号,而这些模拟信号又可被线路另一端的另一个调制解调器接收,并译成计算机可懂的语言,从而达到计算机间互相通信的目的。....很明显两个绝不是同一个东西,那么从题目的描述入手:“c.允许发送和接收信息的设备”。呃,网卡和调制解调器都可以这样做,所以“调制解调器”这个答案其实也是对的。但是题目和答案不一的情况依旧让人十分不爽,感觉就像是作者给你竖了个大大的中指:你以为是网卡吗?其实是我dio调制解调器哒!看,垃圾教材

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

  • 问题1:E:Could not get lock /var/lib/dpkg/lock - open(Resourse temporarily unavailable)
  • 问题1解决方案:在教程的指导下使用源安装打出sudo apt-get install oracle-java8-installer命令时跳出的东西。原因可能是有其他的apt-get进程在活动导致锁不可用。可能是因为上次运行更新或安装没有正常完成,这条错误信息可能在使用apt-get进行install或update的时候出现。解决的办法是ps aux | grep apt-get来把apt-get进程找出来(ps命令用来列出系统中当前运行的那些进程,但并不是动态的),然后再sudo kill -9 <PID>(kill:杀死进程,PID就是前面的ps命令之后出来的程序的ID)。
  • 问题2:....执行了问题一的操作后还是同样的情况
  • 问题2解决方案:嗯....那我们就来点硬的:sudo rm /var/lib/dpkg/lock强制解锁,顺利解决,HHYES!还不是因为912网太烂,前一次下个半天都没成只好强行退出
  • 问题3:编程项目PP1.9的打出空格的问题
  • 问题3解决方案:由于并不知道可以直接在println方法的字符串内直接打出空格来达到效果,所以百度了很多东西,于是找到了这里....StringBuffer?StringBuilder?哇,他们在说啥?好不容易看到了感觉比较简单的System.out.printf("%9s\n", "1");那就去试试吧,于是它输出了这样的结果

...呃,说是可以打出来8个空格然而只有5个空格,后面在“%ns\n”(理论上输出的空格数是n-1)的n中试了各种各样的的数,结果发现这段语句System.out.printf("%*spacenum*s\n","input");输出的空格数其实是spacenum-4,究竟是哪里出了问题也不清楚了。那么试试另外一个System.out.printf("%9d\n", 1);的效果...嗯?这个1真的不用加上引号吗?于是试了加上引号和没加引号的两种情况......

.....当然不出所料的全部失败了,那里的其他方法也都试了一遍,当然也全部都炸了。呃.....这帮大佬是怎么成功的?

  • 问题4:编程项目PP1.9的打出空格的问题
  • 问题4解决方案:在资料中沉浮的时候偶然看到了System.out.println("|" + generateSpace(5) + "|");这一条,看上去还是有几分保障的,那就赶紧来试试吧......

(第一次就按这条代码试的,第二次是在generateSpace前面加了个method反正也不知道该怎么办随便试的)嗯,产生了错误不要紧,重要的是从错误里找到金子,就像在拉的屎里面找到昨天吃到的东西一样Cannot find symbol意味着什么?一个cannot find symbol 报错就是关于标识符的。当你的代码编译时,编译器需要弄明白你你代码中每一个标识符的含义。而这类报错就意味着编译器不明白你代码指代的东西。很好,这帮大佬看来还给出了一堆错误的代码(或者说我太菜了)。于是最终还是去试了一个最原始的方法:输入“ ”,然后...它就成功了?那我之前费那么大劲找各种各样的方法是坑爹啊....

  • 问题5:println?printf?print?
  • 问题5解决方案:这不太算问题,纯粹研究一下,由于在问题3、4中看到了"printf"本着好奇的心理就去查一下吧。首先是print,这个和我们熟知的println没啥特别大的差别,println("lalala")就相当于print("lalala\n"),也就是说print将它的参数显示在命令窗口,并将输出光标定位在所显示的最后一个字符之后,println 将它的参数显示在命令窗口,并在结尾加上换行符,将输出光标定位在下一行的开始。而关于printf,网上是这么描述的“printf主要是继承了C语言的printf的一些特性,可以进行格式化输出”,那么就测试一下这仨输出一段文字的效果吧....

(最上面是print,中间是println,最下面的是printf)umm似乎看不出printf是干什么的?于是从网上找到了一段专门可以看出3个区别的一段代码:

public class TestPrint {

public static voidmain(String[] args) {

int i = 4;

double j = 5;

System.out.print("用print输出i:"+ i);

System.out.println( "用println输出i:"+ i);

System.out.printf("i的值为%d,j的值为%f", i,j);

}

}

最后输出的结果是这样的:

在printf那里,“i的值为%d,j的值为%f”这个字符串中的"%d"变为i的值了,而"%f"变为了j的值了,根据百度“"%d"的意思是一个int值的占位符,"%f"为一个double 或float值的点位符,这个变量的参数在后面提供(也就是i和j)(i和j要按顺序排,类型也要相符,否则会产生错误)”emmm也就是说printf是可以控制输出的字符。

  • 问题6:git?码云?
  • 问题6解决方案:在捣鼓码云和git的时候由于没有去正确的地方看教程,导致了开始了自己瞎搞的旅途。痛苦的一段疯狂之旅,拍照记录都拍了20多张,要是全部写上来怕是要写到明年,挑几个有点价值的问题。第一个是尝试git push时出现fatal: The current branch master has no up stream branch,按照提示的git push --set-upstream origin master之后还是不行,经过查询有俩解决方案:1是远程仓库创建时候要建立一个README文件,然后再进行push操作因为这个文件是远程仓库主分支所必须的;2是如果不想重新创建远程仓库再克隆(针对方案1),或者初始化本地仓库,可以使用下面命令: git push -u origin master,其中origin 表示远程仓库名称,master是远程仓库的push目标分支。-u 表示本地分支将建立对远程仓库目标分支的检测,如果远程仓库目标分支不存在,将新建分支再push;如果存在,将进行push更新。
  • 问题7:git?码云?
  • 问题7解决方案:第二个问题git push之后出现Everything up-to-date,呃...因为我忘了在git push前先git add和git commit -m " "了.....相当愚蠢的错误,在意识到自己的愚蠢前还去问学长了,学长给了一个另外的解决方案,为了防止以后出现状况,还是在这里把学长给的解决方案放上去吧
  • 问题8:git?码云?
  • 问题8解决方案:很多杂七杂八的问题,这一张图可以直接解决,图里解释了各种各样的错误和命令(看大图只要另存为就行了)

代码托管

(statistics.sh脚本的运行结果截图)

上周考试错题总结

假装没有错题

结对及互评

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

  • 1.PP1.2的问题:

    a.error: class test is public, should be declared in a file named test.java

    public class test(类名要和文件名相同)

    b.没有任何问题

    c.三个错误:error: ‘)‘ expected(不知道啥玩意...)、error: unclosed string literal(缺后面的引号)、error: not a statement(...不知道啥玩意)

    d.3个错误:基本上和c的差不了太多,除了一个error: reached end of file while parsing估计是因为没有后面的引号所以解析一直到了文档末?

    e.javac编译时竟然出乎意料的没有出错,但运行时出错了:Error: Main method not found in class Test,正常操作。

    f. error: cannot find symbol,那么这个bogus究竟是啥?查了并没有什么东西,估计只是作者和你开的一个恶劣的玩笑吧

    g.error: ‘;‘ expected,没啥可说的

    h.error: reached end of file while parsing,还是没啥可说的

  • 2.目标10000的代码...嗯,看来是一项艰巨的任务了,就目前来看除非把课本上的各种示例全输上去才有可能达到......或者....根据老师所给的脚本来看,只要写程序都像课本23页例1.2那样子来写.....别说10000行了,20000行都不成问题啊?
  • 3.手输脚本时候发现的问题,一直运行的不成功,结果发现是把l和1弄混了,坑爹啊,下次务必小心
  • 4.学习时间....咋记?下次拿个秒表来
  • 5.为什么vim的上下左右非要用hjkl这种反人类的方式呢?因为编写vi的那个家伙是在ADM-3A上编的,而ADM-3A的键盘....自己去查吧

学习进度条

代码行数(新增/累积) 博客量(新增/累积) 学习时间(新增/累积) 重要成长
目标 5000行 30篇 400小时
第一周 91/91 1/1 20/20 *你充满了学习JAVA的决心
  • 计划学习时间:20小时
  • 实际学习时间:20小时
  • 改进情况:

参考资料

原文地址:https://www.cnblogs.com/Chiang-B/p/8541746.html

时间: 2024-11-03 01:29:40

20172317《程序设计与数据结构》第一周学习总结的相关文章

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

20172305 2017-2018-2 <程序设计与数据结构>第一周学习总结 教材学习内容总结 本书的第一章简单的介绍了计算机和JAVA的历史,基础内容很多,代码的讲解还没用正式进入,本周一直在做敲代码的准备,简单敲了老师给的"Hello World!"以及书后的PP1.3.PP1.4等简单的小程序. 教材学习中的问题和解决过程 问题1:三种不同类型的错误,运行错误和逻辑错误的混淆 问题1解决方案:针对EX1.20的"希望做加法时却做里乘法"进行了网上

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

20172314 2017-2018-2 <程序设计与数据结构>第一周学习总结 教材学习内容总结 本书第一章为计算机系统概述,前面是一些计算机相关的基础知识,让我对计算机有了一个总体的认识,不再是一片空白了,对主存储器和CPU影响深刻,主存储器用于保存程序和数据,CPU执行程序指令.在接下来的Java编程语言与程序开发部分,开始看的时候有点迷茫,不是很理解,后来先按照作业中附带的流程完成一些代码托管之后,接触了完整的简单的程序之后,再回过头来看书,看到的一些陌生的名词在脑海中就有了实际的对应,

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

20172301 <程序设计与数据结构>第一周学习总结 教材学习总结 第一章 软件的质量特征 正确性:软件能否有效处理问题 可靠性:软件发生故障的频率 健壮性:软件修复错误以及bug出现的频率 可用性:软件处理问题效率 可维护性:代码的整洁规范是否有利于维护 可重用性:使用已有的组件来减少开发工作量 可移植性:能在不同开发环境下能顺利运行 运行效率:提高软件运行效率,优化CPU时间和内存 数据结构 数据结构是计算机存储.组织数据的方式. 算法效率 算法效率是指算法执行的时间,算法执行时间需通过

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

20172322 <程序设计与数据结构>第一周学习总结 教材学习内容总结 本周是新学期的第一周,也只有一节课,课上老师结合教材给我们讲了一堂课,主要内容如下: 高质量软件的主要特征:正确性.可靠性.健壮性.可用性.可维护性.可重用性.可移植性.运行效率.质量问题. 阶次O的计算法:忽略该算法的增长函数中的常量和其他次要项,只保留主项而得出的. 处理器运算速度的大幅度提升和大量廉价储存器的涌现也不代表我们能忽略算法分析,而恰恰相反,处理器速度和存储器并不能弥补算法效率的差异. 在嵌套循环中的复杂

20172323 2018-2019-1 《程序设计与数据结构》第一周学习总结

20172323 2018-2019-1 <程序设计与数据结构>第一周学习总结 教材学习内容总结 第一章--概述 1.1 软件质量 软件工程(Software Engineering)是一门关于高质量软件开发的技术和理论的学科. 解决的问题:控制开发过程,实现高质量的软件 软件工程的目标 高质量软件的特征 1.2 数据结构 数据结构:计算机存储.组织数据的形式. 程序 = 数据结构 + 算法 软件 = 程序 + 软件工程 栈会颠倒数据的顺序,而队列可以保持数据的顺序. 第二章--算法分析 算法

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

20172311<程序设计与数据结构>第一周学习总结 教材学习内容总结 第一章 概述 (基于软件质量问题引导出数据结构) 高质量软件的几个特征: 质量问题: 必须优先考虑质量特征,并尽最大努力实现 数据结构:计算机存储.组织数据的方式 程序=数据结构+算法 事实证明没有一种方案可以解决所有的问题! 第二章 算法分析(高效利用CPU和内存) 增长函数:表示问题大小(n)与我们希望最优化的值之间的关系,该函数表示了该算法的时间复杂度或空间复杂度 大O记法: 所有具有相同阶次的算法,从运行效率的角度

20172306 2018-2019 《Java程序设计与数据结构》第一周学习总结

20172306 2018-2019 <Java程序设计与数据结构(下)>第一周学习总结 教材学习内容总结 第一章 概述 (程序=数据结构+算法 软件=程序+软件工程) 1.1 软件质量 软件工程师一门关于高质量软件开发的技术和理论的学科 软件工程的目标:1.解决正确性问题 2.按时且在预算之内给出解决方案 3.给出高质量的解决方案 4.以合情合理的方式完成上面的事情 高质量软件的特征 正确性:我认为是我们所做的都是为了解决一个正确性问题. 可靠性:降低软件的故障程度和概率 健壮性:可以很好地

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

20172321 <程序设计与数据结构>第一周学习总结 教材学习内容总结 第一章 概述 1.1 软件质量 软件工程是一门关于高质量软件开发的技术和理论的学科. 高质量软件的特征 1.2 数据结构 数据结构是计算机存储.组织数据的方式. 数据结构是指相互之间存在一种或多种特定关系的数据元素的集合.通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率. 常用结构 第二章 2.1 算法效率分析 算法效率通常用==CPU的使用时间==表示 算法分析是从效率的角度对算法进行分类 2.2 增长函数

20172315 2018-2019-1 《程序设计与数据结构》第一周学习总结

20172315 2018-2019-1 <程序设计与数据结构>第一周学习总结 教材学习内容总结 第一章 正确性:软件遵守其特定要求的程度. 可靠性:软件故障的频率和重要性. 健壮性:很好地处理错误情况的程度. 可用性:用户可以轻松地在软件中学习和执行任务. 可维护性:可以轻松地对软件进行更改. 可重用性:在开发其他软件系统时可以轻松地重用软件组件. 可移植性:软件组件可以轻松地在多个计算机环境中使用. 运行效率:软件在不浪费资源的情况下实现其目的的程度. 数据结构 程序=数据结构+算法,软件