【编程】中小学GoC编程示例
欢迎关注我的专栏( つ•̀ω•́)つ【人工智能通识】
更多相关文章请点击2019年7月专题
小孩子能学编程吗?我说的编程不是Scratch那种,而是真正的写代码,C++代码。
关于GoC编程
GoC是C语言的扩展,是专门针对小学和初中学生开发的趣味编程入门语言。
GoC由从事中小学信息学教学30多年的江涛老师开发,他也是国内最著名的奥林匹克信息学教练之一。
GoC的特点就是简单易上手,并且保留了C/C++的全部语法结构。
关于GoC编程,可以淘宝购买江涛老师撰写的《魔法学院的奇幻之旅》一书,内容有趣易学。
关于实验舱X平台(原驯兽师学院已迁移到X平台)
实验舱X平台 x.shiyancang.cn
这是基于江涛老师GoC语言Web版开发的在线学习平台,功能简单,专注于让小孩子能够快速上手GoC编程,接触到真正的代码概念。
使用流程:
点击保存按钮保存当前代码,或者点击查看命令浏览常用命令。
学习编程的目的是驯服计算机,控制计算机,掌握计算机,利用计算机这个强大的工具增强青少年的学习能力、认知能力、逻辑能力。
下面是一些简单的入门案例,如果您和孩子都没有正式的编程基础,建议参考《魔法学院的奇幻之旅》进行学习和练习。
目前驯兽师学院网站的视频教程正在制作中,很快就会上线了,而且是全免费开放。
多边形外角和是360度
int main() {
p.moveTo(-150,0);
for(int i=0;i<10;i++){
p.fd(300).bk(250);//修改250查看变化
p.rt(360/10);
}
}
绘制五角星
int main() {
p.moveTo(-200,200);
p.rt(90);
for(int i;i<5;i++){
p.fd(500);
p.rt(360/5*2);
}
return 0;
}
绘制多角星
int main() {
int n=17;//角数
int len=150;//每条线长度
int jiao=15;//角a
p.moveTo(0,len);
for(int i=0;i
绘制内连多角星
int main() {
int len1=300;
int len2=150;
int n=6;
for(int i=0;i
彩色方块阵列
int gezi(int size,int n){
int offset=size*n/2-size/2;
for(int col=0;col
数点计算圆周率
int main()
{
p.hide();
p.rr(200*2, 200*2, 8); //在这里简书400是敏感词,所以改为200*2
for(int i=0;i<200;i++){
p.moveTo(rand()%400-200,rand()%400-200);
p.oo(10,5);
}
p.moveTo(0,0).o(200,12);
}
数格子计算圆周率
int main()
{
p.rr(200*2,200*2,8);
p.oo(200,12);
int gezi=20; //每个格子的边长大小
int huafen=400/gezi; //横向、竖向划分多少格子
for(int x=0;x
多边形边长计算圆周率
int main(){
double px=-300;
double py=0;
p.moveTo(px,py);
int n=10;//修改这个边数提高计算精度
int len=80;
p.rt(90.00/n);
for(int a=0;a
树枝
int aa(double len){
if(len>10){
double len2=len*0.7; //简书中7和five在一起是敏感词,所以这里用7
double dis=len*0.25;
p.fd(len).bk(dis);
p.rt(30).fd(len2).o(dis);
p.bk(len2);
p.lt(60).fd(len2).o(dis);
p.bk(len2);
p.rt(30).fd(dis).rt(10);
aa(len2);
}
}
int main() {
p.moveTo(0,-300);
p.speed(10);
p.hide();
aa(200);
return 0;
}
分形树
int aa(double len){
if(len>20){
double a=25*(0.5+rand()%100/100.0*0.5);
double len2=len*(0.7+rand()%100/100.0*0.1);
p.fd(len);
p.rt(a).fd(len2);
aa(len2);
p.bk(len2);
p.lt(a*2).fd(len2);
aa(len2);
p.bk(len2);
p.rt(a);
p.bk(len);//一定要回到原点
}
}
int main() {
p.speed(1000);
p.moveTo(0,-300);
aa(120);
return 0;
}
谢尔宾斯基三角
int sierp(double len){
for(int n=0;n<3;n++){
p.fd(len).rt(120);
}
if(len>30){
double len2=len/2.0;
sierp(len2);//左下三角形
p.fd(len2);
sierp(len2);//左上三角形
p.rt(120).fd(len2).lt(120);
sierp(len2);//右侧三角形
p.lt(120).fd(len2).rt(120);//回到原点
}
}
int main() {
p.speed(9);
p.moveTo(-200,-200);
sierp(500);
return 0;
}
科赫雪花
int koch(double len){
if(len>30){
double len2=len/3.0;
koch(len2);
p.lt(60);
koch(len2);
p.rt(120);
koch(len2);
p.lt(60);
koch(len2);
}else{
p.fd(len);
}
}
int main() {
p.speed(6);
p.moveTo(-200,100).rt(90);
for(int n=0;n<3;n++){
koch(400);
p.rt(120);
}
return 0;
}
更多文章可以观看我的小文集青少年编程
欢迎关注我的专栏( つ•̀ω•́)つ【人工智能通识】
更多相关文章请点击2019年7月专题
每个人的智能新时代
如果您发现文章错误,请不吝留言指正;
如果您觉得有用,请点喜欢;
如果您觉得很有用,欢迎转载~
END
版权声明:
作者:zhangchen
链接:https://www.techfm.club/p/46523.html
来源:TechFM
文章版权归作者所有,未经允许请勿转载。
共有 0 条评论