小学编程(精选12篇)
小学编程 篇1
青少年学习编程早已不是什么新鲜事,从早年的Logo语言,到最近几年风靡全球的Scratch,都有大量青少年在学习。编程对于青少年逻辑思维、综合素养的锻炼成效显著,已得到了广泛的认可。我工作的学校只有一二年级的学生,我希望能找到一些适合小学低段学生学习的编程内容。一年里,我渐渐地摸索出一条适合小学低段学生学习的编程之路。
从code.org起步
偶然的机会,我了解到了全球计算机教学周和“编程一小时”活动,在code.org网站上我看到了一套完整的、针对低段儿童的编程系列课程。课程学习从最简单的辨别方向开始,再到顺序结构、判断结构、循环结构。随着课程的深入学习,还融入了事件侦听等内容。编程中原本复杂的事情,在这个课程体系中都得到了很好的解决。体验该课程之后,我决定就从这里起步,将这套课程作为我校儿童编程的起点。
2015年9月,我开设了学校第一个信息类社团,取名“码上编程”。从“编程一小时”项目起步,一下子就降低了编程的门槛,一年级的孩子在上几次课之后就能掌握图形化编程的方法,还能理解常见的逻辑结构,更关键的是,孩子们爱上了编程,不再觉得编程是一件很难的事情。
我以其中的“蜜蜂采蜜”情景为例,简述“编程一小时”有趣的学习方式。
在学习前期,学生要通过程序积木控制小蜜蜂完成采蜜和酿蜜。这是典型的顺序结构,这个内容的学习将帮助儿童形成严密的逻辑性思维,并初步形成寻找最短路径的思想。
在循序渐进的任务中,学生逐渐掌握了顺序结构,也发现了很多程序是重复的,自然产生对重复结构的需求。在采蜜、酿蜜这个场景中,使用重复模块可以大大提高编程效率。
在真实世界中,不是每朵花都有花蜜的,在采蜜之前需要先做判断:如果有就采蜜,如果没有花蜜就去寻找下一朵鲜花。这个情景可以顺理成章地引出判断结构。生动形象的情景,帮助学生快速掌握判断结构。
在其他语言的学习中,函数是一个拦路虎,学生总是无法理解函数的作用。而在code.org的课程中,我依然借助于“蜜蜂采蜜”的情景,很好地融合了函数的知识点。这个任务多次需要在同一朵花采5次蜜,于是将采5次蜜作为一个标准函数。重复调用该函数可大大提高程序编写效率。
在code.org课程中,有大量诸如此类的富有趣味的学习情景,在学习中融入了各类生活知识。学生通过一个学期的学习,除了掌握了程序设计的基本思路和技能以外,更重要的是培养了他们对编程的兴趣。
Scratch:儿童编程的必经之路
经过一个学期的学习,孩子们在“编程一小时”收获满满。渐渐地,很多孩子发现“编程一小时”的课程难度也无法满足他们日益增长的编程需求。这个时候,我将社团的学习内容顺利地过渡到Scratch。根据我校实际情况,Scratch是孩子学习编程的第二步。
在课程开始之前,我给每个孩子注册了Scratch官网的账号。利用这个账号,孩子们做好的作品可以直接在学校里上传,避免优盘拷贝的麻烦。回家之后,可以向父母展示自己的作品,也可以继续修改作品。同时我每次课都鼓励学生将自己的作品分享到Scratch社区、社团QQ群,甚至父母的朋友圈。身边人的关注可以激发学生的学习兴趣,鼓励他们不断学习新的知识。
由于学生有“编程一小时”的学习经验,入门Scratch就轻松很多,重复、判断、移动,这些程序学生自然而然就会想到,使入门学习的过程大大简化。
学生的思维总是很独特,常常令老师始料未及。比如有一次,我的教学计划是介绍如何使用矢量绘图画出一只小鸡,很多学生在很短的时间里就掌握了绘制方法,然后开始自由创作。十分钟过后,我发现有学生将小鸡与逐帧动画结合,做出了变形小鸡;利用油漆桶工具在鸡身上画出圈圈色彩,变成了凤凰小鸡。
我认为,Scratch将会在很长一段时间里作为儿童编程的必经之路,源于它“想象,创造,分享”的理念。Scratch是创客教育的利器,也是启蒙阶段必不可少的一环。同时,学习Scratch对于学生逻辑思维、审美等多方面都有极大的促进作用。
摸索前行:Arduino这边风景独好
今年年初,我自己开始接触Arduino,一开始觉得很难,点亮一盏LED灯都要折腾很久,想过放弃,觉得这样的难度不适合大部分学生学习。后来,无意中发现了Mixly,利用Mixly图形化软件为Arduino编程就变得简单了很多,点亮一盏LED灯只需要一个积木模块。
经过一段时间的研究,做了几件有趣的作品后,趁着学校筹备科技节活动,我购买了一批设备,准备开一个兴趣小组。当时,我还不敢提创客这个概念,因为我自己也不懂。从投入上看,我们的创客教育投入是采用按需购买、逐步提升的模式,避免了一次性大量投入带来的不必要的浪费。
在谢作如老师《创意机器人(小学版)》一书的基础上,我设计了我校的创客课程。我从社团里选择了一部分学生参加这个课程。针对学生年龄偏低,从未接触过电子制作的现状,我放慢了学习节奏。当孩子们第一次通过搭建程序积木控制点亮LED灯的时候,每一个人都很兴奋。从孩子们的眼神里我看到了他们对这门课程的喜爱。我跟孩子们一起点亮的第一盏LED灯,照亮了孩子们和我的创客之路。
我们将LED与超轻粘土结合,将作品做在纸盒子上,利用发光二极管点缀作品。通过这样的作品,培养了学生的动手能力、编程能力和审美能力。学生在制作过程中不断与他人合作、比较和互相评价。
经过一段时间的学习,学生已经学会了用多个LED灯与绘画结合,然后控制LED灯有规律地亮灭。Arduino与美术、手工的结合是一个比较好的入口,尤其是低学段学生,程序的复杂度不高,经过几次的学习,学生很快就能掌握。
总结与反思
近一年的编程教育实践让我爱上了创客教育,同时也带给我一些思考。
对于小学低段学生而言,学习算法和编程能力并不是关键,在教学过程中应尽可能用简单的程序来实现功能。比如,用顺序结构和简单的循环结构制作流水灯,用简单的选择判断结构制作倒车雷达。
小学低段学生更乐于进行形象思维的思考,在课堂教学中如果以积木、绘画、彩泥等作为载体制作电子创意作品,更能发挥学生的想象力和创造力。
努力将创客活动与其他学科融合,让其他学科老师参与到创客制作中来,提高创客活动影响力。此外,我们还要引导学生对已学知识进行综合运用,并通过多学科结合引起家长的关注与支持。
通过创客活动的开展,我们希望每一位学生都能体验到创客的乐趣,在这个过程中,通过做中学、学中做、做中创,将自己的创意和想法变成创新设计作品,从而培养学生的创新思维、团队协作和动手实践多方面能力。
摘要:<正>青少年学习编程早已不是什么新鲜事,从早年的Logo语言,到最近几年风靡全球的Scratch,都有大量青少年在学习。编程对于青少年逻辑思维、综合素养的锻炼成效显著,已得到了广泛的认可。我工作的学校只有一二年级的学生,我希望能找到一些适合小学低段学生学习的编程内容。一年里,我渐渐地摸索出一条适合小学低段学生学习的编程之路。
参考文献
[1]刘金鹏.创客教育类拓展性课程体系建设[J].中小学信息技术教育,2016(2).
[2]秦赛玉.创客教育:“智造”新型校园[J].中小学信息技术教育,2015(7).
小学编程 篇2
1.类成员指针
Class test
{
Public:
Int fun(int)const;
Int fun(int);
Static int fun(int);
Int iTemp;
}
1.1非静态成员函数指针定义:
int(Test::*pFun)(int)= &Test::fun;
int(Test::*pFunConst)(int)const = &Test::fun;
使用:
Test a;
const Test b;
(a.*pFun)(2)或(a.*pFunConst)(2);
(b.*pFunConst)(2);
不能用(b.*pFun)(2);
1.2非静态成员变量int Test::*pInt = &Test::iTemp;
(a.*pInt)= 3;
1.3静态成员函数指针int(*pFun)()= &Test::fun;
或 int(*pFun)()= Test::fun;都正确;(注:定义无域操作符)使用:
(*pFun)()或 pFun()都正确;
2.非成员函数指针和静态成员函数一致。
3.非成员函数和静态成员函数上不允许修饰符。例如 void fun()const;void fun()volatile;但非静态 成员函数允许const、volatile等修饰符。
4.变量修饰符
auto:指定数据存储在栈中。局部变量默认为auto。该修饰符不能用于成员变量和全局变量。
static: 局部变量表示存储在静态空间,全局变量表示不允许外部引用。
volatile:表示该变量可能随时改变,不要做任何假设优化。
mutale: 去除成员变量的const属性。
extern:全局变量默认为extern属性,表示可被外部引用,此时与static相对。
extern int a =2;表示定义一个可被外部引用的变量。
extern int a;表示引用外部变量。
5.数据类型隐式转换
短数据->长数据(eg: float-> double)
有符号->无符号(eg: int-> unsigned int)PS: 所以 int(-1)>unsigned int(1);
低精度->高精度(eg: int-> float)
6.memcpy 有“防重叠”覆盖机制,strcpy 没有。
7.float表示
共计32位,折合4字节
由最高到最低位分别是第31、30、29、……、0位
31位是 符号位,1表示该数为负,0反之。
30-23位,一共8位是指数位。
22-0位,一共23位是尾数位。
每 8位分为一组,分成4组,分别是A组、B组、C组、D组。
每一组是一个字节,在内存中逆序存储,即:DCBA
8.不能在类的声明中初始化类常量,而只能在构造函数初始化列表来初始化
9.类中的枚举常量不占用对象的存储空间
10.有时候函数原本不需要返回值,但为了增加灵活性如支持链式表达,可以附加返回值。
11.赋值函数,应当用“引用传递”的方式返回String 对象。如果用“值传递”的方式,虽然功能仍然正确,但由于return 语句要把 *this 拷贝到保存返回值的外部存储单元之中,增加了不必要的开销,降低了赋值函数的效率。
12.对于非内部数据类型的对象而言,光用maloc/free 无法满足动态对象的要求。对象在创建的同时要自动执行构造函数,对象在消亡之前要自动执行析构函数。如果用free 释放“new 创建的动态对象”,那么该对象因无法执行析构函数而可能导致程序出错。如果用delete 释放“malloc 申请的动态内存”,理论上讲程序不会出错,但是该程序的可读性很差。
13.如果用new 创建对象数组,那么只能使用对象的无参数构造函数,delete时如果对象没有析构函数,则delete和delete[]是功能相同的。
14.只能靠参数而不能靠返回值类型的不同来区分重载函数。编译器根据参数为每个重载函数产生不同的内部标识符。并不是两个函数的名字相同就能构成重载。全局函 数和类的成员函数同名不算重载,因为函数的作用域不同。
15.关键字inline
必须与函数定义体放在一起才能使函数成为内联,仅将inline 放在函数声明前面不起任何作用。定义在类声明之中的成员函数将自动地成为内联函数。
以下情况不宜使用内联:
(1)如果函数体内的代码比较长,使用内联将导致内存消耗代价较高。
(2)如果函数体 内出现循环,那么执行函数体内代码的时间要比函数调用的开销大。
16.只有静态常量整型数据成员才可以在类中初始化,普通成员只能在初始化列表或函数内初始化,常量成员只能在初始化列表。成员对象初始化的次序完全不受它们在 初始化表中次序的影响,只由成员对象在类中声明的次序决定。
17.拷贝构造函数和赋值函数非常容易混淆,常导致错写、错用。拷贝构造函数是在对象被创建时调用的,而赋值函数只能被已经存在了的对象调用。
18.不想编写拷贝构造函数和赋值函数,又不允许别人使用编译器生成的,则只需将拷贝构造函数和赋值函数声明为私有函数,不用编写代码。
19.“const T”和“T const”总是都被允许的,而且是等效的。
注意在常量指针(const pointer)中,“const”永远出现在“*”之后。
例如:
int *const p1 = q;//指向int 变量的常量指针
int const* p2 = q;//指向int 常量的指针
const int* p3 = q;//指向int 常量的指针
20.一个常见的微妙问题是,一个函数风格的宏并不遵守函数参数传递的规则。
21.没有引用数组,但可有指向数组的引用,并且保留数组的边界。
22.左值拥有保存值的位置,而右值则没有相关地址,只是简单值。
23.负索引是可以的,如p[-2]或(-2)[p]都是可以的(p必然不能是数组名),但必须保持不越界。
sum=p()+q()+r();不能保证p(),q(),r()调用的顺序。
逗号运算符“,”可以保证求值顺序.result=(p(),q(),r());是先求p(),q(),然后将r()赋给result
24.在if的条件里声明变量,且可在真假分支里面使用。
const int * const * p;p是个指针,指向常指针的,常指针指向一个常量int。
25.不能用空白初始化列表来规定默认的对象初始化.class a;
a A();//会警告,看起来像函数声明
a *p=new a();//ok
a *p=new a;//ok
26.可以写一句只有数字的代码,如1234;(void)0;可以编译执行,相当于nop。
27.给函数指针赋值时可以对函数名取地址也可以不取,通过函数指针调用函数时可以用*也可不用。
28.static_cast可以转换基本数据类型(int->char)、void*和有类型指针、基类和派生类指针的转换(多重继承也行,它可重新计算偏移地址),但是不能转换如(int*->char*等)。
29.dynamic_cast主要用于执行“安全的向下转型”,reinterpret_cast可执行任何转换,const_cast执行去 const转换。
30.将取地址运算符用到完全限定的类成员名(包括变量和函数),就能获得指向成员的地址。使用形式为“X::*”来声明一个指向类X成员的指针。注意声明成员 函数指针的时候不能像普通函数指针可以省略&或*的使用,但静态成员函数则除外,它和普通函数一致。成员指针和普通指针不一样,并非指向一个内存 区域,而是相当于一个结构的偏移量,当它和具体的对象结合就能指向特定对象的特定成员。
31.当把派生类对象赋给基类对象的时候会产生切割现象,即针对派生类的数据和行为将产生切割。
32.多维数组的第1个元素是数组而非普通类型。
33.在含有单参数构造函数的类中注意隐式转换。如String s=“Hello”;
34.函数对象是重载函数调用运算符的类对象。
35.引用需要用左值进行初始化,但指向常量的引用除外,编译器将创建一个临时左值。如const int c=12;//ok 一般情况下编译器产生的临时对象的生命期在它所在的最大表达式范围内,但用临时对象初始化常量对象的引用时会让编译器保证临时对象和引用生命周期一样。
36.可以将基类的成员指针(变量或函数)安全的转换为指向派生类成员的指针,但反之则不安全。
37.函数参数的传递是采用拷贝构造函数而非赋值操作。对未初始化的对象赋值可能会出现意外,如类中含有未初始化指针。
38.声明但不定义私有的拷贝构造和赋值运算将会关闭类的复制操作。并且赋值运算、拷贝构造函数和析构函数不会被继承,对派生类重载赋值运算时需要调用基类的赋 值运算。
39.在构造函数里对成员变量初始化,比较好的方式是使用初始化列表。在初始化列表中静态成员和数组不能被初始化。
类的初始化顺序是虚拟基类的成员->非虚基类成员->类自身成员,和初始化列表的顺序无关。含有虚拟基类和不含的类在成员布局上不一样,含有虚拟基类的类将虚拟基类的数据放在最后面。另外如B:virtual A,C:virtual A,D:B,C;(均是虚继承)则D的构造函数将对A初始化一次(即使在初始化列表没有显式初始化A),B,C将不再对A初始化。
所有静态数据(全局变量和静态存储变量)在使用前如未初始化其值都为0.全局变量可以存储在静态初始化区和未初始化区。
40.RVO返回值优化,是指在函数返回中执行拷贝初始化到直接初始化(使用带非对象参数的构造函数)的转换,NRV和RVO类似,但使用命名局部变量来保存返 回值。p160
41.重载、覆盖和隐藏的区别
重载的特征:在同一个类,函数名相同,参数不同,virtual可有可无。
覆盖的特征:在两个类(基类和派生类),函数名和参数都相同,且必须有virtual关键字。
隐藏的特征:基类函数名和派生类函数名相同参数不同,且不管是否有关键字。或函数名、参数均相同,但基类 函数没有virtual(有的话就是覆盖)。
不能覆盖而只能隐藏基类非虚函数。
42.相同类型的所有对象公用一个虚函数表,在单继承下不管有多少个虚函数都只有一个虚函数表指针。覆盖就是在为派生类构造虚函数表时用派生类的函数地址替换基 类成员函数地址的过程。
43.使用常量类成员可能在对类对象赋值的时候产生问题。
小学编程 篇3
一、要培养学生学习编程的兴趣
爱因斯坦曾说过:“兴趣是最好的老师”。的确,学生一旦对学习发生兴趣,就会由被动学习转化为主动学习,学生对教师所教授的内容感兴趣才能有激情。如何培养和激发学生的兴趣,是教学成败的关键。我在从事BASIC编程的教学中,发现学生对于绘画和动画、音乐比较有兴趣,而我们QB就有强大的绘画、音乐等编译功能,第一节课,我先通过给出一段程序,让学生猜猜这是什么?并让学生将猜的答案写在黑板上,然后让学生打开QB主界面,把我给出的程序输入,然后运行,看看结果和自己猜得一样吗?最后会得到一段“生日歌”或一个小人动画,并告诉学生,这是编程编出来的,激发了学生的兴趣。第二种方法是给出之前编程学习的同学榜样的力量,我让学生打开以前学生的程序,让学生自己打开运行,会得到之前同学编译得许多经典的题目,并告诉学习的学生,一年后你们会做得更好,许多学生在惊叹学长们的智慧的同时,也激发了自己学习编程的兴趣。
二、要培养学生学习编程的意识
为什么有许多聪明的小朋友,编程并不一定学得很好呢?关键是没有入门,缺少编程意识。那么什么是编程意识?我们通过一个小的编程题目来看一看:求1+2+3+4+…+100的和,聪明的学生一下子就说,太简单了,(100+1)×(100÷2)=101×50=5050,“算的比电脑还快”,当人脑算得比电脑还快时,你觉得会有问题吗?电脑最大的特点是超强的运算能力和逻辑判断能力,是超强的快,快到什么程度呢?电脑在计算1+1和计算1+2+3+4+…+100时几乎没有快慢之分。所以对于这道题目,电脑计算1+2+3+4+…+100与计算(100+1)×(100÷2)的速度是一样的,并且还要告诉聪明的小朋友,用(100+1)×(100÷2)的方法是错误的,为什么呢?这道题目是计算1+2+3+4+…+100的和,用(100+1)×(100÷2)的方法只能理解为是求101×50的积,结果是相同的,但过程是不一样的。是不是有了一点感觉呢?能够理解一点编程意识了,编程序的关键是让电脑做,你只要考虑过程,你不能用你的人脑去想像电脑,不要和电脑换位思考。有一个比方:你是主人,电脑是什么能力都比你超强的仆人,并且绝对服从你,你让它计算100次,它绝不会算99次和101次。你所要做的就是安排好一件事情的过程,指挥它,命令它。
编程看似简单,具有编程意识,安排好步骤就行,但实际上,要做到这,还是挺难的,一是要能通过安排好步骤让电脑解决好问题,二是步骤不能错,否则电脑会做无效的运行,可能还会死机。这其实就是编程的关键步骤算法。
三、要培养学生学习编程的毅力
学习BASIC编程还要培养学生毅力,因为编程要花费一定量的时间和精力,需要在BASIC學习的过程中,要掌握许多数学知识。就书上而言,至少要熟练掌握约数、最大公约数、最小公倍数、质数、阶乘、平方根、进制的转换、简单函数等等,而要想在复赛中取得更好的成绩,还应该掌握更多数学规律:如水仙花数,同构数、杨辉三角形。甚至还有初中和高中的数学知识包括几何、立体几何等。要记住和理解上述知识,没有坚强的毅力是做不到,因为上述知识不是简单的记住,是要理解和灵活的掌握运用。特别是在学习的后期,有时一道题目编程要一二个小时的思考,在编写程序的过程中,学生需要集中注意力,若一个字母输入错误,就会影响整个几十行的程序,要不断的调试程序,一遍不行,再来第二遍,学生要从头至尾一处一处找出错误,要有足够的耐心和恒心,否则不容易学好,我总是和学生讲古人的悬梁刺股、凿壁偷光、闻鸡起舞刻苦钻研的精神,并告诉他们之前的学姐们也是这样有毅力,坚持下来才取得成功的;有时我也陪同孩子们一起编程,和他们比赛,看谁编得又快又准确,这样就培养了学生的毅力。
四、要培养学生编程之外的信息素养
由于信息学奥林匹克学生培训的周期较长,至少为一年或者更长时间。在此过程中,我们的学生不仅是要培养学生BASIC编程的能力,更要培养其编程之外的信息素养;如上网、打字、搜索、FLASH动画制作、局域网设制、网页制作、甚至网线水晶头的制作、电脑的简单维护等等各个软、硬件方面。表面上看这些信息技术与编程无关,但是在信息时代中,上述能力的掌握有助于学生的共享交流,提高编程能力,比如可以通过搜索能力可以分析真假信息、如何学习。打字快慢能决定编程效率,想知道自己的算法对错,可以到专门的网站与高手交流等等。只有这些培养了信息素养才能进一步促进学生学习编程。
小学编程 篇4
在机器人教学中, 程序设计是机器人的核心, 是学生进行创新的关键。在学习为机器人编写程序的过程中, 学生会获得成功的喜悦、会建立成功的信心, 从而提高学生程序设计的兴趣。在具体进行智能机器人程序教学中, 结合小学生的认知特征, 图形化编程工具为小学生进行机器人程序学习搭建了良好的支架。
●常用的图形化编程工具
在小学机器人程序教学中, 常用的图形化编程工具有ELOGO、VJC和ROBOLAB。具体介绍如下。
1.ELOGO
“易乐谷ELOGO”是以LOGO语言语法为基本语法规则, 易语言中文化为实现目标, 以流程图为教学辅助的一种学习编程的入门级简单工具。其特点有:采用卡通的界面设计, (如图1所示) 将菜单命令分类直接放在一个画盘上, 让小学生有充分的可接受度, 使学习ELOGO更像是玩一种游戏;采用了导航面板设计, 使得小学生可以采用点击的方式来控制小海龟, 解决了长期以来小学低年级学生无法学习编程的难题;输入方法采用中文命令首拼法, 解决了小学生中文输入慢的问题;提供配套教材以及丰富例程集和多媒体命令, 如音乐、字符处理、时间处理、动画、精灵、通讯等功能, 适合于小学低年级学生的学习。例如, 在图2所示的程序输入面板中, 利用左边输入导航以及中文命令首拼法, 小学生可以十分轻松地编写出程序:前进100右转90前进100右转90前进100右转90前进100, 来实现海龟绘画出的一个正方形效果。 (如图3所示)
2.VJC
图形化交互式C语言 (简称VJC) 是用于能力风暴智能机器人系列产品的软件开发系统, 具有基于流程图的编程语言和交互式C语言 (简称JC) 。VJC为开发智能机器人项目、程序与算法、教学等提供了简单且功能强大的平台。在VJC中, 不仅可以用直观的流程图编程, 也可以用JC语言编写更高级的机器人程序。VJC操作简便, 且有活泼明快的图案和简短的文字说明。学生可以使用形象化的模块, 由顶向下搭建流程图, 搭建流程图的同时, 动态生成无语法错误的JC代码。 (如图4所示) 流程图搭建完毕, 程序就已经编写完成, 可以运行仿真界面直接演示。 (如图5所示) 还可以立即下载到机器人中运行。已入门的学生可以直接在JC代码编辑环境中编写程序, 还可以边写边试, 发现错误就校正修改, 十分方便。VJC能让学生在丰富多彩的机器人世界里, 边玩边学, 愉快地掌握许多有用的科技知识。例如, 搭建如图6所示的简单的流程, 其中设置如图7、8、9所示, 便可以操纵仿真“能力风暴机器人”以五角星的轨迹前进, 流程图效果如图10所示。同时也可以观察JC代码:
3.ROBOLAB
ROBOLAB软件是一个简单、直观、易学的编程环境, 是以美国国家仪器公司 (National Instrument) 的Labview为基础开发的图形化编程语言, 被称为“工程师的语言”。使用图形化的编程语言, 只需从功能面板选取需要的图表, 拖曳到编程窗口, 通过连线, 即可完成编程, 有效地提高了工作效率。ROBOLAB的编程环境共分为3个级别:初学者级别、发明家级别、研究者级别 (如图11所示) 。每个级别又由浅入深, 共有13个等级, 使用者可以根据年龄、水平来选择不同的编程等级。ROBOLAB还有丰富的数据分析函数库, 包括微积分、曲线拟合、直线拟合等。并提供基于TCP/IP的互联网编程工具。小学生可以运用初学者级别和发明家级别进行学习。可帮助学生理解编程概念和培养他们的逻辑思维。也有益于教师以直观易见的方式教授难以理解的编程概念。例如, 学习PILOT2级别 (如图12所示) , 其运行由绿灯开始, 红灯结束;程序运行结果是使乐高机器人开始, 马达左转和灯亮;当触控按钮被按下时, 程序停止。
图形化编程工具的优势
图形化编程工具是一种将“高级语言”传统的写代码编程方式, 抽象变为“图形、节点、连线”方式的编程语言环境。作为小学机器人程序教学的支架, 有其自身独特的优势。
1. 提供友好交互界面, 激发学习兴趣
根据教育心理学的有意注意原理, 小学生的有意注意时间大多数不超过20分钟, 注意力容易分散。编辑界面的友好性是小学生进行机器人程序学习的一个重要而又必不可少的因素。图形化编程工具尤其是ELOGO, 提供了使用方便、容易上手、美观大方、工具齐全等性能友好的界面。在这种友好的程序设计界面下, 小学生可以更方便、简单、轻松地进行学习。在吸引了注意力的同时, 也激发了学习兴趣。
2. 简化程序设计过程, 聚焦设计思想
小学生进行机器人程序学习, 是程序学习的初步。新课程目标中指出:小学机器人教学在过程方法上要求通过实际操作, 体会机器人是怎样工作的。在动手操作中培养观察能力, 培养综合运用知识技能的能力, 体会到模块化思想感受程序设计的基本方法和思想。所以, 机器人程序教学其聚焦点是感受程序设计的基本方法和思想, 而并非局限于学习某个程序编写的形式。
利用图形化编程工具来进行小学机器人程序教学, 可以大大降低程序设计的复杂程度。图形化编程工具改变了传统撰写代码的编程方式, 取而代之的是使用鼠标来点击、拖拽图形、图标、连线节点等方式来进行编程, 以图形化的分析处理方法来进行学生机器人的编程设计。从而将小学生从复杂的语法结构及众多的数据类型和编写代码、编译、查找错误的过程中解放出来, 使他们能够更加专注于机器人应用程序的设计, 减少因语法、指针使用复杂带来的挫败感。
3.趣味仿真学习结果, 游戏中体验成功
小学生年龄一般处于7~13岁阶段。根据皮亚杰认知发展论的阶段观, 该阶段属于具体运算阶段。此时小学生的认知由具体向抽象、由低级向高级转变;思维则从具体形象思维转到抽象逻辑思维, 从直观的、感性的水平向语义的、理性的水平过渡发展。其认知还是带有很大的具体性和形象性, 他们还需要依靠具体经验思维来解决问题, 所以教学必须考虑这些特点, 通过学习兴趣的激发, 通过成功的激励来调动小学生学习积极性。
机器人教学新课标的知识技能方面要求小学生能够编写简单的程序, 控制机器人做简单的任务。图形化编程工具的仿真能力则可以为达到此目标提供有力的支持。类似于用“金山画王”等直观画图工具来进行小学生信息技术教学, 它能用直观的运动来体现编程的结果, 让学生在游戏中进行思考, “在趣味中学习”, 感受学习语言的快乐。
传统程序设计往往以学习指令、算法为主, 容易走进这样的误区:教学和学习过于强调算法, 追求难度, 忽视了利用语言进行“游戏”的成分, “为编程而编程”导致学生丧失学习兴趣。图形化编程工具控制仿真机器人行为的能力, 使得学生很快看到自己设计出来的“成果”, 体验了“游戏”化的学习经历, 增强了自己学习效能感, 锻炼了利用计算机辅助思维的“现代思维方法”。
●图形化编程工具的运用
信息技术教师可以充分运用模块化思想来支持学生的程序学习, 感受程序设计的基本方法和思想。并且通过机器人编写程序锻炼科学而高效的思维方式, 提高规划能力, 提高学生的分析问题和解决问题的能力。
1.选择范例, 结合具体工具样例, 创设情境
机器人教学中, 学生只有通过亲身主动地参与探索才能转化为自己的知识, 才能培养创新意识。在教学中创设一定的情境, 可以使学生尽快地进入到对知识学习的氛围中。恰当的范例以及吸引学生的话题都可以激发学生主动参与的兴趣。
例如, 在学习利用递归子程序画图的时候, 可利用ELOGO给学生展示一个利用该工具中的小海龟绘制的彩色贝壳, 来引起学生对于如何实现这种效果的好奇心, 进而思考该图形的规律。然后从画圆命令以及判断语句、重复命令、子程序调用入手, 根据教师的提示, 设想程序的结构, 在教师的进一步引导下自己动手做出属于自己的“贝壳”。此外, 大部分图形化编程工具都提供丰富的示范与例子, 可以根据这些样例来选择符合教学目标的范例。图13所示即为一小海龟绘制出一个贝壳范例。其程序如下:
子程序开始画圆贝壳半径
如果半径>120[停止]否则[重复36前进0.174*半径右转10]画圆贝壳半径+30]
子程序结束
2. 强调重点, 充分尝试关键流程模块
图形化编程工具中存在针对机器人机械装置设计的一些关键模块。信息技术教师进行教学时候可着重阐明该模块的功能以及用途, 然后让学生围绕该模块, 结合前面学过的知识, 充分利用图形化编程工具的仿真能力, 发挥想象, 进行自主尝试。
例如, VJC里面的传感器模块库中包含“碰撞检测”模块, 该模块里面包含一些变量设置或条件判断, 教师可首先一边讲解其用途, 一边做示范。图14所示的程序其演示结果就是当机器人检测到碰撞的时候便发出声音。示范之后引导学生想象, 如果机器人检测到碰撞时候不是发出声音而是后退、转弯、停止、眼睛变色应该怎么办?更进一步假设, 如果机器人检测到来自不同方向的碰撞发生不同的反应又该如何设计等。当学生通过尝试获得了成功体验之后, 他们可以从模块的表面使用深入到对其代码程序规律的探索, 使其对判断分支的程序设计有了更深刻的感性认识, 进而上升到对其规律的理性认识。
3. 梯式练习, 弹性评价
利用图形化编程工具进行机器人程序教学的核心是程序设计教学。信息技术教师可以在教学过程中循序渐进, 指导学生进行梯式练习, 在逐步增加难度的同时整合前面所学习的内容。例如, 从顺序结构设计到分支结构设计的过渡与整合。对于学生的学习结果, 信息技术教师应及时的反馈、科学的比较, 作弹性、多维度积极的评价。
小学编程 篇5
浅谈如何学好计算机编程程序语言-Visual Basic程序编程的学习
作为职业学校的大专生,要成为一名合格的.毕业生,就必须学好至少一门编程语言,而在此学习过程中,很多学生都感到十分头疼.我们职业学校通常会选择Visual Basic这几门视化稿程语言来作为学生的程序设计课,本文我们就以Visual Basic这门课程的学习来谈论一下如何学好编程程序语言.
作 者:何小进 作者单位:盐城市高级职业学校,江苏盐城,224003刊 名:科技资讯英文刊名:SCIENCE & TECHNOLOGY INFORMATION年,卷(期):“”(35)分类号:G433关键词:Visual Basic 方法 目标
编程语言简史 篇6
编程难度相对降低之后,计算机开始进入大学和金融研究机构。由于它们对计算机的需求与早期从事科研及军事的机构不同,为了让他们更好地使用计算机,让编程语言更易于理解、并可以为特定的任务而优化就成为了当时的发展趋势。正因为如此,专注于编程语言和软件开发的新型企业开始出现。例如,比尔·盖茨在1975年创建了微软公司,他们希望为即将到来的个人电脑开发操作系统和应用软件。与此同时,拥有不同优势和弱点的各种编程语言开始涌现。人们很快就发现了问题:这些编程语言并不能相互兼容,大多数编程语言容易出错且不稳定。直到美国国防部在1983年指定Ada语言为第一个标准化的编程语言后,情况才好转了一些。以美国国防部为例,他们使用的编程语言从450个降到了36个。
为互联网而生的新语言
编程语言的进化随着互联网的繁荣又迎来了新的阶段,服务器和浏览器的工作模式向编程语言提出了新的挑战,它要求编程语言在稳定性、系统安全和可访问性上要有所提升。因此脚本语言在那时出现,这种语言被认为是简单的、容易理解的,它可以将程序代码轻易地集成到最流行的系统中。其实,还有很多特殊的编程语言对大部分人而言是陌生的,因为它们并没有实际的用途,甚至源代码都让人难以理解,例如不支持可打印源代码的,只由空格和制表符等组成的编程语言Whitespace,采用菜谱一样源代码结构的Chef等。
尽管编程语言的进化历史并不长,但是依然诞生了很多长寿的、极具生命力的编程语言。一些智能手机App仍在使用部分C语言,54岁的FORTRAN仍然在不断改进、成长中,并诞生了许多不同的分支,它的发明者John Backus至今仍然在该语言的发展领域扮演着重要的角色。
小学编程 篇7
然而, 回顾我国中小学信息技术教育发展的历程, 从上世纪80年代计算机教育发展到强调计算机素质, 再从计算机素养发展到重视和突出信息素养。期间, 在信息技术课程中虽然开设有“程序设计”模块, 但是, 程序设计教学逐渐被冷落, 则是不争的事实。
从计算机教育到信息技术教育的发展演变
世界各国从20世纪80年代开始都特别重视将计算机引入到学校教育中。我国教育部1982年就在全国设立了五所计算机教育实验学校。1983年, 教育部在总结试点学校经验的基础上, 制定了计算机选修课的教学大纲, 1984年颁发了《中学电子计算机选修课教学纲要 (试行) 》。在全世界程序设计思想的影响下, 我国规定教学内容是简单的计算机工作原理和BASIC程序设计语言。
之后, 教育工作者不断反思, 自上世纪90年代中期开始, 中小学计算机教育的“文化论”开始受到“工具论”的冲击。1999年, 计算机课程更名为信息技术课程, 2000年, “全国中小学信息技术教育工作会议”召开, 会议提出了“在中小学大力发展信息技术教育”。
随着《中小学信息技术课程指导纲要 (试行) 》 (教育部, 2000) 和《基础教育课程改革纲要 (试行) 》 (教育部, 2001) 的出台, 信息技术教育的目标确定为信息素养的培养。之后, 伴随着信息与通讯技术的发展, 在过去的十多年时间里, 我国中小学信息技术教育取得了巨大的成绩, 也日益显示出信息技术教育的重大意义。
可视化编程:让青少年以轻松有趣的方式学习编程
史蒂夫·乔布斯曾经说过, “在这个国家, 我觉得每个人都应该学习计算机编程, 因为程序设计学习可以教会你如何去思考”。程序设计教学对儿童创造性思维能力的培养、思维训练以及创新能力培养具有至关重要的意义。
然而, 如何教会儿童编程?特别是如何以一种儿童喜闻乐见的、有趣的方式学习程序设计是一个值得思考的问题。也因此, 可视化编程 (Visual Programming Language) 成为世界各个国家重视青少年程序设计教学的人们始终努力的方向。
在计算机技术的发展历程中, 涌现出过各种各样的程序设计语言:机器语言、汇编程序设计语言、高级程序设计语言 (BASIC, FORTRAN、PASCAL、C、C++、Prolog、Java、C#等) 、数据库管理语言 (如SQL) 、网络数据交换语言 (如XML) 等。可视化编程是在高级程序设计语言的基础上发展起来的, 它是让程序设计人员利用软件本身所提供的各种控件, 以一种可视化的方式, 像搭积木似地构造应用程序。可视化编程因其可以使教学模式更加直观, 教学效果提高更加明显而备受关注。
LOGO语言和Scratch软件是两款出自美国麻省理工学院的早期编程语言, 也是两种与自然语言非常接近的可视化编程语言, 它们通过“绘图”的方式, 以一种寓教于乐的方式, 来帮助青少年儿童学习编程。LOGO语言创始于1968年, 是由美国国家科学基金会所资助的一项研究, 在麻省理工学院 (MIT) 的人工智能研究室完成。而Scratch则是2007年推出, 在推出之后, 与LOGO当年的情景一样, 许许多多的中小学纷纷将Scratch教学纳入信息技术课程之中。
随着LOGO、Scratch、BYOB、Alice、Treehouse、Hackety Hack、Codecademy、Codea等一批可视化编程工具的应运而生, 以及支持学习者编程制品分享的在线社区的迅速兴起, 以“社交化转向”为特征的计算参与, 开始成为当今世界各国中小学程序设计教学实践中培养学生计算思维的新范式。
事实上, 在过去几年间, 在国内, 有一批热衷对中小学信息技术课程教学进行改革的教师, 他们对单纯由信息素养主导的中小学信息技术课程进行了反思, 并创造性地运用Scratch之类的可视化编程语言, 开展可视化程序设计教学, 积极推动Scratch及相关传感器技术的教学应用, 尤其是学生创新思维能力培养上的应用, 取得了可喜的成绩。
跳房子:基于iPad的儿童可视化编程应用
遥想当年, 邓小平讲“计算机要从娃娃抓起”, 我想他强调的应该不仅仅是从小就抓计算机应用, 还应该包括借助计算机通过编程教学从小培养孩子的创新思维能力。因此, 在计算机教育阶段, 计算机课程的学习, 基本上就等同于某一种编程语言的学习了, 因学生在算法和数据结构等方面缺乏基础, 加之当时计算机珍贵稀少, 联系机会很少, 学生所学较难实践应用, 所以教学效果并不理想。
最近一些年, 随着移动终端的普及, 不少学校开展了基于平板电脑、笔记本电脑等移动终端的一对一数字化学习, 而基于平板电脑的可视化编程应用开始倍受人们的重视。后来, 受Scratch的启发, 利用Javascript、HTML5和其他开放Web标准开发的基于iPad的可视化编程应用不断涌现出来, HopScotch、Daisy the Dino以及Tynker就是最有影响力的两款。
Hopscotch, 其中文翻译为“跳房子”。这款应用程序非常适合8~12岁的儿童使用, 它采取模块化代码和图形编程界面, 儿童只需要拖动编程模块到代码区域就可以完成一个功能, 不需要进行任何输入操作, 就像是堆积木一样, 这样“编”出来的程序有点类似于游戏, 互动性很强。
Hopscotch还专门开发了一款更加适合低幼儿童使用的、基于iPad的可视化编程应用, Daisy The Dino, 它采用“自由创作”和“挑战升级”两种模式, 以更加直观、有趣的方式培养低幼儿童的编程兴趣和创造的乐趣。
另外一款可视化编程应用叫Tynker。它是一个基于网页的学习平台与一个可视编程语言, 为中小学教师和在校中小学生提供编程学习服务。Tynker可以在课堂上和回家以后使用, 教师和家长只要通过其网站给孩子们注册, 后者就可以访问基于Web的课程和学习内容, 这些学习内容既有游戏、练习, 也有互动式辅导及答疑。
可视化编程应用:让儿童快乐学编程
随着移动终端的日益普及, 以可视化的方式, 借助可视化编程应用, 让儿童快乐有趣地学习编程, 从而培养学生创新性思维能力, 相信业已成为许多教育工作者、学生家长以及广大教师的共同愿景。
那么, 究竟如何借助可视化编程应用, 让儿童快乐有趣地学编程呢?关中客这里分析自己的几点建议:
第一, iPad不只可以“切西瓜”、追电视剧, 还可以用来做很多事情, 其中包括教授孩子编程。教师和家长应当身先士卒, 率先垂范, 树立终身学习的榜样。
第二, 了解可视化编程应用, 建议下载安装Hopscotch, 对于幼儿园以及小学中低年级的孩子, 可以安装Daisy the Dino。安卓平板也可以检索获取适合Andriod操作系统的可视化编程应用。
第三, 克服学生对编程的恐惧心理, 在学龄前和小学中低年级以游戏为核心, 以鼓励“创造”为主要目标。
第四, 示例演练, 模仿尝试, 跟孩子一起探索。先让孩子采用“挑战过关”的模式, 熟悉基于平板的可视化编程基本操作, 再鼓励孩子模仿, 家长和孩子一起尝试探索是非常重要的且值得鼓励的举措。
小学编程 篇8
关键词:参数单一化,宏程序,数控铣
数控编程作为数控加工的关键技术之一, 其程序的编制效率和质量在很大程度上决定了产品的加工精度和生产效率, 尤其是随着数控加工不断朝高速、高精方向发展, 提高数控程序的编制质量和效率, 对于提高制造企业的竞争力有着重要的意义。
在数控铣床手工编程中, 立体图形的编写是一个难题, 往往需要利用宏程序来解决问题, 如球体铣削 (图1) , 它的加工轨迹为球心顶部开始每下一次深度连续的铣削圆, 一直铣削下球体底部的最大直径, 如果没有宏的话, 我们要依次算出每个圆的半径, 以及下刀点的坐标, 如果是个光洁度要求很高的球体的话, 计算量就很大。用了宏以后, 把半径与下刀点的函数公式输入到系统中, 宏就会自动计算出坐标与半径, 并进行铣削, 实际上宏在程序中主要起到运算的作用。
然而宏程序的编写要求思路清晰, 工艺路线合理, 数学知识强, 编程者往往会因为变量的设定困扰思路, 一般来说, 变量设定越多, 程序越复杂, 越难编写。我们经过多年的研究找到其中的一些规律, 那就是变量单元化的编程思路, 变量单元化往往会使程序大大简化, 通俗易懂。
立体五角星的铣削在数控界手工编程中, 历来是被公认的难题。查阅了许多编程者的作品, 思路很多, 方法各式各样, 但大多数编写非常繁琐, 其原因就是变量设定太多, 程序复杂。
部分程序中, 使用了循环次数过多的宏程序, 这就意味着设定了过多变量, 难度极大, 参数的计算极其复杂。
研究发现, 立体五角星的的程序编辑可以当成参数单一化编程中的典型例题。
如图2所示, 铣削一个外接圆半径为40cm的立体五角星, 五角星的高度为7cm;如图3所示, 五角星的尖角是9.926°;如图4所示, B点的坐标为 (-9.045, 12.361) 。
五角星五个角一样, 只是分布角度不同, 只要编写出一个角的程序, 另外四个角可以利用旋转与子程序调用的方法加以复制。
其中一个角可这样来编写 (如图5所示) :铣一个角, 铣刀的轨迹为经过原点O出发, 快速定位B点, 下刀一个步距深度, 从0开始到-7cm, 到A点 (走直线) , 到C点 (走直线) , 然后提刀, 到O点为一次循环。也就是说铣刀每下一次步距的深度, 铣出一个角, 随着深度的加深角的形状变大, 一直到Z的深度下到-7cm, 角的铣削循环结束, 此时角的形状为最大, 这样一个角就铣削成功了, 然后运行旋转与子程序调用的方法加以复制, 铣削四次, 五角星就铣削成功了。
从图2中, 可以发现这个角的各点坐标参数都与Z深度有关, 这样只要设定Z为变量, 其它坐标参数都与Z形成一个比如或三角函数关系, 坐标参数就会随着Z的改变而改变。
如图3所示, △OAB为五角星的一个剖视图:设Z为#1;A0为#4;∠BAO为#3;根据三角函数我们可以推导出:#4=#1/TAN[#3];
如图4所示, 为五角星一个角的俯视图, A0=#4=40cm;B点X绝对值坐标长度为9.045cm, 设为#5。Y绝对值坐标长度为12.361cm, 设为#6。#5与#4的比值关系为9.045/40=0.226;#5=0.226*#4;#6与#4的比值关系为12.361/40=0.309;#6=0.309*#4;#5, #6与#4的比值关系也与深度Z (#1) 产生比例关系;随着深度Z的改变, #4, #5, #6都会发生变化, 这样只要设定变量深度Z (#1) , #4, #5, #6也就设定好了。
研究表明:参数单一化的宏程序编写, 能够大大降低计算机的运算次数, 提高机床的切削精度, 同时可以提高程序可读性。
参考文献
[1]王想林.开放式数控系统用户宏程序的研究与实现[D].哈尔滨工业大学, 2007
[2]吕孝敏.基于宏程序的二次曲线数控加工[D].合肥工业大学, 2010
小学编程 篇9
1 计算机编程思想研究
计算机的编程首先是建立在计算机语言的基础上, 通过对计算机语言的一种逻辑编辑, 从而实现某一项的功能和应用, 就是计算机编程。通常情况下, 计算机编程技术能够实现诸多领域的设计与应用, 例如在计算机多媒体领域、工业领域以及航天医疗等领域都有着非常重要的应用。通过计算机编程, 可是实现功能, 并提高工作效率。但是, 针对于计算机编程自身, 也同样存在效率的问题。计算机语言种类较多, 一般可以分为面向对象语言, 比较熟悉的就是C++;还有面向过程的编程语言——C语言;还有包括可以实现跨平台的语言——Java。这些计算机语言有着自身的逻辑特点, 在不同的环境中, 有着不同的优势。
1.1 计算机语言的应用环境分析
针对目前的编程而言, 有诸多的编程环境在影响着计算机编程。常见的应用环境有windows操作系统, Linux操作系统等。不同的编程语言有着不同的适应性, 因此要在相互适应的环境中, 使用相应的编程语言。
1.2 计算机语言的编程思想分析
计算机语言的编程思想主要是以稳定、效率以及误码率等几个方向来定义的, 针对不同的计算机编程而言, 其所能够包含的特点也不一样。例如, C语言编程的最大特点是克服了原有的汇编语言, 但是面向过程的程序语言往往会存在代码冗余的现象。因此, 就会出现重复编译而降低编程效率的问题。同样的面向对象的程序设计语言, 可以在一定程度上减少编译的问题, 但是却无法实现跨越平台进行编译, 从而出现了一定的限制因素。总之, 不同的计算机编程都有其相应的弊端。
2 AOP编程思想的研究
在分析不同编程方式的时候, 需要首先明确某种编程思想的来源。那么, 对于AOP编程而言, 是一种面向对象的编程方式。其形式在一定程度上可以和C++语言进行对比, AOP编程就是一种面向AOP的编程方式。那么, AOP编程有着怎样的优势呢?对于面向AOP的编程思想又是怎样的呢?
2.1 AOP编程的开发分析
计算机编程技术发展以来, 对于面向对象的编程技术不断成为计算机编程技术的先锋, 成为诸多领域的主要应用技术。虽然面向对象编程技术在原有的编程技术基础上有了较大的发展, 但是却依然无法克服在编程过程中出现的冗余问题。因此, 相关研究人员对面向对象编程的局限性进行了相关的研究与分析, 然后研究出了一种新的编程思想, 希望通过这一思想能解决代码重复的问题, 从而提高编程的工作效率。
经过专家人员的悉心研究, 终于研究出一种可以实现高效的编程思想——AOP编程。这种编程方式可以通过Java语言进行扩展从而体验AOP思想。
2.2 AOP编程思想的优势分析
AOP的编程思想, 其目的在于能够通过面向AOP的编程方式, 来避免产生一些冗余问题。AOP编程思想中, 有一个叫做横切关注点的概念。这个概念在于通过将工作关注点的代码进行分离, 从而将组织服务编写工作分离出来, 最后提供相应的功能架构。通过这样的处理方式, 应用程序就可以直接使用各个程序功能提供的功能, 而避免了重复编译的工作。在实际的编程技术中, 开发者将AOP的编程思想的优势通过以下三个方面进行了阐述:
第一、服务将被更好的定义;使用AOP编程思想可以实现服务的多元化应用, 编程的简易化并且同时获得更多的功能。此外, 通过这样的思想编程, 并不会影响到其他的编程功能, 实现相对独立的编程环境。
第二、在进行创建离散方面的时候, 可以借助于开发团队进行一项工作的专注开发, 开发人员中的精英人员可以实现真正意义上的编程体验, 加强对自身技能和经验的利用性。
第三、编程的持久性优势;在面向对象的编程过程中, 不同的程序开发人员可以通过将相同的编程代码, 以独立的方式进行创建。然后通过调用的方式, 减少程序的重复编译, 实现编译过程中的效率最大化。
总是, AOP的编程思想就是一种横切关注点的方式, 将程序进行有效分割, 从而降低编程过程中的重复编译, 实现高效编程的特点。
3 结语
计算机编程技术属于计算机的专业领域技术, 通过对计算机语言的逻辑编辑, 从而实现一定的功能。计算机编程思想是编程技术中的理念和灵魂, 一种编程思想代表着一种编程方法的有效性。同样是实现一项功能, 能够最快最完善的实现, 就代表着一种编程思想的完善性。因此, 为了不断加强计算机编程技术, AOP编程思想诞生, 并在很大程度上实现了高效的编程方式, 通过减少代码的重复编译来提高编程效率, 实现功能的高效化。
参考文献
[1]王云修.关于计算机编程思想与AOP编程思想的研究[J].计算机光盘软件与应用, 2012 (05) :182-182.
[2]骆四毛, 周兴斌.AOP对软件复杂度的影响分析及应用[J].计算机工程与设计, 2013 (05) :1822-1825.
小学编程 篇10
VB是Visual Basic的缩写, 这是一款由微软 (Microsoft) 公司在原有Basic语言基础上研发出来的新一代面向对象的程序设计语言, 其可在Windows环境下运行。由于VB简单易学, 加之其强大的功能, 从而使得这款编程语言备受专业和业余编程爱好者的青睐。大体上可将VB的特点归纳为以下几个方面:
1.1面向对象
Basic语言、Pascal语言以及C语言等, 采用的都是面向过程的编程方法, 在这些编程语言中, 代码与数据之间存在着非常显著的分离性特征, 由此导致了程序的缺陷较多, 如可读性差、维护性差等等。而VB编程语言采用了面向对象的设计方法, 其将程序与数据封装在一个类中, 这里的类即对象, 所有对象均为可视化。在进行程序设计时, 只需通过现有的工具, 并按照具体的设计要求, 对所需的对象进行直接拖动, 并为对象设置相应的属性即可, 编程人员的主要工作是编写与对象相应的功能程序, 由此简化了编程过程, 提高了程序设计效率。
1.2事件驱动
对于图形用户而言, 事件驱动是最适合的一种编程方式, 所有的程序全部是以事件作为驱动方式运行的, 单个对象可以同时响应多个事件, 每个事件都能够驱动一段代码, 这个被事件所驱动的代码决定了对象的具体功能。
1.3集成开发
这是VB编程语言较为突出的特点之一, 其为程序的编辑提供了一个集成开发环境, 在该环境当中, 程序编辑人员可以进行界面设计、代码编写和程序调试等操作, 直至将应用程序编译成能够在Windows环境下运行的可执行文件, 并为其生成相应的安装程序。
1.4动态交换与链接
借助动态数据交换技术, 可将由VB编程语言开发出来的应用程序与Windows环境下的其它应用程序建立数据通信。而利用动态链接技术, 不仅可在VB程序当中对C语言进行调用来编写函数, 而且还可以对Windows的API (应用程序接口) 函数进行调用。
2 VB编程语言在计算机网络编程中的具体运用
计算机的大范围普及应用推动了网络技术的发展, 而VB编程语言在计算机网络中的应用, 则使网络技术发生了巨大的改变, 下面重点对VB中的Winsock控件和Active X组件在计算机网络编程中的应用进行分析。
2.1 Winsock控件的应用
Winsock控件能够与远程计算机之间建立连接, 并借助相关的通信协议, 如UDP或TCP完成数据交换, 其在网络编程中的具体应用如下:
2.1.1选择通信协议
应用Winsock控件进行计算机网络编程的过程中, 必须先选择一个协议, 这既是前提也是基础。UDP与TCP是最为主要的备选协议, 两者之间最大的差别在于连接状态不同, 前者为无连接协议, 而后者的基础是连接, 在进行相关数据的传输之前, 必须建立起有效的连接。在实际编程中, 选择何种协议, 可以由待创建的应用程序来决定。
2.1.2协议设置
在对计算机网络进行编程设计的过程中, 可以从属性窗口中选取出协议项, 然后在选出sck UDPProtocol或sck TCPProtocol。除了用以上方式进行协议设置外, 还可以通过程序代码的方式来设置Protocol属性。
2.1.3建立连接
具体分为两种情况, 一种是在TCP协议上建立连接, 另一种是在UDP协议上建立连接。前者需要先建立起一个TCP服务器, 具体步骤如下:建立EXE, 并在窗体当中放置Winsock控件, 同时将之命名为tcp Server, 随后将两个Text BOX控制置于窗体之上, 并进行代码编写及注释。当服务器建立完毕之后, 需要建立相应的客户端。后者由于不需要在计算机之间建立连接, 相对而言, 它的应用要更加简单一些, 运用UDP协议实现两个Winsock控件之间的数据发送时, 需要对两端进行连接, 并完成如下操作:可以将Remote Host属性设定为另一个计算机的名称, 并将该属性设定为另一个空间中Local Port属性值, 然后调用Bind方法, 完成对Local Port的指定。
2.2 Active X组件的应用
2.2.1 Active X文档在网络编程中的应用
Active X是VB语言中较为重要的编程之一, 其在网络编程中的运用, 使互联网在多个站点中可以形成一个统一的整体, 从而将原本分散在各个站点当中的信息集中到同一个站点。灵活性是Active X较为突出的一大特点, 所有存在于网络中的标准程序均可以使用与Active X插件有关的操作。在对Active X组件进行安装的过程中, 系统一般会根据使用者的需要自动完成, 并在无法满足需要时进行自动升级。Active X在网络编程中的应用, 为各种特殊功能的开发利用提供了条件, 确保了统一信息库的形成。实践表明, 运用Active X进行网络编程后, 使网页中的信息变得更加灵动, 色彩也更加丰富, 相关插件在网页上的应用, 能够使事件的处理变得更加简单, 给用户提供了一个十分便利的下载渠道。
2.2.2 Active X代码在网络编程中的应用
运用VB语言进行网页编写时, 客户端与处理器能够同时借助辅助代码进行网页操作, Active X代码的使用, 可以有效提高网页的浏览速度, 并为网页增添多个不同的使用界面, 同时还能完成临时事件的处理。
3结论
综上所述, 计算机网络编程是一项较为复杂且系统的工作, 可在实际操作中合理运用VB编程语言中的Winsock控件和Active X组件, 由此不但能够加快编程速度、提高编程效率, 而且还能使程序的设定更加完美, VB在计算机网络编程中的价值也随之得以体现。
摘要:文章首先简要分析了VB编程语言的特点, 在此基础上对VB编程语言中的Winsock控件和Active X组件在计算机网络编程中的应用进行论述。期望通过本文的研究能够对计算机网络编程水平的提升有所帮助。
关键词:VB编程,网络
参考文献
[1]沈国珍.计算机网络编程中VB编程的具体应用研究[J].电脑编程技巧与维护, 2016 (05) :65-66.
椭圆编程技巧 篇11
关键词:宏程序 编程技巧 数控车加工
引言
利用宏程序加工椭圆工件,可以简化编程。目前用的较多的宏程序是B类宏程序,而在一些老系统中无法采用B类宏进行编程,只能采用A类宏进行编程。本文通过一个椭圆工件的编程实例,来介绍如何使用宏程序进行椭圆工件的编程。
一、宏程序
(1)选定自变量。椭圆中的X和Z坐标均可以被定义成为自变量,一般情况下会选择变化范围大的一个作为自变量,并且要考虑函数表达式在宏程序中书写的简便,为方便起见,我们事先把与Z坐标相关的变量设为#100、#101,将X坐标相关的变量设为#200、#201等。
(2)确定自变量起止点的坐标值。必须要明确该坐标值的坐标系是相对于椭圆曲线自身的坐标系,其起点坐标为自变量的初始值,终点坐标为自变量的终止值。
(3)进行函数变换,确定因变量相对于自变量的宏表达式。
(4)确定公式曲线自身坐标系的原点相对于工件原点的代数偏移量(△X和△Z)。
(5)计算工件坐标系下的椭圆曲线上各点的X坐标值(#201)时,判别宏变量#200的正负号。以编程轮廓中的公式曲线自身坐标原点为原点,绘制对应的曲线坐标系的X′和Z′坐标轴,以其Z′坐标为分界 线,将轮廓分为正负两种轮廓,编程轮廓在X′正方向称为正轮廓,编程轮廓在X′负方向为负轮廓。
如果编程中使用的公式曲线是正轮廓,则在计算工件坐标系下的X坐标值(#201)时,宏变量#200的前面应冠以正号;如公式曲线是负轮廓,则宏变量#200的前面应冠以负号,即#201=±#200+△X。
(6)设定椭圆曲线宏程序编程模板。设Z坐标为自变量#100,X坐标为因变量#200,自变量步长为△w,△X为曲线本身坐标系原点在工件坐标系下X方向偏移量,△Z为曲线本身坐标系原点在工件坐标系下Z方向偏移量,则公式曲线段的加工程序宏指令编程模板如下。
#100=Z1 (定义自变量的起点Z坐标)
WHILE [#100 GE Z2]DO 1 (加工控制)
#200=f(#100) (建立自变量与因变量函数关系式)
#201=±#200+△X (计算曲线上点在加工坐标系的X坐标)
#101=#100+△Z(计算曲线上点在加工坐标系的Z坐标)
G01X[2*#201]Z[#101]F(曲线加工)
#100=#100-△w(自变量减小一个步距)
END1(加工结束)
二、椭圆曲线编程技巧
运用以上椭圆曲线宏程序模板,就可以快速准确实现零件公式曲线轮廓的编程和加工。下面介绍一个具体应用示例。加工图1所示椭圆轮廓,棒料Φ45号钢材,编程零点放在工件右端面。
如图1(1)分析零件尺寸,确定正负轮廓及代数偏移量(△X和△Z)。
由图1可知,该图中的椭圆曲线为凸状,编程轮廓在X′轴正方向为正轮廓,在计算工件坐标系下的X坐标值(#3、#201)时,宏变量#200的前面应冠以正号,公式曲线自身坐标系的原点相对于工件原点的偏移量为(X0,Z-60)。
(2)零件的外轮廓粗精加工参考程序如下(粗加工用直角方程,精加工用极坐标方程)。
O9999;
N10 G99 S800 M03;(启动主轴正转)
N20 T0101;(选用1号刀具)
N30 G0 X41 Z2;(靠近工件定位)
N40 G1 Z-65 F0.15;(粗加工开始)
N50 G0 X42 Z2;
#1=20*20*4;(4a2) 椭圆直径
#2=60;(b)椭圆长度
#3=35;(X初值(直径值))
WHILE[ #3 GE 0]DO1;(粗加工控制)
#100= #2*SQRT[1-#3*#3/#1];(Z)
#101= #100-60+0.2
G0 X[#3+1];(进刀)
G1 Z[#101] F0.15;(切削)
N60G0 U1;(退刀)
N70Z2;(返回)
#3= #3-4;(下一刀切削直径)
END1;
#10=0.8;(X向精加工余量)
#11=0.1;(Z向精加工余量)
WHILE[#10 GE 0] DO1;(半精、精加工控制)
M03S1200;(进刀,准备精加工)
G0 X0Z0;
#20=0;(角度初值)
WHILE [#20 LE 90] DO2;(曲线加工范围)
#200=2*20*SIN[#20];(X)
#201= #200+#10
#100=60*COS[#20];(Z)
#101= #100+#11-60
G1X[#201]Z[#101] F0.1;(曲线精加工)
#20= #20+1;
END2;
G1 Z-65;
G0 X45Z2;
#10= #10-0.8;
#11= #11-0.1;
END1;
G0 X100Z200;
M30;
三、数控加工
在一般的数控加工中,我们加工椭圆曲线时,有一些明显的刀痕,达不到零件所要求的表面质量。在实际加工中仔细观察发现,由于刀具的选择、切削用量的确定会影响曲线的表面加工质量。
(1)刀具选择。安装调整方便、刚性好、耐用度和精度高。在满足加工要求的前提下,尽量选择较短的刀柄,以提高刀具加工的刚性。刀具相对于工件作进给运动时,在加工表面留下了切削层残留面积,其形状对刀具几何形状的反映。减小进给量、主偏角、副偏角以及增大刀刃圆弧半径,均可减小残留面积的高度。
(2)切削深度ap。数控车床粗加工时,在机床能力范内主要考虑工效;为了保证零件的加工精度和表面粗糙度,一般应留较小的余量进行精加工。
(3)切削速度v。提高v也是提高生产率的一个措施,但v与刀具耐用度的关系比较密切。切削速度与加工材料也有很大关系,不同材料选用不同的切削速度。粗加工时慢速大切削量,精加工时高速小切削量。
(4)主轴转速n(r/min)。主轴转速一般根据切削速度v来选定。计算公式为:v=∏nd/1000。数控机床的控制面板上一般备有主轴转速修调(倍率)开关,可在加工过程中对主轴转速进行整倍数调整。
(5)进给速度vF。vF应根据零件的加工精度和表面粗糙度要求以及刀具和工件外径和材料来选择。当工件的质量要求能够得到保证时,为提高生产效率,可选择较高的进给速度。当加工精度,表面粗糙度要求高时,进给速度应选小些。实际加工(如图2)所示零件表明,合理选择刀具、切削用量和使用宏程序编辑,可减轻加工刀痕,达到表面质量要求。而且从上面的程序可以看出,该程序很短,编程工作量很小。另外若改变变量的最初定义值,就可以改变曲线的循环次数,非常方便。这种方法在周期性循環曲线的数控加工中,是一种比较完美的编程方法。
(6)运用数控车加工,可得到图(如图2)所示零件。
如图2
四、结束语
本文主要是为了阐述椭圆曲线宏程序功能在实际应用时所需遵循的编程原则与思路。在编制宏程序时,要牢记变量的种类及特性,不可乱用。因为局部变量、系统变量、公共变量的用途和性质各不相同,另外对程序的分析还不难发现:若零件中椭圆长半轴半径与短半轴半径改变,则只需将程序中参数变量#100、#101与#200、#201改变即可,而不需再对程序作其它任何改动,这一点相对于一些自动编程软件(如CAXA、PRE、MasterCAM、UG等)则要灵活得多;充分体现用户宏功能是用户提高数控机床性能的一种特珠功能。
参考文献:
[1]宋小春,张木青主编.数控机床编程与操作.广东经济出版社,2005版.
[2]谢晓红主编. 数控车削编程与加工技术.电子工业出版社,2005版.
小学编程 篇12
Visual Basic是由微软公司推出的一套完整的Windows系统软件开发工具, 可用于开发Windows环境下的各类应用程序, 是一种可视化、真正面向对象、采用事件驱动方式的结构化高级程序设计语言和工具的完美集成。它编程简单、方便、功能强大, 具有与其它语言及环境的良好接口, 不需要编程开发人员具备C/C++或者Turbo Pascal语言知识和特别高深的专业知识, 只要懂得Windows的界面及其基本操作, 就可以迅速上手, 而VB在程序界面设计、多媒体开发方面更是独具优势。因此非常适合像我们职业学校学生这样的初学者来选择学习。
2 学好visual basic的重要性
visual basic作为一种强大的语言, 你所能想到的编程任务, 它基本都能完成。从设计新型的用户界面到利用其它应用程序的对象;从处理文字图象到使用数据库;从开发个人或小组使用的小工具, 到大型企业应用系统, 甚至通过Internet的遍及全球分布式应用程序, 都可在Visual Basic提供的工具中各取所需。作为计算机专业的一名学生, 作为一名编程人员, 学好visual basic, 利用visual basic可以解决在软件使用中所遇到的问题, 改进现有软件, 可以为自己找到一份理想的工作添加重要的砝码, 有利于在求职道路上谋得一个好的职位。学习编程还能锻炼思维, 使我们的逻辑思维更加严密;能够不断享受到创新的乐趣, 将一直有机会走在高科技的前沿, 因为程序设计本身是一种创造性的工作。
3 学好Visual Basic的方法
3.1 注重基本概念的理解
在Visual Basic学习过程中, 我们在看一本程序设计的书时, 看到的无非都是一些变量类型、函数、条件语句、循环语句等概念。对于我们初学者来说一定要深入理解这些概念, 在理解的基础上应用, 只有这样我们才能做到对编程的理解。在教学过程中我非常重视学生对这些基本概念的理解, 在学习数据的类型这节中, 我常举下面的例子来告诉学生理解基本概念的重要性:比如说有两个数据123和456, 如果它们是整型数据类型, 那么在进行“+”操作时结果就是579;但是如果它们是字符串数据类型, 那么在进行“+”操作时结果就是123456, 可见不同类型的数据得到的结果是不同的。显然对于初学者来说对概念的理解是相当重要的, 我们只有把这些基本的概念理解透了, 才能在以后的编程过程中做到举一反三, 触类旁通。
3.2 遇到问题多思考
在学习Visual Basic过程中, 我们会遇到很多的问题, 那么在遇到这些问题时首先想到的不是去问他人, 而是自己先好好想一想, 试着解决这个问题。为什么先要自己想一想呢, 因为当你自己想过好多办法, 解决一个问题, 可能解决的办法并不是最好的办法, 但绝对有利于你自己的提高, 一个人水平的提高主要是通过独立的解决问题来得到的。如果自己最后还是没有解决问题, 但你自己思考过了, 最后别人帮你解决, 你也会想得很深入, 以后再碰到类似的问题, 也就能自己找到方法解决了。比如还是上面的那个问题, 有好多学生会问为什么它们的结果不一样呢?这时候我们就要思考, 结果不同的原因是什么?它们的不同点究竟在什么地方?带着这样的问题, 我们会发现它们惟一区别就是在定义时的数据类型不同, 知道这个不同点后我们就会明白, 数据类型是整型时“+”操作就是执行四则运算的加法操作, 而数据类型是字符串时“+”操作就是执行字符之间的连接操作, 也就是字符串之间“&”操作。这就是我们思考的结果, 以后再遇到这样相同的问题或相似的问题时, 就能很轻松地解决了, 同时也很好地提高了自己的编程水平。
3.3 自己动手编写程序
学好Visual Basic的一个重要方法就是自己动手编写程序, 不管这样的程序是简单的还是复杂的。因此在程序设计入门阶段我们要经常自己动手抄写或编写一些小程序, 亲自动手进行程序设计是创造性思维应用的体现, 是培养逻辑思维的好方法。因此一定要多动手编写程序, 而且要从小程序开发开始, 逐渐提高写程序的能力。Visual Basic的重要特点就是它的可视化, 在教学过程中, 每学习一个知识点我都要求学生自己上机调试运行程序, 看看最终的结果是怎样的一个状态, 是否与自己想象中的结果一样, 从而培养他们的动手能力和养成他们独立完成事件的习惯。在讲课过程中, 在讲到文本框中可以输入密码时, 我跟学生们讲到, 这就相当于我们输入自己银行卡的密码一样, 别人看到的全都是“*”号, 只要自己知道这些“*”号代表什么数字。然后我将前面学习过的按钮事件跟文本框结合起来, 要求学生自己编写一个银行卡的密码程序, 并上机调试运行, 学生在这一过程中既养成了自己动手编写程序的习惯, 又充分理解消化了所学习的知识点, 真是一举两得。
作为一个初学者在掌握了以上几种学习方法后, 一定会对自己今后在编程程序学习方面有很大的帮助。当然学习编程是符合“理论→实践→再理论→再实践”的一个认识过程。一开始要具有一定的计算机理论基础知识, 包括编程所需的数学基础知识, 具备了入门的条件, 就可以开始编程的实践, 从实践中可以发现问题需要加强计算机理论知识的再学习。程序人人皆可编, 但当你发现编到一定程度很难再提高的时候, 就要回头来学习一些计算机科学和数学基础理论。学过之后, 很多以前遇到的问题都会迎刃而解, 使人有豁然开朗之感。因此在学习编程的过程中要不断地针对应用中的困惑和问题深入学习数据结构、算法、计算机原理、编译原理、操作系统原理、软件工程等计算机科学的理论基础和数理逻辑、代数系统、图论、离散数学等数学理论基础知识。这样经过不断的学习, 再努力地实践, 编程水平一定会不断提高到一个新高度。
参考文献
[1]刘钢, 杨崇礼, 等.Visual Basic6.0程序设计实用教程[M].北京:中国民航出版社, 2000.