码丁实验室,一站式儿童编程学习产品,寻地方代理合作共赢,微信联系:leon121393608。
软件系统的灵魂是算法,这个是宝爸一直认为的沧桑正道。有一天,宝爸在和朋友交流对于儿童编程课程的设置时,朋友说对于scratch这类图形化编程感觉不像正儿八经的编程,没啥意思。在此,宝爸借花献佛,给大家普及一下儿童编程的意义和算法。
儿童编程,首先培养的是儿童对于编程的兴趣,其次是编程中的逻辑思维与理解创新能力。对于C++这些主流的编程语言,在学习的过程中面对一连串的英文字母是极端枯燥的,不适合儿童学习。子曰:因材施教。scratch等图形化编程语言,作为儿童编程的启蒙和入门,正是解决了这一难点。其次,scratch照样能够编写经典算法,同样,即使是简单的图形化语言,学得不好,照样解决不了实际问题。
那么,对于说图形化编程没难度,没意思的朋友,那是因为碰到的讲师水平有限。今天,宝爸给大家演示一下利用Scratch求解信息技术经典算法–冒泡算法。

首先,随机输入5个不重复的数字。

其次,利用冒泡算法进行从小到大的自动排序。

上述的为Scratch的升序冒泡源码,宝爸的百度云–>示例代码中可以下载到源代码。
其他语言示例代码:
c语言程序示例如下
#include <stdio.h>#define SIZE 8void 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 numsprint(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;}
