随笔 - 39,  文章 - 0,  评论 - 0,  阅读 - 17840

1、预定义常量及类型:

//函数结果状态代码
#define OK 1
#define ERROR 0
#define OVERFLOW -2
//Status是函数返回值类型,其值是函数结果状态代码
typedef int Status;

2、数据结构的表示(存储结构)用类型定义(typedef)描述;数据元素类型约定为ElemType,由用户在使用该数据类型是自行定义。

3、基本操作的算法格式

函数类型 函数名(函数参数表)
{
      //算法说明
      语句序列
}//函数名

当函数返回值为函数结果状态代码时,函数定义为Status类型。为了便于描述算法,除了值调用方式外,增加了C++语言引用调用的参数传递方式。在形参表中,以“&”打头的参数即为引用参数。传递引用给函数与传递指针的效果是一样的,形参变化实参也发生变化,但引用使用起来比指针更加方便、高效。

4、内存的动态分配与释放

使用new和delete动态分配和释放内存空间:

分配空间  指针变量=new 数据类型;
释放空间  delete指针变量;

5、赋值语句

简单赋值  变量名 = 表达式;
串联赋值  变量名1 = 变量名2 = ... =变量名n = 表达式;
成组赋值  (变量名1,...,变量名n) = (表达式1,...,表达式n);
结构赋值  结构名1 = 结构名2;
              结构名 = (值1,值2,...,值n);
条件赋值  变量名 = 条件表达式 ?表达式T:表达式F;
交换赋值  变量名1 <-->变量名2;

6、选择语句

复制代码
条件语句1  if(表达式)语句;
条件语句2  if(表达式)语句;
                else语句;
开关语句   switch(表达式)
                  {
                         case 值1:语句序列1;break;
                         case 值2:语句序列2;break;
                         ...
                         case 值n:语句序列n;break;
                         default: 语句序列n+1;
}
复制代码

7、循环语句

for语句           for(表达式1:条件;表达式2)语句;
while语句        while(条件)语句;
do-while语句   do {
                             语句序列;
                           }while(条件);

8、结束语句

函数结束语句  return表达式;
                    return;
                    case或循环结束语句break;
                   异常结束语句 exit(异常代码);

9、输入输出语句使用C++流式输入输出的形式

输入语句  cin>>变量1>>...>>变量n;
输出语句  cout<<表达式1<<...<<表达式n;

10、基本函数

求最大值  Max(表达式1,...,表达式n)
求最小值  Min (表达式1,...,表达式n)

下面一复数为例,给出一个完整的抽象数据类型的定义、表示和实现:

1)定义部分:

复制代码
ADT  Complex {
    数据对象:D={e1,e2|e1,e2∈R,R是实数集}
    数据关系:S={<e1,e2>|e1是复数的实部,e2是复数的虚部}
    基本操作:
        Creat ( &C,x,y)
            操作结果:构造复数C,其实部和虚部分别被赋以参数x和y的值
        GetReal(C)
            初始条件:复数C已存在
            操作结果:返回复数C的实部值
        GetImag(C)
            初始条件:C1,C2是复数
            操作结果:返回复数C的虚部值
        Add( C1,C2)
           初始条件:C1,C2是复数
           操作结果:返回两个复数C1和C2的和
        Sub( C1,C2)
           初始条件:C1,C2是复数
           操作结果:返回两个复数C1和C2的差
}ADT  Complex
复制代码

2)表示部分:

typedef struct              //复数类型
{
     float  Realpart;        //实部
     floar  Imagepart;    //虚部
}Complex;

3)实现部分:

复制代码
void Create( &Complex C,float x,float y)
{ //构造一个函数
   C.Realpart=x;
   C.Imagepart=y;
}
float GetReal(Complex C)
{ //取函数C=x+yi的实部
    return C.Relpart;
}
floar GetImag(Complex C)
{ //取函数C=x+yi的虚部
    return C.Imagepart;
}
Complex Add(Complex C1,Complex C2)
{ //求两个复数C1和C2的和sum
    Complex sum;
    sum.Realpart=C1.Realpart+C2.Realpart;
    sun.Imagepart=C1.Imagepart+C2.Imagepart;
    return sum;
}
Complex Sub(Complex C1,Complex C2)
{  //求两个复数C1和C2的差difference
    Complex difference;
    difference.Realpart=C1.Realpart-C2.Realpart;
    difference.Imagepart=C1.Imagepart-C2.Imagepart;
    return difference;
}
复制代码

这样定义之后,就可以在主程序中通过调用Create函数构造一个复数,调用Add或Sub函数来实现复数的加法或减法运算,用户可以像使用整数类型那样使用复数类型了。

posted on   Santariki  阅读(740)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示