• week01—绪论


    一、作业题目

    仿照三元组或复数的抽象数据类型写出有理数抽象数据类型的描述 (有理数是其分子、分母均为整数且分母不为零的分数)。
    有理数基本运算:

      1. 构造有理数T,元素e1,e2分别被赋以分子、分母值
      2. 销毁有理数T
      3. 用e(引用类型参数)返回有理数T的分子或分母,当入参i为1时返回分子, i为2是返回分母。
      4. 将有理数T的分子或分母更改为e,入参i为1时改变分子, i为2是改变分母
      5. 有理数T1,T2相加,结果存入有理数T3
      6. 有理数T1,T2相减,结果存入有理数T3
      7. 有理数T1,T2相乘,结果存入有理数T3
      8. 有理数T1,T2相除,结果存入有理数T3

    二、实验

    1.用ADT的抽象数据模型描述你的有理数数据类型。

    ADT Rational {
    数据对象:D = { e1,e2 | e1,e2均为整且e2部位0}
    数据关系:R = { <e1,e2> }
    基本操作:int PlusRational(int T1[],int T2[],int T3[]);
    操作结果:有理数T1,T2相加,结果存入有理数T3
    int MinusRational(int T1[],int T2[],int T3[]);
    操作结果:有理数T1,T2相减,结果存入有理数T3 
    int MultiplyRational(int T1[],int T2[],int T3[]);
    操作结果:有理数T1,T2相乘,结果存入有理数T3
    int DivideRational(int T1[],int T2[],int T3[]);
    操作结果:有理数T1,T2相除,结果存入有理数T3
    int SimplifyRational(int T3[]);
    操作结果:将有理数约分并输出结果 
    }ADT Rational

    2.数据结构、函数说明

    3.代码实现说明

    (1)构造有理数函数

     

    (2)销毁有理数函数

     

    (3)返回有理数的分子或分母函数

     

    (4)改变有理数分子或分母元素

     

    (5)求两个有理数相加结果函数

     

    (6)求两个有理数相减结果函数

     

    (7)求两个有理数相乘结果函数

     

    (8)求两个有理数相除结果函数

     

    (9)将有理数约分函数

     

    4.结果展示

    (1)非法数据

    (2)两个有理数分子均为零

    (3)有一个有理数分子为零

    (4)题例

    (5)两个有理数均为负数

    (6)两个有理数一正一负

    5.总结

    数据结构包括数据对象和数据对象之间的联系

    数据结构可以带来更高的运行或者存储效率

    已有的数据类型不足以解决实际问题,比如题中对有理数进行的四则运算,就需要定义抽象数据类型

    抽象数据类型是指一个数学模型以及定义在此数学模型上的一组操作。抽象数据类型需要通过已有的数据类型来实现。抽象数据类型是与表示无关的数据类型,是一个数据模型及定义在该模型上的一组运算。

  • 相关阅读:
    FlashSocke 通过flash进行socket通信(as代码)
    JavaScript 中的对象深度复制(Object Deep Clone)
    map,vector 等容器内容的循环删除问题(C++)
    [转]用JavaScript在浏览器中创建下载文件
    [记]WIndow/Linux 获取本机(全部)IPv4、IPv6、MAC地址方法 (C/C++)
    [记]Debian alias 设置, 不设置貌似有点不方便习惯
    Linux 安装配置 FTP 服务 (vsftpd)
    FreeSWITCH 安装配置的 各种坑, 填坑
    ubuntu编译安装ruby1.9.3,从p551降级到p484
    redmine3.3.3 rake db:migrate 报错invalid byte sequence in US-ASCII (Argument Error) 解决方法
  • 原文地址:https://www.cnblogs.com/lanjinghui/p/8523804.html
Copyright © 2020-2023  润新知