精华内容
下载资源
问答
  • 伪代码编程过程

    千次阅读 2017-09-23 17:10:43
    伪代码编程过程  从微观上关注编程过程--关注创建单独的类及其子程序的特定步骤,讲述伪代码编程过程(ppp,Pseudocode Programming Process),有助于减少设计和编写文档所需的工作量,同时提高这两项工作的质量。 v...

    伪代码编程过程

         从微观上关注编程过程--关注创建单独的类及其子程序的特定步骤,讲述伪代码编程过程(ppp,Pseudocode Programming Process),有助于减少设计和编写文档所需的工作量,同时提高这两项工作的质量。

    v 创建类和子程序的步骤概述

    迭代的过程:

    a. 先对类做一个总体设计,列出这个类内部的特定子程序

    b. 创建这些子程序

    c. 从整体上复查这个类的构建结果。

     

    创建一个类的步骤

    1. 创建类的总体设计

    2. 创建类中的子程序

    3. 复审并测试整个类

     

     

    创建子程序的步骤

     

     

    伪代码

    概念:指某种用来描述算法、子程序、类或完整程序的工作逻辑、非形式的、类似于英语的记法。

    指导原则:

    a) 用类似英语的语句来精确描述特定的操作

    b) 避免使用目标编程语言中的语法元素

    c) 在本意的层面上编写伪代码

    d) 在一个足够低的层次上编写伪代码,以便可以近乎自动地从它生成代码。

    好处:

    1) 伪代码使得评审容易

    2) 伪代码支持反复迭代精化的思想

    3) 伪代码使变更更加容易

    4) 伪代码能使给代码注释的工作量剪到最少

    5) 伪代码比其他形式的设计文档更容易维护

     

    通过伪代码编程过程创建子程序

    1. 设计子程序

    u 检查先决条件

    u 定义子程序要解决的问题

    u 为子程序命名

    u 决定如何测试子程序

    u 在标准库中搜索可用的功能

    u 考虑错误处理

    u 考虑效率问题

    u 研究算法和数据类型

    u 编写伪代码

    u 考虑数据

    u 检查伪代码

    u 在伪代码中试验一些想法,留下最好的想法(迭代)

    2. 编写子程序的代码

     


    3. 伪代码编程过程的替代方案

    Ø 测试先行开发

    Ø 重构

    Ø 契约式设计

    Ø 东拼西凑

    总结: 

         其实,平时伪代码写的很少(基本没写过,捂脸状) ,希望能在以后的工程中运用到实践中去,“纸上得来终觉浅,绝知此事要躬行”···

    展开全文
  • 伪代码的写法

    万次阅读 多人点赞 2016-12-09 14:24:06
    使用伪代码的目的是为了使被描述的算法可以容易地以任何一种编程语言(Pascal,C,Java,etc)实现。因此,伪代码必须结构清晰、代码简单、可读性好,并且类似自然语言。 介于自然语言与编程语言之间。 它以编程...

    伪代码(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)

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

     
    展开全文
  • 第九章:伪代码编程过程 9.1创建类和子程序的步骤概述 创建一个类的步骤 创建子程序的步骤 9.2伪代码 9.3通过伪代码编程过程创建子程序 编写子程序代码 检查代码 9.4伪代码编程过程的替代方案 第八章:防御...

    目录

     

    第八章:防御式编程

    第九章:伪代码编程过程

    9.1创建类和子程序的步骤概述

    创建一个类的步骤

    创建子程序的步骤

    9.2伪代码

    9.3通过伪代码编程过程创建子程序

    编写子程序代码

    检查代码

    9.4伪代码编程过程的替代方案


    第八章:防御式编程

    //TODO

    第九章:伪代码编程过程

    9.1创建类和子程序的步骤概述

    类的创建是一个迭代的过程,先对一个类做总体设计,列出这个类内部特定的子程序,创建这些子程序,然后从整体上复查这个类的构建结果。

    创建一个类的步骤

    1.创建类的总体设计

    • 定义类的特定职责
    • 定义类要隐藏的秘密
    • 精确的定义类的接口所代表的的抽象概念
    • 决定是否允许继承是否要派生至其他类
    • 支出关键共有方法
    • 标识出要用到的重要数据成员

    2.创建类中的子程序

    3.复审并测试整个类

    创建子程序的步骤

    9.2伪代码

    伪代码是某种用来描述算法,子程序,类,完整程序的工作逻辑的,非形式的,类似于英语的记法。

    原则:

    • 用类似英语的语句来精确表述特定的操作
    • 避免使用目标程序语言中的语法
    • 在本意的层面上去编写伪代码,用伪代码来描述解决问题的方法的意图,而不是去写如何在目标语言中实现这个方法。
    • 在一个足够低的层次上编写伪代码。

    9.3通过伪代码编程过程创建子程序

    1. 检查先决条件,检查子程序职责,是否是项目直接或者间接必须的。
    2. 定义子程序要解决的问题
    3. 为子程序命名
    4. 决定如何测试子程序
    5. 在标准库中寻找可用的功能,重用好的代码
    6. 考虑错误处理,对可能出错的输入,其他程序返回的无效参数
    7. 考虑效率问题,但是大多数情况下,子程序的效率不是十分紧要,应该优先考虑设计,效率是设计的副产物,满足良好设计的前提下,效率可以被很好的解决,例如替换算法,用更底层的方式实现
    8. 研究算方和数据类型
    9. 编写伪代码
    10. 考虑数据
    11. 检查伪代码
    12. 在伪代码中实验一些想法,然后留下最好的那个(迭代的方式)

    编写子程序代码

    1. 写出子程序的声明
    2. 把伪代码转变为高层的注释
    3. 在每条注释下面填充代码
    4. 检查代码是否需要进一步分解

    检查代码

    1. 在脑海里检程序中的错误
    2. 编译
    3. 单步执行
    4. 测试代码

    9.4伪代码编程过程的替代方案

    伪代码编程过程是创建类和子程序的最佳方法。

    1. 测试先行
    2. 重构
    3. 契约式设计
    4. 东拼西凑
    展开全文
  • 基于伪代码编程

    2014-07-05 20:51:33
    伪代码代表编程的具体步骤,而利用图形编程只需要利用具体步骤,傻瓜式编程是利用人的思维习惯,通过简单的操作,就能生成简单的程序甚至于复杂程序来,但要脱离游戏式编程才可做到

    伪代码代表编程的具体步骤,而利用图形编程只需要利用具体步骤,傻瓜式编程是利用人的思维习惯,通过简单的操作,就能生成简单的程序甚至于复杂程序来,但要脱离游戏式编程才可做到

    0120

    写出文件所需的函数和步骤,利用自动生成的代码模板填充信息,甚至设计算法,自动测试

    展开全文
  • 伪代码编程语言

    千次阅读 2013-09-15 17:00:49
    大一的时候学习了C语言,然后慢慢的又学了java,...个人感觉伪代码可以让我们提升对编程的兴趣,让编程变得不那么乏味,同时也可以学到编程的思想和一些算法。 记得上学期Android实验课的期末作业是让我们做一个...
  • 一般用于初期设计阶段,是一种算法描述语言,伪代码必须结构清晰,代码简单,可读性好,并且类似自然语言,是介于自然语言和编程语言之间。 伪代码实例: 需求:实现用户登录 if 用户名或密码为空 then 提示...
  • 这里推荐伪代码编程,它可以减少设计和编写文档的工作量,同时却起到了设计文档的作用。   伪代码是指某种用来描述算法、子程序、类或完整程序的工作逻辑的、非形式的、类似于英语的记法。 1. 用类似英语...
  • 伪代码

    万次阅读 2015-10-12 11:22:52
    伪代码声明:引用请注明出处http://blog.csdn.net/lg1259156776/说明:从来没有认真的想过学习一下伪代码,因为大部分只是在阅读,能够看懂也就没有深入了解一下如何编写伪代码,下面所进行的总结就是关于如何使用...
  • 伪代码编程过程感觉有如下几方面: 先写伪代码,再根据伪代码去Coding,其实这样不管是在function、procedure还是Class的设计上都是比较好的,编写完伪代码之后看看伪代码,这个函数或者类就很清晰了,结构应该会很...
  • 第九章--伪代码编程过程

    千次阅读 2014-10-10 08:38:29
    第九章--伪代码编程过程 9.1 创建类和子程序的步骤概述 1. 创建一个类的步骤(是个迭代过程): (1)创建类的总体设计。 (2)创建类中得子程序。 (3)复审并测试整个类。 2. 创建子程序的步骤(是个...
  • 伪代码规范

    千次阅读 多人点赞 2019-05-09 20:10:58
    原文链接:...使用伪代码的目的是为了使被描述的算法可以容易地以任何一种编程语言(Pascal,C,Java,etc)实现。因此,伪代码必须结构清晰、代码简单、可读性好,并且类似自然语...
  • 如何写伪代码

    万次阅读 2015-01-07 17:44:25
    伪代码的使用 Usage of Pseudocode 伪代码(Pseudocode)是一种算法描述语言。使用为代码的目的是为了使被描述的算法可以容易地以任何一种编程语言(Pascal, C, Java, etc)实现。因此,伪代码必须结构清晰,代码...
  • 学会使用伪代码编码,让编码结构更优工作量更小
  • 插入排序伪代码编程实现

    千次阅读 2016-10-27 15:20:48
    插入排序的伪代码:   Insertion_sort(A)  for j←2 to length[A]  temp = A[j]  i ←j-1  while i>0 and A[i] > temp  A[i+1]←A[i]  i --  A[i+1] = temp   比如我有一...
  • 第九章,伪代码编程过程 9.1 创建类和子程序的步骤概述  创建一个类可以有多种不同的方式,但一般而言这都是一个迭代过程,先对一个类做总体设计,列出这个类内部的特定子程序,创建这些子程序,然后从整个上复查...
  • 伪代码编程过程(P215) 伪代码有助于减少设计和编写文档所需的工作量,同时提高这两项工作的质量。 1.创建类和子程序的步骤概述 1)创建一个类的步骤 创建类的总体设计创建类中的子程序复审并测试整个类 以上是...
  • 伪代码阅读与学习

    千次阅读 2017-12-12 14:17:41
    2、避免使用目标编程语言的语法元素来描述,伪代码能让你在一个比代码更高的层次上进行设计。当用编程语言的语法来描述时,你的伪代码设计就降到了一个更低的层次。 3、在意图的层面上去编写伪代码,用伪代码来描述...
  • 什么是伪代码

    热门讨论 2020-10-20 11:25:30
    伪代码有什么作用 伪代码(Pseudocode)是一种非正式的,类似于英语结构的,用于描述模块结构图的语言。人们在用不同的编程语言实现同一个算法时意识到...使用伪代码的目的是使被描述的算法可以容易地以任何一种编程语言
  • 本节书摘来异步社区《Java遗传算法编程》一书中的第2章,第2.2节,作者: 【英】Lee Jacobson(雅各布森) , 【美...2.2 基本遗传算法的伪代码 基本遗传算法的伪代码如下: 1: generation = 0; 2: population[gener...
  • 伪代码及其实例讲解

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

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 98,596
精华内容 39,438
关键字:

编程伪代码