20155227第二次预备作业
第二次预备作业
你有什么技能比大多人(超过90%以上)更好?针对这个技能的获取你有什么成功的经验?
并没有
下学期,我们将要学习《Java程序设计》这门课程了,说实话我是没有信心的,虽然有学习C语言的基础,但是正如我上一篇随笔中谈到的一样,我觉得自己太不专业,这是造成我恐惧的主要原因。尽管如此,勇敢面对才是唯一解决方法。对比着我转笔以及以前的学习经验,我觉得学习Java过程中应该注意以下几点:
- 学会总结。所有的学习都一样,需要在自己的摸索中前进,然而只顾着仰望星空的人,是不会注意到脚下是否已经是万丈深渊的。总结的本身就是一种智慧的体现。擅长总结的人必会得到提升。转笔的过程也是不断总结的过程,通过总结手与笔接触的点、手发力的方式来获得转笔的“感觉”,有了这种感觉,要熟练起来就只需要我们不断练习了。
- 学会坚持。凡是新的事情在起头总是这样一来的,起初热心的人很多,而不久就冷淡下来了,撒手不做了,因为他已经明白,不经过一番苦工是做不成的,而只有想做的人,才忍得过这番痛苦。简简单单的转笔,很多人都在开始不久就因为坚持不了而放弃了,可见坚持的不易。所有的学习过程,都是由一点点的坚持堆积起来的成就。想考大学的意愿,让我们在高中坚持高强度的学习,上了大学,我们是不是就没有在继续坚持下去的动力了呢?答案当然是否定的。在大学,兴趣就是最好的动力。我们要培养学习的动力。在学习Java之前,我们应该先简单了解一下Java是一门怎样的课程,不至于在正式学习时还是一个完全的门外汉。我觉得写博客这样的方式也非常好,有助于我们对课程思考,也方便借鉴他人的经验。
- 给自己定一个恰当的目标。适合自己的才是最好的,不应该好高骛远。
关于C语言
1.你是怎么学习C语言的?(作业,实验,教材,其他),与你的高超技能相比,C语言的学习有什么经验和教训?
-
工欲善其事,必先利其器。首先要有一个自己熟悉的编程环境。上学期学习C语言时我们统一使用的是codeblocks,给我的感觉是很容易上手,编起程序来也很方便。这给C语言的学习提供了很多便利。
-
读程序。开始接触C语言时,因为不太熟悉,自己不太敢动手编程序,就会先阅读书上的程序,认真体会所有概念,然后不放过这一章中提到的所有例程,仔细研读,直到每一行都理解了,再找几个编程题目,自己试图写出这段已经读懂的程序。如果写不出来,回过头来再继续研究例程,想想自己为什么写不出来,然后再去写这段程序,反反复复,直到手到擒来为止。这一个比较笨的方法,但感觉比较适合我自己。在读程序的过程中学会编程的思想,形成自己的思路。
-
反复练习。上学期C语言课下练习的作业比较多,徐小青老师要求我们每天做十五道练习题,虽然很难做到每天坚持,但一学期下来,也有超过两千的得分,也就是编写了两百多道题。在大量的练习中学会运用各知识点。
2. 目前为止估算自己写过多少行C代码?理解的情况如何?
上学期编写了两百到三百道题,有超过五千行代码。但是这些题中有不少相似的题,除去这些大概就五千行代码作有。其中有一些题对我来说是很难理解的,是在参考代码或者问过老师同学之后才写出来的,理解度大概在百分之七十左右。在编程方面,我还是很薄弱,很多同学上学期编写了超过四百道题,理解度也都还不错,我觉得我下学期还得再多付出努力才行!
3.学过了C语言,你分的清数组指针,指针数组;函数指针,指针函数这些概念吗?
数组指针:首先它是一个指针,指向一个数组。
指针数组:首先它是一个数组,数组的元素都是指针,数组占多少个字节由数组本身决定。它是存储指针的数组。
函数指针:指向函数的指针包含了函数的地址,可以通过它来调用函数。
指针函数:当一个函数声明其返回值为一个指针时,实际上就是返回一个地址给函数,以用于需要指针的表达式中。
4.学过了C语言,你明白文件和流的区别和联系吗?如何区分文本文件和二进制文件?如何编程操作这两种文件
文件是计算机管理数据的基本单位,同时也是应用程序保存和读取数据的一个重要场所。
流是字节序列的抽象概念,例如文件、输入/输出设备、内部进程通信管道等。流提供一种向后备存储器写入字节和从后备存储器读取字节的方式。
文本文件和二进制文件并无本质的差别,他们的区别在于打开这个文件的程序在对其内容的解释上,我们可以把一个典型的所谓二进制文件当作文本文件来打开,是同样可以的,只是得到的内容就是一些乱七八糟的符号了。反过来,也是同样成立。
5.学过了C语言,你知道什么叫面向过程程序设计吗?它解决问题的方法是什么?
我不是很清楚什么是面向过程程序设计,只是大致知道
面向过程的程序设计中:程序=算法+数据结构
而在面向对象的程序设计中:
对象=数据结构+算法
程序=对象+对象+.....
所以克服了面向过程的设计中存在的问题。
6.在C语言里面,什么是模块?你写过多个源文件的程序吗?
按照功能将一个软件切分成许多部分单独开发,然后再组装起来,每一个部分即为模块。我还没有接触过多个源文件的程序。
7.学过了C语言,你知道什么是“高内聚,低耦合”吗?这个原则如何应用到高质量程序设计中?
我觉得高内聚是指让一个类或者一个方法专注去做一件事情。低耦合又要求对象,类之间减少耦合性。
8.学过了C语言,你如何把数组A的内容复制到数组B中?如何查找整数数组A中有没有数字5?如何对整数数组A进行排序(从小到大,从大到小)?写出相应的程序。
复制:
{
int n,i,a[100],b[100],j;
printf("输入n:");
scanf("%d",&n );
printf("a:\n");
for (i=0; i<n; i++)
{
scanf("%d",&a[i]);
}
for (j=0; j<n; j++) {
b[j]=a[j];
printf("%d",b[j]);
}
}
查找:
{
int a[10],i;
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<n;i++)
{
if(a[i]==5)
printf("有5!");
}
return 0;
}
升序:
int a[100],n, i,j,temp;
printf("input n:");
scanf("%d",&n);
printf("input a:");
for(i=0;i<n;i++)
{
scanf("%d",&a[i]);
}
for(i=0;i<n-1;i++)
{
for(j=1;j<n-i;j++)
{
if(a[j]<a[j-1])
{
temp=a[j]
a[j]=a[j-1];
a[j-1]=temp;
}
降序思路与升序一样。
9.写一个程序,统计自己C语言共写了多少行代码。
我不太会写这个程序,参考了一些同学的程序,也上网查了一些资料。
char str[4096];
int StringBracket(char *str)//删除空格和制表符
{
int i,j,len;
len=strlen(str);
j=0;
for(i=0; i<len; i++)
{
if(str[i]!=' ' && str[i]!='\t')
{
str[j]=str[i];
j=j+1;
}
}
str[j]='\0';
if(str[0]=='\n') return 0;
else return j;
}
void main()
{
int all=0,zs=0,kg=0,j,k=0;
FILE *fp;
char filename[100];
printf("\nEnter a filepath/filename:\n");
gets(filename);
fp=fopen(filename, "rt");
if(fp==NULL)
{
printf("cannot open file\n");
return;
}
while (fgets(str,4096,fp)) //读取一行,并判断文件是否结束
{
j=StringBracket(str);
if(k==0)
{
if(j==0) kg++;
else if(str[0]=='/')
{
if(strstr(str,"/*")) k=1;
if(strstr(str, "*/"))k=0;
zs++;
}
}
else
{
if(strstr(str, "*/"))k=0;
zs++;
}
all++;
}
fclose(fp);
printf("filename:%s 代码行数:%d 注释行:%d 空行:%d",filename,all-zs-kg,zs,kg);
}
上学期接触文件的时候太少了,这部分知识实在不太掌握...
10.你知道什么是断点吗?给出自己调试程序的例子。
所谓断点就是程序被中断的地方。由于有特殊事件(中断事件)发生,计算机暂停当前的任务(即程序),转而去执行另外的任务(中断服务程序),然后再返回原先的任务继续执行。这学期密码学数学基础程序调试时都用到了断点。
对比C语言的学习,你对《Java程序设计》的学习有什么具体目标?如何通过刻意训练提高程序设计能力和培养计算思维?如何通过“做中学”实现你的目标?
具体的目标是能够独立编写比较大规模的程序,能真正形成自己思考问题、编写程序的模式;能不死板的学习Java;能将Java运用到生活中而不仅仅是考试。要达到这些目标,唯有勤学苦练,练得多了、思考足够了,就能提高程序设计的能力,也能锻炼自己的思维。这些过程,也都是循序渐进的,也要根据自己每个阶段的实际情况来做出一些改变。
毕业后大多数人从事的工作的要求是“提笔能写,开口能说,问策能对,遇事能办”,非常重要的技能是公文写作能力,你觉得自己写作能力如何?要怎么提高?
我以前很少会写文章,总觉得还没有到那个阶段,总觉得时间还很充足,但实际上这些想法都是错误的。像我现在敲着键盘才感觉到自己的写作水平是有多么不足。要提高写作的能力,首先就要多写,多动手,才能减少写作时的胆怯。其次要敢于写。我们都要摒弃写作的一些固定“套路”。很多人写作时都有自己固定的套路,就像写高考作文一样,第一段怎么写,最后一段怎么来结束,都是有一定格式的。格式化的写作能减少不少负担,但是必然也会让我们减少写作时必要的思考,这样也会导致公文内容不够深入,写作人员能力得不到提升。除了写以外,读也是非常重要的。平时的生活中一定要多阅读,阅读后要记录下自己的心得体会,这样在增长见识的同时,也能提高我们动手写文的能力。
努力出奇迹!