• 足球运动训练心得及经验分析-c语言学习调查


    在准备预备作业02之前,我参考娄老师的提示,阅读了《[做中学(Learning By Doing)]之乒乓球刻意训练一年总结》一文。
    在文章描述的字里行间,给予我的印象是系统、负责,娄老师重拾乒乓技能的经历让我联想到了自己。
    以下分享我进行足球运动的经验和反思。


    · 背景简介

    在初中二年级的某个下午,我在学校操场上接触到了足球,并且很快的喜欢上了这项运动。
    作为一名爱好者,这一项竞技体育,让我感受到了运动的快乐。
    很快,球场上技术的缺陷让我明白了训练的重要性,当然,课余训练也局限倒脚和射门。但即使是基础而简单的训练也让我受益匪浅
    初中毕业那年的暑假,三两好友约上一起参加了当地组织的市级中学生足球比赛。真正站在赛场上相较娱乐是另一种体验。团队压力以及高比赛强度的的确确让我的技术得到提升。
    进入高中后,每天下午踢足球成为了习惯。加入了校足球队和业余足球队后,比赛机会也更加频繁了。我通过不断的练习逐渐提升水平。
    另外,闲时观看职业足球联赛、阅读足球杂志、玩足球类电子游戏让我认识到了阅读比赛,分析比赛战术,学习攻防套路的重要性。

    · 收获的经验

    足够的训练时间是个人能力提升的前提,“一万小时”理论绝非纸上谈兵。

    处于一定的竞争压力与强度的环境下,更能促进水平提高。

    掌握正确的训练方法能够少走弯路。

    通过不同渠道的比照与验证能够使能力更加综合全面。

    拥有一个互相鼓励、良性竞争的氛围,能够彼此激励。

    · 自身存在的不足

    抗压能力不够。

    比赛强度与个人的失误率成正相关。侧面反应了技术短板的存在。

    训练计划不完善。

    就足球这项运动而言,还有类似球感等许多方面缺少肌肉记忆的锻炼。这个问题一定程度上降低了个人的抗压能力。应正确使用训练器材制定适合自己的刻意训练。

    基础能力缺乏更新。

    思考了娄老师在乒乓球刻意训练上的经验,我认为通过摄像-分析-改进,逐渐雕琢自己的技术动作是一个非常好的方法,值得借鉴。
    平时虽然偶尔会浏览教学集锦,但还未量化,制定训练总结是一个可行的对策。

    视野不开阔。

    在比赛进行过程中,对比赛当前进行状态分析还不到位,无法准确控制比赛节奏。



    对c语言学习调查的反馈

    ·如何学习c语言

    模仿参考书上的代码然后逐步理解代码含义。在无法实现任务功能时,求教老师或和同学探讨。通过举例模拟程序运行过程,核对并验证程序。
    完成后思考代码是否有繁杂冗长部分。偶尔思考优化程序运行复杂度,修改完善代码,但的确次数不多。借鉴优质代码写法。

    ·目前为止估算自己写过多少行C代码 理解的情况如何

    大一下学期开始,总体代码行数方差较大,从一开始的“hallo world”到最近230行的中国剩余定理算法,行数均值大概在40~50行,程序总数应该180左右,代码总量应该在7500行。(摊手)
    课程学习方面,在二维数组、链表、文件方面明显存在弱势,关于指针,理解得不够透彻。

    ·学过了C语言,你分的清数组指针,指针数组;函数指针,指针函数这些概念吗

    经过一个学期,概念确实模糊了,故参考了《c语言程序设计(第3版)》

    数组指针:

    int (*p)[n];//定义一个指向n个元素 一维整型数组 的指针变量

    指针数组:

    char *p[n]//定义一个 有n个字符型指针 的字符指针数组

    函数指针:

    int (*function)(int a,int b);//定义一个指针变量,指向一个2个整型形参、返回值为整型的函数,在程序中 通过调用function函数名来调用函数

    指针函数:

    int *function(int a,int b);//定义一个函数,有2个整型形参并 返回整型指针/地址

    ·学过了C语言,你明白文件和流的区别和联系吗 如何区分文本文件和二进制文件 如何编程操作这两种文件

    抽象基类 Stream 支持读取和写入字节。
    所有表示流的类都继承自 Stream 类。 Stream 类及其派生类提供数据源和存储库的常见视图,使程序员不必了解操作系统和基础设备的具体细节。
    流涉及三个基本操作:
    · 读取 - 将数据从流传输到数据结构(如字节数组)中。//可以将数据从流传输到数据结构(字节数组)中,进而保存到文件中
    · 写入 - 将数据从数据源传输到流。//文件可以作为流的一个数据源
    · 查找 - 对流中的当前位置进行查询和修改。
    文件是一个由字节组成的有序的命名集合,它具有永久存储。
    在处理文件时,你将处理目录路径、磁盘存储、文件和目录名称。
    相反,流是一个字节序列,可用于对后备存储进行读取和写入操作,后备存储可以是多个存储媒介之一(例如,磁盘或内存)。
    正如存在除磁盘之外的多种后备存储一样,也存在除文件流之外的多种流(如网络、内存和管道流)。
    参考Microsoft Developer Network
    https://msdn.microsoft.com/zh-cn/library/k3352a4t(v=vs.110).aspx

    c语言文件有两种类型:文本文件(也称ASCⅡ码文件)和二进制文件。起差别在于储存数值型数据的方式不同。
    在二进制文件中,数值型数据是以二进制形式储存的;而文本文件中,则是将数值型数据的每一位数字作为一个字符以其ASCⅡ码的形式储存的。
    操作方法:

    ...
    FILE *fp;//定义指向FILE结构类型的指针变量
    if((fp=fopen("demo.txt","w"))=NULL)
    //判断以只写方式打开文本文件是否成功,操作二进制文件是将后缀替换为.bin
    {
    printf("Failure to open demo.txt!
    ");
    exit(0);
    }
    ...
    fclose(fp);//关闭由函数fopen()打开的fp指向的文件
    ...
    

    参考《c语言程序设计(第3版)》

    ·学过了C语言,你知道什么叫面向过程程序设计吗 它解决问题的方法是什么

    我认为面向过程程序设计,就是“步步为营”
    1.将项目划分为一系列流程
    2.分步实现每一种情况的要求
    3.将各个部分整合按逻辑顺序整合

    按照思路是下棋的流程进行编程, 也就是我们通常习惯使用的自低向上, 逐层精确的编程思想。
    这种编程的主导思想是在设计时就把实现的细节考虑好了, 从而在低层就实现了程序满足应用软件要求的目的。
    参考博客fuleying http://www.cnblogs.com/fuleying/archive/2011/08/09/2131647.html

    ·在C语言里面,什么是模块 你写过多个源文件的程序吗

    在C语言中,我们可以将一个.c文件称为一个模块(Module);
    所谓模块化开发,是指一个程序包含了多个源文件(.c 文件)以及头文件(.h 文件)。
    参考c语言中文网 http://c.biancheng.net/cpp/u/c16/

    目前为止,我还没有在一个程序调用过多个源文件。(捂脸)

    ·学过了C语言,你知道什么是“高内聚,低耦合”吗 这个原则如何应用到高质量程序设计中

    耦合性也称块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。
    模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息。

    内聚性又称块内联系。指模块的功能强度的度量,即一个模块内部各个元素彼此结合的紧密程度的度量。
    若一个模块内各元素(语名之间、程序段之间)联系的越紧密,则它的内聚性就越高。

    高内聚低耦合能够提高模块的独立性,为设计高质量的软件结构奠定基础。
    参考博客my memory http://www.cnblogs.com/robnetcn/archive/2012/04/15/2449008.html

    ·学过了C语言,你如何把数组A的内容复制到数组B中 如何查找整数数组A中有没有数字5 如何对整数数组A进行排序(从小到大,从大到小) 写出相应的程序。

    #include <stdio.h>
    #include <stdlib.h>
    
    int enter(int *a)//输入数组函数
    {
        int i;
        printf("Please enter the number: 
    ");
        for(i=10; i; i--)
        {
            scanf("%d",a);
            a++;
        }
    }
    
    int find(int *a)//查找数字5函数
    {
        int re=0,i;
        for(i=10; i; i--)
        {
            if(*(a+i-1)==5)
                re=1;
        }
        return re;
    }
    
    int copy(int *a,int *b)//将数组a复制给数组b
    {
        int i;
        for(i=10; i; i--)
        {
            *b=*a;
            a++;
            b++;
        }
    }
    
    int sortdown(int *a)//降序算法(升序算法将>替换为<)
    {
        int i,j,k,temp;
        for(i=0; i<9; i++)
        {
            k=i;
            for(j=i+1; j<10; j++)
            {
                if(*(a+j)>*(a+k))
                    k=j;
            }
    
            if(k!=i)
            {
                temp=*(a+k);
                *(a+k)=*(a+i);
                *(a+i)=temp;
            }
        }
    }
    
    int main()
    {
        int from[10],to[10],i;//定义数组、计数变量
    
        enter(from);//输入数组from
    
        if(find(from))//判断判断数组中是否存在5
            printf("5 is exist!
    ");
        else
            printf("no exist!
    ");
    
        copy(from,to);//将数组from复制给to
    
        sortdown(from);//降序排列from,输出from
        for(i=10; i; i--)
        {
            printf("%d  ",*(from+10-i));
        }
    
        return 0;
    }
    

    ·写一个程序,统计自己C语言共写了多少行代码。

    将代码储存到项目文件下的文本内,用以下程序计算

    #include <stdio.h>
    #include <stdlib.h>
    
    int main()
    {
        FILE *fp;
        char ch;
        int count=1;
        if((fp=fopen("demo.txt","r"))==NULL)//以只读方式打开代码文本文件
        {
            printf("Failure to open demo.txt!
    ");
            exit(0);
        }
        while((ch=fgetc(fp))!=EOF)//按字符读入文件
        {
            if(ch=='
    ')//换行时计数加一,忽略注释和空行
                count++;
        }
        printf("%d",count);
        fclose(fp);
        return 0;
    }
    
    

    ·你知道什么是断点吗 给出自己调试程序的例子。

    INT 是Intel系列CPU的一个指令,可以让程序产生一个中断或者异常。程序中如果有中断或者异常发生了以后,CPU会中断程序的执行,去一个叫做IDT的部件查找处理这个中断。
    INT 3 (或者DebugBreak(),或者Debugger.Break())指令是我们自己在代码里面硬编码进去的,因此我们在Visual Studio里,在相应的代码行里面点一下,出现一个小红球,也就是说Visual Studio在程序指令集某个地方动态地添加了一个INT 3指令。
    参考博客Jacky Song http://www.cnblogs.com/songzibin/archive/2010/01/07/1640920.html
    大一下学期,徐小青老师在课上有教授过断点和单步调试的应用。
    但因个人原因,平常习惯在代码中插入printf语句检查变量值或将问题代码注释掉来检验运行,断点运用的比较少。(摊手)

    就行数统计程序进行调试,检查fp、ch、count值,如图↓↓↓

    ·对比C语言的学习,你对《Java程序设计》的学习有什么具体目标?如何通过刻意训练提高程序设计能力和培养计算思维?如何通过“做中学”实现你的目标?

    具体目标

    着手能写,能够深入理解概念,打好基础。逐步精简代码。能将想法创意表达出来。

    提高程序设计能力和培养计算思维

    我觉得在系统、勤奋的能力训练下,也同时培养自己的想象力,类似运用思维导图等方法将创意具现化。
    勤奋是基础,保持求知的心和百折不挠的毅力。
    系统是辅助,我从“做中学”中认识到了,系统的训练方法并非高高在上,一步步开始,逐渐将自己的训练方式规范化确实能够做到事倍功半。
    想象力是动力,真正的将编程语言作为自己表达创意的工具,而不是束缚自己能力的枷锁。

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

    大一下学期,我选修了姬瑞环老师的《应用写作》课程。期末考核成绩85。
    作为中国高教学会秘书学专业委员会理事、北京市人事考试中心专家组成员、国家秘书职业资格鉴定专家委员会委员,姬瑞环老师在公文写作上造诣颇深,并且给予了我许多帮助。
    姬老师要求我们多看多写多思考,规范格式,雕琢语言。我觉得个人在公文写作能力方面积淀还不够,日常中应当多注意学习学校、网络上发布的公文。

    以上

  • 相关阅读:
    WPF Image控件的Source属性是一个ImageSource对象
    wx:if 与hidden
    切换远程分支
    异步请求(简单一说)
    多维数组降维方法,简单一提
    3.25发版之最后的搜索框
    wepy-城市按字母排序
    new一个新对象。。。对象???
    参数函数是对象的理解
    群辉 MariaDB 10 远程连接
  • 原文地址:https://www.cnblogs.com/besti155214/p/6170888.html
Copyright © 2020-2023  润新知