c语言算术表达式求值

“c语言算术表达式求值”相关的资料有哪些?“c语言算术表达式求值”相关的范文有哪些?怎么写?下面是小编为您精心整理的“c语言算术表达式求值”相关范文大全或资料大全,欢迎大家分享。

算术表达式求值演示程序

标签:文库时间:2024-10-01
【bwwdw.com - 博文网】

软 件 学 院

课程设计报告书

课程名称 数据结构 设计题目 算术表达式求值演示程序 专业班级 学 号

姓 名 指导教师

2012年 1月

0

目录

1.设计时间 ..................................................... 2 2.设计目的 ..................................................... 2 3.设计任务 ..................................................... 2 4.设计内容 ..................................................... 2 4.1需求分析 ................................................... 2 4.2总体设计 ......

算术表达式求值演示程序

标签:文库时间:2024-10-01
【bwwdw.com - 博文网】

软 件 学 院

课程设计报告书

课程名称 数据结构 设计题目 算术表达式求值演示程序 专业班级 学 号

姓 名 指导教师

2012年 1月

0

目录

1.设计时间 ..................................................... 2 2.设计目的 ..................................................... 2 3.设计任务 ..................................................... 2 4.设计内容 ..................................................... 2 4.1需求分析 ................................................... 2 4.2总体设计 ......

c语言中缀后缀算术表达式求值用栈实现

标签:文库时间:2024-10-01
【bwwdw.com - 博文网】

c语言 中缀、后缀 算术表达式求值用栈实现

#include<stdio.h> #include<string.h> #include<malloc.h> #include<stdlib.h> #define MaxSize 50

typedef struct {

float data[MaxSize]; int top; }OpStack; typedef struct {

char data[MaxSize]; int top; }SeqStack;

void InitStack(SeqStack *S);//初始化栈

int StackEmpty(SeqStack S);//判断栈是否为空 int PushStack(SeqStack *S,char e);//进栈

int PopStack(SeqStack *S,char *e);//删除栈顶元素 int GetTop(SeqStack S,char *e);//取栈顶元素

void TranslateExpress(char s1[],char s2[]);//将中缀表达式转化为后缀表达式

数据结构课设报告-算术表达式求值

标签:文库时间:2024-10-01
【bwwdw.com - 博文网】

课程设计 课程名称:题目名称:

学生姓名:

课程成绩:报告

数据结构

算术表达式求值

学号

二零一六 年六 月

1.需求分析

本演示程序用C++6.0编写,完成栈的生成。

(1)输入的形式和输入值的范围:输入合法表达式,以“#”结尾;输入的操作数是正整数,运算符只含加减乘除四种运算符。

(2)输出的形式:显示输入是否正确、输入序列和栈的变化过程、计算结果。

(3)程序所能达到的功能:完成算术表达式的计算。 (4)测试数据:

①输入3*(2+4)#; ②输入5*-2#。

2.概要设计

(1)为了实现上述程序功能,需要定义栈的抽象数据类型:

ADT SqStack{

数据对象:D={ai| ai ∈ElemSet,i=1,2,3??,n,n≥0} 数据关系:R1={| ai-1,ai ∈D,i=1,2,3,??,n} 基本操作:

InitStack(SqStack &S)

操作结果:声明栈建立函数 Push(SqStack &S,char e)

初始条件:栈已经存在 操作结果:声明入栈函数 Pop(SqStack &S)

初始条件:栈已经存在 操作结果:声明出栈函数 DispStack(SqStack &S)

初始条件:栈已经存在

操作结果

汇编表达式求值大作业

标签:文库时间:2024-10-01
【bwwdw.com - 博文网】

《汇编语言程序设计》

综合程序设计实验报告

题 目:班 级:

姓 名: 学 号: 20112820

完成日期: 2013-11-24

一、项目简介

题目完成了对简单的加减乘除四则表达式的求值,同时能判断各种运算级括号的优先级,进行正确的运算顺序。

二、小组成员具体分工

韩亚华:完成判断优先级方法设计,以及细节的处理。

姜力比:完成输入输出函数的设计,以及各运算函数。

三、需求分析与设计

要完成四则运算表达式求值必须解决以下问题

1.如何在汇编环境下输入并保存操作数

2.如何保存运算符和比较运算符的优先级

3.如何输出计算结果

4.负数和括号的细节问题

四、代码及分析

DSEG SEGMENT

STR1 DB 0AH,0DH, 'please input the expression:("N"jump out)$'

SIGN1 DW 0 ;判断数字是否输入完毕

SIGN2 DW 0 ;判断括号是否配对

;SIGN3 DW 0 ;

NUMB DW 20H DUP(0) ;保存输入的数值

MARK DB 'A' ;保存输入的运算符

DB 10H DUP(0) ;

ERROR DB 'YOUR INPUT ARE WRON

表达式求值课程设计报告

标签:文库时间:2024-10-01
【bwwdw.com - 博文网】

. . . .

数据结构课程设计

设计说明书

算术表达式求值问题

学生姓名白子健

学号1318014057

班级计本1302

成绩

指导教师李军

计算机科学与技术系

2015年9月10日

. 资料. .. .

. . . .

数据结构课程设计评阅书

. 资料. .. .

. . . .

课程设计任务书

2015—2016学年第一学期

专业:计算机科学与技术学号:1318014057 姓名:白子健

课程设计名称:课程设计Ⅰ---数据结构课程设计

设计题目:表达式求值算法的实现

完成期限:自2015 年9 月 1 日至2015 年9 月12 日共2 周

设计内容及要求:

算术表达式求值是程序设计语言编译中的一个基本问题,通过栈实现表达式运算优先级的匹配和运算。用C/C++语言编程实现任意算术表达式的求值,设计内容要求如下:(1)表达式共有三种基本表示方法:前缀法、中缀法、后缀法。从表达式的这三种基本方法中任选一种方法进行编程求值。

(2)分析所选的表示方法,根据选定的表示方法确定对应的存储结构和相关算法。

(3)算法要能正确处理算术运算的优先级规则,即: 先括号内,后括号外的规则;运算先乘除,后加减;同级运算从左到右。

如下表达式:

50+(6*3+2)

要求:

(1)用C/C++语言编写一个程序将

逆波兰表达式求值(实验报告及C++源码)

标签:文库时间:2024-10-01
【bwwdw.com - 博文网】

数据结构课程实验指导书

逆波兰表达式求值

一、需求分析

1、从键盘中输入一个后缀表达式,该表示包括加减乘除等操作符,以及正整数作为操作数等。

2、用堆栈来实现 3、测试数据 输入:2 3 * 1 – #

输出:2 3 * 1 -- =5

二、概要设计 抽象数据类型

需要一个浮点数栈来存储还没有计算的浮点数或者运算的结果。 ADT Stack

数据成员:int size; int top; //分别用于存储栈大小、栈顶位置

float *listArray;//存储浮点型数字的数组

成员函数: bool push(float it); bool pop(float& it); bool isEmpty(); //判断栈为空 bool isOne();//判断栈是否只有一个元素 算法的基本思想

1. 逐一扫描字符串,用ascii码进行判断,如果该字符是数字,则利用x=x*10+str[i]-48

将数据由字符类型转换为浮点型数据; 2. 如果字符是‘.’,则将‘.’转化为小数点,并将‘.’后的数据转化为小数部分; 3. 遇到空格前是数据的,将x押入栈;

4. 如果该字符是’+’,’-’,’*’或’/’,判断栈里的元素是否少于两个个,如果

标识符树和表达式求值

标签:文库时间:2024-10-01
【bwwdw.com - 博文网】

《数据结构》实验报告 - 1 - 实验内容或题目 1定义二叉树的结构如下 struct tree // 定义结构体 { int data; // 定义一个整型数据域 struct tree *left; // 定义左子树指针 struct tree *right; // 定义右子树指针 }; typedefstruct tree btnode; // 树的结构类型 typedefbtnode *bt; // 定义树结点的指针类型 2把算术表达式2*3+6/3的标识符树见图存入一维数组。 3求标识符树的前序遍历、中序遍历和后序遍历的序列。 4以后序计算标识符树的值。 实验目的与要求 1 掌握二叉树的数组存储方法。 2掌握二叉树的非线性特点、递归特点和动态特性。 3复习二叉树遍历算法和标识符树的概念。 4利用标识符树的后序计算表达式的值运算只涉及+、-、*、/。 实验步骤与源程序 ⑴ 实验步骤: 1. 从具体问题抽象出适当的数学

中缀表达式转后缀表达式并计算结果(C语言版)

标签:文库时间:2024-10-01
【bwwdw.com - 博文网】

中缀表达式转后缀表达式

中缀表达式转后缀表达式的规则。

1.遇到操作数:直接输入到后缀表达式栈 2.遇到运算符,直接入操作符栈 3.遇到左括号:直接将其入栈

4.遇到右括号:执行出栈操作,并将出栈的元素输出,直到弹出栈的是左括号,左括号不输出。

5.遇到其他运算符:加减乘除:弹出所有优先级大于或者等于该运算符的栈顶元素,然后将该运算符入栈

6.最终将操作符栈中的元素依次出栈,输出到后缀表达式栈。

以下是自己写的代码。亲测没有问题。(模拟一个计算器,可以带括号,中间可以空格,只支持整数输入,但是输出结果精确到小数后6位)

#include \

#define MAX_LEN 100 typedef struct cal{

unsigned char isOper;//是否是操作数 1,操作符 0.操作数 double Num; //值。或者是操作符的ASCII值 }STRUCT_CAL;

#define IS_NUM 0x00 #define IS_OPER 0x01

STRUCT_CAL stackCal[MAX_LEN]; STRUCT_CAL stackCalBack[MAX_

C语言练习-运算符和表达式

标签:文库时间:2024-10-01
【bwwdw.com - 博文网】

1. 单项选择题

(1)以下字符串为标识符的是 。

A. _MY B. 2_2222 C. short D. LINE 5 【答】A

(2)下列符号可以作为变量名的是 。 A. +a

B. *p C. _DAY D. next day 【答】C

(3)设c是字符变量,则以下表达式正确的是 。 A. c=666 B. c='c' C. c=\【答】B

(4)23+'m'+3.6-123.45/'b'的结果是 型数据。 A. char B. double C. int D. long int

【答】3.6和123.45均为double型,运算结果也是double型。本题答案为B。