采用自上而下的方法,建议将函数设置为较小的只执行单个任务。
如此。我不知道主要做什么?只是调用其他功能或我们想要的所有东西?
感谢。
答案 0 :(得分:5)
我们的想法是将任务分成逻辑抽象。
在这里,我将使用厨房烹饪的例子来说明这个概念。假设您想要准备一些美味的晚餐和一些菜肴。您的心理检查表可能从主要步骤开始:
因此,这些将成为main()
然后对于每个步骤,您将其细分一点:(请注意,下面列出的子步骤是每个主要函数将在其自己的函数定义中调用的内容)
然后,对于每个子步骤,您仍然可以使事物更细粒度地表示单独的逻辑操作,为简洁起见,我们将只检查main()
中的前两个函数:
现在注意两件事:
答案 1 :(得分:1)
自上而下的方法从高级系统或设计开始,然后进入低级系统或设计或开发。 自上而下的方法首先关注整个系统或项目的摘要。最后,它侧重于细节设计或开发。 在这种方法中,第一个程序员必须编写main函数的代码。在main函数中,它们将调用其他子函数。最后,他们将为每个子函数编写代码。
答案 2 :(得分:1)
在Top Down方法中,您从高级设计开始。因此,您首先将您的想法提取到main()函数中(如果您使用的是C或类似的语言)。 例如,如果我想计算斐波纳契数,那么从上到下的方法我会从
开始int main()
{
int *numbers;
int n = getCountOfNumbers(); // get the count of numbers to be generated
generateFibonacci(numbers, n); // generate numbers
processFibonacci(numbers); // display the numbers
return 0;
}
这将设置您将对程序执行的操作的抽象实现。 接下来,实现函数getCountOfNumbers(),generateFibonacci()和processFibonacci()来表示您的逻辑和算法。
因此,使用main()函数,您可以表示程序的高级组织。此外,由于它是大多数编程语言的起点,因此您的控制流程从main()函数开始,然后根据您的调用顺序委派给程序中的其他函数。
答案 3 :(得分:0)
自上而下的方法并不是严格意义上的功能和任务,它更像是算法世界的过度简化方法。
通常自上而下的方法是在图灵理论和算法的介绍之后立即让学生理解实际意义的主题,它也是更复杂和更进化的方法的更容易的替代方法。一个涉及数学+算法的课程,它通常适用于大学和计算机科学课程。
您还可以注意到,谈到自上而下的方法没有语言出现,它是一个从任何语言或任何类型的实现中抽象出来的主题,它只是关于通用步骤和算法以及解决问题的方法。 / p>
关于C ++,在非常通用的术语中,main()
函数的作用基本上是关于启动应用程序的主线程并管理argc
和argv
值。
答案 4 :(得分:0)
我喜欢将main()视为整个程序的蓝图。它以高级“描述性”方式调用其他函数。这真的描述了我认为任何函数应该如何阅读。
例如,允许用户选择图像并将其缩小为缩略图的程序可能类似于:
// Pseudo-code
int main() {
string path = getImagePath();
checkImageValidity(path);
imageData imgData = new imageData();
imgData = readImageData(path);
writeImageData("../thumb.png", imgData, imageType.PNG);
fileClose(fp);
return 0;
}
每个函数都可以完成一些工作并可能调用其他函数,但通过阅读main函数,您可以了解程序的一般流程。 “它获取一个图像文件路径,检查它是否是一个有效文件,读取其原始图像数据,将其写入输出文件,然后关闭它。”
真正的程序将比这个程序更复杂,但这只意味着你有更多的功能应该以相同的方式阅读,因为程序的复杂性值得深入和广泛。