Java表达式求值、杨辉三角实验报告

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

一.实验目的

实现杨辉三角和表达式的封装

二.实验软件环境

本实验是在MyEclipse 9.01M1编写和运行的

三.实验内容

(一)实验要求

1. 输出杨辉三角前N项,N为参数

2. 表达式求值:输入一个表达式,输出它的值,其中要用到java.util.Stack (二)实验代码

程序代码:

1)杨辉三角:

/**

*功能:用二维数组实现杨辉三角

*时间:2011-05-01

**/

package b1;

import java.io.*;

public class Pascal{

public Pascal(){

play();

}

public void play(){

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

System.out.print("请输入n值:");

int n = 0;

try {

n = Integer.parseInt(br.readLine());

} catch (NumberFormatException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

int array[][] = new int[n][2*n-1];

//判断是否为奇数

if( n%2 == 1 ){

for(int i=1; i<=n; i++){

for(int j=1; j<=2*n-1 ;j++){

//首先给前5-i个元素赋值0

if(j<=n-i)

array[i-1][j-1] = 0;

//输出第一个“1”和最后一个“1”

else if((j==(n-i+1))||(j==n+i-1))

array[i-1][j-1] = 1;

else if((j < n+i-1)&&(j > n-i+1)){

if((j-i)%2 == 1)

array[i-1][j-1] = 0;

else

array[i-1][j-1] = array[i-2][j-2] + array[i-2][j];

}

}

}

}

//为偶数所进行的操作

else{

for(int i=1; i<=n; i++){

for(int j=1; j<=2*n-1; j++){

//首先给前5-i个元素赋值0

if(j<=n-i)

array[i-1][j-1] = 0;

//输出第一个“1”和最后一个“1”

else if((j==(n-i+1))||(j==n+i-1))

array[i-1][j-1] = 1;

else if((j < n+i-1)&&(j > n-i+1)){

if((j-i)%2 == 0)

array[i-1][j-1] = 0;

else

array[i-1][j-1] = array[i-2][j-2] + array[i-2][j];

}

}

}

}

/*输出数组*/

for(int i=1; i<=n; i++){

for(int j=1; j<=2*n-1; j++){

if(array[i-1][j-1] == 0){

System.out.print(" ");

}

else

System.out.print(array[i-1][j-1]);

System.out.print(" ");

}

System.out.println();

}

}

public static void main(String argc[]){

Pascal p = new Pascal();

}

}

2)表达式求值,代码如下:

1)Stack类:用来存储表达式子元素的类,代码如下:

package btwo;

public class Stack {

private int maxLen;

private int size;

private char c[];

public Stack(int maxLen) {

this.maxLen = maxLen;

c = new char[maxLen];

size = 0;

}

public void push(char v){

c[size++] = v;

}

public char pop(){

return c[--size];

}

public boolean isEmpty(){

return size == 0;

}

}

2)ExplainPostfix类:实现将输入的表达式转成后缀表达式,代码如下:

package btwo; public class ExplainPostfix {

String in; String out = "";

Stack s;

public ExplainPostfix(String in){

相关文档
最新文档