- 小学生C++创意编程(视频教学版)
- 刘凤飞
- 880字
- 2024-12-31 19:30:05
第7课 星号金字塔(双变量累加)
![](https://epubservercos.yuewen.com/1C2139/31397789403525706/epubprivate/OEBPS/Images/Figure-P62_4962.jpg?sign=1739369681-HJ8cbl2aiLvOxImZlBTTQMA0IPVKsWL4-0-25d363803c1e7f8cfade0760a97157b3)
有这样一座星号金字塔,每一层都由奇数个星号组成。第一层1个,第二层3个,第三层5个,以此类推。
![](https://epubservercos.yuewen.com/1C2139/31397789403525706/epubprivate/OEBPS/Images/Figure-P62_28763.jpg?sign=1739369681-a2LvqW1hxqBgAXbaJBf33IXCYbd8PFsG-0-2be0fe4b069c8dfb2ba5e0129eea47b6)
现在我们需要计算出这个星号金字塔一共有多少个星号,试着编写程序来完成吧!
温故知新
列等式计算。
![](https://epubservercos.yuewen.com/1C2139/31397789403525706/epubprivate/OEBPS/Images/Figure-P62_28765.jpg?sign=1739369681-r6dOLrFvlPanjuus3gs51eTMhwjSPkaE-0-f5a3a5f0f3b86019a06f2550dec70eaf)
(1)"1+3+5+7+9=":这是字符串,列了一个字符串等式。
(2)1+3+5+7+9:这是进行5个数字的加法运算。
(3)多个<<将内容拼接输出。
![](https://epubservercos.yuewen.com/1C2139/31397789403525706/epubprivate/OEBPS/Images/Figure-P63_28767.jpg?sign=1739369681-mMLPaNDZ3b0Du1W3Hbn6bhbPhHC8J5vf-0-89e3668deea192953eb3c3db4b77101a)
累加求和
挑战一个有难度的计算,如果星号一共有100层,那么一共有多少个星号?将数字一个一个地写出来就太烦琐了,需要找到简便的方法。
之前计数的时候是每次加1,现在的求和是+1、+3、+5、+7、+9…每次加的数字都不同。
![](https://epubservercos.yuewen.com/1C2139/31397789403525706/epubprivate/OEBPS/Images/Figure-P63_28768.jpg?sign=1739369681-8nZE4apyrGevwDwWBG3IRBbwdzYY8pSo-0-54c5b71fef5ba38418ff8b941ce30e1d)
(1)sum = 0:声明了一个变量sum,用它来存储星号的总数,计算前初始值是0。
(2)将每层的星号数量加起来:
![](https://epubservercos.yuewen.com/1C2139/31397789403525706/epubprivate/OEBPS/Images/Figure-P64_28769.jpg?sign=1739369681-kPgxaXmN3Cgmp8B4QHHi6pPY5S8PkUtM-0-87867f638981ba5f80d4a078930d815b)
划重点
观察sum的变化,每行代码执行后,sum值都发生了变化。
![](https://epubservercos.yuewen.com/1C2139/31397789403525706/epubprivate/OEBPS/Images/Figure-P64_28771.jpg?sign=1739369681-TQl9652pICQGo6Sf3qg8TnT3ER8qAthJ-0-93b04c991ff1b957689d6520e3b29151)
双变量
把后面加的数字1、3、5、7、9换成变量i的话,sum = sum + i的意思就是把原来sum的值加上i的值,再赋值给sum得到一个新的值。如果sum从0开始,就相当于把所有的i都加起来了,sum就是所有i的总和。
再感受一番累加,从0开始+1、+3、+5、+7、+9。
sum = 0 sum = sum + 1; 0 + 1 = 1 (完成加1) sum = sum + 3; 1 + 3 = 4(计算的结果继续加3) sum = sum + 5; 4 + 5 = 9(计算的结果继续加5) sum = sum + 7; 9 + 7 = 16(计算的结果继续加7) sum = sum + 9; 16 + 9 = 25(计算的结果继续加9)
星号的数量统计,不仅sum有规律,后面增加的数字也有规律,它们都是依次增加的奇数。尝试将后面的加数也用一个变量来替代。
![](https://epubservercos.yuewen.com/1C2139/31397789403525706/epubprivate/OEBPS/Images/Figure-P65_28776.jpg?sign=1739369681-IpQx1klWqinLXmTrGpw19ZWUEJBdUZTr-0-3f2223377d9e05eeeef6d3ca0971a49c)
每次累加后,i都增加2,将i = i + 2写入程序。
![](https://epubservercos.yuewen.com/1C2139/31397789403525706/epubprivate/OEBPS/Images/Figure-P65_28777.jpg?sign=1739369681-1M02TghqQuvlFrnCYovI8To2tZCgNodn-0-cb23e1fe7465f66bca149166e9c6f332)
![](https://epubservercos.yuewen.com/1C2139/31397789403525706/epubprivate/OEBPS/Images/Figure-P66_28778.jpg?sign=1739369681-JGdCSx8K06wEkfT0yNP8lIde2OzGic5O-0-96113fa7f9c44dd38c6d1a1d7b8ffbc8)
巩固练习
(1)以下哪个式子的计算结果和程序输出结果相等?( )
![](https://epubservercos.yuewen.com/1C2139/31397789403525706/epubprivate/OEBPS/Images/Figure-P66_28780.jpg?sign=1739369681-pgBrNG0QPxRyeMZTDY8BqCQczB526Wl9-0-8a2e4421dfb856fadcbd2396f641e5ba)
A.0 + 1 + 3 + 6 + 9 =
B.0 + 4 + 10 + 19 =
C.0 + 1 + 4 + 10 + 19 =
D.0 + 1 + 4 + 10 =
(2)星号塔每层都有偶数个星号,第一层2个,第二层4个,第三个6个,第四层8个,第五层10个。同样使用之前的程序代码计算总星号数,但是程序有些小问题,需要你来修改一下。
![](https://epubservercos.yuewen.com/1C2139/31397789403525706/epubprivate/OEBPS/Images/Figure-P67_28782.jpg?sign=1739369681-eGIGNcrSnBOKNaqttNswKQsoP7vm1FsU-0-76db4ece3ecb07723a57db1e460599ec)
(3)运用双变量累加的方式,求1+2+3+4+5+6+7+8+9+10的运算结果。
探索思考
100层星塔中星号的总数还没有计算出来,留给你探索一番。这里需要用到循环,试着运用我们之前学习的while (true) { }来完成吧!
![](https://epubservercos.yuewen.com/1C2139/31397789403525706/epubprivate/OEBPS/Images/Figure-P67_28784.jpg?sign=1739369681-POTkr5tjHNXiqqowUuXmzpfhb1bVztRc-0-acdff656fd6441ef4c28e2eea3697946)