JAVA语法基础作业——动手动脑以及课后实验性问题 (二)

一、随机数

import java.util.Random;


public class Suijishu {

   private static final int N = 200;

   private static final int LEFT = 40;

   private static final int RIGHT = 10000;

   private static long x0 = 1L;

   private long a = 1103515245L;

   private long c = 12345L;

   private long m = 2147483648L;

                       // 产生随机数

   private long rnd ( long r ){

       r = ( r * a + c ) % m; //Xn+1=(aXn + c)mod m
       return r;
   }

   private long little1 ( int a, int b, long rand ){

       return a+rand%(b-a+1);

   }

   private void recursion ( int count, long rand ){

         if (count >= N){return;}

   rand = rand (rand);

   long r = little1 (LEFT, RIGHT, rand);

   System.out.print (r + " ");

   recursion (++count, rand);

   }

   private long little(int left2, int right2, long rand) {
      // TODO Auto-generated method stub
      return 0;
   }

   public static void main ( String[] args ){

      Suijishu recur = new Suijishu ();
      recur.recursion (0, x0);

   }

}

 

 

二、方法重载

public class MethodOverload {

   public static void main(String[] args) {
      System.out.println("The square of integer 7 is " + square(7));
      System.out.println("\nThe square of double 7.5 is " + square(7.5));
   }

   public static int square(int x) {
      return x * x;
   }

   public static double square(double y) {
      return y * y;
   }
}

 

  满足以下条件的两个或多个方法构成“重载”关系:
    (1)方法名相同;
    (2)参数类型不同,参数个数不同,或者是参数类型的顺序不同。
  注意:方法的返回值不作为方法重载的判断条件。

转载于:https://www.cnblogs.com/XiaoPiHaiEr/p/5962938.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
语法分析是编译原理中的重要部分,它的作用是将词法分析阶段得到的词法单元序列转换成抽象语法树(AST)或语法分析树(Parse Tree),以便于后续的语义分析、中间代码生成和目标代码生成等环节的进行。在本次实验中,我们将使用Java语言实现一个简单的语法分析器。 实验要求: 1. 实现自顶向下的递归下降分析器。 2. 支持的文法如下: ``` <program> ::= <stmts_list> <stmts_list> ::= <stmt> | <stmts_list> <stmt> <stmt> ::= <if_stmt> | <while_stmt> | <assign_stmt> <if_stmt> ::= if <condition> then <stmts_list> end <while_stmt> ::= while <condition> do <stmts_list> end <assign_stmt> ::= <id> = <expr> <condition> ::= <expr> <relop> <expr> <expr> ::= <term> | <expr> <addop> <term> <term> ::= <factor> | <term> <mulop> <factor> <factor> ::= <id> | <number> | '(' <expr> ')' <relop> ::= '<' | '>' | '=' | '<=' | '>=' | '<>' <addop> ::= '+' | '-' <mulop> ::= '*' | '/' <id> ::= <letter> | <id> <letter> | <id> <digit> <number> ::= <digit> | <number> <digit> <letter> ::= A | B | ... | Z | a | b | ... | z <digit> ::= 0 | 1 | ... | 9 ``` 注意:文法中的关键字 if、then、end、while、do、and 等均为保留字。 3. 实现的语法分析器应具备以下功能: - 能够识别出语法正确的程序,并输出相应的语法分析树或抽象语法树。 - 能够识别出语法错误的程序,并给出相应的错误提示信息。 - 能够处理注释和空格等无意义的字符。 4. 实验提交要求: - 实验报告,包括程序设计和实验结果分析。 - 程序源代码。 实验设计思路: 1. 根据给定的文法,设计语法分析器的语法规则和对应的产生式。 2. 编写相应的Java代码,将文法转换为递归下降分析器所需要的形式。 3. 实现从输入的源代码中读取词法单元序列的功能。 4. 实现递归下降分析器的核心算法,对输入的词法单元序列进行语法分析,并构建相应的语法分析树或抽象语法树。 5. 在语法分析过程中,需要处理注释和空格等无意义的字符,以便于正确识别语法错误。 6. 在语法分析过程中,需要对输入的源代码进行错误检查,并给出相应的错误提示信息。 7. 输出语法分析树或抽象语法树,以便于后续的语义分析、中间代码生成和目标代码生成等环节的进行。 实验结果分析: 经过实验测试,我们的语法分析器能够正确地识别出合法的程序,并输出相应的语法分析树或抽象语法树。同时,它也能够正确地识别出语法错误的程序,并给出相应的错误提示信息。总的来说,本次实验取得了较好的实验效果。 实验源代码: 见下方代码框:

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值