威海市望海园中学编程社团展示——我和编程进行时

临近期末,编程社团的活动也要告一段落了。这学期我们通过学习C++,了解了编程和算法的基本概念。

算法就是完成一项任务的步骤。编程是用计算机的语言实现一个算法。

我们还学习了如何使用C++进行输入输出,以及C++中常用的数据类型。最重要的是,我们学习了程序设计的三种基本结构:

  • 顺序结构
  • 分支结构
  • 循环结构

下面请几位同学分享一下如何使用这三种基本结构进行程序设计。

顺序结构

顺序结构是程序设计中最简单的一种,只要按照解决问题的顺序写出相应的指令就行,它的执行顺序是自上而下,依次执行。

比如我们每天的任务就是:起床->洗漱->吃饭->上学->放学回家->写作业->洗漱->睡觉,按照这个顺序一步步进行的。

使用顺序结构时要注意的是:某些步骤是不能前后颠倒的,比如说上学和放学回家。

那么我们可不可以只用顺序结构来编写程序解决问题呢?当然可以!比如经典的鸡兔同笼问题:

鸡兔同笼是中国古代的数学名题之一。大约在1500年前,《孙子算经》中就记载了这个有趣的问题。书中是这样叙述的:

今有雉兔同笼,上有三十五头,下有九十四足,问雉兔各几何?

这四句话的意思是:有若干只鸡兔同在一个笼子里,从上面数,有35个头,从下面数,有94只脚。问笼中各有多少只鸡和兔?

算这个有个最简单的算法。(总脚数-总头数×鸡的脚数)÷(兔的脚数-鸡的脚数)= 兔的只数,即:

兔子数量:(94-35×2)÷2=12 鸡的数量:35-12 = 23

解释:让兔子和鸡同时抬起两只脚,这样笼子里的脚就减少了总头数乘以2只,由于鸡只有2只脚,所以笼子里只剩下兔子的两只脚,再除以2就是兔子数。

用C++代码实现就是:

#include <iostream>
using namespace std; 
int main(int argc, char** argv) {
	int h, f;
	cin >> h >> f;
	int r = (f - h * 2) / 2;
	int c = h - r;
	cout << r << " " << c;
	return 0;
}

运行程序后,输入:

35 94

输出:

12 23

即兔子有12只,鸡有23只。

实现了上述程序,以后我们再计算鸡兔同笼问题时,只要输入总头数和总脚数,就可以计算出兔的数量和鸡的数量,这就是程序设计的魅力。

分支结构

顺序结构的程序虽然能解决问题,但不能做判断再执行。举个例子,我们出门需不需要带雨伞,取决于天是否下雨:如果下雨,需要带雨伞出门;否则不需要带雨伞。对于要先做判断再选择的问题就要使用分支结构。

那么使用分支结构可以解决什么问题呢?我们小学时,成绩是根据分数划分等级的,一共有A、B、C、D,四个等级。那么我们可以使用分支结构编写程序,实现输入一个分数,输出该分数对应的等级。程序如下:

#include <iostream>
using namespace std; 
int main(int argc, char** argv) 
{
	int s;
    cin >> s;
	if(s >= 85)
	{
	    cout << 'A' << endl;
	}
	else if(s >= 70)
	{
	    cout << 'B' << endl;
	}
	else if(s >= 60) 
	{
	    cout << 'C' << endl;
	}
	else
	{
	    cout << 'D' << endl;
	}
	return 0;
}

运行程序后,输入:

94

输出:

A

实现了上述程序,我们就可以根据一个分数快速地计算出成绩等级,是不是很方便?

循环结构

光有上面两种基本结构是不够的,我们知道计算机的计算速度是非常快的。

中国最快的超级计算机:神威·太湖之光超级计算机(Sunway TaihuLight),是由国家并行计算机工程技术研究中心研制、安装在国家超级计算无锡中心的超级计算机。它安装了40960个中国自主研发的“申威26010”众核处理器,该众核处理器采用64位自主申威指令系统,峰值性能为12.54京次/秒,持续性能为9.3京次/秒(1京为1亿亿) 。

在程序设计过程中,要想充分地利用计算机的性能,循环结构是少不了的。

例如,我们想知道1~10000所有数的平方数,如果让人去计算的话,可能要很久才能得到所有的答案;但使用用循环结构的话,只需要两行代码就能搞定:

#include <iostream>
using namespace std; 
int main(int argc, char** argv) 
{
	for(int i = 1; i <= 10000; i ++)
	    cout << i * i << ' ';
	return 0;
}

除此之外,我们还可以利用循环结构来判断一个大整数是否为质数:

#include <iostream>
using namespace std; 
int main(int argc, char** argv) 
{
    int n;
    cin >> n;
	for(int i = 2; i <= n - 1; i ++)
	{
	    if(n % i == 0)
	    {
	        cout << "No" << endl;
	        return 0;
	    }
	}
	cout << "Yes" << endl;
	return 0;
}

循环结构还有很多其它的妙用,这就需要你我继续学习去发掘啦!

总结

经过一个学期的学习,我们学到了一些关于编程的知识,对编程有了一个初步的了解,这为我们日后学习算法打下了基础。有很多同学从中发现了编程的乐趣——编程学习并不是枯燥乏味的,它也可以锻炼你的各项能力。同学们也意识到了学习编程的重要性,编程是大势所趋,能对每个人的未来提供巨大的帮助。希望大家在以后的学习过程中再接再厉!大家加油!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

少儿编程乔老师

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值