zoukankan      html  css  js  c++  java
  • 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:
    ");
        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]!='	')
       {
        str[j]=str[i];
        j=j+1;
       }
      }
      str[j]='';
      if(str[0]=='
    ') return 0;
      else return j;
    }
    void   main()
    {
    	int    all=0,zs=0,kg=0,j,k=0;
    	FILE   *fp;
            char   filename[100];
    printf("
    Enter a filepath/filename:
    ");
            gets(filename);
    	fp=fopen(filename, "rt");
            if(fp==NULL)
            {
                  printf("cannot open file
    ");
                  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运用到生活中而不仅仅是考试。要达到这些目标,唯有勤学苦练,练得多了、思考足够了,就能提高程序设计的能力,也能锻炼自己的思维。这些过程,也都是循序渐进的,也要根据自己每个阶段的实际情况来做出一些改变。

    毕业后大多数人从事的工作的要求是“提笔能写,开口能说,问策能对,遇事能办”,非常重要的技能是公文写作能力,你觉得自己写作能力如何?要怎么提高?

    我以前很少会写文章,总觉得还没有到那个阶段,总觉得时间还很充足,但实际上这些想法都是错误的。像我现在敲着键盘才感觉到自己的写作水平是有多么不足。要提高写作的能力,首先就要多写,多动手,才能减少写作时的胆怯。其次要敢于写。我们都要摒弃写作的一些固定“套路”。很多人写作时都有自己固定的套路,就像写高考作文一样,第一段怎么写,最后一段怎么来结束,都是有一定格式的。格式化的写作能减少不少负担,但是必然也会让我们减少写作时必要的思考,这样也会导致公文内容不够深入,写作人员能力得不到提升。除了写以外,读也是非常重要的。平时的生活中一定要多阅读,阅读后要记录下自己的心得体会,这样在增长见识的同时,也能提高我们动手写文的能力。
    努力出奇迹!

  • 相关阅读:
    linux下启动和关闭网卡命令及DHCP上网
    python 编码问题
    paddlepaddle
    Convolutional Neural Network Architectures for Matching Natural Language Sentences
    deep learning RNN
    Learning Structured Representation for Text Classification via Reinforcement Learning 学习笔记
    Python IO密集型任务、计算密集型任务,以及多线程、多进程
    EM 算法最好的解释
    tensorflow 调参过程
    tensorflow 学习纪录(持续更新)
  • 原文地址:https://www.cnblogs.com/guyanlin/p/6184482.html
Copyright © 2011-2022 走看看