Module: 子程序:过程和函数 - 1


Problem

1/12

子程序:简介

Theory Click to read/hide

子程序是程序的一个独立部分,它有一个名字并解决它自己的独立任务。子程序位于主程序的开头,可以通过指定名称从主程序启动(调用)

使用子例程可以避免代码重复,以防您需要在程序的不同位置编写相同的代码。 
导入到程序中的库(例如,数学库 math)包含已经由某人编译的子例程。程序员不需要考虑他们实现了什么算法,而只是简单地应用它们,只考虑他们到底在做什么。这是一个很大的节省时间。没有必要去写别人已经写好的算法。

每个例程 应该只做一件事: 要么只是计算一些东西,要么输出一些数据,要么做其他事情。 

有两种类型的子例程 - 过程函数

子例程执行一些操作,例如以某种形式将结果打印到屏幕(一个简单的例子,声明 writeln() 是一个标准的子例程,打印到屏幕信息)

函数子程序返回一个结果(数字、字符串等),我们可以在主程序中使用。

让我们尝试编写一个简单的程序:
假设我们需要在屏幕上显示字符串“Error”每次由于用户的错误(例如,当他输入不正确的数据)而导致代码中出现错误时
这可以通过编写语句来完成 <前> writeln('错误'); 而现在想象一下,在程序的很多地方都需要插入这样一行。当然,你可以到处写。但是这个解决方案有两个缺点。
1)这个字符串会多次存入内存
2) 如果我们想改变错误的输出,我们将不得不在整个程序中改变这一行,这是相当不方便的

对于这种情况,需要程序。
带有过程的程序可能如下所示: <前> ... 使用命名空间标准; 程序打印错误(); // 过程描述 开始 writeln(“错误”); // 过程主体 - 过程将执行的命令 结尾; // 主程序 开始; ... 打印错误(); // 开始执行过程。我们只需指定要执行的过程的名称。 ... 打印错误(); ... 结尾。 该过程以单词procedure开头。 在过程名称后写有括号,表示过程执行所依赖的变量及其类型。例如:

var a, b, answer: integer;
程序 Sum(a, b: integer);
开始
   答案:= a + b;
结束;

在过程中执行的所有语句都是缩进的。 

程序写在主程序之前

要执行一个过程,您需要在主程序中调用它按名称并记住写括号
您可以多次调用程序中的过程。

Problem

编写一个程序,显示短语“Error.被零除!为过程提供正确的名称。