计算机科学gydF4y2Ba

功能gydF4y2Ba

变量和范围gydF4y2Ba

假设有一天,您和一群朋友决定提出一种全新的编程语言,其语法与Java类似。在它完成之后,你决定用一个程序来测试它,它在同一行上打印两个整数,如下所示:gydF4y2Ba

12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20gydF4y2Ba
intgydF4y2BaxgydF4y2Ba;gydF4y2BadefgydF4y2BaintgydF4y2Ba主要gydF4y2Ba()gydF4y2Ba{gydF4y2BaxgydF4y2Ba=gydF4y2Ba7gydF4y2Ba;gydF4y2BafgydF4y2Ba();gydF4y2BaggydF4y2Ba();gydF4y2Ba}gydF4y2BadefgydF4y2Ba无效gydF4y2BafgydF4y2Ba()gydF4y2Ba{gydF4y2BaintgydF4y2BaxgydF4y2Ba=gydF4y2Ba35gydF4y2Ba;gydF4y2BahgydF4y2Ba();gydF4y2Ba}gydF4y2BadefgydF4y2Ba无效gydF4y2BaggydF4y2Ba()gydF4y2Ba{gydF4y2BaintgydF4y2BaxgydF4y2Ba=gydF4y2Ba29gydF4y2Ba;gydF4y2BahgydF4y2Ba();gydF4y2Ba}gydF4y2BadefgydF4y2Ba无效gydF4y2BahgydF4y2Ba()gydF4y2Ba{gydF4y2BaprintfgydF4y2Ba(gydF4y2Ba“% d \ n”gydF4y2Ba,gydF4y2BaxgydF4y2Ba);gydF4y2Ba}gydF4y2Ba

您和您的朋友们还没有就编程语言是否应该遵循其中任何一种达成一致gydF4y2Ba静态作用域gydF4y2Ba或gydF4y2Ba动态范围gydF4y2Ba.gydF4y2Ba

如果遵循gydF4y2Ba静态作用域gydF4y2Ba它会打印出来gydF4y2Ba

1gydF4y2Ba
一个bgydF4y2Ba

在哪里gydF4y2Ba 一个gydF4y2Ba 一个gydF4y2Ba 和gydF4y2Ba bgydF4y2Ba bgydF4y2Ba 都是整数。gydF4y2Ba

如果它遵循gydF4y2Ba动态范围gydF4y2Ba,它将打印出来gydF4y2Ba

1gydF4y2Ba
c dgydF4y2Ba

在哪里gydF4y2Ba cgydF4y2Ba cgydF4y2Ba 和gydF4y2Ba dgydF4y2Ba dgydF4y2Ba 都是整数。gydF4y2Ba

找出…的价值gydF4y2Ba 一个gydF4y2Ba +gydF4y2Ba bgydF4y2Ba +gydF4y2Ba cgydF4y2Ba +gydF4y2Ba dgydF4y2Ba A + b + c + dgydF4y2Ba

质因数一个数的质因数gydF4y2Ba ngydF4y2Ba ngydF4y2Ba 是所有能除它的质数。例如,的质因数gydF4y2Ba 2015gydF4y2Ba 2015gydF4y2Ba 分别为13、31和5 (gydF4y2Ba 2015gydF4y2Ba =gydF4y2Ba 5gydF4y2Ba ×gydF4y2Ba 13gydF4y2Ba ×gydF4y2Ba 31gydF4y2Ba 2015 = 5 × 13 × 31gydF4y2Ba ).下面的Python函数查找一个数的最大质因数。gydF4y2Ba

1 2 3 4 5 6 7 8 9 10gydF4y2Ba
defgydF4y2Balargest_pfgydF4y2Ba(gydF4y2BangydF4y2Ba):gydF4y2Ba为gydF4y2Badivisor_1gydF4y2Ba在gydF4y2Ba范围gydF4y2Ba(gydF4y2Ba1gydF4y2Ba,gydF4y2BangydF4y2Ba+gydF4y2Ba1gydF4y2Ba):gydF4y2Ba为gydF4y2Badivisor_2gydF4y2Ba在gydF4y2Ba范围gydF4y2Ba(gydF4y2Ba2gydF4y2Ba,gydF4y2Badivisor_1gydF4y2Ba+gydF4y2Ba1gydF4y2Ba):gydF4y2Bais_primegydF4y2Ba=gydF4y2Ba真正的gydF4y2Ba如果gydF4y2Badivisor_1gydF4y2Ba%gydF4y2Badivisor_2gydF4y2Ba==gydF4y2Ba0gydF4y2Ba:gydF4y2Bais_primegydF4y2Ba=gydF4y2Ba假gydF4y2Ba打破gydF4y2Ba如果gydF4y2Bais_primegydF4y2Ba:gydF4y2Bamax_divisorgydF4y2Ba=gydF4y2Badivisor_1gydF4y2Ba返回gydF4y2Bamax_divisorgydF4y2Ba

该程序对大多数输入都能正常工作,但它包含一个作用域没有正确定义的变量。确定的变量。gydF4y2Ba

12 3 4 5 6 7 8 9 10 11 12gydF4y2Ba
01gydF4y2BaintgydF4y2BaxgydF4y2Ba=gydF4y2Ba7gydF4y2Ba;gydF4y2Ba02gydF4y2Ba名称空间gydF4y2BaMyNamespacegydF4y2Ba03gydF4y2Ba{gydF4y2Ba04gydF4y2BaintgydF4y2BaxgydF4y2Ba=gydF4y2Ba11gydF4y2Ba;gydF4y2Ba05gydF4y2Ba无效gydF4y2BafgydF4y2Ba()gydF4y2Ba06gydF4y2Ba{gydF4y2Ba07gydF4y2BaintgydF4y2BaxgydF4y2Ba=gydF4y2Ba42gydF4y2Ba;gydF4y2Ba08gydF4y2Ba性病gydF4y2Ba::gydF4y2BacoutgydF4y2Ba<xgydF4y2Ba<性病gydF4y2Ba::gydF4y2BaendlgydF4y2Ba;gydF4y2Ba09gydF4y2Ba性病gydF4y2Ba::gydF4y2BacoutgydF4y2Ba<MyNamespacegydF4y2Ba::gydF4y2BaxgydF4y2Ba<性病gydF4y2Ba::gydF4y2BaendlgydF4y2Ba;gydF4y2Ba10gydF4y2Ba性病gydF4y2Ba::gydF4y2BacoutgydF4y2Ba<::gydF4y2BaxgydF4y2Ba<性病gydF4y2Ba::gydF4y2BaendlgydF4y2Ba;gydF4y2Ba11gydF4y2Ba}gydF4y2Ba12gydF4y2Ba}gydF4y2Ba

考虑上面的算法,在c++中gydF4y2Ba :gydF4y2Ba :gydF4y2Ba ::gydF4y2Ba 符号用于引用在全局命名空间中定义的变量。让gydF4y2Ba lgydF4y2Ba 1gydF4y2Ba ,gydF4y2Ba lgydF4y2Ba 2gydF4y2Ba l_ l_ {1}, {2}gydF4y2Ba 和gydF4y2Ba lgydF4y2Ba 3.gydF4y2Ba l_ {3}gydF4y2Ba 为行输出结果gydF4y2Ba 8gydF4y2Ba 8gydF4y2Ba ,gydF4y2Ba 9gydF4y2Ba 9gydF4y2Ba 和gydF4y2Ba 10gydF4y2Ba 10gydF4y2Ba ,分别是什么值gydF4y2Ba

(gydF4y2Ba lgydF4y2Ba 1gydF4y2Ba +gydF4y2Ba lgydF4y2Ba 2gydF4y2Ba )gydF4y2Ba −gydF4y2Ba lgydF4y2Ba 3.gydF4y2Ba ?gydF4y2Ba + l_ (l_ {1} {2}) -l_ {3} ?gydF4y2Ba

12 3 4 5 6 7 8 9 10 11 12 13 14 15 16gydF4y2Ba
defgydF4y2Ba离开gydF4y2Ba():gydF4y2Ba代码gydF4y2Ba...gydF4y2Ba返回gydF4y2Ba11gydF4y2Ba找到gydF4y2Ba=gydF4y2Ba12gydF4y2BadefgydF4y2Ba坏gydF4y2Ba():gydF4y2Ba为gydF4y2Ba代码gydF4y2Ba...gydF4y2Ba代码gydF4y2Ba...gydF4y2Ba找到gydF4y2Ba=gydF4y2Ba20.gydF4y2BadefgydF4y2Ba离开gydF4y2Ba():gydF4y2Ba返回gydF4y2Ba找到gydF4y2Ba+gydF4y2Ba1gydF4y2Ba返回gydF4y2Ba离开gydF4y2Ba()gydF4y2Ba打印gydF4y2Ba找到gydF4y2Ba+gydF4y2Ba坏gydF4y2Ba()gydF4y2Ba+gydF4y2Ba离开gydF4y2Ba()gydF4y2Ba

考虑一下理论python代码的片段。预测运行一次时输出的内容。gydF4y2Ba

注:gydF4y2Ba这是一个非常糟糕的函数和变量命名的例子。在编程中正确的命名是编写好代码的关键之一。gydF4y2Ba

×gydF4y2Ba

问题加载…gydF4y2Ba

注意加载…gydF4y2Ba

设置加载…gydF4y2Ba