精华内容
下载资源
问答
  • 教你写一手漂亮的伪代码(详细规则&简单实例

    万次阅读 多人点赞 2020-06-11 10:12:41
    文章目录前言伪代码的7个主要部分1.算法名称2.指令序列3.输入/输出4.分支选择5.赋值6.循环7.算法结束补充举个例子说明 前言 最近在复盘《算法设计与分析》这门课程的时候,发现老师写得一手漂亮的伪代码,着实羡慕...

    前言

    最近在复盘《算法设计与分析》这门课程的时候,发现老师写得一手漂亮的伪代码,着实羡慕不已,看他写其实已经知道大致写伪代码的规则,但本着严谨的态度,还是系统的学习和整理出来。在学习过程中,我们不可能将每一个算法都完完整整敲一遍,那么伪代码就可以很快捷和清晰的写出对一个算法的解决思路。
    我在网上查到的博客中要么写的过于繁琐,要么就是没有实例,这也激起了我想要整理这篇文章的动力,若文章中有错误或者不足,希望大家指出。

    伪代码的7个主要部分

    1. 算法名称
    2. 指令序列
    3. 输入/输出
    4. 分支选择
    5. 赋值
    6. 循环
    7. 算法结束
      文章将从这7个部分依次进行说明

    1.算法名称

    有两种表示算法的伪代码:
    过程(Procedure)
    函数(Function)
    过程和函数的区别是:
    过程是执行一系列操作,不需要返回操作的结果,无返回数据。
    函数是执行一系列的操作后,要将操作的结果返回,有返回数据。
    简单来说二者就是有没有返回数据
    算法伪代码的书写规则:

    Procedure <算法名>([<参数列表>])
    Function <算法名>([<参数列表>])
    

    2.指令序列

    指令序列是算法的主体。
    指令序列的书写规则:

    用Begin作为开始,用End作为结束;
    或者用“{”作为开始,用“/}”作为结束

    例如:

    Begin
    	指令序列;
    End
    

    或者

    {
    	指令序列;
    /}
    

    说通俗一点就是类似于我们写C语言只要在{ }中的都是这个函数的指令序列。最后面会给一个完整的例子,方便理解

    3.输入/输出

    输入:Input
    输出:Output 或Return
    看个人的习惯吧,我输出一般用Return

    4.分支选择

    总体有两种分支,类似于C中的if语句 和if else语句用法是一样的,可以嵌套。

    //第一种
    If<条件> Then
    	{
    		指令序列;
    	/}
    //第二种
    If<条件> Then
    	{
    		指令序列1;
    	/}
    Else
    	{
    		指令序列2;
    	/}
    

    5.赋值

    有两种 可以用:=或者<-作为赋值操作符,相当于C语言中的=
    例如:

    x:=x+1;
    x<-x+1;
    

    选择哪个,看自己的习惯吧

    6.循环

    两种方式:计数式循环(for循环)和条件式循环(while循环)。
    (1)计数式循环

    For 变量:=初值 To 终值
    {
    	指令序列;
    /}
    

    循环次数:终值-初值+1
    (2)条件式循环

    While (条件) do
    {
    	指令序列;
    /}
    

    7.算法结束

    关键字End的后面加上算法名称,表示算法结束,是算法的最后一句。
    例如:

    End DFS
    

    补充

    除了这些,像运算符号* / + - %等等,都是和C语言用法一样
    数组:
    A[j]指示数组A的第j个元素。符号“ …”用来指示数组中值的范围。例如:
    A[1…j]表示含元素A[1], A[2], … , A[j]的子数组;
    还有个写法是A[0:n]表示数组下标从0开始一直到n
    二维数组也是:A[0:m,0:n]

    举个例子

    例如冒泡排序的伪代码:
    会发现伪代码的7大部分没有提到的内容是:

    变量名 : 数据类型
    

    还有var这是变量的意思,如果学过javascript应该会有比较深一点的理解,我在这里理解就是告诉读者,这是一个变量。

     procedure Bubble(n:integer);
       var temp,i,j:integer;
       change:boolean;
       begin
          for i:=1 to n-1 do
          begin
            change:=false;
            for j:=n-1 downto i do
              if a[j]>a[j+1] then
              begin
                change:=true;
                temp:=a[j]; a[j]:=a[j+1]; a[j+1]:=temp;
              end;
              if not(change) then exit;
          end;
       end;
    

    再举个插入排序的例子

    procedure insertsort(n:integer);
      var i,j:integer;
      begin
        for i:=2 to n do
        begin
          a[0]:=a[i];
          j:=i-1;
          while a[j]>a[0] do  
          begin
            a[j+1]:=a[j];
            j:=j-1;
          end;
          a[j+1]:=a[0];
        end;
      end;
    

    关于语句后面有没有分号,我看有些人说有,有些说没有,其实拟C伪代码可以加分号,这样看起来更习惯

    说明

    这个伪代码是算法比较规范的伪代码规则,我在网上查到有java的伪代码,python伪代码,php伪代码等等,和其他的,我的理解就是把没有完整实现的代码叫做了伪代码,其实只要能够清楚表达思路,让别人很容易理解,都可以称作伪代码吧。不受严格语法的约束,我想这也是伪代码写起来比较快乐的原因吧。

    如果文章对你有帮助,不要忘了给我点个赞吼( ̄▽ ̄)~
    欢迎关注我的微信公众号:松鼠技术站

    展开全文
  • 伪代码及其实例讲解

    万次阅读 2015-12-21 16:30:52
    伪代码(Pseudocode)是一种算法描述语言。使用伪代码的目的是为了使被描述的算法可以容易地以任何一种编程语言...因此,伪代码必须结构清晰、代码简单、可读性好,并且类似自然语言。 介于自然语言与编程语言之间。

    转自:http://blog.csdn.net/swqqcs/article/details/8125999

    伪代码(Pseudocode)是一种算法描述语言。使用伪代码的目的是为了使被描述的算法可以容易地以任何一种编程语言(Pascal,C,Java,etc)实现。因此,伪代码必须结构清晰、代码简单、可读性好,并且类似自然语言。 介于自然语言与编程语言之间。

      它以编程语言的书写形式指明算法的职能。相比于程序语言(例如Java, C++,C, Dephi 等等)它更类似自然语言。它是半角式化、不标准的语言。我们可以将整个算法运行过程的结构用接近自然语言的形式(这里,你可以使用任何一种你熟悉的文字,中文,英文 等等,关键是你把你程序的意思表达出来)描述出来. 使用伪代码, 可以帮助我们更好的表述算法, 不用拘泥于具体的实现.

      人们在用不同的编程语言实现同一个算法时意识到,他们的实现(注意:这里是实现,不是功能)很不同。尤其是对于那些熟练于不同编程语言的程序员要理解一个(用其他编程语言编写的程序的)功能时可能很难,因为程序语言的形式限制了程序员对程序关键部分的理解。这样伪代码就应运而生了。

      当考虑算法功能(而不是其语言实现)时,伪代码常常得到应用。计算机科学在教学中通常使用虚拟码,以使得所有的程序员都能理解。

      综上,简单的说,让人便于理解的代码。不依赖于语言的,用来表示程序执行过程,而不一定能编译运行的代码。在数据结构讲算法的时候用的很多。 

    语法规则

      例如,类Pascal语言的伪代码的语法规则是: 在伪代码中,每一条指令占一行(else if,例外)。指令后不跟任何符号(Pascal和C中语句要以分号结尾)。书写上的“缩进”表示程序中的分支程序结构。这种缩进风格也适用于if-then-else语句。用缩进取代传统Pascal中的begin和end语句来表示程序的块结构可以大大提高代码的清晰性;同一模块的语句有相同的缩进量,次一级模块的语句相对与其父级模块的语句缩进。

        算法的伪代码语言在某些方面可能显得不太正规,但是给我们描述算法提供了很多方便,并且可以使我们忽略算法实现中很多麻烦的细节。通常每个算法开始时都要描述它的输入和输出,而且算法中的每一行都给编上号码,在解释算法的过程中会经常使用算法步骤中的行号来指代算法的步骤。算法的伪代码描述形式上并不是非常严格,其主要特性和通常的规定如下:
            1) 算法中出现的数组、变量可以是以下类型:整数、实数、字符、位串或指针。通常这些类型可以从算法的上下文来看是清楚的,并不需要额外加以说明。
            2) 在算法中的某些指令或子任务可以用文字来叙述,例如,"设x是A中的最大项",这里A是一个数组;或者"将x插入L中",这里L是一个链表。这样做的目的是为了避免因那些与主要问题无关的细节使算法本身杂乱无章。
            3) 算术表达式可以使用通常的算术运算符(+,-,*,/,以及表示幂的^)。逻辑表达式可以使用关系运算符=,≠,<,>,≤和≥,以及逻辑运算符与(and),或(or),非(not)。
            4) 赋值语句是如下形式的语句:a<-b 。
    这里a是变量、数组项,b是算术表达式、逻辑表达式或指针表达式。语句的含义是将b的值赋给a。
            5) 若a和b都是变量、数组项,那么记号a<->b 表示a和b的内容进行交换。
            6) goto语句具有形式
                                            goto label(goto标号)
    它将导致转向具有指定标号的语句。
            7) 条件语句有以下两种形式:
                                                if c then s或者 
                                                   if c then s
                                                      else s′
    这里c是逻辑表达式,s和s′是单一的语句或者是被括在do和end之间的语句串。对于上述两种形式,假若c为真,则s被执行一次。假若c为假,则在第一种形式中,if语句的执行就完成了,而在第二种形式中,执行s′。在所有的情况下,控制就进行到了下一个语句,除非在s或s′中的goto语句使控制转向到其它地方。
             8) 有两种循环指令:while和for。
             while语句的形式是
                                                  while c do  
                                                        s
                                                      end
    这里c是逻辑表达式,而s是由一个或更多个语句组成的语句串。当c为真时,执行s。在每一次执行s之前,c都被检查一下;假若c为假,控制就进行到紧跟在while语句后面的语句。注意,当控制第一次达到while语句时,假若c为假,则s一次也不执行。 
           for语句的形式是
                                          for var init to limit by incr do
                                                            s
                                                          end
    这里var是变量,init、limit和incr都是算术表达式,而s是由一个或多个语句组成的语句串。初始时,var被赋予init的值。假若incr≥0,则只要var≤limit,就执行s并且将incr加到var上。(假若incr<0,则只要var≥limit,就执行s并且将incr加到var上)。incr的符号不能由s来该改变。
          9) exit语句可以在通常的结束条件满足之前,被用来结束while循环或者for循环的执行。exit导致转向到紧接在包含exit的(最内层)while或者for循环后面的一个语句。
         10) return用来指出一个算法执行的终点;如果算法在最后一条指令之后结束,它通常是被省略的;它被用得最多的场合是检测到不合需要的条件时。return的后面可以紧接被括在引号的信息。
          11) 算法中的注释被括在/* */之中。诸如read和output之类的各种输入或者输出也在需要时被用到。
         

    伪代码实例

      伪代码只是像流程图一样用在程序设计的初期,帮助写出程序流程。简单的程序一般都不用写流程、写思路,但是复杂的代码,最好还是把流程写下来,总体上去考虑整个功能如何实现。写完以后不仅可以用来作为以后测试,维护的基础,还可用来与他人交流。但是,如果把全部的东西写下来必定可能会让费很多时间,那么这个时候可以采用伪代码方式。比如:

      IF 九点以前 THEN

         do 私人事务;

      ELSE 9点到18点 THEN

      工作;

      ELSE

      下班;

      END IF

      这样不但可以达到文档的效果,同时可以节约时间. 更重要的是,使结构比较清晰,表达方式更加直观.

      下面介绍一种类Pascal语言的伪代码的语法规则。

      在伪代码中,每一条指令占一行(else if 例外,),指令后不跟任何符号(Pascal和C中语句要以分号结尾);

      书写上的“缩进”表示程序中的分支程序结构。这种缩进风格也适用于if-then-else语句。用缩进取代传统Pascal中的begin和end语句来表示程序的块结构可以大大提高代码的清晰性;同一模块的语句有相同的缩进量,次一级模块的语句相对与其父级模块的语句缩进; 

      在伪代码中,通常用连续的数字或字母来标示同一即模块中的连续语句,有时也可省略标号。

      符号△后的内容表示注释;

      在伪代码中,变量名和保留字不区分大小写,这一点和Pascal相同,与C或C++不同;

      在伪代码中,变量不需声明,但变量局部于特定过程,不能不加显示的说明就使用全局变量;

      赋值语句用符号←表示,x←exp表示将exp的值赋给x,其中x是一个变量,exp是一个与x同类型的变量或表达式(该表达式的结果与x同类型);多重赋值i←j←e是将表达式e的值赋给变量i和j,这种表示与j←e和i←e等价。

      例如:

      x←y

      x←20*(y+1)

      x←y←30

      以上语句用C分别表示为:

      x = y;

      x = 20*(y+1);

      x = y = 30;

      选择语句用if-then-else来表示,并且这种if-then-else可以嵌套,与Pascal中的if-then-else没有什么区别。

      例如:

      if (Condition1)

      then [ Block 1 ]

      else if (Condition2)

      then [ Block 2 ]

      else [ Block 3 ]

      循环语句有三种:while循环、repeat-until循环和for循环,其语法均与Pascal类似,只是用缩进代替begin - end;

      例如:

      1. x ← 0

      2. y ← 0

      3. z ← 0

      4. while x < N

      1. do x ← x + 1

      2. y ← x + y

      3. for t ← 0 to 10

      1. do z ← ( z + x * y ) / 100

      2. repeat

      1. y ← y + 1

      2. z ← z - y

      3. until z < 0

      4. z ← x * y

      5. y ← y / 2

       上述语句用C或C++来描述是:

      x = y = z = 0;

      while( z < N )

      {

      x ++;

      y += x;

      for( t = 0; t < 10; t++ )

      {

      z = ( z + x * y ) / 100;

      do {

      y ++;

      z -= y;

      } while( z >= 0 );
         }
      z = x * y;

      }

      y /= 2;

      数组元素的存取有数组名后跟“[下标]”表示。例如A[j]指示数组A的第j个元素。符号“ …”用来指示数组中值的范围。

      例如:

      A[1…j]表示含元素A[1], A[2], … , A[j]的子数组;

      复合数据用对象(Object)来表示,对象由属性(attribute)和域(field)构成。域的存取是由域名后接由方括号括住的对象名表示。

      例如:

      数组可被看作是一个对象,其属性有length,表示其中元素的个数,则length[A]就表示数组A中的元素的个数。在表示数组元素和对象属性时都要用方括号,一般来说从上下文可以看出其含义。

      用于表示一个数组或对象的变量被看作是指向表示数组或对象的数据的一个指针。对于某个对象x的所有域f,赋值y←x就使f[y]=f[x],更进一步,若有f[x]←3,则不仅有f[x]=3,同时有f[y]=3,换言之,在赋值y←x后,x和y指向同一个对象。

      有时,一个指针不指向任何对象,这时我们赋给他nil。

      函数和过程语法与Pascal类似。

      函数值利用 “return (函数返回值)” 语句来返回,调用方法与Pascal类似;过程用 “call 过程名”语句来调用;

      例如:

      1. x ← t + 10

      2. y ← sin(x)

      3. call CalValue(x,y)

      参数用按值传递方式传给一个过程:被调用过程接受参数的一份副本,若他对某个参数赋值,则这种变化对发出调用的过程是不可见的。当传递一个对象时,只是拷贝指向该对象的指针,而不拷贝其各个域。


    展开全文
  • 本文是介绍伪代码的规则和实例。主要内容包括:概念、规则、三角形问题、日期问题、佣金问题等伪代码实例
  • 详细设计的伪代码实例

    万次阅读 2018-01-18 10:48:16
    因此,伪代码必须结构清晰、代码简单、可读性好,并且类似自然语言。 介于自然语言与编程语言之间。 它以编程语言的书写形式指明算法的职能。相比于程序语言(例如Java, C++,C, Dephi 等等)它更类似自然语言。它是...

    代码(Pseudocode)是一种算法描述语言。使用伪代码的目的是为了使被描述的算法可以容易地以任何一种编程语言(Pascal,C,Java,etc)实现。因此,伪代码必须结构清晰、代码简单、可读性好,并且类似自然语言。 介于自然语言与编程语言之间。

      它以编程语言的书写形式指明算法的职能。相比于程序语言(例如Java, C++,C, Dephi 等等)它更类似自然语言。它是半角式化、不标准的语言。我们可以将整个算法运行过程的结构用接近自然语言的形式(这里,你可以使用任何一种你熟悉的文字,中文,英文 等等,关键是你把你程序的意思表达出来)描述出来. 使用伪代码, 可以帮助我们更好的表述算法, 不用拘泥于具体的实现.

      人们在用不同的编程语言实现同一个算法时意识到,他们的实现(注意:这里是实现,不是功能)很不同。尤其是对于那些熟练于不同编程语言的程序员要理解一个(用其他编程语言编写的程序的)功能时可能很难,因为程序语言的形式限制了程序员对程序关键部分的理解。这样伪代码就应运而生了。

      当考虑算法功能(而不是其语言实现)时,伪代码常常得到应用。计算机科学在教学中通常使用虚拟码,以使得所有的程序员都能理解。

      综上,简单的说,让人便于理解的代码。不依赖于语言的,用来表示程序执行过程,而不一定能编译运行的代码。在数据结构讲算法的时候用的很多。 

    语法规则

      例如,类Pascal语言的伪代码的语法规则是: 在伪代码中,每一条指令占一行(else if,例外)。指令后不跟任何符号(Pascal和C中语句要以分号结尾)。书写上的“缩进”表示程序中的分支程序结构。这种缩进风格也适用于if-then-else语句。用缩进取代传统Pascal中的begin和end语句来表示程序的块结构可以大大提高代码的清晰性;同一模块的语句有相同的缩进量,次一级模块的语句相对与其父级模块的语句缩进。

        算法的伪代码语言在某些方面可能显得不太正规,但是给我们描述算法提供了很多方便,并且可以使我们忽略算法实现中很多麻烦的细节。通常每个算法开始时都要描述它的输入和输出,而且算法中的每一行都给编上号码,在解释算法的过程中会经常使用算法步骤中的行号来指代算法的步骤。算法的伪代码描述形式上并不是非常严格,其主要特性和通常的规定如下:
            1) 算法中出现的数组、变量可以是以下类型:整数、实数、字符、位串或指针。通常这些类型可以从算法的上下文来看是清楚的,并不需要额外加以说明。
            2) 在算法中的某些指令或子任务可以用文字来叙述,例如,"设x是A中的最大项",这里A是一个数组;或者"将x插入L中",这里L是一个链表。这样做的目的是为了避免因那些与主要问题无关的细节使算法本身杂乱无章。
            3) 算术表达式可以使用通常的算术运算符(+,-,*,/,以及表示幂的^)。逻辑表达式可以使用关系运算符=,≠,<,>,≤和≥,以及逻辑运算符与(and),或(or),非(not)。
            4) 赋值语句是如下形式的语句:a<-b 。
    这里a是变量、数组项,b是算术表达式、逻辑表达式或指针表达式。语句的含义是将b的值赋给a。
            5) 若a和b都是变量、数组项,那么记号a<->b 表示a和b的内容进行交换。
            6) goto语句具有形式
                                            goto label(goto标号)
    它将导致转向具有指定标号的语句。
            7) 条件语句有以下两种形式:
                                                if c then s或者 
                                                   if c then s
                                                      else s′
    这里c是逻辑表达式,s和s′是单一的语句或者是被括在do和end之间的语句串。对于上述两种形式,假若c为真,则s被执行一次。假若c为假,则在第一种形式中,if语句的执行就完成了,而在第二种形式中,执行s′。在所有的情况下,控制就进行到了下一个语句,除非在s或s′中的goto语句使控制转向到其它地方。
             8) 有两种循环指令:while和for。
             while语句的形式是
                                                  while c do  
                                                        s
                                                      end
    这里c是逻辑表达式,而s是由一个或更多个语句组成的语句串。当c为真时,执行s。在每一次执行s之前,c都被检查一下;假若c为假,控制就进行到紧跟在while语句后面的语句。注意,当控制第一次达到while语句时,假若c为假,则s一次也不执行。 
           for语句的形式是
                                          for var init to limit by incr do
                                                            s
                                                          end
    这里var是变量,init、limit和incr都是算术表达式,而s是由一个或多个语句组成的语句串。初始时,var被赋予init的值。假若incr≥0,则只要var≤limit,就执行s并且将incr加到var上。(假若incr<0,则只要var≥limit,就执行s并且将incr加到var上)。incr的符号不能由s来该改变。
          9) exit语句可以在通常的结束条件满足之前,被用来结束while循环或者for循环的执行。exit导致转向到紧接在包含exit的(最内层)while或者for循环后面的一个语句。
         10) return用来指出一个算法执行的终点;如果算法在最后一条指令之后结束,它通常是被省略的;它被用得最多的场合是检测到不合需要的条件时。return的后面可以紧接被括在引号的信息。
          11) 算法中的注释被括在/* */之中。诸如read和output之类的各种输入或者输出也在需要时被用到。
         

    伪代码实例

      伪代码只是像流程图一样用在程序设计的初期,帮助写出程序流程。简单的程序一般都不用写流程、写思路,但是复杂的代码,最好还是把流程写下来,总体上去考虑整个功能如何实现。写完以后不仅可以用来作为以后测试,维护的基础,还可用来与他人交流。但是,如果把全部的东西写下来必定可能会让费很多时间,那么这个时候可以采用伪代码方式。比如:

      IF 九点以前 THEN

         do 私人事务;

      ELSE 9点到18点 THEN

      工作;

      ELSE

      下班;

      END IF

      这样不但可以达到文档的效果,同时可以节约时间. 更重要的是,使结构比较清晰,表达方式更加直观.

      下面介绍一种类Pascal语言的伪代码的语法规则。

      在伪代码中,每一条指令占一行(else if 例外,),指令后不跟任何符号(Pascal和C中语句要以分号结尾);

      书写上的“缩进”表示程序中的分支程序结构。这种缩进风格也适用于if-then-else语句。用缩进取代传统Pascal中的begin和end语句来表示程序的块结构可以大大提高代码的清晰性;同一模块的语句有相同的缩进量,次一级模块的语句相对与其父级模块的语句缩进; 

      在伪代码中,通常用连续的数字或字母来标示同一即模块中的连续语句,有时也可省略标号。

      符号△后的内容表示注释;

      在伪代码中,变量名和保留字不区分大小写,这一点和Pascal相同,与C或C++不同;

      在伪代码中,变量不需声明,但变量局部于特定过程,不能不加显示的说明就使用全局变量;

      赋值语句用符号←表示,x←exp表示将exp的值赋给x,其中x是一个变量,exp是一个与x同类型的变量或表达式(该表达式的结果与x同类型);多重赋值i←j←e是将表达式e的值赋给变量i和j,这种表示与j←e和i←e等价。

      例如:

      x←y

      x←20*(y+1)

      x←y←30

      以上语句用C分别表示为:

      x = y;

      x = 20*(y+1);

      x = y = 30;

      选择语句用if-then-else来表示,并且这种if-then-else可以嵌套,与Pascal中的if-then-else没有什么区别。

      例如:

      if (Condition1)

      then [ Block 1 ]

      else if (Condition2)

      then [ Block 2 ]

      else [ Block 3 ]

      循环语句有三种:while循环、repeat-until循环和for循环,其语法均与Pascal类似,只是用缩进代替begin - end;

      例如:

      1. x ← 0

      2. y ← 0

      3. z ← 0

      4. while x < N

      1. do x ← x + 1

      2. y ← x + y

      3. for t ← 0 to 10

      1. do z ← ( z + x * y ) / 100

      2. repeat

      1. y ← y + 1

      2. z ← z - y

      3. until z < 0

      4. z ← x * y

      5. y ← y / 2

       上述语句用C或C++来描述是:

      x = y = z = 0;

      while( z < N )

      {

      x ++;

      y += x;

      for( t = 0; t < 10; t++ )

      {

      z = ( z + x * y ) / 100;

      do {

      y ++;

      z -= y;

      } while( z >= 0 );
         }
      z = x * y;

      }

      y /= 2;

      数组元素的存取有数组名后跟“[下标]”表示。例如A[j]指示数组A的第j个元素。符号“ …”用来指示数组中值的范围。

      例如:

      A[1…j]表示含元素A[1], A[2], … , A[j]的子数组;

      复合数据用对象(Object)来表示,对象由属性(attribute)和域(field)构成。域的存取是由域名后接由方括号括住的对象名表示。

      例如:

      数组可被看作是一个对象,其属性有length,表示其中元素的个数,则length[A]就表示数组A中的元素的个数。在表示数组元素和对象属性时都要用方括号,一般来说从上下文可以看出其含义。

      用于表示一个数组或对象的变量被看作是指向表示数组或对象的数据的一个指针。对于某个对象x的所有域f,赋值y←x就使f[y]=f[x],更进一步,若有f[x]←3,则不仅有f[x]=3,同时有f[y]=3,换言之,在赋值y←x后,x和y指向同一个对象。

      有时,一个指针不指向任何对象,这时我们赋给他nil。

      函数和过程语法与Pascal类似。

      函数值利用 “return (函数返回值)” 语句来返回,调用方法与Pascal类似;过程用 “call 过程名”语句来调用;

      例如:

      1. x ← t + 10

      2. y ← sin(x)

      3. call CalValue(x,y)

      参数用按值传递方式传给一个过程:被调用过程接受参数的一份副本,若他对某个参数赋值,则这种变化对发出调用的过程是不可见的。当传递一个对象时,只是拷贝指向该对象的指针,而不拷贝其各个域。

    展开全文
  • ![图片说明]... 这个是我们教授给我的一块儿C语言声明伪代码,求大佬用一个非常简单的代码具体实现一下这个声明。 这里的t 应该是类型 我想问一下 **t 和 *t* 有什么区别吗?
  • 伪代码 - 示例

    千次阅读 2018-08-07 11:15:00
    伪代码: 一般用来模拟真实代码的一种简写方式   伪代码: 1 !!! 5 2 html(lang="en") 3 head 4 title= pageTitle 5 :javascript 6 | if (foo) { 7 | bar() 8 | } 9 body ...

    来源于:jade

    伪代码: 一般用来模拟真实代码的一种简写方式

     

    伪代码:

     1 !!! 5
     2 html(lang="en")
     3   head
     4     title= pageTitle
     5     :javascript
     6       | if (foo) {
     7       |    bar()
     8       | }
     9   body
    10     h1 Jade - node template engine
    11     #container
    12       - if (youAreUsingJade)
    13          You are amazing
    14       - else
    15          Get on it!
    16          Get on it!
    17          Get on it!
    18          Get on it!

     

    真实代码:

    <!DOCTYPE html>
    <html lang="en">
      <head>
        <title>Jade</title>
        <script type="text/javascript">
          //<![CDATA[
          if (foo) {
              bar()
          }
          //]]>
        </script>
      </head>
      <body>
        <h1>Jade - node template engine</h1>
        <div id="container">
          <p>You are amazing</p>
        </div>
      </body>
    </html>    

     

    展开全文
  • 伪代码实例与原理

    千次阅读 2016-10-23 07:51:53
    伪代码(Pseudocode)是一种算法描述语言。使用伪代码的目的是为了使被描述的算法可以容易地以任何一种...因此,伪代码必须结构清晰、代码简单、可读性好,并且类似自然语言。 介于自然语言与编程语言之间点击打开链接
  • 伪代码规范

    千次阅读 多人点赞 2019-05-09 20:10:58
    原文链接:https://www.cnblogs.com/huipengkankan/archive/2011/07/28/2120416.html伪代码(Pseudocode)是一种算法描述语言。...因此,伪代码必须结构清晰、代码简单、可读性好,并且类似自然语...
  • 伪代码的写法

    千次阅读 2017-08-17 22:46:50
    因此,伪代码必须结构清晰、代码简单、可读性好,并且类似自然语言。 介于自然语言与编程语言之间。  它以编程语言的书写形式指明算法的职能。相比于程序语言(例如Java, C++,C, Dephi 等等)它更类似自然语言。...
  • JAVA设计模式之工厂模式伪代码解析

    千次阅读 2019-02-20 17:00:05
    如果我们需要什么子类汽车的话就得分别取实例化这些子类,而工厂模式则是提供了一个方法根据我们的需要去选这创建这些子类,例如:我们需要一辆宝马汽车,工厂则给我们创建一辆宝马汽车,需要一辆奔驰汽车,工厂则给...
  • Apriori算法详解之【二、伪代码例子

    万次阅读 多人点赞 2013-06-09 10:55:53
    上一篇文章中对Apriori算法进行了简单的描述(Apriori算法详解之【一、相关概念和核心步骤】http://blog.csdn.net/lizhengnanhua/article/details/9061755),现在用伪代码实现,及对经典例子进行描述(红兰PPT上之...
  • 伪代码(Pseudocode)的语法规则

    万次阅读 2019-09-27 15:40:21
    因此,伪代码必须结构清晰、代码简单、可读性好,并且类似自然语言。 介于自然语言与编程语言之间。 语法规则  例如,类Pascal语言的伪代码的语法规则是: 在伪代码中,每一条指令占一行(else if,例外)。指令...
  • 最近论文中要插入伪代码,网上主流的方法都是Aurora,但自己安装的时候遇到各种问题。。。这个古老的插件实在是太麻烦了。 正常安装的话应该是只支持32位的Office(这年头了谁还用32位啊)。 操作系统:Win10 ...
  • 使用类伪代码语言编写正则表达式的简单工具。 演示: : 例子: 目录 如何使用 建议命令每行写一个命令,除非命令是嵌套的。 符号和标点符号不需要转义。 使用换行符连接多个命令。 制表符和空格可用于缩进以...
  • 知识拓展——伪代码详解

    千次阅读 2021-02-23 12:52:31
    知识拓展——伪代码详解伪代码伪代码的基本控制结构伪代码实例伪代码的特点 伪代码 伪代码是一种介于自然语言和形式化语言之间的半形式化语言,是一种用于描述功能模块的算法设计和加工细节的语言,也称为程序...
  • 伪代码书写规范

    万次阅读 2019-03-20 16:48:37
    因此,伪代码必须结构清晰、代码简单、可读性好,并且类似自然语言。 介于自然语言与编程语言之间。  它以编程语言的书写形式指明算法的职能。相比于程序语言(例如Java, C++,C, Dephi 等等)它更类似自然语言。它...
  • Java伪代码示例

    千次阅读 2018-08-02 18:00:00
    代码实现; //剩下的就是体力活了 } if(如果你上来就敲)System.out.println("你就是加班最多的程序员"); //积极工作和勤于思考都要占时间 }   转载于:...
  • 在Latex中写伪代码的两个例子

    千次阅读 2015-06-07 15:54:18
    1. LaTeX中算法环境设置:简要 2. LaTeX/Algorithms伪代码:详细
  • 算法中伪代码的书写学习

    千次阅读 2018-11-28 15:47:08
     伪代码(Pseudocode)是一种算法描述语言。使用伪代码的目的是为了使被描述的算法可以容易地以任何一种...因此,伪代码必须结构清晰、代码简单、可读性好,并且类似自然语言。 介于自然语言与编程语言之间。  ...
  • 伪代码书写规则

    千次阅读 2019-04-15 19:31:42
    因此,伪代码必须结构清晰、代码简单、可读性好,并且类似自然语言。 介于自然语言与编程语言之间。 它以编程语言的书写形式指明算法的职能。相比于程序语言(例如Java, C++,C, Dephi 等等)它更类似自然语言。它是...
  • 伪代码

    千次阅读 2019-08-22 09:41:00
    伪代码规范
  • 伪代码——语法书写~规则

    千次阅读 2020-04-28 10:45:52
    因此,伪代码必须结构清晰、代码简单、可读性好,并且类似自然语言。 介于自然语言与编程语言之间。它是半角式化、不标准的语言。可以将整个算法运行过程的结构用接近自然语言的形式(可以使用任何一种你熟悉的文字,...
  • [转]伪代码的写法

    万次阅读 2018-11-20 16:59:18
    伪代码的写法(附:12种排序算法详解) ...伪代码(Pseudocode)是一种算法描述语言。使用伪代码的目的是为了使被描述的...因此,伪代码必须结构清晰、代码简单、可读性好,并且类似自然语言。 介于自然语言与编程语...
  • day015 如何写伪代码 在学习的过程中老师要求我们在写程序之前先写伪代码,一开始我是拒绝的但奈何没有用,小的程序直接都写出来了再返回写伪代码有点烦,...因此,伪代码必须结构清晰,代码简单,可读性好,并且类...
  • 机器学习算法-KMeans聚类算法解析及伪代码实现。 徐小狗在文末附上了几条大神们关于KMeans聚类算法的博文,欲详细研究请前往浏览~ 作为初学者,许多地方可能笨拙或有误,希望有大神看到后给予优化和指点!~ ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 119,634
精华内容 47,853
关键字:

伪代码的简单例子