【复数】的定义和实现
来源:互联网 发布:风行软件下载 编辑:程序博客网 时间:2024/05/18 17:04
/*
ADT Complex{
数据对象:D={real,image|real∈R,image∈R}
数据关系:R={<real,image>}
基本操作:
InitComplex(&C)
操作结果:构造一个复数
GetReal(C,&real)
初始条件:复数C存在
操作结果:用real返回复数C的实部
GetImage(C,&image)
初始条件:复数C存在
操作结果:用image返回复数C的虚部
OutputComplex(C)
初始条件:复数C存在
操作结果:输出复数C的值
Add(&C,C1,C2)
初始条件:复数C1,C2存在
操作结果:用复数C返回复数C1,C2的和
Sub(&C,C1,C2)
初始条件:复数C1,C2存在
操作结果:用复数C返回复数C1,C2的差
Mul(&C,C1,C2)
初始条件:复数C1,C2存在
操作结果:用复数C返回复数C1,C2的积
Div(&C,C1,C2)
初始条件:复数C1,C2存在
操作结果:用复数C返回复数C1,C2的商
}ADT Complex
*/
#include "stdio.h"
#include "conio.h"
#include <math.h>
#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
typedef struct{
float real;
float image;
}Complex;
void InitComplex(Complex *C)
{
printf("Imput real and image:");
scanf("%f",&C->real);
scanf("%f",&C->image);
}
void GetReal(Complex *C,float *realptr)
{
*realptr=C->real;
}
void GetImage(Complex *C,float *imageptr)
{
*imageptr=C->image;
}
void OutputComplex(Complex *C)
{
printf("%f %f/n",C->real,C->image);
}
void Add(Complex *C,Complex C1,Complex C2)
{
C->real=C1.real+C2.real;
C->image=C1.image+C2.image;
}
void Sub(Complex *C,Complex C1,Complex C2)
{
C->real=C1.real-C2.real;
C->image=C1.image-C2.image;
}
void Mul(Complex *C,Complex C1,Complex C2)
{
/*对复数z1=a+ib,z2=c+id,z1*z2=(a+ib)(c+id)=ac-bd+i(ad+bc) */
C->real=C1.real*C2.real-C1.image*C2.image;
C->image=C1.real*C2.image+C1.image*C2.real;
}
void Div(Complex *C,Complex C1,Complex C2)
{
/*(a+bi)/(c+di)
=(a+bi)*(c-di)/(c+di)*(c-di)
=(ac-adi+bci+bd)/(c*c+d*d)
=(ac+bd)/(c^2+d^2)+〔(bc-ad)/(c^2+d^2)〕i*/
if(C2.real==0||C2.image==0)
exit(0);
C->real=(C1.real*C2.real+C1.image*C2.image)/(pow(C2.real,2)*pow(C2.image,2));
C->image=(C1.image*C2.real-C1.real*C2.image)/(pow(C2.real,2)*pow(C2.image,2));
}
- 【复数】的定义和实现
- 在复数类中自定义类型转换函数实现复数和非复数之间的运算
- 实现复数和实数之间的转载
- CUDA复数类的定义
- 第8周项目1.3 定义一个完整的类 实现复数加实数 实数加复数
- 复数类的实现
- 复数的实现
- 复数类的实现
- 复数类的实现
- 给出复数,实现复数的四则运算
- 复数定义
- Java编写复数类,实现复数的相加和相减
- 【项目1】实现复数类中的运算符重载---(3)一个定义完整的类
- 第八周项目一--定义完整的类,实现复数中的运算符重载
- 抽象数据类型复数和有理数的代码实现
- 对复数类的一些基本定义
- 第九周 项目一:定义复数类的<<和>>运算符的重载
- 复数类的JAVA实现
- javascript 继承
- matlab批量保存图像至指定文件夹
- poj 1523 SPF
- cvMorphologyEx —不推荐使用
- 在RHEL6中安装和使用subversion服务器
- 【复数】的定义和实现
- 商务英语
- c++中一些关键字的总结(转)
- 一个很好很强大的js时间控件:显示年,月,日,时,分,秒
- 【有理数】的定义和实现
- 释放UNDO表空间
- 30个漂亮的网页设计案例(组图)
- 将oracle中存储的为2011-01-01 00.00.00.0格式的日期类型,输出到IE时候转化为2011-01-01的方法
- 结构元素的扩展操作