1 / 13
文档名称:

编译原理-逆波兰式的产生及计算(共13页).doc

格式:doc   大小:115KB   页数:13页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

编译原理-逆波兰式的产生及计算(共13页).doc

上传人:xiang1982071 2022/3/4 文件大小:115 KB

下载得到文件列表

编译原理-逆波兰式的产生及计算(共13页).doc

相关文档

文档介绍

文档介绍:精选优质文档-----倾情为你奉上
精选优质文档-----倾情为你奉上
专心---专注---专业
专心---专注---专业
精选优质文档-----倾情为你奉上
专心---专注---专业
实验报告
课程 编译原理 实
 
(1)构造一个栈,存放运算对象。
(2)读入一个用逆波兰式表示的简单算术表达式。
(3)自左至右扫描该简单算术表达式并判断该字符,如果该字符是运算对象,则将该字符入栈。若是运算符,如果此运算符是二目运算符,则将对栈顶部的两个运算对象进行该运算,将运算结果入栈,并且将执行该运算的两个运算对象从栈顶弹出。如果该字符是一目运算符,则对栈顶部的元素实施该运算,将该栈顶部的元素弹出,将运算结果入栈。
(4)重复上述操作直至扫描完整个简单算术表达式的逆波兰式,确定所有字符都得到正确处理,我们便可以求出该简单算术表达式的值。
四、实验步骤
(描述实验步骤及中间的结果或现象。在实验中做了什么事情,怎么做的,发生的现象和中间结果)
设计一个窗体如下:
精选优质文档-----倾情为你奉上
精选优质文档-----倾情为你奉上
专心---专注---专业
专心---专注---专业
精选优质文档-----倾情为你奉上
专心---专注---专业
对各个控件进行命名,并将“计算结果”控件设置为不可用的
在程序中添加一个类CreateInPo,并在类中编写如下代码:
using System;
using ;
using ;
using ;
namespace InversePolandType
{
class CreateInPo
{
public bool b1 = true;
private char Proceed(char op, char c) /*op为栈顶元素,c为当前读入的运算符,比较二者的优先级*/
{
char ch = '>';//默认是大于
if (op == '(' && c == ')' || op == '#' && c == '#')
ch = '=';
else
if (op == '+' || op == '-') /*栈顶元素为‘+’或‘-’的时候*/
switch (c)
{
case '+':
case '-':
case ')':
case '#': ch = '>'; break;
case '*':
精选优质文档-----倾情为你奉上
精选优质文档-----倾情为你奉上
专心---专注---专业
专心---专注---专业
精选优质文档-----倾情为你奉上
专心---专注---专业
case '/':
case '(': ch = '<'; break;
}
else
if (op == '*' || op == '/') /*栈顶元素为‘*’或‘/’的时候*/
switch (c)
{
case '+':
case '-':
case '*':
case '/':
case ')':
case '#': ch = '>'; break;
case