带 for 循环的伪代码

Kan*_*ami 2 algorithm pseudocode

我有一些困惑:

for i = 1 to n
Run Code Online (Sandbox Code Playgroud)

这个伪代码的意思是for(i=1; i<n; i++)for(i=1; i<=n; i++)

如果其中一个来自其中,那么另一个的伪代码是什么?

tri*_*cot 5

应该理解为包括一个迭代,其中i取 的值n

然而,伪代码没有严格的规则,因此,如果对伪代码的实际片段存在疑问,那么这意味着代码没有实现它应该做的事情:在没有任何编程语言的情况下明确地描述算法心里。

以下是为什么应将其理解为包括的 一些论点n

  • 当我们用简单的英语告诉某人从 1“数到 100”时,我们的意思是他们应该在末尾加上 100。这可能是最有力的论据。
  • 据我所知,没有一种编程语言tofor循环语法中使用关键字,其中后面的值to不包含在迭代中。另一方面,类似BASIC 的语言(例如具有该语法,并且“to”值将用于最终迭代。
  • 维基百科上给出了一些伪代码循环的示例,并且在to使用关键字的情况下,最终迭代将使用该值。
  • 如果此循环的目的是访问n元素数组中的每个值(这是一种非常常见的情况),那么就没有歧义:for i = 1 to n告诉我们数组的第一个元素的位置为 1,因此它的最后一个位置是位置n。在伪代码中使用这种基于 1 的数组索引并不罕见,因为这对于非程序员来说更直观。然而,如果在这样的数组上下文中您看到for i = 0 to n伪代码,则应该发出一些警报。这肯定会让人感到模棱两可。