编程基础/模块化编程
模块化编程是一种软件设计技术,它强调将程序的功能分离成独立的、可互换的模块,以便每个模块包含执行所需功能的一个方面所需的一切。[1]
编程最重要的概念之一是模块化 - 将代码行分组在一起,以创建可互换的片段,这些片段可以根据需要添加到我们的程序中或从程序中删除。最初的描述是子程序。其他名称包括:宏、子例程、过程、模块和函数。函数很重要,因为它们允许我们将大型复杂程序分解成更小、更易于管理的片段。由于函数是整个程序的较小片段,因此我们可以集中精力于我们希望每个片段(函数)执行的操作,并执行测试和编辑代码。这样,函数有助于组织代码。通常,函数分为两类
- 程序控制 - 用于简单地细分和控制程序的函数。这些函数对于正在编写的程序是唯一的。其他程序可能使用类似的函数,甚至可能使用具有相同名称的函数,但函数的内容几乎总是非常不同的。
- 特定任务 - 设计用于多个程序的函数。这些函数执行特定任务,因此可在许多不同的程序中使用,因为其他程序也需要执行特定任务。特定任务函数有时被称为构建块。由于它们已经过编码和测试,因此我们可以自信地使用它们来更有效地编写大型程序。
主程序必须建立程序中使用的函数的存在。根据编程语言,有一种正式的方法来
- 定义一个函数(它的定义或它将执行的代码)
- 调用一个函数
- 声明一个函数(原型是对编译器的声明)
注意:定义和调用函数是跨编程语言的常见活动。使用原型声明函数特定于某些编程语言,包括 C 和 C++。
程序控制函数通常不互相通信,但使用一个公共区域来存储变量。特定任务函数的构建方式允许在调用程序片段(通常是另一个函数)和被调用的函数之间进行数据通信。这种通信数据的能力使我们能够构建一个特定任务函数,该函数可能在许多程序中使用。数据进出函数的通信规则因编程语言而异,但概念是相同的。传递(或通信)的数据项称为参数。因此,措辞为:参数传递。四种数据通信选项包括
- 没有通信进,没有通信出
- 没有通信进,有一些通信出
- 有一些通信进,有一些通信出
- 有一些通信进,没有通信出
在许多编程语言中,主程序片段是一个特殊的函数,其标识符名称为 main。函数控制程序对于一个程序是唯一的。 "Main" 是程序中代码执行开始的地方,函数被调用的地方,以及程序执行结束的地方。它通常是程序中定义的第一个函数,并且是定义许多程序重要设置的区域。这些设置包括原型声明、列出全局常量和变量,以及许多其他技术项目。定义函数 main 的代码已提供;但是,它没有像程序中的其他函数那样被原型化或通常被调用。
我们经常需要执行一项特定任务,该任务可能在许多程序中使用。特定任务函数旨在用于许多程序。
静态类型语言(如 C++、C# 和 Java)中函数的一般布局
<return value data type> function identifier name(<data type> <identifier name for input value>) { //lines of code; return <value>; }
动态类型语言(如 JavaScript 和 Python)中函数的一般布局
function identifier name(<identifier name for input value>) { //lines of code; return <value>; } def function identifier name(<identifier name for input value>): //lines of code return <value>
在某些编程语言中,函数有一组大括号 {} 用于识别语句或代码行的组或块。其他语言使用缩进或某种类型的开始和结束语句来识别代码块。函数中通常有几行代码。
编程语言将根据给定语言的编码约定,在 main 函数之前或之后定义特定任务函数。
当您调用一个函数时,您使用它的标识符名称和一组圆括号。您将要传递的任何数据项都放置在圆括号内。在我们的程序编译并运行后,main 函数中的代码行将被执行,当它到达调用特定任务函数时,程序的控制权将移至该函数并开始执行该函数中的代码行。完成后代码行,它将返回到调用它的程序位置(在我们示例中是 main 函数),并继续执行该函数中的代码。
大多数程序在函数之前都有几个项目,包括
- 文档 - 大多数程序在程序开头都有一个注释区域,其中包含各种与程序相关的注释。
- 用于访问标准库函数的包含或导入语句。
- 特定于语言的代码,例如命名空间引用或函数原型。
- 全局或模块级常量和变量(如果需要)。
- 大括号
- 用于识别 C++、C#、Java 和 JavaScript 等语言中的代码块。
- 函数
- 如今许多流行的编程语言中模块的称谓。
- 函数调用
- 一个函数使用或调用另一个函数。
- 函数定义
- 定义函数功能的代码。
- 函数原型
- 一个函数对编译器的通信声明。
- 标识符名称
- 程序员为识别函数或其他程序项目(如变量)而给出的名称。
- 模块化
- 将一些代码行分组为一个单元的能力,该单元可以包含在我们的程序中。
- 参数传递
- 数据进出函数的通信方式。
- 程序控制
- 用于细分和控制程序的函数。
- 特定任务
- 旨在与多个程序一起使用的函数。