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

我对编写伪代码(java)的理解正确吗?,java,pseudocode,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 dat

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

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编写代码)

让我们假设,如果我们使用scanner对象来为system.in,我们必须说我们使用了它还是仅仅使用了它

 PROMPT user "Enter number: ";
 GET num;

另外,我们如何为printf(格式化字符串)编写伪代码?

Psuedo代码不必那么详细,如果您和其他人能够理解它应该做什么,那么它就足够了。

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

对于printf,您可以使用
print“message”

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


如果有人要求伪代码,这通常意味着,一个快速绘制的算法。当然还是精心制作的。我们需要考虑真正的含义,并选择步骤和数据结构。有关如何细化模糊需求并将其放入代码中的信息,请参见

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

  • 在风格上保持一致:如果使用大写(或粗体)作为保留字,那么在任何地方都要这样做
  • 带空格的标识符是可以的,但(根据我的Algol68经验)我宁愿它们都是小写字母,不加引号
  • 函数调用(单独的参数)最好在分隔清晰时读取,并带有括号和逗号
因此:

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

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

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

最后但并非最不重要的是,关于内容,伪算法本身。在您的情况下,实际上只调用
date
,而不调用参数和结果,这样做的副作用是读取并作为副作用存储今天在
字段中计算的内容。没有副作用的功能可能更有用。当然是一个更好的名字。

这取决于你想用什么“伪”字,例如,伪代码更改的可接受程度取决于您是想将算法裁剪为非技术熟练人员可以理解的,还是想让已经了解基本概念的程序员向他们解释代码流的程序员可以理解。@CeilingGecko这是我的作业,我的讲师将阅读它,但我的例子可以接受吗?我的问题是,我不明白我们是否需要说我们使用了Date类和SimpleDateFormat,或者只是像我所做的那样编写。伪代码是抽象的,它是用来描述算法应该如何工作,而不是如何用某种语言实现。所以您不能有printf的伪代码,因为它可能不存在于其他文件中languages@Kazem如果我是你的讲师,我不会接受你的例子,去尝试寻找一些算法,甚至是求解二次方程的算法,并用伪代码一步一步地解释整个过程。忘了java吧,你的任务就是这样写,所以那个不懂java的家伙必须在ie中实现它python@user902383我不是解释了一些步骤吗?比如说,获取今天的日期和有效期的方式,让所有阅读它的人都能理解吗?我的伪代码的哪些部分仅限于了解java的人?感谢这些链接,那么我写的东西会被认为是错误的吗?如果我将其作为上面代码的伪代码呈现?根据您老师的要求,您上面的代码可能被认为是正确的。我不能确定。我明白了,我之所以采用这种形式是因为它与讲师在讲座中向我们展示的内容相似。我还有一个问题,我程序的一部分要求我查找字符串的子字符串,比如从第7次出现的“,”到第8次出现的“,”的索引,所以我创建了自己的方法来查找第n次出现,因为indexof仅限于第一次和最后一次。我需要说明我使用的第n次出现的方法吗,或者类似的方法可以吗?String StudentID=从“,”的第一个索引到“,”的第二个索引的行子字符串;并以“”取代所有“;您可以这样编写:在给定的逗号索引之间查找StudentId字符串;清除StudentId字符串中的逗号;
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
whatever:
    String foo;
    ...
    convert string foo to integer bar;
    ...
    ... .

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