【有理数】的定义和实现
来源:互联网 发布:淘宝店铺的风格 编辑:程序博客网 时间:2024/05/01 13:55
/*
ADT Rational_Num{
数据对象:D={e1,e2|e1,e2∈Z}
数据关系:R={<e1,e2>|e1为分子,e2为分母}
基本操作:
InitRational_Num(&T,e1,e2)
操作结果: 构造一个有理数
DestroyRational_Num(&T)
初始条件: 有理数T已经存在
操作结果: 销毁有理数T
PrintRational_Num(T)
初始条件: 有理数T已经存在
操作结果: 打印T中的数据
GetRational_Num(T,i,&e)
初始条件: 有理数T已经存在,i∈{1,2}
操作结果: 用e返回有理数T的分子或分母,i=1返回分子
PutRational_Num(&T,i,e)
初始条件: 有理数T已经存在,i∈{1,2}
操作结果: 用e修改有理数T的分子或分母,i=1修改分子
AddRational_Num(&T,T1,T2)
初始条件: 有理数T,T1,T2存在
操作结果: 有理数T1,T2相加,结果存入T3中
SubRational_Num(&T,T1,T2)
初始条件: 有理数T,T1,T2存在
操作结果: 有理数T1,T2相减,结果存入T3中
MulRational_Num(&T,T1,T2)
初始条件: 有理数T,T1,T2存在
操作结果: 有理数T1,T2相乘,结果存入T3中
DivRational_Num(&T,T1,T2)
初始条件: 有理数T,T1,T2存在
操作结果: 有理数T1,T2相除,结果存入T3中
}ADT Rational_Num
*/
#include "stdio.h"
#include "conio.h"
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
typedef int ElemType;
typedef struct {
ElemType e1;
ElemType e2;
}Rational;
void InitRational_Num(Rational *T,ElemType e1,ElemType e2)
{
if(e2==0)
exit(0);
T->e1=e1;
T->e2=e2;
}
void DestroyRational_Num(Rational *T)
{
free(T);
}
void PrintRational_Num(Rational T)
{
printf("E1:%d E2:%d/nE1/E2:%f/n",T.e1,T.e2,(float)(T.e1/T.e2));
}
void GetRational_Num(Rational T,int i,ElemType *e)
{
if(i<1||i>2)
exit(0);
*e=(i==1)?(T.e1):(T.e2);
}
void PutRational_Num(Rational *T,int i,ElemType e)
{
if(i<1||i>2)
exit(0);
if(i==1)
T->e1=e;
else T->e2=e;
}
void AddRational_Num(Rational *T,Rational T1,Rational T2)
{
T->e1=T1.e1*T2.e2+T2.e1*T1.e2;
T->e2=T1.e2*T2.e2;
}
void SubRational_Num(Rational *T,Rational T1,Rational T2)
{
T->e1=T1.e1*T2.e2-T2.e1*T1.e2;
T->e2=T1.e2*T2.e2;
}
void MulRational_Num(Rational *T,Rational T1,Rational T2)
{
T->e1=T1.e1*T2.e1;
T->e2=T1.e2*T2.e2;
}
void DivRational_Num(Rational *T,Rational T1,Rational T2)
{
if(T2.e1==0)
exit (0);
T->e1=T1.e1*T2.e2;
T->e2=T1.e2*T2.e1;
}
- 【有理数】的定义和实现
- 有理数类的定义与实现
- 两个有理数的和
- 抽象数据类型复数和有理数的代码实现
- Lisp实现有理数的运算
- 用结构计算两个有理数的和。
- 协议的定义和实现
- 【复数】的定义和实现
- 栈的定义和实现
- 堆栈的定义和实现
- JAVA实现有理数的运算+JAVA中的适配器模式
- 有理数和无理数
- 有理数的抽象数据类型
- Java有理数的四则运算
- 有理数的个数
- 有理数的加减乘除
- 有理数的加减乘除
- 有理数的四则运算
- 在RHEL6中安装和使用subversion服务器
- 【复数】的定义和实现
- 商务英语
- c++中一些关键字的总结(转)
- 一个很好很强大的js时间控件:显示年,月,日,时,分,秒
- 【有理数】的定义和实现
- 释放UNDO表空间
- 30个漂亮的网页设计案例(组图)
- 将oracle中存储的为2011-01-01 00.00.00.0格式的日期类型,输出到IE时候转化为2011-01-01的方法
- 结构元素的扩展操作
- 【三元组】的定义和实现
- 【顺序表】的定义和实现1数组法
- 这几天够忙的,今天心情也不是太好,还是尽快完成手头的作品
- 无题