问题标签 [structured-programming]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
32961 浏览

functional-programming - 函数式编程、结构化编程和过程式编程有什么区别?

我已经阅读了一些关于所有主题的文章,但我不太明白其中的区别。

0 投票
2 回答
96 浏览

goto - 不允许 goto 的语言中的绝对干燥条件?

你如何伪造不嵌套在不允许 goto 的语言中的条件?我想做以下事情:

没有:

  1. 不必要地多次评估任何条件。
  2. 不必要地将任何此类评估的结果存储在变量中。
  3. 不必要地多次指定应执行任何操作。

原始代码段不符合要求 1。

以下代码段不符合要求 2:

以下代码段不符合要求 3:


编辑:

  1. 不可能condition1同时condition2为真。

  2. 不可能condition2同时condition3为真。

这是原始代码(在 JavaScript 中):

0 投票
0 回答
1659 浏览

functional-programming - Donald Knuth 选择过程式编程而不是函数式编程是否有原因?

Donald Knuth 的计算机编程艺术系列使用了他自己的称为 MIX 的过程汇编语言。现在,问题变成了:Knuth 是否应该使用函数式语言来描述他的算法?TeX 应该用函数式语言编写吗?

计算机具有程序架构。计算的根源是否暗示了最好的分支?

最初的 AoCP 是用 MIX 编写的。更新后的 AoCP 使用了基于更现代架构的 MMIX。

但是,基本点仍然成立。Knuth 从一种程序架构转到另一种……显然不需要函数式编程。

0 投票
4 回答
1349 浏览

programming-languages - 超出标准条件和循环的控制结构?

结构化编程语言通常具有一些控制结构,例如while, if, for, do, switch, break, 和continue用于在源代码中表达高级结构。

然而,多年来提出的许多其他控制结构尚未进入现代编程语言。例如,在 Knuth 的论文“使用 Go To 语句进行结构化编程”,第 275 页中,他引用了一个看起来像异常处理的精简版本的控制结构:

这似乎是一个有用的结构,但我还没有看到任何语言实际上将它实现为标准异常处理的特例。

类似地,Edsger Dijkstra 经常使用一种控制结构,在这种结构中,根据一组可能为真的条件,非确定性地执行多段代码中的一段。您可以在他关于 smoothsort 的论文的第 10 页上看到这一点。示例代码可能如下所示:

我知道历史上 C 影响了许多现代语言,如 C++、C# 和 Java,我们今天使用的许多控制结构都是基于 C 提供的小集合。然而,正如另一个 SO 问题所证明的那样,我们程序员喜欢思考关于我们希望拥有但许多编程语言不支持的替代控制结构。

我的问题是——今天使用的通用语言是否支持与我上面提到的 C 风格控制结构完全不同的控制结构? 这样的控制结构不必是无法使用标准 C 结构表示的东西——几乎任何东西都可以这样编码——但理想情况下,我想要一个可以让你处理某些编程任务的例子与 C 模型所允许的完全不同的方式。

不,“函数式编程”并不是真正的控制结构。

0 投票
8 回答
1135 浏览

objective-c - 如何使用 Objective-C 中的块进行结构化编程

当使用返回块的方法时,它们会非常方便。但是,当您必须将其中一些串在一起时,它会很快变得混乱

例如,您必须连续调用 4 个 URL:

因此,对于每次迭代,我都会更深一层,我什至还没有处理嵌套块中的错误。

当存在实际循环时,情况会变得更糟。例如,假设我想上传一个 100 个块的文件:

这感觉非常不直观,并且很快变得非常难以理解。

在 .Net 中,他们使用 async 和 await 关键字解决了所有这些问题,基本上将这些延续展开为看似同步的流程。

Objective C 的最佳实践是什么?

0 投票
3 回答
186 浏览

c - Difference in variable value inside and outside a function

I wrote a program in which I found the area of cylinder using a functionarea with a return-type and without parameters. answerwas returned to main function. However, I am getting different output in main and a different output in area. The decimal places seem to be replaced by 0 in the main function. Why is it so? enter image description here

0 投票
4 回答
10016 浏览

c++ - 比较 C++ 中的字符 - “char”类型的参数与“const char *”类型的参数不兼容

我正在尝试比较 C++ 中的 2 个值(我是新手,所以请放轻松)

上面声明的结构,然后我在另一个函数中使用此代码

它给了我 if 语句中的 'styleAr[x].category' 的错误: “char”类型的参数与“const char *”类型的参数不兼容

关于我如何解决这个问题的任何解释都会很棒

0 投票
1 回答
318 浏览

c++ - 将程序从结构化重写为面向对象

我是一名自学成才的 C++ 程序员,因为我的第一门编程语言是 Fortran(在接触 C++ 之前很多年),我编写了结构化 C++。

现在我想迈出下一步,学习面向对象编程。

我编写了用于解析日志文件的小应用程序,我更愿意以 OOP 方法编写相同的应用程序,而不是制作全新的东西。认为侧面的好处将是两种方法的真正比较。

问题是 - 我应该从头开始还是可以逐渐重写结构化代码?如果重写是可行的,那么最好的方法是什么?

我不得不承认我对 OOP 有点困惑。

0 投票
1 回答
65 浏览

php - 对重新编写完整的项目有用吗?获得建立主页的想法

我有一些问题,我希望你能理解我和我想要什么,我希望你能帮助我。所以,我开始为许多飞蛾编写一个项目。我想创建一个小型游戏社区。我从 12 岁开始阅读了很多教程,写了很多代码片段并学习了编程。现在我 16 岁,我认为有很多东西要学。我不想说我是菜鸟,也不是编程专家。但是我在这个项目上编程了 200 多个小时,我打算

如果您正在查看 stackoverflow、google、facebook、pastebin 和其他所有大型网站 - 您会为自己的主页生气。我对自己的主页不满意,因为它没有结构化且编程良好。也许我应该学习 OOP 并使用 mysqli。但问题是,我不想学习 OOP,因为我不懂。

我只想完成一个项目,因为我从来没有做过。

所以我的问题是: 我该怎么办?我应该怎么做才能获得良好的代码结构?用占位符编写模板并稍后用渲染函数替换它们是否有用?我想使用 GET 参数,我想动态更改内容。PM系统,评论系统,发布系统之类的功能-将它们写在functions()中有用还是将它们写在文件中更好?以及 - 如何在模板中正确调用它们以及如何正确加载模板?(文件获取内容()/需要())。

有很多问题,但我仍然通过教程学到了这一点。

我现在应该如何开始?

我认为编写模板引擎很有用,但是如何编写它们呢?关于我现在应该做什么的任何想法?以及如何编写安全函数并用自己的函数调用它们?

问候

0 投票
0 回答
185 浏览

loops - 为什么不“断断续续”?

情况:你有一个嵌套循环,你需要打破它。

让我们来看这个经典的例子(经典,因为它来自Goto 被认为是有害的,被认为是有害的):给定一个二维NxN方形整数矩阵X,找到没有零的第一行。

我将介绍几种不同语言可以解决这个问题的方法。我想我应该从如何编写它开始但不是。

C 及其最忠实的派生词:

爪哇:

PHP:

使用标志:

将内部循环导出到函数:

现在,所有这些工作,但有些函数调用开销(如果语言想要允许深度循环则不好),标志(对某些人来说令人反感或不直观),goto(比你可能需要的更强大)或奇怪的语法(Java 的愚蠢)。

那么为什么语言没有break break, break continue,break break continue等呢?(continue break几乎没有意义,因为这意味着进入下一个迭代然后离开它)。在语言中添加这种东西有问题吗?