- 真可
-
我给你所有的算法,你自己去组合一下就好了。。 1.直接插入排序:算法:void InsSort(RecordType r[], int length) /* 对记录数组r做直接插入排序,length为数组中待排序记录的数目*/ { int i,j; for (i=2; i<=length; i++) { r[0]=r[i]; /*将待插入记录存放到监视哨r[0]中*/ j=i-1; while (r[0].key< r[j].key ) /* 寻找插入位置 */ { r[j+1]= r[j]; j=j-1; } r[j+1]=r[0]; /*将待插入记录插入到已排序的序列中*/ } } /* InsSort */ 2.冒泡排序:算法:void BubbleSort(RecordType r[], int length ) /*对记录数组r做冒泡排序,length为数组的长度*/ { int n,i,j; int change; RecordType x; n=length; change=TRUE; for ( i=1 ; i<= n-1 && change ;++i ) { change=FALSE; for ( j=1 ; j r[j+1].key ) { x= r[j]; r[j]= r[j+1]; r[j+1]= x; change=TRUE; } } } /* BubbleSort */ 3.快速排序:算法:void QKSort(RecordType r[],int low, int high ) /*对记录数组r[low..high]用快速排序算法进行排序*/ { int pos; if(low
ipconfig/displaydns中record type的值分别代表什么意思
Record Type 资源记录类型(Resource Record Type)是一个 16 位数值的编码,表示资源记录中资源的类型。这里类型指的是抽象的资源。 在 RFC1035 等一些文献中,定义了资源记录类型(Resource Record Type),以下是一些 IN class 中2023-07-10 11:59:051
解析dns导入库的语句是什么
dnscmd/enumrecords@/type/detail>。在Windows系统中,可以使用以下命令将DNS记录导出为文件:其中,ZoneName指域名,RecordType指记录类型,FileName指导出的文件名。2023-07-10 11:59:121
DNS中record type值为2是什么记录
ptr反向域名解析2023-07-10 11:59:212
extjs6.2中的recordtype被什么替换了
store可由多个record组成.store及其扩展类的基本元素直译就是记录.data,是Ext,每个record是由json格式组成的js对象2023-07-10 11:59:271
SQL 查询语句 咨询
select *from 表where recorddeal=recordtype2023-07-10 11:59:357
三目运算符 java
这是编译器的自动装箱/拆箱转换引起的问题,自动装箱/拆箱的特性,只要一个运算中有不同的类型,涉及到类型转换,那么编译器会往下(基本类型)转型,再进行运算。 就是说,如果运算中有int和Integer,Integer会先转成int再计算。所以你的代码中,最后一行i = StringUtils.isEmpty(ComNo)?RecordType:0;实际的运行会是这样 i = StringUtils.isEmpty(ComNo)?RecordType.intValue():0;RecordType为null,所以会报错。可以改成:i = StringUtils.isEmpty(ComNo) ? RecordType : Integer.valueOf(0);保持类型的一致就不会自动转型了2023-07-10 12:00:051
快速排序统计比较次数和记录移动次数,用c语言实现,数据自己输入。
#include <stdio.h>#define LIST_SIZE 20typedef struct{ int key; int other_data;}RecordType;typedef struct{ RecordType r[LIST_SIZE+1]; int length;}RecordList;int compare_number=0,move_number=0;int QKPass_one(RecordType r[], int low, int high)//低到高 单排 { int x=r[low].key; move_number++; while(low<high) { while(low<high&&r[high].key>=x) { compare_number++; high--; } if(low<high) { r[low].key=r[high].key; move_number++; low++; } while(low<high && r[low].key<x) { compare_number++; low++; } if(low<high) { r[high].key=r[low].key; move_number++; high--; } } r[low].key=x; //界点所在位置 move_number++; return low;}int QKPass_two(RecordType r[], int low, int high)//低到高 双排 { int flag=high; RecordType x=r[low]; move_number++; while(low<high) { while( (low<high&&r[high].key>x.key) || (low<high&&r[high].key==x.key&&r[high].other_data>x.other_data)) { compare_number++; high--; } if(low<high) { r[low]=r[high]; move_number++; low++; } while( (low<high&&r[low].key<x.key) || (low<high&&r[low].key==x.key&&r[high].other_data<x.other_data)) { compare_number++; low++; } if(low<high) { r[high]=r[low]; move_number++; high--; } } r[low]=x; //界点所在位置 move_number++; return low;}int QKPass_one2(RecordType r[], int low, int high)//高到低 { int x=r[high].key; move_number++; while(low<high) { while(low<high&&r[low].key<=x) { compare_number++; low++; } if(low<high) { r[high].key=r[low].key; move_number++; high--; } while(low<high && r[high].key>x) { compare_number++; high--; } if(low<high) { r[low].key=r[high].key; move_number++; low++; } } r[high].key=x; //界点所在位置 move_number++; return high;}void QKSort_1(RecordType r[], int low,int high)//单排 { int pos=0; if(low<high) { pos=QKPass_one(r,low,high); QKSort_1(r, low, pos-1); QKSort_1(r, pos+1, high); }}void QKSort_2(RecordType r[], int low,int high)//双排 { int pos=0; if(low<high) { pos=QKPass_two(r,low,high); QKSort_2(r, low, pos-1); QKSort_2(r, pos+1, high); }}int main(){ RecordList L; int select; printf("单排扣1、双排扣2 "); scanf("%d",&select); switch(select) { case 1: { printf("请输入要存储的个数:"); scanf("%d",&L.length); printf("请输入要存储的值 "); for(int i=1;i<=L.length;i++) { scanf("%d",&L.r[i].key); } QKSort_1(L.r,1,L.length); //48 62 35 77 55 14 35 98 for(int i=1;i<=L.length;i++) { printf("%d ",L.r[i].key); if(i==L.length) printf(" "); } printf("%d ",compare_number); printf("%d ",move_number); }break; case 2: { printf("请输入要存储的个数(记得除于2):"); scanf("%d",&L.length); printf("请输入要存储的值 "); for(int i=1;i<=L.length;i++) { scanf("%d%d",&L.r[i].key,&L.r[i].other_data); } QKSort_2(L.r,1,L.length); for(int i=1;i<=L.length;i++) { printf("%d %d ",L.r[i].key,L.r[i].other_data); } printf("%d ",compare_number); printf("%d ",move_number); }break; default: break; } return 0;}2023-07-10 12:00:141
fortran里 record /rccoord/rcpos
record /rccoord/rcpos 的意思是,定义一个结构体,结构体名为 rccoord,结构体的成员包括 rcpos .(你看后面还有么?如果没有了,就只包含一个成员变量) record 是早期的 Fortran 编译器扩展的,因为当时 Fortran 语法里没有派生类型,所以扩展了 record 语句. Fortran 90 开始,语法里规定了 type 派生类型,于是各家编译器就不再提倡使用 record 了. 其实 record 和 type 是一样的作用.但现在书写代码,建议用 type.2023-07-10 12:00:211
汇编菜鸟求教 invalid object module pos:1 Record type:44是什么错误啊??
这事编辑连接时出错,检查你的link2023-07-10 12:00:402
设待排序的关键字为(89,98,10,23,05,17,69,45,28,19) 这个排序的程序的错误怎么改?
修改后运行没问题,但你这排序函数问题很大,自己修改下吧#include <stdio.h>//#include <stdlib.h>//#define MaxSize 100typedef struct{ int key; //int OtherData;}RecordType[10000];//typedef RecordType RecData[100];//直接插入排序void InsertSort(RecordType r,int n){ int i,j=n; for(i=2;i<=n;i++) { r[0]=r[i]; j=j-1; while(r[0].key<r[j].key) { r[j+1]=r[j]; j--; } r[j+1]=r[0]; }}void main(){ int i; RecordType r; printf("请输入数组:"); for(i=0;i<10;i++) scanf("%d",&r[i].key); printf("排序后的数组为:"); InsertSort(r,10); for(i=0;i<10;i++) { printf("%d ",r[i].key); printf(" "); }}2023-07-10 12:00:481
急求大神!!!代码出错,不知道该哪里出错怎么改!!!明天之前就要,急!!!
/*Please input the list :36 12543 8918 4771 1319 187 6783 4569 119 3913 6(7 67) (9 39) (13 6) (18 47) (19 18) (36 125) (43 89) (69 11) (71 13) (83 45)Please input the key-number:36Your key-number is the NO.36 in this list.Press any key to continue*/#include <stdio.h>#include <malloc.h>typedef int KeyType;typedef int OtherType;#define LIST_SIZE 10typedef struct data { KeyType key; OtherType other_data;}RecordType;typedef struct list { RecordType r[LIST_SIZE]; int length;}RecordList;int BinSrch(RecordList *L,KeyType k) { // 找到时返回k所在的索引,否则返回-1 int mid,low = 0; int high = L->length - 1; while(low <= high) { mid = (low + high) / 2; if(k == L->r[mid].key) return mid; if(k < L->r[mid].key) high = mid - 1; else low = mid + 1; } return -1;}void BubbleSort(RecordList *L) { int i,j,n,change; RecordType x; n = L->length; for(i = 0;i < n - 1 && change;++i) { change = 0; for(j = 0;j < n - i - 1;++j) { if(L->r[j].key > L->r[j + 1].key) { x = L->r[j]; L->r[j] = L->r[j + 1]; L->r[j + 1] = x; change = 1; } } }}void Show(RecordList *L) { int i; for(i = 0; i < L->length; ++i) printf("(%d %d) ",L->r[i].key,L->r[i].other_data); printf(" ");}int main() { int i,num; RecordList *L; KeyType k; L = (RecordList *)malloc(sizeof(list)); L->length = LIST_SIZE; printf("Please input the list : "); for(i = 0;i < LIST_SIZE;i++) { scanf("%d",&L->r[i].key); scanf("%d",&L->r[i].other_data); } BubbleSort(L); Show(L); printf("Please input the key-number:"); scanf("%d",&k); num = BinSrch(L,k); if(num == -1) printf("not find. "); else printf("Your key-number is the NO.%d in this list. ",L->r[num].key); return 0;}2023-07-10 12:00:551
在delphi中,什么时候用到record类型,record类型有什么作用?
record类型是一种结构体,就是记录类型,需要用Type...End方式来定义,就像我们的数据表中的一条记录有很多列一样,先定义好每一列的属性,访问时就可以直接用 <记录.列>来表示了。比如定义一个公司记录结构,公司需要有名称、英文名称、地址、电话等信息//定义公司信息结构CompanyInfoType CompanyInfo=record Name:String;//名称 EName:String;//英文名称 Address:String;//地址 EAddress:String;//英文地址 Manager:String;//管理员 Phone:String;//电话 Fax:String;//传真 Tel:String;//手机End;//使用时定义一下变量Var MyCompany:CompanyInfo;//这时就可以直接给它赋值了MyCompany.Name:="XX公司"MyCompany.Tel:="1890000000"..............2023-07-10 12:01:032
delphi 中 读取文件
请问,你想问什么?2023-07-10 12:01:135
C语言二差分算法问题?
#include "stdio.h"#define List_Size 20struct RecordType { int key; //简单查找 char otherkey;};struct RecordList{ RecordType r[List_Size+1]; int length;}list1,*p;////////////////////////void init_list(){ int i; //初始化数据// p=&list1; for(i=0;i<List_Size+1;i++) { p->r[i].key =i; p->r[i].otherkey =i+1; } p->length =List_Size+1;for(i=0;i<List_Size+1;i++) //确认初始化数据 { printf("list.r[%d].key=%d,list.r[%d].otherkey=%d ",i,p->r[i].key,i,p->r[i].otherkey); } printf("list.length=%d ",p->length);}/////////////////////////int BinSrch(RecordList L,int k) //二分差算法{ int low=0,high=0,mid=0; int i=0; high=L.length-1; while(low<=high) { mid=(low+high)/2; if(k==L.r[mid].key) { i=mid;break; } else { if(k < L.r[mid].key) high=mid-1; else low=mid+1; } }// if((low==high)&&(k!=L.r[mid].key))// {// return (0);// } return (i);}void main() { int result=0; p=&list1; init_list(); printf("检查1 ");//我用来检查的 result=BinSrch(list1,7); printf("检查12 ");//我用来检查的 printf("the reslut=%d",result); printf(" ");}2023-07-10 12:01:313
关于ADO中的record对象与stream对象
给你个地址,你下载下来看看,好了给分,不好不要分:http://www.52z.com/Down/21209.htmladodb.stream对象的方法/属性Cancel 方法 使用方法如下 Object.Cancel 说明:取消执行挂起的异步 Execute 或 Open 方法的调用。Close 方法 使用方法如下 Object.Close :关闭对像CopyTo 方法 使用方法如下 Object.CopyTo(destStream,[CharNumber]) 说明:将对像的数据复制,destStream指向要复制的对像,CharNumber为可选参数,指要复制的字节数,不选为全部复制。Flush 方法 使用方法如下 Object.Flush 说明:LoadFromFile 方法 使用方法如下 Object.LoadFromFile(FileName) 说明:将FileName指定的文档装入对像中,参数FileName为指定的用户名。Open 方法 使用方法如下 Object.Open(Source,[Mode],[Options],[UserName],[Password]) 说明:打开对像, 参数说明:Sourece 对像源,可不指定 Mode 指定打开模式,可不指定,可选参数如下: adModeRead =1 adModeReadWrite =3 adModeRecursive =4194304 adModeShareDenyNone =16 adModeShareDenyRead =4 adModeShareDenyWrite =8 adModeShareExclusive =12 adModeUnknown =0 adModeWrite =2 Options 指定打开的选项,可不指定,可选参数如下: adOpenStreamAsync =1 adOpenStreamFromRecord =4 adOpenStreamUnspecified=-1 UserName 指定用户名,可不指定。 Password 指定用户名的密码Read 方法使用方法如下:Object.Read(Numbytes)说明:读取指定长度的二进制内容。参数说明:Numbytes指定的要读取的找度,不指定则读取全部。ReadText 方法 使用方法如下:Object.ReadText(NumChars)说明:读取指定长度的文本参数说明:NumChars指定的要读取的找度,不指定则读取全部。SaveToFile 方法 使用方法如下:Object.SaveToFile(FileName,[Options])说明:将对像的内容写到FileName指定的文档中参数说明:FileName指定的文档 Options 存取的选项,可不指定,可选参数如下: adSaveCreateNotExist =1 adSaveCreateOverWrite =2SetEOS 方法使用方法如下:Object.setEOS()说明:SkipLine 方法使用方法如下:Object.SkipLine()说明:Write 方法使用方法如下:Object.Write(Buffer)说明:将指定的数据装入对像中。参数说明:Buffer 为指定的要写入的内容。WriteText 方法使用方法如下:Object.Write(Data,[Options])说明:将指定的文本数据装入对像中。参数说明:Data 为指定的要写入的内容。 Options 写入的选项,可不指定,可选参数如下: adWriteChar =0 adWriteLine =1有下列属性:Charset EOS 返回对像内数据是否为空。LineSeparator 指定换行格式,可选参数有 adCR =13 adCRLF =-1 adLF =10Mode 指定或返加模式。Position 指定或返加对像内数据的当前指针。Size 返回对像内数据的大小。State 返加对像状态是否打开。Type 指定或返回的数据类型,可选参数为: adTypeBinary =1 adTypeText =2 ADO中的record对象:State 属性 对所有适用的对象,指示该对象状态是打开的还是关闭的。 指示对所有可应用的对象执行异步方法,指示对象的当前状态是正在连接、正在执行还是正在检索。 返回值 返回可能是 ObjectStateEnum 值的 Long 值。默认值为 adStateClosed。 说明 可以随时用 State 属性确定给定对象的当前状态。 对象的 State 属性可以是值的组合。例如,如果正在执行某个语句,此属性将有一个 adStateOpen 和 adStateExecuting 的组合值。 State 属性为只读。 Record 对象 表示 Recordset 中的行,或者文件系统中的文件或目录。 说明 通过 Record 对象上的 Fields 集合,可以查看与 Record 对象相关联的字段。ADO 允许值为对象的列,包括 Recordset、SafeArray 和 Record 对象的 Fields 集合中的标量值。 如果 Record 对象表示 Recordset 中的行,那么它有可能返回原先的 Recordset。 Record 对象可以模仿树状结构的名称空间。树上的每一个节点都是一个具有相关列的 Record 对象。这些列可以表示该节点的属性和其他相关信息。在该树状结构中,Record 对象既可以表示叶节点也可表示非叶节点。非叶节点可将其他节点作为内容,而叶节点没有这样的内容。通常,叶节点包含数据的二进制流,而非叶节点也可能有与其相关联的默认二进制流。Record 对象的属性标识节点的类型。 Record 对象还表示用于定位分级结构数据的替换方法。可以创建一个 Record 对象来表示大的树状结构中特定子树的根。可以打开新的 Record 对象,用它们表示子节点。 文件或目录(即“资源”)由绝对 URL 唯一标识。当用绝对 URL 打开 Record 时,将显式地创建 Connection 对象并将其设置为 Record 对象。通过 ActiveConnection 属性可以将 Connection 对象显式设置为 Record 对象。可通过 Connection 对象访问的文件和目录定义可在其中发生 Record 操作的“上下文”。 Record 对象上的数据修改和定位方法还接受相对 URL,它使用绝对 URL 或 Connection 对象上下文为起点定位资源。 Connection 对象与每一个 Record 对象相关联。因此,通过调用 Connection 对象事务方法,可将 Record 对象操作看作事务的一部分。 Record 对象不支持 ADO 事件,因此不响应通知。 用 Record 对象的方法和属性可以执行下列操作: 用 ActiveConnection 属性设置或返回相关联的 Connection 对象。 用 Mode 属性指示访问权限。 用 ParentURL 属性返回目录的 URL(如果有),该目录中包含 Record 表示的资源。 用 Source 属性指示绝对 URL、相对 URL 或可从中导出 Record 的 Recordset。 用 State 属性指示 Record 的当前状态。 用 RecordType 属性指示 Record 类型——简单文档、集合文档或结构化文档。 用 Cancel 方法终止执行异步操作。 用 Close 方法断开 Record 与数据源的关联。 用 CopyRecord 方法将 Record 表示的文件或目录复制到另一位置。 用 DeleteRecord 方法删除 Record 表示的文件或目录(及其子目录)。 用 GetChildren 方法打开包含行的 Recordset,这些行表示项目的子目录和文件,项目由 Record 表示。 用 MoveRecord 方法将由 Record 表示的文件或目录(及其子目录)移动到另一位置,或者将其重命名。 用 Open 方法将 Record 与现有的数据源相关联,或者创建一个新文件或目录。 Mode 属性 指示在 Connection、Record 或 Stream 对象中修改数据的有效权限。 设置和返回值 设置或返回 ConnectModeEnum 值。对于 Connection,默认值为 adModeUnknown。对于 Record 对象,默认值为 adModeRead。对于与基本源相关联的 Stream(用 URL 将其作为源打开或者作为 Record 的默认 Stream 打开),默认值为 adReadOnly。对于与基本源不关联的 Stream(在内存中实例化),默认值为 adModeUnknown。 说明 使用 Mode 属性设置或返回当前连接上提供者使用的访问权限。只有当 Connection 对象关闭时,才能设置 Mode 属性。 对于 Stream 对象,如果未指定访问模式,它将从用于打开 Stream 对象的源继承。例如,如果 Stream 是从 Record 对象打开的,默认情况下它将以打开 Record 对象相同的模式打开。 此属性在对象关闭时为读/写,在对象打开时为只读。 远程数据服务用法 当在客户端的 Connection 对象上使用时,Mode 属性只能设置为 adModeUnknown。 ParentURL 属性 指示指向当前 Record 对象的父 Record 的绝对 URL 字符串。 返回值 返回 String 值,指示父 Record 的 URL。 说明 ParentURL 属性依赖于用于打开 Record 对象的源。例如,可以用包含 ActiveConnection 属性所引用的目录的相关路径名的源打开 Record。 假设“second”是包含在“first”中的文件夹。用下列代码打开 Record 对象: record.ActiveConnection = "http://first" record.Open "second" 现在,ParentURL 属性的值为“http://first”,与 ActiveConnection 的值相同。 源也可以是一个绝对 URL,如“http://first/second”。ParentURL 属性的值则为“http://first”,它是“second”的上一层。 在下列情况下,此属性为 Null 值: 当前对象没有父对象。例如,如果 Record 对象表示目录的根。 Record 对象表示不能用 URL 指定的项目。例如,源于数据库的 Recordset 的行。 此属性是只读的。 注意 此属性只受文档的源提供者(如 Microsoft OLE DB Provider for Internet Publishing)支持。Source 属性 (ADO Record) 指示由 Record 对象表示的项目。 设置和返回值 设置或返回 Variant 值,指示由 Record 表示的项目。 说明 Source 属性返回 Record 对象 Open 方法的 Source 参数。它可包含绝对或相对 URL 字符串。可用绝对 URL 直接打开 Record 对象而无须设置 ActiveConnection 属性。在这种情况下,将创建隐式的 Connection 对象。 Source 属性也可以包含对已打开的 Recordset 的引用,该 Recordset 打开表示 Recordset 中的当前行的 Record 对象。 如果还设置了 ActiveConnection 属性,则 Source 属性必须指向存在于该连接范围内的某个对象。例如,在树状结构的名称空间中,如果 Source 属性包含绝对 URL,它必须指向节点范围内的节点,该节点范围由连接字符串中的 URL 标识。如果 Source 属性包含相对 URL,则它在由 ActiveConnection 属性设置的上下文中有效。 Source 属性在 Record 对象关闭时为读/写,在 Record 对象打开时为只读。 State 属性 对所有适用的对象,指示该对象状态是打开的还是关闭的。 指示对所有可应用的对象执行异步方法,指示对象的当前状态是正在连接、正在执行还是正在检索。 返回值 返回可能是 ObjectStateEnum 值的 Long 值。默认值为 adStateClosed。 说明 可以随时用 State 属性确定给定对象的当前状态。 对象的 State 属性可以是值的组合。例如,如果正在执行某个语句,此属性将有一个 adStateOpen 和 adStateExecuting 的组合值。 State 属性为只读。 RecordType 属性 指示 Record 对象的类型。 返回值 返回 RecordTypeEnum 值。 说明 RecordType 属性为只读。 Cancel 方法 取消执行挂起的异步方法调用。 语法 object.Cancel 说明 使用 Cancel 方法终止执行异步方法调用(即用 adAsyncConnect、adAsyncExecute 或 adAsyncFetch 选项调用的方法)。 下表显示使用特定类型对象的 Cancel 方法时将终止的任务。 如果 object 是 终止对此方法的上一次异步调用 Command Execute Connection Execute 或 Open Record CopyRecord、DeleteRecord、MoveRecord 或 Open Recordset Open Stream Open Close 方法 关闭打开的对象和任何相关的对象。 语法 object.Close 说明 使用 Close 方法关闭 Connection、Record、Recordset 或 Stream 对象以便释放任何相关联的系统资源。关闭对象不会将其从内存中删除;随后可以更改其属性设置并再次将其打开。要从内存中彻底清除对象,请在关闭对象后将对象变量设置为 Nothing(在 Visual Basic 中)。 Connection 使用 Close 方法关闭 Connection 对象还将关闭与连接相关联的任何活动 Recordset 对象。与正在关闭的 Connection 对象相关联的 Command 对象将被持久保留,但不再与 Connection 对象相关联,即其 ActiveConnection 属性将被设置为 Nothing。还将从 Command 对象的 Parameters 集合中清除任何提供者定义的参数。 随后可以调用 Open 方法重新建立与相同数据源或其他数据源的连接。在 Connection 对象关闭后,调用任何需要与数据源打开连接的方法都将产生错误。 当连接上的 Recordset 对象打开时,关闭 Connection 对象将回卷所有 Recordset 对象中的挂起更改。在事务进行过程中显式关闭 Connection 对象(调用 Close 方法)将产生错误。如果在事务进行过程中 Connection 对象超出范围,ADO 将自动回卷事务。 Recordset、Record 和 Stream 使用 Close 方法关闭 Recordset、Record 或 Stream 对象将释放相关联的数据和可能通过此特定对象对数据进行的独立访问。随后可以调用 Open 方法重新打开具有相同属性或修改属性的对象。 在 Recordset 对象关闭后,调用任何需要活动游标的方法都将产生错误。 如果在立即更新模式下进行编辑,调用 Close 方法将产生错误,应先调用 Update 或 CancelUpdate 方法。如果在批更新模式下关闭 Recordset 对象,自上次 UpdateBatch 调用以来所做的更改将全部丢失。 如果使用 Clone 方法创建打开的 Recordset 对象的副本,关闭原 Recordset 或其副本不会影响任何其他副本。 CopyRecord 方法 把文件或目录(及其内容)复制到另一个位置。 语法 CopyRecord (Source, Destination, UserName, Password, Options, Async) 参数 Source 可选。String 值,包含指定要复制的文件或目录的 URL。如果省略 Source 或指定空字符串,将复制此 Record 所表示的文件或目录。 Destination 可选。String 值,包含指定要复制 Source 的位置的 URL。 UserName 可选。String 值,包含授权访问 Destination(如果需要)的用户 ID。 Password 可选。String 值,包含验证 UserName(如果需要)的密码。 Options 可选。CopyRecordOptionsEnum 值,其默认值为 adCopyUnspecified。指定此方法的行为。 Async 可选。Boolean 值,其值为 True 时指定此操作为异步。 返回值 String 值,通常返回 Destination 的值。然而,返回的准确值要取决于提供者。 说明 Source 和 Destination 的值必须相同,否则将发生运行时错误。服务器、路径或资源的名称至少有一个不同。 除非指定 adCopyNonRecursive,否则将递归复制 Source 的所有子目录。在递归操作中,Destination 不能是 Source 的子目录,否则操作将不能完成。 如果 Destination 标识现有文件或目录,除非指定 adCopyOverWrite,否则此方法将失败。 重要信息 请斟酌使用 adMoveOverWrite 选项。例如,将一个文件复制到某个目录时,指定此选项将“删除”这个目录,并用此文件替换它。 DeleteRecord 方法 删除文件或目录(包括目录中的所有子目录)。 语法 DeleteRecord Source, Async 参数 Source 可选。String 值,包含标识要删除的文件或目录的 URL。如果省略 Source 或指定空字符串,此 Record 表示的文件或目录将被删除。 Async 可选。Boolean 值,其值为 True 时将指定删除操作为异步。 说明 此方法完成后,对由 Record 表示的文件或目录执行的操作可能失败。在调用 DeleteRecord 后,根据 Provider 用数据源更新 Record 的时间不同,Record 的行为可能不可预料,因此应将 Record 关闭。 如果此 Record 从 Recordset 获取,那么在 Recordset 中将不会立即反映此操作的结果。关闭并重新打开 Recordset,或者执行 Recordset Requery 或 Update 和 Resync 方法,将刷新 Recordset。 GetChildren 方法 返回 Recordset,其中的行表示由此 Record 表示的目录中的文件和子目录。 语法 Set recordset = record.GetChildren 返回值 Recordset 对象,其中的每一行表示一个文件或目录。 说明 提供者确定在返回的 Recordset 中包含哪些列。例如,文档源提供者始终返回资源 Recordset。 MoveRecord 方法 把文件或目录(及其内容)移到另一个位置。 语法 MoveRecord (Source, Destination, UserName, Password, Options, Async) 参数 Source 可选。String 值,包含标识要移动的 Record 的 URL。如果省略 Source 或指定空字符串,将移动此 Record 表示的文件或目录。 Destination 可选。String 值,包含指定要移动的 Source 的位置的 URL。 UserName 可选。String 值,包含授权访问 Destination(如果需要)的用户 ID。 Password 可选。String,包含验证 UserName(如果需要)的密码。 Options 可选。MoveRecordOptionsEnum 值,其默认值为 adMoveUnspecified。指定此方法的行为。 Async 可选。Boolean 值,其值为 True 时将指定此操作为异步。 返回值 String 值。通常返回 Destination 值。然而,返回的准确值要取决于提供者。 说明 Source 和 Destination 的值必须相同,否则将发生运行时错误。至少服务器、路径和资源的名称不能相同。 此方法将更新正被移动的文件中的所有超文本链接(除 Options 指定的以外)。如果 Destination 标识现有的文件或目录,除非指定 adMoveOverWrite,否则此方法将失败。 注意 请斟酌使用 adMoveOverWrite 选项。例如,把一个文件移动到某个目录中,指定此选项将删除这个目录并用此文件替换它。 此操作完成后,Record 对象的某些属性(如 ParentURL 属性)将不会被更新。关闭 Record 然后用文件或目录移动位置的 URL 重新打开它,即可刷新 Record 对象的属性。 如果此 Record 是从 Recordset 获取的,移动的文件或目录的新位置将不会立即反映在 Recordset 中。关闭并重新打开将刷新 Recordset。2023-07-10 12:01:381
服务器里面的几种type各是什么意思(A Record等等)
如我截图(是在cisco packet server软件中的一个模拟服务器)里面有个 type 后面的 ARecord ,CNAME,SOA ,NS Record这几个分别是什么东西?有什么用处?在什么时候选择用哪一个是不是有什么规定?懂这个的大虾午饭 ...2023-07-10 12:01:461
VFP中定义页框的recordsoucetype和recordsource,可在属性里找不到
页框在原类中是没有这两个属性的!!如果有也是自己定义的类!!2023-07-10 12:01:532
VFP的表单里 recordsoursetype 和 recordsourse 的属性是干嘛的呀
recordsoursetype数据来源类别,比如表tablerecordsourse就是具体哪个表,比如customer2023-07-10 12:02:113
PLSQL中,定义一个RECORD类型变量r1 table1%rowtype,怎么样将table1表中的一条记录放到r1中,并且在r1中得
同样求解,数据库知道的不多2023-07-10 12:02:225
delphi 中record如何定义以及调用?
TOwnBook : record 前缺少关键字type以及TownBook与record之间是=号不是:号应该这样 type TownBook = record Code : string; Name : string; Price : string; OwnDays : integer; end;位置可以放在这里,不过按照书写代码的风格建议放到var Form4: TForm4;这两句的上面,这样一来比较划分区域,代码也显得好看些 调用没有错,就只是那一句错了.unit Unit4;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, DBCtrls, DB, ADODB, Mask, ExtCtrls;type TForm4 = class(TForm)GroupBox1: TGroupBox; Panel1: TPanel; StaticText1: TStaticText; StaticText2: TStaticText; StaticText3: TStaticText; StaticText4: TStaticText; StaticText5: TStaticText; StaticText6: TStaticText; StaticText7: TStaticText; ComboBox1: TComboBox; DBEdit1: TDBEdit; DBEdit2: TDBEdit; DBEdit3: TDBEdit; DBEdit4: TDBEdit; DBEdit5: TDBEdit; ADOQuery1: TADOQuery; ADOQuery2: TADOQuery; ADOConnection1: TADOConnection; DataSource1: TDataSource; DBMemo1: TDBMemo; StaticText8: TStaticText; StaticText9: TStaticText; StaticText10: TStaticText; StaticText11: TStaticText; Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Edit4: TEdit; Button1: TButton; Button2: TButton; Button3: TButton; ADOTable1: TADOTable; ADOQuery3: TADOQuery; procedure Button3Click(Sender: TObject); procedure FormShow(Sender: TObject); procedure ComboBox1Change(Sender: TObject); procedure ComboBox1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure Edit1Change(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;type TOwnBook = record //定义在此处 是不是因为定义的位置不对? Code : string; Name : string; Price : string; OwnDays : integer; end;var Form4: TForm4;procedure TForm4.Button1Click(Sender: TObject);var tempOwnBook:TOwnBook; //变量定义在此处begin...end.2023-07-10 12:02:381
mysql 存储过程 传多个参数无法识别
存储过程里的递归调用传的是一个参数,这肯定不对 while(done = 0) do call iterateCategory(b); fetch c into b; end while;2023-07-10 12:02:451
请教TYPE XXX IS RECORD和 表%ROWTYPE有什么区别吗
type。。。is record是记录类型,编写记录时需要知道列的类型,但可以编写一个名字是表名的记录类型,比如type 记录名 is record(列名 数据类型);名a 记录名;begin select 列名 into 名a from 表名 where 条件;end;这里面的名a可以是表名,不会引起冲突表%rowtype优点在于无需知道列的类型,而且步骤相对简单省时间,但必须起别名不能与表明重复比如:别名 表名%rowtype,否则出错emmm,时隔一年的回答,个人理解,欢迎修正2023-07-10 12:02:522
在用R导入spss数据时出现错误:Unrecognized record type 7, subtype 18 encountered in system file?
变量类型错误,请核查我替别人做这类的数据分析蛮多的2023-07-10 12:02:591
pl/sql存储过程返回record类型的结果,java里如何调用呢?
cst.registerOutParameter(2, Types.DOUBLE);2023-07-10 12:03:082
随机生成10个待排序数据,用C语言写出二路归并排序算法
#include<stdio.h>#include<stdlib.h>#include<time.h>int b[ 10 ];void Merge( int c[], int d[], int l, int m, int r ){ int i = l, j = m + 1, k = l; while( ( i <= m ) && ( j <= r ) ) if( c[ i ] <= c[ j ] ) d[ k++ ] = c[ i++ ]; else d[ k++ ] = c[ j++ ]; if( i > m ) for( int q = j; q <= r; q++ ) d[ k++ ] = c[ q ]; else for( int q = i; q <= m; q++ ) d[ k++ ] = c[ q ];}void Copy( int c[], int d[], int n1, int n2 ){ for( int i = n1; i <= n2; i++ ) c[ i ] = d[ i ];}void MergeSort( int a[], int left, int right ){ if( left < right ) { int i = ( left + right ) / 2; //取中点,分成两路 MergeSort( a, left, i ); MergeSort( a, i + 1, right ); Merge( a, b, left, i, right ); //合并到数组b Copy( a, b, left, right ); //复制到数组a }}int main(){ int a[ 10 ], i; srand( time( 0 ) ); for( i = 0; i < 10; i++ ) a[ i ] = rand() % 100; //随机生成 for( i = 0; i < 10; i++ ) //输出随机生成的数据 printf( "%d ", a[ i ] ); printf( " " ); MergeSort( a, 0, 9 ); for( i = 0; i < 10; i++ ) //输出排序后的结果 printf( "%d ", a[ i ] ); printf( " " ); return 0;} //在vc++6.0上调试运行成功。若有不明白的地方,call me!!!2023-07-10 12:03:181
VF中,怎么更改表格的数据原属性,recordsorcetype属性对话框里找不到
改recordsorce属性,确定表格的数据源。recordsorcetype属性确定的是表格数据源的类型。2023-07-10 12:03:391
c语言生成10个随机整数,并对随机数进行冒泡和快速排序。有讲解更好,纯新手。
//---------------------------------------------------------------------------#include #include #include int main(void){int a;int t=10,d=100;srand(time(NULL)); /*初始化随机数种子*/a=rand()%(d-t)+t; /*生成一个[t,d)区间内的整数*/return 0;}//---------------------------------------------------------------------------2023-07-10 12:04:002
oracle中type,r_record is record 是什么意思
楼上说的对,提供的资料太少。猜想,你是不是用了关键字来做别名呢 检查下吧2023-07-10 12:04:102
C语言选择法排序
#include<stdio.h>#define M 5void main(){int b[M],i,j,t;for(i=0;i<M;i++)scanf("%d",&b[i]);for(i=0;i<M-1;i++){for(j=i+1;j<M;j++)if(b[i]<b[j]){ t=b[i];b[i]=b[j];b[j]=t;}}for(i=0;i<M;i++)printf("%d ",b[i]);}2023-07-10 12:04:207
pascal编程语言中 声明 record 类型中的 case 用法,多谢
type node=record case a:char of "b":(b:integer); "c":(c:integer); end;2023-07-10 12:05:103
Ext 怎样取出grid中所有记录并保存到数据库呢???
两种方法:1, 在后台取到数据后直接加一行空数据再送到前台, 这样的话客户端不需要做任何处理2, 在前台store.load事件中增加空行store.on("load", function(){ var _rec = new this.recordType(); var _key = ""; //枚举所有字段, 设置默认值 for (var i = 0; i < _rec.fields.keys.length; i++){ _key = _rec.fields.keys[i]; //record对象中每个字段初次写入的值会记录在record.modified, 用于记录被修改之前的值 _rec.data[_key] = null; //第二次根据字段类型写入默认值, record.data中记录的是默认值, record.modified中记录的是null, //如此可以在客户端提交时区分客户端新增的记录或修改的记录 switch(_rec.fields.get(_key).type){ case "int": _rec.set(_key, 0); break; case "float": _rec.set(_key, 0.0); break; case "boolean": _rec.set(_key, false); break; default: _rec.set(_key, ""); break; } } //新增记录设置两次值, 则会在每个字段左上角显示红色三角修改标志, 用来凸显新增记录 //如果不需要判断是否客户端新增记录, 去掉第一次设置空值, 直接设置默认值即可 this.add(_rec);});2023-07-10 12:05:182
DNS record 中的类型,各取值都是啥含义
TYPE 值和含意 A 1,主机地址NS 2,权威名称服务器MD 3,邮件目的地(被废弃,使用MX)MF 4,邮件转发器(被废弃,使用MX)CNAME 5,别名的正则名称SOA 6,标记权威区域的开始MB 7,邮箱域名(试验)MG 8,邮件组成员(试验)MR 9,邮件重新命名域名(试验)NULL 10,空RR(试验)WKS 11,众所周知的业务描述PTR 12,域名指针HINFO 13,主机信息MINFO 14,邮箱或邮件列表信息 MX 15,邮件交换 TXT 16,文本字符串2023-07-10 12:05:251
怎么用C语言实现向前向后差分算法
求翻译2023-07-10 12:05:352
delphi中record作为函数参数,为什么提示未定义?
unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs;type TWhat = record a:string; b:string; c:integer; end; type TForm1 = class(TForm) private { Private declarations } public { Public declarations } function getWaht(what:TWhat):integer; //这里要在TWhat定义之后 end;var Form1: TForm1;implementation{$R *.dfm}{ TForm1 }function TForm1.getWaht(what: TWhat): integer;begin // getWahtend;end.2023-07-10 12:05:431
ExtJs 怎么实现将左侧表中一条数据动态插入到右侧表中
大致思路://声明好对应grid的Record对象 var ItemRecord = Ext.data.Record.create([ {name:"oid"}, {name:"oidname"}, {name:"vendor"} ]); //点那个添加按钮时则执行类似如下函数function addRow2Grid(grid){ var values = Ext.getCmp("your_form_id").getForm().getValues(); //form各字段的name属性要和ItemRecord里对应以便下面赋值。可以先console.log(values);看看值。 var rec = new ItemRecord(values); //实例化Record对象并赋值 //var rec =new grid.store.recordType(values); //试试这种行不,省了提前声明ItemRecord. grid.store.insert(grid.store.getCount(), rec); //插入作为grid最后一行 grid.getView().refresh(); //刷新 }2023-07-10 12:05:491
如何在delphi中实现record定义时,字段引用自己
又不是类,怎么可能有预定义的事情呢?2023-07-10 12:05:573
boot record type=2是什么意思
你好,很高兴为你解答bootrecordtype=2引导记录类型=2希望我的回答对你有帮助,满意请采纳。2023-07-10 12:07:121
record是什么意思英语
n.记录;记载;成绩;履历;纪录;最佳成绩;唱片;审判记录;唱片乐曲v.记录;记下…备案;录制;正式记录;申明…供记录在案;标明;标示;取得;录音短语搭配keep a record保持记录;保留记录break the record of打破...的记录world record世界记录;世界纪录break the record打破记录请点击输入图片描述hold the record保持纪录;保持记录break a record打破记录criminal record犯罪记录;犯罪史keep sth. on record记录在案medical record病历卡;病例档案;医疗记录on record记录;记录过;记录在案;公开宣布;让大家知道keep sth on record记录在案for the record正式声明, 记录在案off the record非正式的, 私下的;不得发表的track record径赛项最好成绩记录;过去成就on the record公开宣布;让大家知道fossil record化石记录record player唱机;留声机court record法庭纪律;法庭记录,审判记录set the record straight澄清事实;纠正误解record type留档活字2023-07-10 12:07:201
boot record type=2是什么意思
你好,很高兴为你解答boot record type=2引导记录类型= 2希望我的回答对你有帮助,满意请采纳。2023-07-10 12:07:321
type struct record 是什么意思
type是Basic中的结构体struct是C/C++中的结构体recort是Pascal/Delphi中的结构体(叫做记录)2023-07-10 12:07:401
keil c51编译出错“UNKNOWN RECORD TYPE C7H”
你给的提示信息不完整,至少把整条给贴出来吧……通常这类提示说明你在非注释的地方留下了汉字……Keil不认识汉字是什么东西。2023-07-10 12:07:471
在导入spss数据时出现错误: Unrecognized record type 7, subtype 18 encountered
变量类型错误,你已经问过这个问题了我替别人做这类的数据分析蛮多的2023-07-10 12:07:541
delphi中的record结构怎样初始化
type PMyRecord = ^TMyRecord; TMyRecord = record I: Integer; end; var R: PMyRecord; New(R); // 正确将 R 初始化 Dispose(R); // 正确释放 R 内存空间2023-07-10 12:08:032
extjs GridPanel怎么添加ComboBox,TextField等form控件?
没听懂!2023-07-10 12:08:111
JAVA里判断某时间是不是在当天中
import java.text.SimpleDateFormat;import java.util.Date;/** * 问题模拟,解决方案 to 匿名 * 只是一个模拟,希望你能从中获得一些想法 *copy到IDE中会好分析一些 * @author Administrator * */public class WorkeSimulation { public static void main(String[] args) { // 1、扫描指纹 获得 员工信息 // 2、判断该员工改日是否签到、签离 // 3、写入记录 /** 下方为过程的模拟 **/ String 工作号 = "BJ-TNFCP-08001002"; String 姓名 = "JIAQIANLI.CN@GMAIL.COM"; WorkeSimulation simulation = new WorkeSimulation(); simulation.早上打卡(姓名, 工作号); } public void 早上打卡(String 姓名, String 工作号) { // 查询数据库今天是否签到 Date nowtime = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String timestr = sdf.format(nowtime); String sql = "select * from worke_record where 工作号="" + 工作号 + """; sql += " where record_type=" + Type.START_WORKE + " and record_time like "" + timestr + "%""; boolean already = verify(sql); if (already) return; TimeCardRecord record = new TimeCardRecord(); record.setName(姓名); record.setWorkerNumber(工作号); record.setType(Type.START_WORKE); record.setDate(nowtime); saveRecord(record); } public void 下午打卡(String 姓名, String 工作号) { // 查询数据库今天是否签离 Date nowtime = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String timestr = sdf.format(nowtime); String sql = "select * from worke_record where 工作号="" + 工作号 + """; sql += " where record_type=" + Type.FINISHED_WORKE + " and record_time like "" + timestr + "%""; boolean already = verify(sql); if (already) return; TimeCardRecord record = new TimeCardRecord(); record.setName(姓名); record.setWorkerNumber(工作号); record.setType(Type.FINISHED_WORKE); record.setDate(nowtime); saveRecord(record); } private void saveRecord(TimeCardRecord record) { // TODO 编写数据库插入 } /** * 验证是否数据库存在此条数据 * @param sql * @return */ private boolean verify(String sql) { boolean flag = true; // 自己实现 数据查询 并确定flag真假 然后返回 return flag; } /** * 打卡记录类 * @author Administrator * */ class TimeCardRecord { /** 打卡类型*/ private Type type; /** 日期*/ private Date date; /** 员工姓名*/ private String name; /** 工号*/ private String workerNumber; public Type getType() { return type; } public void setType(Type type) { this.type = type; } public Date getDate() { return date; } public void setDate(Date date) { this.date = date; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getWorkerNumber() { return workerNumber; } public void setWorkerNumber(String workerNumber) { this.workerNumber = workerNumber; } } /** * 打卡类型枚举 * @author Administrator * */ enum Type { START_WORKE(1), FINISHED_WORKE(2); private final int FLAG; private Type(int flag) { this.FLAG = flag; } @Override public String toString() { return "" + FLAG; } }}2023-07-10 12:08:442
求几道VB题答案
这么模糊的要求别人怎么回答阿?2023-07-10 12:08:526
oracle 包中RECORD的用法和意思
cursor是一个游标(有些地方叫指针吧),它里面应该放的是指向内存中存放数据的首地址吧record是把数据直接放进去的吧2023-07-10 12:09:072
我想知道队列算法能干什么
队列是一种先进先出的数据结构,由于这一规则的限制,使得队列有区别于栈等别的数据结构。作为一种常用的数据结构,同栈一样,是有着丰富的现实背景的。以下是几个典型的例子。[例5-2] 一个旅行家想驾驶汽车以最少的费用从一个城市到另一个城市(假设出发时油箱是空的).给定两个城市之间的距离D1,汽车油箱的容量C(以升为单位),每升汽油能行驶的距离D2,出发点每升汽油价格P和沿途油站数N(N可以为零),油站i离出发点的距离Di,每升汽油价格Pi(i=1,2,……N).计算结果四舍五入至小数点后两位.如果无法到达目的地,则输出"No Solution".样例:INPUTD1=275.6 C=11.9 D2=27.4 P=2.8 N=2油站号I离出发点的距离Di每升汽油价格Pi1102.02.92220.02.2OUTPUT26.95(该数据表示最小费用) [问题分析]看到这道题,许多人都马上判断出穷举是不可行的,因为数据都是以实数的形式给出的.但是,不用穷举,有什么方法是更好的呢 递推是另一条常见的思路,但是具体方法不甚明朗.既然没有现成的思路可循,那么先分析一下问题不失为一个好办法.由于汽车是由始向终单向开的,我们最大的麻烦就是无法预知汽车以后对汽油的需求及油价变动;换句话说,前面所买的多余的油只有开到后面才会被发觉.提出问题是解决的开始.为了着手解决遇到的困难,取得最优方案,那就必须做到两点,即只为用过的汽油付钱;并且只买最便宜的油.如果在以后的行程中发现先前的某些油是不必要的,或是买贵了,我们就会说:"还不如当初不买."由这一个想法,我们可以得到某种启示:假设我们在每个站都买了足够多的油,然后在行程中逐步发现哪些油是不必要的,以此修改我们先前的购买计划,节省资金;进一步说,如果把在各个站加上的油标记为不同的类别,我们只要在用时用那些最便宜的油并为它们付钱,其余的油要么是太贵,要么是多余的,在最终的计划中会被排除.要注意的是,这里的便宜是对于某一段路程而言的,而不是全程.[算法设计]由此,我们得到如下算法:从起点起(包括起点),每到一个站都把油箱加满(终点除外);每经过两站之间的距离,都按照从便宜到贵的顺序使用油箱中的油,并计算花费,因为这是在最优方案下不得不用的油;如果当前站的油价低于油箱中仍保存的油价,则说明以前的购买是不够明智的,其效果一定不如购买当前加油站的油,所以,明智的选择是用本站的油代替以前购买的高价油,留待以后使用,由于我们不是真的开车,也没有为备用的油付过钱,因而这样的反悔是可行的;当我们开到终点时,意味着路上的费用已经得到,此时剩余的油就没有用了,可以忽略.数据结构采用一个队列:存放由便宜到贵的各种油,一个头指针指向当前应当使用的油(最便宜的油),尾指针指向当前可能被替换的油(最贵的油).在一路用一路补充的过程中同步修改数据,求得最优方案.注意:每到一站都要将油加满,以确保在有解的情况下能走完全程.并假设出发前油箱里装满了比出发点贵的油,将出发点也看成一站,则程序循环执行换油,用油的操作,直到到达终点站为止.本题的一个难点在于认识到油箱中油的可更换性,在这里,突破现实生活中的思维模式显得十分重要.[程序清单]program ex5_2(input,output);const max=1000;type recordtype=record price,content:real end;var i,j,n,point,tail:longint;content,change,distance2,money,use:real;price,distance,consume:array[0..max] of real;oil:array [0..max] of recordtype;beginwrite("Input DI,C,D2,P:"); readln(distance[0],content,distance2,price[0]);write("Input N:"); readln(n); distance[n+1]:=distance[0];for i:=1 to n dobeginwrite("Input D[",i,"],","P[",i,"]:");readln(distance[i],price[i])end;distance[0]:=0;for i:=n downto 0 do consume[i]:=(distance[i+1]-distance[i])/distance2;for i:=0 to n doif consume[i]>content thenbegin writeln("No Solution"); halt end;money:=0; tail:=1; change:=0;oil[tail].price:=price[0]*2; oil[tail].content:=content;for i:=0 to n dobeginpoint:=tail;while (point>=1) and (oil[point].price>=price[i]) dobeginchange:=change+oil[point].content;point:=point-1end;tail:=point+1;oil[tail].price:=price[i];oil[tail].content:=change;use:=consume[i]; point:=1;while (use>1e-6) and (point=oil[point].contentthen begin use:=use-oil[point].content;money:=money+oil[point].content*oil[point].price;point:=point+1 endelse begin oil[point].content:=oil[point].content-use;money:=money+use*oil[point].price;use:=0 end;for j:=point to tail do oil[j-point+1]:=oil[j];tail:=tail-point+1;change:=consume[i]end;writeln(money:0:2)end.[例5-3] 分油问题:设有大小不等的3个无刻度的油桶,分别能够存满,X,Y,Z公升油(例如X=80,Y=50,Z=30).初始时,第一个油桶盛满油,第二,三个油桶为空.编程寻找一种最少步骤的分油方式,在某一个油桶上分出targ升油(例如targ=40).若找到解,则将分油方法打印出来;否则打印信息"UNABLE"等字样,表示问题无解.[问题分析] 这是一个利用队列方法解决分油问题的程序.分油过程中,由于油桶上没有刻度,只能将油桶倒满或者倒空.三个油桶盛满油的总量始终等于开始时的第一个油桶盛满的油量.[算法设计] 分油程序的算法主要是,每次判断当前油桶是不是可以倒出油,以及其他某个油桶是不是可以倒进油.如果满足以上条件,那么当前油桶的油或全部倒出,或将另一油桶倒满,针对两种不同的情况作不同的处理.程序中使用一个队列Q,记录每次分油时各个油桶的盛油量和倾倒轨迹有关信息,队列中只记录互不相同的盛油状态(各个油桶的盛油量),如果程序列举出倒油过程的所有不同的盛油状态,经考察全部状态后,未能分出TARG升油的情况,就确定这个倒油问题无解.队列Q通过指针front和rear实现倒油过程的控制.[程序清单]program ex5_3(input,output);const maxn=5000;type stationtype=array[1..3] of integer;elementtype=recordstation:stationtype;out,into:1..3;father:integerend;queuetype=array [1..maxn] of elementtype;var current,born:elementtype;q:queuetype;full,w,w1:stationtype;i,j,k,remain,targ,front,rear:integer;found:boolean;procedure addQ(var Q:queuetype;var rear:integer; n:integer; x:elementtype);beginif rear=nthen begin writeln("Queue full!"); halt endelse begin rear:=rear+1; Q[rear]:=x endend;procedure deleteQ(var Q:queuetype;var front:integer;rear,n:integer;var x:elementtype);beginif front=rearthen begin writeln("Queue empty!"); halt endelse begin front:=front+1; x:=Q[front] endend;function dup(w:stationtype;rear:integer):boolean;var i:integer;begini:=1;while (i<=rear) and ((w[1]q[i].station[1]) or(w[2]q[i].station[2]) or (w[3]q[i].station[3])) do i:=i+1;if i0 thenbeginprint(q[k].father);if k>1 then write(q[k].out, " TO ",q[k].into," ")else write(" ":8);for i:=1 to 3 do write(q[k].station[i]:5);writelnendend;begin {Main program}writeln("1: ","2: ","3: ","targ");readln(full[1],full[2],full[3],targ);found:=false;front:=0; rear:=1;q[1].station[1]:=full[1];q[1].station[2]:=0;q[1].station[3]:=0;q[1].father:=0;while (front begindeleteQ(q,front,rear,maxn,current);w:=current.station;for i:=1 to 3 dofor j:=1 to 3 doif (ij) and (w[i]>0) and (w[j]remainthen begin w1[j]:=full[j]; w1[i]:=w[i]-remain endelse begin w1[i]:=0; w1[j]:=w[j]+w[i] end;if not(dup(w1,rear)) thenbeginborn.station:=w1;born.out:=i;born.into:=j;born.father:=front;addQ(q,rear,maxn,born);for k:=1 to 3 doif w1[k]=targ then found:=trueendendend;if not(found)then writeln("Unable!")else print(rear)end.2023-07-10 12:09:141
如何定制PROFIT SEGMENT
K,老大,你怎么老提这样的原始社会问题,俺倒无所谓,要是招区长大人火了,再给你定一个论坛捣蛋拖SAP后腿坏分子罪名,那可能要送派出所的. 你说你要什么quantity ,是产品的数量吗? 加上quantity不就Ok? 你是什么业务?附加某些费用给customer,又不好分到SO里去 ?KEVFG:define value field group 加上order quantity那个value field,设成必选, 然后加到record type B上去.2023-07-10 12:09:221
求vb操作技巧
我敢考完vb,应该来说没有多少投机取巧的技巧,老老实实背代码吧!2023-07-10 12:09:322