我对编写伪代码(java)的理解是否正确?

时间:2014-12-05 09:51:11

标签: java pseudocode

所以我刚刚学会了如何编写伪代码,让我们说这是我的代码

import java.util.Date;
import java.util.Calendar;
import java.text.SimpleDateFormat;
class Watever{
public static final String foo="12345151";
public static String today;
public static String expiry;
public static void date(){
    SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("dd/MM/yy");
    Calendar calen = Calendar.getInstance();
    Date todayDate = calen.getTime();
    today = DATE_FORMAT.format(todayDate);
    calen.add(Calendar.MONTH, 4);
    Date expirationDate = calen.getTime();
    expiry = DATE_FORMAT.format(expirationDate);
    }

public static void main(String[] args){
    date();
    System.out.println(today);
    int bar = Integer.parseInt(foo);
    System.out.println(bar);
    }
      }

这是一个可接受的伪代码(假设我们将在java中编写代码)

PROGRAM Watever:
  Declare public final String foo="12345151";
  Declare public String today;
  method date():
             GET Today's date;
             today= Today's date;
             expiry= today+ 4 MONTHS;
             Format today AND expiry to "dd/MM/yy"
  method main(String[] args):
             CALL date();
             PRINT today;
             Convert String foo to int bar;
             PRINT bar;
END

并且假设我们将scan对象用于system.in,我们是否必须说我们使用它或者我们只是使用

 PROMPT user "Enter number: ";
 GET num;

我们如何编写printf(格式化字符串)的伪代码

3 个答案:

答案 0 :(得分:1)

伪代码是一种非正式的表达方式。 它与语言无关。 您不必在伪代码中声明变量。 你只需要以良好的方式传达信息。

对于printf,您可以使用print "message"

您好,您可以查看以下链接,他们肯定会有所帮助。

link 1

link 2

link 3

答案 1 :(得分:1)

如果有人要求伪代码,这通常意味着快速勾画的概述算法。当然还是精心打造的。人们会考虑真正的意义,并选择步骤和数据结构。有关如何改进模糊需求并将其放入代码中,请参见here

伪代码通常看起来比您尝试的要好一些。所以

  • 与风格保持一致:如果对保留字使用大写(或粗体),那么到处都可以。
  • 带空格的标识符是可以的,但是(根据我的Algol68经验)我宁愿让它们都是小写字母而没有引号。
  • 当分离清晰时,最好用括号和逗号读取函数调用,单独的参数。

所以:

PROGRAM Whatever:
    CONSTANT String foo = "12345151";
    FIELD String today;

    METHOD date ():
         today := LIBRARY todays date();
         expiry := today + 4 MONTHS;
         today := date format(today, expiry, "dd/MM/yy").

    BEGIN
         date();
         PRINT(today);
         bar := convert string to int(foo);
         PRINT(bar);
    END

关于“将String foo转换为int bar”:这也是一种自上而下的细化方式。它声明了一段代码的意图,并且很好地记录了代码。

whatever:
    String foo;
    ...
    convert string foo to integer bar;
    ...
    ... .

convert string foo to integer bar:
    int bar = atoi(foo).

最后但并非最不重要的,关于内容,伪算法本身。在你的情况下,你只是在没有参数和结果的情况下调用date,并且读取和副作用会存储在字段today中计算的内容。没有副作用夜的功能会更有用。肯定是一个更好的名字。

答案 2 :(得分:0)

伪代码不一定非常详细,如果你和其他人能够理解它应该做什么,那就足够了。