c语言科学计算 pdf,#(C语言版)科学计算器设计.pdf

科学计算器设计(C语言版)

学校:

学院:计算机信息工程学院

语言

平台:

作者:

日期:

一、 背景和目的

计算器是现代日常生活中使用较为频繁的工具之一,常用的计算器有简易版和科学计算

器两种模式。简易版的计算器不支持表达式运算,每次只能输入一个数据或者运算符来计算,

而科学计算器除了容纳简易版计算器的功能外,还支持表达式运算,用户可以输入一个合法

的算术表达式来得到所需的结果。

常用的算术表达式有三种,前缀表达式,中缀表达式和后缀表达式。

中缀表达式:我们平时书写的表达式就是中缀表达式,形如(a+b)* (c+d),事实上是

运算表达式形成的树的中序遍历,特点是用括号来描述优先级。

后缀表达式:也叫逆波兰表达式,事实上是算数表达式形成的树的后序遍历。中缀表达

式(a+b)* (c+d)的后缀表达式是ab+cd+*,它的特点就是遇到运算符就立刻进行运算。

前缀表达式:算数表达式形成的树的前序遍历。

日常所书写的是中缀表达式,但是计算机内部是用后缀表达式计算,所以此程序的用户

使用中缀表达式作为输入,程序将中缀表达式转化为后缀表达式后再进行运算并输出结果。

由于今后工作将使用C语言进行开发,而C语言是一个功能强大并且很灵活的语言,为

复习和巩固C编程,故决定用C语言编写一个科学计算器。

本次开发采用C语言,以面对过程思想进行开发,使用的数据结构有队列和栈。

二、 模块设计

本次开发,使用的控制台输入,并直接在控制台输出。

科学计算器的功能组件如下:

输入表达式

input_expr ()

当读到数字直接送至输出队列中

当读到运算符T 时

a :将栈中所有优先级高于或等于T

的运算符弹出,送至输出队列

中缀表达式转后缀表达式 b :T 进栈

trans_expr()

读到左括号时总是将它压入栈中

读到右括号时,将靠近栈顶的第一

个左括号上面的运算符依次全部

N 弹出,送至输出队列,再丢弃左括

转换成功

Y

建立一个栈

从左到右读后缀表达式,读到数字

就将它压入栈S 中,读到运算符则

计算后缀表达式 从栈中依次弹出两个数X 和Y,然

calcu_expr() 后以“X 运算符Y ”的形式计算出

结果,再将结果压入栈S

如果后缀表达式未读完,就重复上

述过程,最后输出栈顶数值则为结

C#科学计算讲义-宋叶志-人民邮电出社 内容概要 《C#科学计算讲义》较为详细地介绍了科学计算方法,并对算法给出了源代码。关于算法部分主要介绍了线性方程组的迭代解法与直接解法、正交变换与最小二乘计算方法、鲁棒估计、随机数的产生、插值法、非线性方程求解、多元非线性最优化算法、微分方程数值方法等内容。 本书还给出了C#程序设计的基本方法,并对科学计算中要用到的矩阵向量类的构造做了详细阐述。算法的实现本身不限于具体的语言,本书对于算法的描述是较为详细的,所以读者也很容易把算法改用Fortran、 MATLAB、C++、Java 等语言编程实现。 宋叶志、徐导和何峰编著的《C#科学计算讲义》适合作为大学理工科本科生或研究生计算方法、数值分析课程的教材或参考书。对于从事相关学科教学的教师,如果不熟悉现代编程语言,也可以选择本书作为工具书。本书还可以用作科研人员的工程计算工具书与算法集。另外,在一些需要进行数据处理与分析的公司,如数量金融、统计等行业,也可以选用本书作为培训教材,或直接应用书上的源代码进行软件开发。 书籍目录 第1章 C#程序设计基础  1.1 计算机、程序设计与算法  1.1.1 计算机结构  1.1.2 操作系统  1.1.3 机器语言与高级语言  1.1.4 程序设计与算法  1.2 C#历史与概述  1.2.1 C语言:结构化编程语言的高峰  1.2.2 C++语言: 面向对象与大型程序  1.2.3 Java语言:可移植、安全性与Internet  1.2.4 C#: .NET主打语言  1.3 集成开发环境介绍  1.4 面向对象程序设计  1.4.1 封装  1.4.2 多态  1.4.3 继承  1.5 数据类型与运算符  1.5.1 简单数据类型  1.5.2 数组  1.5.3 运算符  1.5.4 赋值运算符  1.6 程序控制结构  1.6.1 顺序结构  1.6.2 分支结构  1.6.3 循环结构  1.6.4 控制结构的嵌套  1.7 类的设计及对象实现  1.7.1 定义类  1.7.2 创建对象  1.7.3 方法  1.7.4 构造函数  1.7.5 析构函数与垃圾回收  1.8 运算符重载及索引器  1.8.1 运算符重载  1.8.2 索引器  1.8.3 面向对象思想在C#程序设计中的重要性  1.9 GUI编程  1.10 本章小结 第2章 线性方程组迭代解法  第3章 线性方程组的直接解法 第4章 正交变换与最小二乘计算方法 第5章 鲁棒估计 第6章 随机数 第7章 插值法 第8章 非线性方程数值解法 第9章 非线性最优化 第10章 常微分方程(组)的数值方法 附录A C# 数值代数类的抽象与设计  附录B 动态链接库与混合编程  B.1 静态链接库与动态链接库  B.2 C#调用Fortran动态链接库范例  B.3 调用可执行函数  附录C Linux下C#开发与跨平台编程介绍  C.1 Mono简介  C.2 Linux下C#IDE开发范例  参考文献 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值