一、程序控制结构
程序控制结构是指以某种顺序执行的一系列动作,用于解决某个问题。理论和实践证明,无论多复杂的算法均可通过顺序、选择、循环3种基本控制结构构造出来。每种结构仅有一个入口和出口。由这3种基本结构组成的多层嵌套程序称为结构化程序。
二、结构化程序设计
(一)结构化基本原则
1、自顶向下
程序设计时,应先考虑总体,后考虑细节;先考虑全局目标,后考虑局部目标。不要一开始就过多追求众多的细节,先从最上层总目标开始设计,逐步使问题具体化。
2、逐步求精
逐步求精是人类解决复杂问题时采用的基本方法,也是许多软件工程技术的基础。将现实问题经过几次抽象(细化)处理,最后到求解域中只是一些简单的算法描述和算法实现问题。即将系统功能按层次进行分解,每一层不断将功能细化,到最后一层都是功能单一、简单易实现的模块。求解过程可以划分为若干个阶段,在不同阶段采用不同的工具来描述问题。在每个阶段有不同的规则和标准,产生出不同阶段的文档资料。
3、模块化
一个复杂问题,肯定是由若干稍简单的问题构成。模块化是把程序要解决的总目标分解为子目标,再进一步分解为具体的小目标,把每一个小目标称为一个模块。
4、限制使用goto语句
在程序比较简单是用goto语句是比较灵活,但是当程序比较复杂时很容易造成程序流程的混乱。利用goto语句对以后的后别人看程序是很难理解。调试程序的过程也会变得很困难。
注意:C语言和Java语言保留了goto关键字,而Python语言没有goto关键字。
(二)三种流程控制结构
1、顺序结构(Sequence Structure)
2、选择结构(Selection Structure)
3、循环结构(Loop Structure)
(1)前测试条件循环
前测试条件循环:先检票后上车(有可能一次循环操作也不执行)
(2)后测试条件循环
后测试条件循环:先上车后检票(无论如何至少要执行一次循环操作)
注意:C语言和Java语言提供了前测试和后测试循环结构,但是Python语言只有前测试循环结构
二、顺序结构
有一个入口和一个出口,按从上向下依的顺序执行各语句。
(一)顺序结构示意图
(二)顺序结构案例演示
任务1、计算三角形面积
利用海伦公式计算三角形面积
三边为a , b , c a, b, ca,b,c,半周长 p = a + b + c 2 p=\displaystyle \frac{a+b+c}{2}p=2a+b+c
面积a r e a = p ( p − a ) ( p − b ) ( p − c ) area=\displaystyle \sqrt{p(p-a)(p-b)(p-c)}area=p(p−a)(p−b)(p−c)
编写程序 - 计算三角形面积.py
# -*- coding: utf-8 -*-
"""
功能:计算三角形面积
作者:华卫
日期:2020年11月9日
"""
from math import sqrt
a = float(input('a = '))
b = float(input('b = '))
c = float(input('c = '))
p = (a + b + c) / 2
area = sqrt(p * (p - a) * (p - b) * (p - c))
print('area = {:.2f}'.format(area))
运行程序,查看结果
再运行程序,查看结果
任务2、求解一元二次方程
对于一元二次方程a x 2 + b x + c = 0 ax^2+bx+c=0ax2+bx+c=0
假设二次项系数 a ≠ 0 a≠0a=0
判别式 Δ = b 2 − 4 a c \Delta=b^2-4acΔ=b2−4ac
x 1 = − b + Δ 2 a \quad x_1=\displaystyle \frac{-b+\sqrt{\Delta}}{2a}x1=2a−b+Δ
x 2 = − b − Δ 2 a \quad x_2=\displaystyle \frac{-b-\sqrt{\Delta}}{2a}x2=2a−b−Δ
编写程序 - 求解一元二次方程.py
# -*- coding: utf-8 -*-
"""
功能:求解一元二次方程
作者:华卫
日期:2020年11月9日
"""
from math import sqrt
a = float(input('a = '))
b = float(input('b = '))
c = float(input('c = '))
delta = b**2 - 4 * a * c
x1 = (-b + sqrt(delta)) / (2 * a)
x2 = (-b - sqrt(delta)) / (2 * a)
print('x1 = {}\nx2 = {}'.format(x1, x2))
运行程序,查看结果
再运行程序,查看结果
(三)顺序结构小结
顺序结构很简单,按照语句书写次序,依次从上往下执行。上述两个案例,大家可以看到,遇到不能求解的情形,就会抛出一个错误(ValueError……),那并不是我们想要的结果。
我们需要事先对能否求解进行判断,如果能求解,那么我们就计算给出结果;如果不能求解,我们就给出相应提示,告诉用户不能求解,这样处理,对用户比较友好。怎么根据情况不同来执行不同的操作呢?这就是我们下一讲的内容——选择结构。
本文分享 CSDN - howard2005。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。