友情提示:380元/半年,儿童学编程,就上码丁实验室。
软件系统的灵魂是算法,这个是宝爸一直认为的沧桑正道。有一天,宝爸在和朋友交流对于儿童编程课程的设置时,朋友说对于scratch这类图形化编程感觉不像正儿八经的编程,没啥意思。在此,宝爸借花献佛,给大家普及一下儿童编程的意义和算法。
儿童编程,首先培养的是儿童对于编程的兴趣,其次是编程中的逻辑思维与理解创新能力。对于C++这些主流的编程语言,在学习的过程中面对一连串的英文字母是极端枯燥的,不适合儿童学习。子曰:因材施教。scratch等图形化编程语言,作为儿童编程的启蒙和入门,正是解决了这一难点。其次,scratch照样能够编写经典算法,同样,即使是简单的图形化语言,学得不好,照样解决不了实际问题。
那么,对于说图形化编程没难度,没意思的朋友,那是因为碰到的讲师水平有限。今天,宝爸给大家演示一下利用Scratch求解信息技术经典算法–冒泡算法。
首先,随机输入5个不重复的数字。
其次,利用冒泡算法进行从小到大的自动排序。
上述的为Scratch的升序冒泡源码,宝爸的百度云–>示例代码中可以下载到源代码。
其他语言示例代码:
c语言程序示例如下
#include <stdio.h>
#define SIZE 8
void
bubble_sort(
int
a[],
int
n);
void
bubble_sort(
int
a[],
int
n)
{
int
i, j, temp;
for
(j = 0; j < n - 1; j++)
for
(i = 0; i < n - 1 - j; i++)
{
if
(a[i] > a[i + 1])
{
temp = a[i];
a[i] = a[i + 1];
a[i + 1] = temp;
}
}
}
int
main()
{
int
number[SIZE] = {95, 45, 15, 78, 84, 51, 24, 12};
int
i;
bubble_sort(number, SIZE);
for
(i = 0; i < SIZE; i++)
{
printf
(
"%dn"
, number[i]);
}
return
0;
}
def
bubble_sort(nums):
for
i
in
range
(
len
(nums)
-
1
):
# 这个循环负责设置冒泡排序进行的次数
for
j
in
range
(
len
(nums)
-
i
-
1
):
# j为列表下标
if
nums[j] > nums[j
+
1
]:
nums[j], nums[j
+
1
]
=
nums[j
+
1
], nums[j]
return
nums
print
(bubble_sort([
45
,
32
,
8
,
33
,
12
,
22
,
19
,
97
]))
# 输出:[8, 12, 19, 22, 32, 33, 45, 97]
#include <iostream>
using namespace std;
template<typename T>
//整数或浮点数皆可使用
void bubble_sort(T arr[],
int
len
)
{
int
i, j; T temp;
for (i = 0; i <
len
- 1; i++)
for (j = 0; j <
len
- 1 - i; j++)
if (arr[j] > arr[j + 1])
{
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
int
main()
{
int
arr[] = { 61, 17, 29, 22, 34, 60, 72, 21, 50, 1, 62 };
int
len
= (
int
) sizeof(arr) / sizeof(*arr);
bubble_sort(arr,
len
);
for (
int
i = 0; i <
len
; i++)
cout << arr[i] <<
' '
;
cout << endl;
float arrf[] = { 17.5, 19.1, 0.6, 1.9, 10.5, 12.4, 3.8, 19.7, 1.5, 25.4, 28.6, 4.4, 23.8, 5.4 };
len
= (
int
) sizeof(arrf) / sizeof(*arrf);
bubble_sort(arrf,
len
);
for (
int
i = 0; i <
len
; i++)
cout << arrf[i] <<
' '
;
return 0;
}