1、 有符号整数+数字 数字0 1 2 3。.。. 9 读无符号数的程序流程图见下图三主要仪器设备PC机+Java语言编程环境四、实验结果与分析1.实验代码:package text1;import java。io。BufferedReader;InputStreamReader;public class Text1 /* * param args /public static void main(String args) throws Exception / TODO Autogenerated method stubint p = 0, w = 0, w1 = 0, j = 0, i = 0,
2、 d = 0, e = 1;double w2 = 0;String str;System.out.println(”请输入一串字符以;结束:);BufferedReader buf = new BufferedReader(new InputStreamReader(System。in);str = buf.readLine();char m = new char100;for (i = 0; i = 48 mi = 57);/ System。out.println(chesi”+mi);if (mi != .) if (mi != E) System。整型数为:” + w);j = 0;w
3、 = 0;if (mi = ) e = 1;if (mi = 48 mi = 57) d = mi 48;p = p * 10 + d; while (mi = 48 mi 1)w2 = w / (Math.pow(10.0, j - 1);out。println(实型数为: + w2 + ”10” + ” + (e * (p j + 1);j = 0;w2 = 0;w = 0;p = 0; elseout.println(”您输入有误! else if (mi = +) if (mi = 48 mi = 57) do d = mi 48; while (mi = 48 & mi = 48 &
4、 mi = 57) w1 = w1 10 + d;/ j = j + 1; while (mi = 48 mi = 57);”);if (mi !E小数为:” + w + . + w1);w1 = 0;if (mi = ) e = -1;if (mi = 48 & mi mi = 57);if (j 1) pow(10.0, j 1);System.out。println(”实型数为: + w2 + w1+ 10” + ” + (e * (p j + 1); else + w + . + w1+ ”*10 + ” ” + (e (p j + 1);w1 = 0;out.println(”您输入
5、有误! else if (mi = +) d = mi 48; mi = 57); 1) pow(10。0, j 1);实型数为: + + (e * (p + j - 1);” + w + 。 + w1+ ”*10” + ” + (e (p + j - 1); mi = 57) d = mi - 48;p = p * 10 + d; while (mi mi = 57);out.println(”实型数为:+ ”*10” + ” ” + (e * (p + j - 1);10 + (e (p + j 1);System.out.println(”您输入有误!println(”您输入有误!2。实
6、验结果:实验二、 逆波兰式生成程序 内容:掌握语法分析的基本思想,并用高级语言编写逆波兰式生成程序(4学时) 要求:利用逆波兰式生成算法编写程序,将从键盘上输入的算术表达式(中缀表达式)转化成逆波兰式。逆波兰表达式的生成过程涉及到运算符的优先级,下表中列出几个常用运算符的优先关系。如表所示的优先关系矩阵表示了+,-,*,/,(,)等七种运算符之间的相互优先关系。“、”三种符号分别代表“大于”、“小于”、“相等”三种优先关系。左边的“”与右边的“(”之间没有优先关系存在,所以表中为空白。逆波兰表达式生成算法的关键在于比较当前运算符与栈顶运算符的优先关系,若当前运算符的优先级高于栈顶运算符,则当前
7、运算符入栈,若当前运算符的优先级低于栈顶运算符,则栈顶运算符退栈。下面给出了逆波兰表达式生成算法的流程图。(为了便于比较相邻运算符的优先级,需要设立一个工作栈,用来存放暂时不能处理的运算符,所以又称运算符栈)。常用运算符优先关系矩阵+-/()*三、主要仪器设备1。实验内容:package com_text4;import java.io。;public class Text4 public static void main(String args) throws IOException / TODO Auto-generated method stubint i = 0, j = 0;Stri
8、ng str;请输入一串中序表达式:new InputStreamReader(System.in);str = buf。readLine();char m = new char20;for (int o = 0; o str.length(); o+) mo = str。charAt(o);for (int o = str.length(); o 20;mo = ;char n = new charm.length; o n.length; o+)no = println(”逆波兰式为:while (i 0) (nj = ;if (n0 = Error”);if (nj !print( nj
9、);nj = ;if (nj !&nj !print( nj);nj = ;if (j = 1)j-; else out.print(mi);public static char priority(char operator1, char operator2) int a = 0, b = 0;char operatorPriorMatrix = , , , , , , ,, , , , , , , , = , , , , , , ;switch (operator1) case +:a = 0;break;case :a = 1;:a = 2;/:a = 3;break;(:a = 4;):a = 5;switch (operator2) case +:b = 0;:b = 1;case :b = 2;/b = 3;case (:b = 4;case ):b = 5;return operatorPriorMatrixab;public static boolean isOperator(char operator) if (operator = + | operator = - operator = *| operator = / | operator = | operator = )return true;elsereturn false;2.实验结果:
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1