有理数及其运算

有理数及其运算

①有理数可分为:整数、有限小数和无限循环小数。

②无限循环小数属于有理数,因为它们可以转化为分数的形式。

③所有整数都是有理数

④有理数是可以表示为两个整数之比的数,无理数则不能。

1.正数和负数

大于0的数叫正数

在正数前面加上符号“-”(负)的数叫做负数

0既不是正数也不是负数

2.有理数

整数和分数统称为有理数

整数:正整数、负整数、0

分数:正分数、负分数

3.数轴

数轴:人们通常用一条直线上的点表示数,这条直线叫做数轴

这条直线需满足:(1)在直线上任取一点表示数0,这个点叫做原点

(2)通常规定直线上从原点向右(或向上)为正方向,从原点向左(或向下)为负方向

(3)选取适当的单位长度,直线上从原点向右,每隔一个单位长度取一点

数轴三要素:原点   、 正方向   、  单位长度

4.相反数

(1)只有符号不同的两个数叫做互为相反数   例a与 -a互为相反数

(2)0的相反数是0

(3)我们通常把一个数前面添上“-”号,表示这个数的相反数

(4)在一个数前面添上“+”号,表示这个数本身

5.绝对值

定义:一般的,数值上表示数a的点与原点的距离叫做数a的绝对值

正数的绝对值是它本身

负数的绝对值是它的相反数

0的绝对值是0

两个正数,绝对值大的大;两个负数,绝对值大的反而小

6.有理数的加法

(1)同号两数相加,取相同的符号,并把绝对值相加

(2)异号两数相加,取绝对值较大的数的符号,并用较大的绝对值减去较小的绝对值

(3)互为相反数的两数相加得0

(4)加法交换律:a+b=b+a

(5)加法结合律:(a+b)+c=a+(b+c)

7.有理数的减法

(1)减去一个数等于加上这个数的相反数  a-b=a+(-b)

(2)数字前“-”号是奇数个取“-”

(3)数字前“-”号是偶数个去“+”

8.有理数的乘法

(1)两数相乘,同号得正,异号得负,并把绝对值相乘

(2)任何数与0相乘,都得0

(3)乘积是1的两位数互为倒数

(4)乘法交换率:ab=ba

(5)乘法结合律:(ab)c=a(bc)

(6)乘法分配率:a(b+c)=ab+ac

9.有理数的除法

(1)除以一个不等于0的数等于乘以这个数的倒数

(2)求小数的倒数时,要先把小数化成分数

(3)求带分数的倒数时,要先把带分数化成假分数

(4)0除以任何一个不等于0的数都得0

10.乘方         幂 { 底数 ←aⁿ→指数

(1)求N个相同因数的积的运算叫做乘方

(2)表示负数的乘方,书写时一定要把整个负数(连同符号)用括号括起来

(3)负数的奇数次幂是负数,负数的偶次幂是正数

(4)正数的任何次幂都是整数,0的任何整数次幂都是0,1的任何次幂都是1

(5)先乘方,再乘除,最后加减

11.科学计数法

(1)把一个大于10的数表示成a ×10² 的形式(其中a大于等于1且小于10,n是正整数)

(2)对于小于-10的数,也可以用科学技术法。 例: -267000 = -2.67 ×10的5次方

(3)a×10ⁿ中10的指数总比整数的位数少1

12.近似数

(1)准确数:与实际完全符合的数

(2)近似数:与实际非常接近的数

### C语言中有理数运算的实现 在C语言中,通过定义结构体来表示有理数,并编写相应的函数来进行加减乘除以及化简操作。以下是具体的实现方式: #### 结构体定义 首先定义一个用于存储有理数的数据结构`ration`,其中包含两个整型变量分别代表分子(`fenzi`)和分母(`fenmu`)。 ```c typedef struct { int fenzi; int fenmu; } ration; ``` #### 函数原型声明 接着声明各个基本运算的操作函数及其功能描述如下所示[^2]: - `void add(ration num1, ration num2)`:执行两数相加; - `void sub(ration num1, ration num2)`:执行两数相减; - `void mul(ration num1, ration num2)`:执行两数相乘; - `void div(ration num1, ration num2)`:执行两数相除; 另外还需要提供一个辅助性的化简函数`clean()`用来简化最终得到的结果形式[^3]。 #### 加法函数的具体实现 对于加法而言,可以通过通分化处理后再求解公因式的方式计算得出结果。具体代码片段如下: ```c #include <stdio.h> #include <stdlib.h> // ... (省略前面已有的结构体定义) int gcd(int a, int b) { // 辗转相除法求最大公约数 while(b != 0){ int temp = b; b = a % b; a = temp; } return abs(a); } void add(ration num1, ration num2) { int new_fenzi = num1.fenzi * num2.fenmu + num2.fenzi * num1.fenmu; int new_fenmu = num1.fenmu * num2.fenmu; int common_divisor = gcd(new_fenzi, new_fenmu); printf("Addition Result: %d/%d\n", new_fenzi / common_divisor, new_fenmu / common_divisor); } ``` 此段程序实现了两个有理数之间的加法规则,并调用了自定义的最大公约数算法`gcd()`以便于后续对所得结果做进一步优化处理[^4]。 同样地,其他三种算术运算也遵循类似的逻辑框架构建对应的实现版本即可满足题目要求中的全部条件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值