STL of Open Cascade Data Exchange

Size: px
Start display at page:

Download "STL of Open Cascade Data Exchange"

Transcription

1 Open Cascade Data Exchange --- STL 摘要 Abstract: 介绍了三维数据交换格式 STL 的组成, 以及 Open Cascade 中对 STL 的读写 并将 Open Cascade 读进来的 STL 的三角面片在 OpenSceneGraph 中显示 关键字 Key Words:STL, Open Cascade, OpenSceneGraph, Data Exchange STL(the Stereo Lithograpy) 是快速原型系统所应用的标准文件类型 它的目的是将几 何数据发送到可以读取和解释这些数据的机器, 这种机器可将模型转换成塑料的物理模型 STL 是用三角网格来表示三维模型的 STL 文件格式简单, 只能描述三维物体的几何信息, 不支持颜色 材质等信息, 是三维打印机支持的最常见的文件格式 由于 STL 文件的网格表示方法只能表示封闭的形状, 所以要转换的形状必须是实体, 或封闭的面和体 STL 文件 有两种 : 一种是明码 (ASCII) 格式, 一种是二进制 (Binary) 格式 一 STL 的明码 (ASCII) 格式 ASCII 格式的 STL 文件逐行给出三角面片的几何信息, 每行以 1 个或 2 个关键字开头 STL 文件中的三角面片的信息单元 facet 是一个带法向方向的三角面片,STL 三维模型就是 由这一系列的三角面片构成 整个 STL 文件的首行给出了文件路径及文件名 在一个 STL 文件中, 每个 facet 由 7 行数据组成 :facet normal 是三角面片指向实体外部的单位法矢量 ; 说明随后的 3 行数据分别是三角面片的 3 个顶点坐标,3 顶点沿指向实体外部的 法矢量方向逆时针排列 ASCII 格式的 STL 文件结构如下 : 说明如下 :

2 下面给出由 Open Cascade 中导出的一个长方体的 STL 文件 : 长方体的尺寸为长 200, 宽 150, 高 100, 原点在一个角点上 solid Figure 1.1 Box in Open Cascade facet normal e e e+000 vertex e e e+002 vertex e e e+000 vertex e e e+002 facet normal e e e+000 vertex e e e+000 vertex e e e+000 vertex e e e+002 facet normal e e e+000

3 vertex e e e+002 vertex e e e+000 vertex e e e+002 facet normal e e e+000 vertex e e e+002 vertex e e e+000 vertex e e e+000 facet normal e e e+000 vertex e e e+000 vertex e e e+000 vertex e e e+002 facet normal e e e+000 vertex e e e+002 vertex e e e+000 vertex e e e+002 facet normal e e e+000 vertex e e e+002 vertex e e e+000 vertex e e e+000 facet normal e e e+000 vertex e e e+002 vertex e e e+000 vertex e e e+002 facet normal e e e+000 vertex e e e+000 vertex e e e+000

4 vertex e e e+000 facet normal e e e+000 vertex e e e+000 vertex e e e+000 vertex e e e+000 facet normal e e e+000 vertex e e e+002 vertex e e e+002 vertex e e e+002 facet normal e e e+000 vertex e e e+002 vertex e e e+002 vertex e e e+002 endsolid 由上面的 STL 明码文件可知, 上述数据将一个长方体的 6 个面用 12 个三角形来表示 在 OpenSceneGraph 中显示效果如下图所示, 分别为此长方体的实体渲染模式和线框渲染模式 : Figure 1.2 Shaded and Wireframe box in OpenSceneGraph

5 二 STL 的二进制 (Binary) 格式 二进制的 STL 文件用固定的字节数来给出三角面片的几何信息 文件起始 80 个字节是 文件头, 用于存贮零件名 ; 紧接着 4 个字节的整数来描述模型的三角面片个数 ; 后面逐个给 出每个三角面片的几何信息 每个三角面片用固定的 50 个字节, 依次是表示三角面片的法 矢量的 3 个 4 字节浮点数 ; 表示三角面片三个顶点的 3x3 个 4 字节浮点数 ; 最后 2 个字节用来描述三角面片的属性信息 三 OCC 中 STL 文件的读写 Read/Write STL in Open Cascade 在 Open Cascade 中 STL 文件的读写分别使用类 :StlAPI_Reader/StlAPI_Writer 来实现 查看源程序可知, 写 STL 文件的步骤如下 : 遍历一个 TopoDS_Shape 所有的面 Face; 使用工具 BRep_Tool::Triangulation 将每个面 Face 三角面片化 ; 计算每个三角面片的法矢量 ; 将结果写入文件 类 RWStl 对 STL 的读定也是有两种格式, 即 ASCII 格式和 Binary 格式 : RWStl::WriteBinary RWStl::WriteAscii RWStl::ReadBinary RWStl::ReadAscii 程序的具体实现可以查看 Open Cascade 源代码, 将读写部分主要代码 RWStl.cxx 列出如下 : // File: RWStl.cxx // Created: Thu Oct 13 13:41: // Author: Marc LEGAY // <mle@bourdon> // Copyright: Matra Datavision #include <RWStl.ixx> #include <OSD_Protection.hxx> #include <OSD_File.hxx> #include <TCollection_AsciiString.hxx> #include <Standard_NoMoreObject.hxx>

6 #include <Standard_TypeMismatch.hxx> #include <Precision.hxx> #include <StlMesh_MeshExplorer.hxx> #include <OSD.hxx> #include <OSD_Host.hxx> #include <gp_xyz.hxx> #include <gp.hxx> #include <stdio.h> #include <gp_vec.hxx> // constants static const int HEADER_SIZE = 84; static const int SIZEOF_STL_FACET = 50; static const int STL_MIN_FILE_SIZE = 284; static const int ASCII_LINES_PER_FACET = 7; //=============== ======================================================= //function : WriteInteger //purpose : writing a Little Endian 32 bits integer inline static void WriteInteger(OSD_File& ofile,const Standard_Integer value) union Standard_Integer i;// don't be afraid, this is just an unsigned int char c[4]; bidargum; bidargum.i = value; Standard_Integer entier; entier = bidargum.c[0] & 0xFF; entier = (bidargum.c[1] & 0xFF) << 0x08; entier = (bidargum.c[2] & 0xFF) << 0x10; entier = (bidargum.c[3] & 0xFF) << 0x18; ofile.write((char *)&entier,sizeof(bidargum.c)); //function : WriteDouble2Float //purpose : writing a Little Endian 32 bits float

7 inline static void WriteDouble2Float(OSD_File& ofile,standard_real value) union Standard_ShortReal f; char c[4]; bidargum; bidargum.f = (Standard_ShortReal)value; Standard_Integer entier; entier = bidargum.c[0] & 0xFF; entier = (bidargum.c[1] & 0xFF) << 0x08; entier = (bidargum.c[2] & 0xFF) << 0x10; entier = (bidargum.c[3] & 0xFF) << 0x18; ofile.write((char *)&entier,sizeof(bidargum.c)); //function : readfloat2double //purpose : reading a Little Endian 32 bits float inline static Standard_Real ReadFloat2Double(OSD_File &afile) union Standard_Boolean i; // don't be afraid, this is just an unsigned int Standard_ShortReal f; bidargum; char c[4]; Standard_Address adr; adr = (Standard_Address)c; Standard_Integer lread; afile.read(adr,4,lread); bidargum.i = c[0] & 0xFF; bidargum.i = (c[1] & 0xFF) << 0x08; bidargum.i = (c[2] & 0xFF) << 0x10; bidargum.i = (c[3] & 0xFF) << 0x18;

8 return (Standard_Real)(bidargum.f); //function : WriteBinary //purpose : write a binary STL file in Little Endian format Standard_Boolean RWStl::WriteBinary(const Handle(StlMesh_Mesh)& amesh, const OSD_Path& apath) OSD_File thefile = OSD_File (apath); thefile.build(osd_writeonly,osd_protection()); Standard_Real x1, y1, z1; Standard_Real x2, y2, z2; Standard_Real x3, y3, z3; //pgo Standard_Real x,y,z; char sval[80]; Standard_Integer NBTRIANGLES=0; unsigned int NBT; NBTRIANGLES = amesh->nbtriangles(); NBT = NBTRIANGLES ; thefile.write ((Standard_Address)sval,80); WriteInteger(theFile,NBT); // thefile.write ((Standard_Address)&NBT,4); int dum=0; StlMesh_MeshExplorer amexp (amesh); for (Standard_Integer nbd=1;nbd<=amesh->nbdomains();nbd++) for (amexp.inittriangle (nbd); amexp.moretriangle (); amexp.nexttriangle ()) amexp.trianglevertices (x1,y1,z1,x2,y2,z2,x3,y3,z3); //pgo amexp.triangleorientation (x,y,z); gp_xyz Vect12 ((x2-x1), (y2-y1), (z2-z1)); gp_xyz Vect13 ((x3-x1), (y3-y1), (z3-z1)); gp_xyz Vnorm = Vect12 ^ Vect13; Standard_Real Vmodul = Vnorm.Modulus (); if (Vmodul > gp::resolution()) Vnorm.Divide(Vmodul);

9 else // si Vnorm est quasi-nul, on le charge a 0 explicitement Vnorm.SetCoord (0., 0., 0.); WriteDouble2Float (thefile,vnorm.x()); WriteDouble2Float (thefile,vnorm.y()); WriteDouble2Float (thefile,vnorm.z()); WriteDouble2Float (thefile,x1); WriteDouble2Float (thefile,y1); WriteDouble2Float (thefile,z1); WriteDouble2Float (thefile,x2); WriteDouble2Float (thefile,y2); WriteDouble2Float (thefile,z2); WriteDouble2Float (thefile,x3); WriteDouble2Float (thefile,y3); WriteDouble2Float (thefile,z3); thefile.write (&dum,2); thefile.close (); return Standard_True; //function : WriteAscii //purpose : write an ASCII STL file Standard_Boolean RWStl::WriteAscii(const Handle(StlMesh_Mesh)& amesh, const OSD_Path& apath) OSD_File thefile = OSD_File (apath); thefile.build(osd_writeonly,osd_protection()); TCollection_AsciiString buf = TCollection_AsciiString ("solid\n"); thefile.write (buf,buf.length());buf.clear(); Standard_Real x1, y1, z1; Standard_Real x2, y2, z2;

10 Standard_Real x3, y3, z3; //pgo Standard_Real x,y,z; char sval[16]; StlMesh_MeshExplorer amexp (amesh); for (Standard_Integer nbd=1;nbd<=amesh->nbdomains();nbd++) for (amexp.inittriangle (nbd); amexp.moretriangle (); amexp.nexttriangle ()) amexp.trianglevertices (x1,y1,z1,x2,y2,z2,x3,y3,z3); // Standard_Real x, y, z; // amexp.triangleorientation (x,y,z); gp_xyz Vect12 ((x2-x1), (y2-y1), (z2-z1)); gp_xyz Vect23 ((x3-x2), (y3-y2), (z3-z2)); gp_xyz Vnorm = Vect12 ^ Vect23; Standard_Real Vmodul = Vnorm.Modulus (); if (Vmodul > gp::resolution()) Vnorm.Divide (Vmodul); else // si Vnorm est quasi-nul, on le charge a 0 explicitement Vnorm.SetCoord (0., 0., 0.); buf += " facet normal "; sprintf (sval,"% 12e",Vnorm.X()); buf += " "; sprintf (sval,"% 12e",Vnorm.Y()); buf += " "; sprintf (sval,"% 12e",Vnorm.Z()); buf += '\n'; thefile.write (buf,buf.length());buf.clear(); buf += " \n"; thefile.write (buf,buf.length());buf.clear(); buf += " vertex "; sprintf (sval,"% 12e",x1); buf += " ";

11 sprintf (sval,"% 12e",y1); buf += " "; sprintf (sval,"% 12e",z1); buf += '\n'; thefile.write (buf,buf.length());buf.clear(); buf += " vertex "; sprintf (sval,"% 12e",x2); buf += " "; sprintf (sval,"% 12e",y2); buf += " "; sprintf (sval,"% 12e",z2); buf += '\n'; thefile.write (buf,buf.length());buf.clear(); buf += " vertex "; sprintf (sval,"% 12e",x3); buf += " "; sprintf (sval,"% 12e",y3); buf += " "; sprintf (sval,"% 12e",z3); buf += '\n'; thefile.write (buf,buf.length());buf.clear(); buf += " \n"; thefile.write (buf,buf.length());buf.clear(); buf += " \n"; thefile.write (buf,buf.length());buf.clear(); buf += "endsolid\n"; thefile.write (buf,buf.length());buf.clear(); thefile.close (); return Standard_True;

12 //function : ReadFile //Design : //Warning : Handle_StlMesh_Mesh RWStl::ReadFile(const OSD_Path& apath) OSD_File file = OSD_File (apath); file.open(osd_readonly,osd_protection(osd_rwd,osd_rwd,osd_rwd,osd_rwd)); Standard_Boolean IsAscii; unsigned char str[128]; Standard_Integer lread,i; Standard_Address ach; ach = (Standard_Address)str; // we skip the header which is in Ascii for both modes file.read(ach,header_size,lread); // we read 128 characters to detect if we have a non-ascii char file.read(ach,sizeof(str),lread); IsAscii = Standard_True; for (i = 0; i< lread && IsAscii; ++i) if (str[i] > '~') IsAscii = Standard_False; printf("%s\n",(isascii?"ascii":"binary")); file.close(); if (IsAscii) return RWStl::ReadAscii (apath); else return RWStl::ReadBinary (apath); //function : ReadBinary //Design : //Warning :

13 Handle_StlMesh_Mesh RWStl::ReadBinary(const OSD_Path& apath) Standard_Integer NBFACET; Standard_Integer ifacet; Standard_Real fx,fy,fz,fx1,fy1,fz1,fx2,fy2,fz2,fx3,fy3,fz3; Standard_Integer i1,i2,i3,lread; char buftest[5]; Standard_Address adr; adr = (Standard_Address)buftest; // Open the file OSD_File thefile = OSD_File(aPath); thefile.open(osd_readonly,osd_protection(osd_rwd,osd_rwd,osd_rwd,osd_rwd)); // the size of the file (minus the header size) // must be a multiple of SIZEOF_STL_FACET // compute file size Standard_Integer filesize = thefile.size(); if ( (filesize - HEADER_SIZE) % SIZEOF_STL_FACET!=0 (filesize < STL_MIN_FILE_SIZE)) Standard_NoMoreObject::Raise("RWStl::ReadBinary (wrong file size)"); // don't trust the number of triangles which is coded in the file // sometimes it is wrong, and with this technique we don't need to swap endians for integer NBFACET = ((filesize - HEADER_SIZE) / SIZEOF_STL_FACET); // skip the header thefile.seek(header_size,osd_frombeginning); // create the StlMesh_Mesh object Handle(StlMesh_Mesh) ReadMesh = new StlMesh_Mesh (); ReadMesh->AddDomain (); for (ifacet=1; ifacet<=nbfacet; ++ifacet) // read normal coordinates fx = ReadFloat2Double(theFile); fy = ReadFloat2Double(theFile); fz = ReadFloat2Double(theFile);

14 // read vertex 1 fx1 = ReadFloat2Double(theFile); fy1 = ReadFloat2Double(theFile); fz1 = ReadFloat2Double(theFile); // read vertex 2 fx2 = ReadFloat2Double(theFile); fy2 = ReadFloat2Double(theFile); fz2 = ReadFloat2Double(theFile); // read vertex 3 fx3 = ReadFloat2Double(theFile); fy3 = ReadFloat2Double(theFile); fz3 = ReadFloat2Double(theFile); i1 = ReadMesh->AddOnlyNewVertex (fx1,fy1,fz1); i2 = ReadMesh->AddOnlyNewVertex (fx2,fy2,fz2); i3 = ReadMesh->AddOnlyNewVertex (fx3,fy3,fz3); ReadMesh->AddTriangle (i1,i2,i3,fx,fy,fz); // skip extra bytes thefile.read(adr,2,lread); thefile.close (); return ReadMesh; //function : ReadAscii //Design : //Warning : Handle_StlMesh_Mesh RWStl::ReadAscii(const OSD_Path& apath) TCollection_AsciiString filename; long ipos; Standard_Integer nblines = 0; Standard_Integer nbtris = 0; Standard_Integer itri; Standard_ShortReal x[4],y[4],z[4]; Standard_Integer i1,i2,i3; Handle(StlMesh_Mesh) ReadMesh;

15 apath.systemname( filename); // Open the file FILE* file = fopen(filename.tocstring(),"r"); fseek(file,0l,seek_end); long filesize = ftell(file); fclose(file); file = fopen(filename.tocstring(),"r"); // count the number of lines for (ipos = 0; ipos < filesize; ++ipos) if (getc(file) == '\n') nblines++; // compute number of triangles nbtris = (nblines / ASCII_LINES_PER_FACET); // go back to the beginning of the file // fclose(file); // file = fopen(filename.tocstring(),"r"); rewind(file); // skip header while (getc(file)!= '\n'); cout<< "start mesh\n"; ReadMesh = new StlMesh_Mesh(); ReadMesh->AddDomain(); // main reading for (itri = 0; itri < nbtris; ++itri) // reading the facet normal fscanf(file,"%*s %*s %f %f %f\n",&x[0],&y[0],&z[0]); // skip the keywords "" fscanf(file,"%*s %*s");

16 // reading vertex fscanf(file,"%*s %f %f %f\n",&x[1],&y[1],&z[1]); fscanf(file,"%*s %f %f %f\n",&x[2],&y[2],&z[2]); fscanf(file,"%*s %f %f %f\n",&x[3],&y[3],&z[3]); // here the facet must be built and put in the mesh datastructure i1 = ReadMesh->AddOnlyNewVertex ((Standard_Real)x[1],(Standard_Real)y[1],(Standard_Real)z[1]); i2 = ReadMesh->AddOnlyNewVertex ((Standard_Real)x[2],(Standard_Real)y[2],(Standard_Real)z[2]); i3 = ReadMesh->AddOnlyNewVertex ((Standard_Real)x[3],(Standard_Real)y[3],(Standard_Real)z[3]); ReadMesh->AddTriangle (i1,i2,i3,(standard_real)x[0],(standard_real)y[0],(standard_real)z[0]); // skip the keywords "" fscanf(file,"%*s"); // skip the keywords "" fscanf(file,"%*s"); cout<< "end mesh\n"<<endl; fclose(file); return ReadMesh; 程序开始定义了一些常量 : // constants static const int HEADER_SIZE = 84; static const int SIZEOF_STL_FACET = 50; static const int STL_MIN_FILE_SIZE = 284; static const int ASCII_LINES_PER_FACET = 7; 分别对应二进制文件中相关信息, 即文件头 84 个字节, 每个三角面片 50 个字节,STL 文件 最小为 284 字节 ASCII 的 STL 中每个三角面有 7 行 在数据的读写过程中, 对数据进行了小端转换 将 double 数据转换成小端表示的代码 如下所示 : //===================================================================== //function : WriteDouble2Float

17 //purpose : writing a Little Endian 32 bits float //===================================================================== inline static void WriteDouble2Float(OSD_File& ofile,standard_real value) union Standard_ShortReal f; char c[4]; bidargum; bidargum.f = (Standard_ShortReal)value; Standard_Integer entier; entier = bidargum.c[0] & 0xFF; entier = (bidargum.c[1] & 0xFF) << 0x08; entier = (bidargum.c[2] & 0xFF) << 0x10; entier = (bidargum.c[3] & 0xFF) << 0x18; ofile.write((char *)&entier,sizeof(bidargum.c)); 使用联合体 (union) 来处理显得很优雅 关于大端 小端的相关信息请参考 :

18 四 在 OpenSceneGraph 中显示 STL 结合 OpenCascade 中对 STL 文件读写的功能和 OpenSceneGraph 的显示功能, 将 STL 读取所得数据进行显示 源程序如下所示 : // Open Cascade #include <gp_vec.hxx> #include <OSD_Path.hxx> #include <RWStl.hxx> #include <StlMesh_Mesh.hxx> #include <StlMesh_MeshExplorer.hxx> #pragma comment(lib, "TKernel.lib") #pragma comment(lib, "TKMath.lib") #pragma comment(lib, "TKSTL.lib") // OpenSceneGraph #include <osgdb/readfile> #include <osgviewer/viewer> #include <osgviewer/viewereventhandlers> #include <osgga/statesetmanipulator> #pragma comment(lib, "osgd.lib") #pragma comment(lib, "osgdbd.lib") #pragma comment(lib, "osggad.lib") #pragma comment(lib, "osgviewerd.lib") osg::node* readstlfile(const std::string& filename) osg::group* root = new osg::group(); OSD_Path stlfile(filename.c_str()); Handle_StlMesh_Mesh stlmesh = RWStl::ReadFile(stlFile); Standard_Integer ndomains = stlmesh->nbdomains(); StlMesh_MeshExplorer meshexplorer(stlmesh); Standard_Real x[3] = 0; Standard_Real y[3] = 0; Standard_Real z[3] = 0; Standard_Real n[3] = 0; gp_xyz p1; gp_xyz p2; gp_xyz p3; gp_xyz normal;

19 gp_vec vecnormal; for (int i = 1; i <= ndomains; i++) for (meshexplorer.inittriangle(i); meshexplorer.moretriangle(); meshexplorer.nexttriangle()) meshexplorer.trianglevertices(x[0], y[0], z[0], x[1], y[1], z[1], x[2], y[2], z[2]); meshexplorer.triangleorientation(n[0], n[1], n[2]); p1.setcoord(x[0], y[0], z[0]); p2.setcoord(x[1], y[1], z[1]); p3.setcoord(x[2], y[2], z[2]); normal.setcoord(n[0], n[1], n[2]); //gp_vec vec12((x[1] - x[0]), (y[1] - y[0]), (z[1] - z[0])); //gp_vec vec23((x[2] - x[1]), (y[2] - y[1]), (z[2] - z[1])); //vecnormal = vec12.crossed(vec23).normalized(); osg::ref_ptr<osg::geode> geode = new osg::geode(); osg::ref_ptr<osg::geometry> trigeom = new osg::geometry(); osg::ref_ptr<osg::vec3array> vertices = new osg::vec3array(); osg::ref_ptr<osg::vec3array> normals = new osg::vec3array(); vertices->push_back(osg::vec3(x[0], y[0], z[0])); vertices->push_back(osg::vec3(x[1], y[1], z[1])); vertices->push_back(osg::vec3(x[2], y[2], z[2])); normals->push_back(osg::vec3(n[0], n[1], n[2])); vertices->size())); trigeom->setvertexarray(vertices.get()); trigeom->addprimitiveset(new osg::drawarrays(osg::primitiveset::triangles, 0, trigeom->setnormalarray(normals); trigeom->setnormalbinding(osg::geometry::bind_per_primitive); geode->adddrawable(trigeom); root->addchild(geode); return root;

20 int main(int argc, char* argv[]) osgviewer::viewer myviewer; osg::ref_ptr<osg::group> root = new osg::group(); //root->addchild(readstlfile("d:\\opencascade6.5.0\\data\\stl\\propeller.stl")); root->addchild(readstlfile("d:\\opencascade6.5.0\\data\\stl\\sh1.stl")); //root->addchild(readstlfile("d:\\opencascade6.5.0\\data\\stl\\motor.stl")); //root->addchild(readstlfile("d:\\box.stl")); myviewer.setscenedata(root); myviewer.addeventhandler(new osgga::statesetmanipulator(myviewer.getcamera()->getorcreatestateset())); myviewer.addeventhandler(new osgviewer::statshandler); myviewer.addeventhandler(new osgviewer::windowsizehandler); return myviewer.run();

21 以下所示为 OpenCascade 提供的几个 STL 文件在 OpenSceneGraph 中显示的效果 : Figure 4.1 Shaded Piston Figure 4.2 Wireframe Piston

22 Figure 4.3 Shaded Propeller Figure 4.4 Wireframe Propeller

23 五 结论通过使用 OpenCascade 的类 RWStl 来读取 STL 格式的文件, 理解了 STL 文件格式 ; 通过将读取的三角面面片数据在 OpenSceneGraph 中显示, 对三维物体在计算机中的表示有了感性的认识 六 参考资料 1. OpenCascade 中类 RWStl.cxx 2. OpenCascade 中 STL 模型数据 3. 字节序 大端 小端 :

绘制OpenCascade中的曲线

绘制OpenCascade中的曲线 在 OpenSceneGraph 中绘制 OpenCascade 的曲线 Draw OpenCascade Geometry Curves in OpenSceneGraph eryar@163.com 摘要 Abstract: 本文简要说明 OpenCascade 中几何曲线的数据, 并将这些几何曲线在 OpenSceneGraph 中绘制出来 关键字 KeyWords:OpenCascade Geometry

More information

C/C++ - 文件IO

C/C++ - 文件IO C/C++ IO Table of contents 1. 2. 3. 4. 1 C ASCII ASCII ASCII 2 10000 00100111 00010000 31H, 30H, 30H, 30H, 30H 1, 0, 0, 0, 0 ASCII 3 4 5 UNIX ANSI C 5 FILE FILE 6 stdio.h typedef struct { int level ;

More information

CC213

CC213 : (Ken-Yi Lee), E-mail: feis.tw@gmail.com 49 [P.51] C/C++ [P.52] [P.53] [P.55] (int) [P.57] (float/double) [P.58] printf scanf [P.59] [P.61] ( / ) [P.62] (char) [P.65] : +-*/% [P.67] : = [P.68] : ,

More information

OpenCascade中网格的数据结构

OpenCascade中网格的数据结构 OpenCascade 中网格的数据结构 Mesh Data Structure in OpenCascade eryar@163.com 摘要 Abstract: 本文对网格数据结构作简要介绍, 并结合使用 OpenCascade 中的数据结 构, 将网格数据在 OpenSceneGraph 中可视化 关键字 KeyWords:OpenCascade OpenSceneGraph Triangulation

More information

C/C++程序设计 - 字符串与格式化输入/输出

C/C++程序设计 - 字符串与格式化输入/输出 C/C++ / Table of contents 1. 2. 3. 4. 1 i # include # include // density of human body : 1. 04 e3 kg / m ^3 # define DENSITY 1. 04 e3 int main ( void ) { float weight, volume ; int

More information

untitled

untitled A, 3+A printf( ABCDEF ) 3+ printf( ABCDEF ) 2.1 C++ main main main) * ( ) ( ) [ ].* ->* ()[] [][] ** *& char (f)(int); ( ) (f) (f) f (int) f int char f char f(int) (f) char (*f)(int); (*f) (int) (

More information

c_cpp

c_cpp C C++ C C++ C++ (object oriented) C C++.cpp C C++ C C++ : for (int i=0;i

More information

FY.DOC

FY.DOC 高 职 高 专 21 世 纪 规 划 教 材 C++ 程 序 设 计 邓 振 杰 主 编 贾 振 华 孟 庆 敏 副 主 编 人 民 邮 电 出 版 社 内 容 提 要 本 书 系 统 地 介 绍 C++ 语 言 的 基 本 概 念 基 本 语 法 和 编 程 方 法, 深 入 浅 出 地 讲 述 C++ 语 言 面 向 对 象 的 重 要 特 征 : 类 和 对 象 抽 象 封 装 继 承 等 主

More information

C/C++语言 - C/C++数据

C/C++语言 - C/C++数据 C/C++ C/C++ Table of contents 1. 2. 3. 4. char 5. 1 C = 5 (F 32). 9 F C 2 1 // fal2cel. c: Convert Fah temperature to Cel temperature 2 # include < stdio.h> 3 int main ( void ) 4 { 5 float fah, cel ;

More information

C++ 程式設計

C++ 程式設計 C C 料, 數, - 列 串 理 列 main 數串列 什 pointer) 數, 數, 數 數 省 不 不, 數 (1) 數, 不 數 * 料 * 數 int *int_ptr; char *ch_ptr; float *float_ptr; double *double_ptr; 數 (2) int i=3; int *ptr; ptr=&i; 1000 1012 ptr 數, 數 1004

More information

Delaunay Triangulation in OpenCascade

Delaunay Triangulation in OpenCascade Delaunay Triangulation in OpenCascade eryar@163.com 摘要 : 本文简要介绍了 Delaunay 三角剖分的基础理论, 并使用 OpenCascade 的三角剖分算 法将边界 BRep 表示的几何体进行三角离散化后在 OpenSceneGraph 中显示 关键字 :Delaunay Triangulation OpenCascade OpenSceneGraph

More information

untitled

untitled 不 料 料 例 : ( 料 ) 串 度 8 年 數 串 度 4 串 度 數 數 9- ( ) 利 數 struct { ; ; 數 struct 數 ; 9-2 數 利 數 C struct 數 ; C++ 數 ; struct 省略 9-3 例 ( 料 例 ) struct people{ char name[]; int age; char address[4]; char phone[]; int

More information

untitled

untitled MODBUS 1 MODBUS...1 1...4 1.1...4 1.2...4 1.3...4 1.4... 2...5 2.1...5 2.2...5 3...6 3.1 OPENSERIAL...6 3.2 CLOSESERIAL...8 3.3 RDMULTIBIT...8 3.4 RDMULTIWORD...9 3.5 WRTONEBIT...11 3.6 WRTONEWORD...12

More information

untitled

untitled 料 2-1 料 料 x, y, z 料 不 不 料濾 料 不 料 料 不 料 錄 料 2-1 a 料 2-1 b 2003 a 料 b 料 2-1 料 2003 料 料 行 料濾 料亂 濾 料 料 滑 料 理 料 2001 料 兩 理 料 不 TIN, Triangular Irregular Network 8 2-2 a 數 量 料 便 精 2003 料 行 理 料 立 狀 連 料 狀 立 料

More information

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1

C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 5 月 3 日 1 C++ 程序设计 告别 OJ1 - 参考答案 MASTER 2019 年 月 3 日 1 1 INPUTOUTPUT 1 InputOutput 题目描述 用 cin 输入你的姓名 ( 没有空格 ) 和年龄 ( 整数 ), 并用 cout 输出 输入输出符合以下范例 输入 master 999 输出 I am master, 999 years old. 注意 "," 后面有一个空格,"." 结束,

More information

新版 明解C++入門編

新版 明解C++入門編 511!... 43, 85!=... 42 "... 118 " "... 337 " "... 8, 290 #... 71 #... 413 #define... 128, 236, 413 #endif... 412 #ifndef... 412 #if... 412 #include... 6, 337 #undef... 413 %... 23, 27 %=... 97 &... 243,

More information

第3章.doc

第3章.doc 3 3 3 3.1 3 IT Trend C++ Java SAP Advantech ERPCRM C++ C++ Synopsys C++ NEC C C++PHP C++Java C++Java VIA C++ 3COM C++ SPSS C++ Sybase C++LinuxUNIX Motorola C++ IBM C++Java Oracle Java HP C++ C++ Yahoo

More information

C 1

C 1 C homepage: xpzhangme 2018 5 30 C 1 C min(x, y) double C // min c # include # include double min ( double x, double y); int main ( int argc, char * argv []) { double x, y; if( argc!=

More information

C C

C C C C 2017 3 8 1. 2. 3. 4. char 5. 2/101 C 1. 3/101 C C = 5 (F 32). 9 F C 4/101 C 1 // fal2cel.c: Convert Fah temperature to Cel temperature 2 #include 3 int main(void) 4 { 5 float fah, cel; 6 printf("please

More information

untitled

untitled 3 C++ 3.1 3.2 3.3 3.4 new delete 3.5 this 3.6 3.7 3.1 3.1 class struct union struct union C class C++ C++ 3.1 3.1 #include struct STRING { typedef char *CHARPTR; // CHARPTR s; // int strlen(

More information

C

C C 14 2017 5 31 1. 2. 3. 4. 5. 2/101 C 1. ( ) 4/101 C C ASCII ASCII ASCII 5/101 C 10000 00100111 00010000 ASCII 10000 31H 30H 30H 30H 30H 1 0 0 0 0 0 ASCII 6/101 C 7/101 C ( ) ( ) 8/101 C UNIX ANSI C 9/101

More information

epub 33-8

epub 33-8 8 1) 2) 3) A S C I I 4 C I / O I / 8.1 8.1.1 1. ANSI C F I L E s t d i o. h typedef struct i n t _ f d ; i n t _ c l e f t ; i n t _ m o d e ; c h a r *_ n e x t ; char *_buff; /* /* /* /* /* 1 5 4 C FILE

More information

C 1 # include <stdio.h> 2 int main ( void ) { 4 int cases, i; 5 long long a, b; 6 scanf ("%d", & cases ); 7 for (i = 0;i < cases ;i ++) 8 { 9

C 1 # include <stdio.h> 2 int main ( void ) { 4 int cases, i; 5 long long a, b; 6 scanf (%d, & cases ); 7 for (i = 0;i < cases ;i ++) 8 { 9 201 201 21 ( ) 1. C pa.c, pb.c, 2. C++ pa.cpp, pb.cpp Compilation Error long long cin scanf Time Limit Exceeded 1: A 1 B 1 C 5 D RPG 10 E 10 F 1 G II 1 1 201 201 C 1 # include 2 int main ( void

More information

3.1 num = 3 ch = 'C' 2

3.1 num = 3 ch = 'C' 2 Java 1 3.1 num = 3 ch = 'C' 2 final 3.1 final : final final double PI=3.1415926; 3 3.2 4 int 3.2 (long int) (int) (short int) (byte) short sum; // sum 5 3.2 Java int long num=32967359818l; C:\java\app3_2.java:6:

More information

C语言的应用.PDF

C语言的应用.PDF AVR C 9 1 AVR C IAR C, *.HEX, C,,! C, > 9.1 AVR C MCU,, AVR?! IAR AVR / IAR 32 ALU 1KBytes - 8MBytes (SPM ) 16 MBytes C C *var1, *var2; *var1++ = *--var2; AVR C 9 2 LD R16,-X ST Z+,R16 Auto (local

More information

2013 C 1 # include <stdio.h> 2 int main ( void ) 3 { 4 int cases, a, b, i; 5 scanf ("%d", & cases ); 6 for (i = 0;i < cases ;i ++) 7 { 8 scanf ("%d %d

2013 C 1 # include <stdio.h> 2 int main ( void ) 3 { 4 int cases, a, b, i; 5 scanf (%d, & cases ); 6 for (i = 0;i < cases ;i ++) 7 { 8 scanf (%d %d 2013 18 ( ) 1. C pa.c, pb.c, 2. C++ pa.cpp, pb.cpp, Compilation Error cin scanf Time Limit Exceeded 1: A 5 B 5 C 5 D 5 E 5 F 5 1 2013 C 1 # include 2 int main ( void ) 3 { 4 int cases, a, b,

More information

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.06.doc

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.06.doc 2 5 8 11 0 13 1. 13 2. 15 3. 18 1 23 1. 23 2. 26 3. 28 2 36 1. 36 2. 39 3. 42 4. 44 5. 49 6. 51 3 57 1. 57 2. 60 3. 64 4. 66 5. 70 6. 75 7. 83 8. 85 9. 88 10. 98 11. 103 12. 108 13. 112 4 115 1. 115 2.

More information

int *p int a 0x00C7 0x00C7 0x00C int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++;

int *p int a 0x00C7 0x00C7 0x00C int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++; Memory & Pointer trio@seu.edu.cn 2.1 2.1.1 1 int *p int a 0x00C7 0x00C7 0x00C7 2.1.2 2 int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++; 2.1.3 1. 2. 3. 3 int A,

More information

新・明解C言語入門編『索引』

新・明解C言語入門編『索引』 !... 75!=... 48 "... 234 " "... 9, 84, 240 #define... 118, 213 #include... 148 %... 23 %... 23, 24 %%... 23 %d... 4 %f... 29 %ld... 177 %lf... 31 %lu... 177 %o... 196 %p... 262 %s... 242, 244 %u... 177

More information

1 4 1.1 4 1.2..4 2..4 2.1..4 3.4 3.1 Java.5 3.1.1..5 3.1.2 5 3.1.3 6 4.6 4.1 6 4.2.6 5 7 5.1..8 5.1.1 8 5.1.2..8 5.1.3..8 5.1.4..9 5.2..9 6.10 6.1.10

1 4 1.1 4 1.2..4 2..4 2.1..4 3.4 3.1 Java.5 3.1.1..5 3.1.2 5 3.1.3 6 4.6 4.1 6 4.2.6 5 7 5.1..8 5.1.1 8 5.1.2..8 5.1.3..8 5.1.4..9 5.2..9 6.10 6.1.10 Java V1.0.1 2007 4 10 1 4 1.1 4 1.2..4 2..4 2.1..4 3.4 3.1 Java.5 3.1.1..5 3.1.2 5 3.1.3 6 4.6 4.1 6 4.2.6 5 7 5.1..8 5.1.1 8 5.1.2..8 5.1.3..8 5.1.4..9 5.2..9 6.10 6.1.10 6.2.10 6.3..10 6.4 11 7.12 7.1

More information

附錄C.doc

附錄C.doc C C C-1 C -2 C -3 C -4 C -5 / C -6 2 C/C++ C-1 FILE* fopen(const char* filename, const char* mode) filename NULL FILE* freopen(const

More information

untitled

untitled 1 7 7.1 7.2 7.3 7.4 7.5 2 7.1 VFT virtual 7.1 3 1 1. 2. public protected public 3. VFT 4. this const volatile 4 2 5. ( ) ( ) 7.1 6. no-static virtual 7.2 7. inline 7.3 5 3 8. this this 9. ( ) ( ) delete

More information

第7章-并行计算.ppt

第7章-并行计算.ppt EFEP90 10CDMP3 CD t 0 t 0 To pull a bigger wagon, it is easier to add more oxen than to grow a gigantic ox 10t 0 t 0 n p Ts Tp if E(n, p) < 1 p, then T (n) < T (n, p) s p S(n,p) = p : f(x)=sin(cos(x))

More information

C/C++语言 - 分支结构

C/C++语言 - 分支结构 C/C++ Table of contents 1. if 2. if else 3. 4. 5. 6. continue break 7. switch 1 if if i // colddays.c: # include int main ( void ) { const int FREEZING = 0; float temperature ; int cold_ days

More information

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File 51 C 51 51 C C C C C C * 2003-3-30 pnzwzw@163.com C C C C KEIL uvision2 MCS51 PLM C VC++ 51 KEIL51 KEIL51 KEIL51 KEIL 2K DEMO C KEIL KEIL51 P 1 1 1 1-1 - 1 Project New Project 1 2 Windows 1 3 N C test

More information

( CIP) /. :, ( ) ISBN TP CIP ( 2005) : : : : * : : 174 ( A ) : : ( 023) : ( 023)

( CIP) /. :, ( ) ISBN TP CIP ( 2005) : : : : * : : 174 ( A ) : : ( 023) : ( 023) ( CIP) /. :, 2005. 2 ( ) ISBN 7-5624-3339-9.......... TP311. 1 CIP ( 2005) 011794 : : : : * : : 174 ( A ) :400030 : ( 023) 65102378 65105781 : ( 023) 65103686 65105565 : http: / /www. cqup. com. cn : fxk@cqup.

More information

nooog

nooog C : : : , C C,,, C, C,, C ( ), ( ) C,,, ;,, ; C,,, ;, ;, ;, ;,,,, ;,,, ; : 1 9, 2 3, 4, 5, 6 10 11, 7 8, 12 13,,,,, 2008 1 1 (1 ) 1.1 (1 ) 1.1.1 ( ) 1.1.2 ( ) 1.1.3 ( ) 1.1.4 ( ) 1.1.5 ( ) 1.2 ( ) 1.2.1

More information

untitled

untitled 1 DBF (READDBF.C)... 1 2 (filetest.c)...2 3 (mousetes.c)...3 4 (painttes.c)...5 5 (dirtest.c)...9 6 (list.c)...9 1 dbf (readdbf.c) /* dbf */ #include int rf,k,reclen,addr,*p1; long brec,erec,i,j,recnum,*p2;

More information

ebook15-C

ebook15-C C 1 1.1 l s ( 1 ) - i i 4. 14 - d $ l s -ldi /etc/. /etc/.. - i i 3077 drwxr-sr-x 7 bin 2048 Aug 5 20:12 /etc/./ 2 drwxr-xr-x 13 root 512 Aug 5 20:11 /etc/../ $ls -ldi /. /..... i 2 2 drwxr-xr-x 13 root

More information

Surface Normal Vector

Surface Normal Vector Surface Normal Vector in OpenCascade eryar@163.com 摘要 Abstract: 表面上某一点的法向量 (Normal Vector) 指的是在该点处与表面垂直的方向 对于平面, 其上各点的法向是一样的, 统一为这个平面的法向 对于曲面, 各点具有不同的法向量 几何对象的法向量定义了它在空间中的方向, 法向量是在进行光照处理时的重要参数 所以在显示造型算法离散曲面后的网格时,

More information

Microsoft Word - 实用案例.doc

Microsoft Word - 实用案例.doc 计 算 机 系 统 应 用 2009 年 第 12 期 嵌 入 式 Linux 下 温 湿 度 传 感 器 的 设 计 与 实 现 1 Design and Implementation of Temperature and Humidity Sensor Based on Embedded Linux 陈 博 刘 锦 高 ( 华 东 师 范 大 学 电 子 科 学 技 术 系 上 海 200241)

More information

C/C++ 语言 - 循环

C/C++ 语言 - 循环 C/C++ Table of contents 7. 1. 2. while 3. 4. 5. for 6. 8. (do while) 9. 10. (nested loop) 11. 12. 13. 1 // summing.c: # include int main ( void ) { long num ; long sum = 0L; int status ; printf

More information

科学计算的语言-FORTRAN95

科学计算的语言-FORTRAN95 科 学 计 算 的 语 言 -FORTRAN95 目 录 第 一 篇 闲 话 第 1 章 目 的 是 计 算 第 2 章 FORTRAN95 如 何 描 述 计 算 第 3 章 FORTRAN 的 编 译 系 统 第 二 篇 计 算 的 叙 述 第 4 章 FORTRAN95 语 言 的 形 貌 第 5 章 准 备 数 据 第 6 章 构 造 数 据 第 7 章 声 明 数 据 第 8 章 构 造

More information

第11章 可调内核参数

第11章 可调内核参数 11 11 Unix BSD 4.4 Linux sysctl Unix Linux /proc window /proc /proc/sys /proc/sys sysctl Unix root /proc/sys/vm root /proc/sys sysctl /proc/sys struct ctl_table 18274 struct ctl_tables /proc/sys struct

More information

C/C++ - 数组与指针

C/C++ - 数组与指针 C/C++ Table of contents 1. 2. 3. 4. 5. 6. 7. 8. 1 float candy [ 365]; char code [12]; int states [50]; 2 int array [6] = {1, 2, 4, 6, 8, 10}; 3 // day_mon1.c: # include # define MONTHS 12 int

More information

chap07.key

chap07.key #include void two(); void three(); int main() printf("i'm in main.\n"); two(); return 0; void two() printf("i'm in two.\n"); three(); void three() printf("i'm in three.\n"); void, int 标识符逗号分隔,

More information

概述

概述 OPC Version 1.6 build 0910 KOSRDK Knight OPC Server Rapid Development Toolkits Knight Workgroup, eehoo Technology 2002-9 OPC 1...4 2 API...5 2.1...5 2.2...5 2.2.1 KOS_Init...5 2.2.2 KOS_InitB...5 2.2.3

More information

untitled

untitled 1 1.1 1.2 1.3 1.4 1.5 ++ 1.6 ++ 2 BNF 3 4 5 6 7 8 1.2 9 1.2 IF ELSE 10 1.2 11 1.2 12 1.3 Ada, Modula-2 Simula Smalltalk-80 C++, Objected Pascal(Delphi), Java, C#, VB.NET C++: C OOPL Java: C++ OOPL C# C++

More information

51 C 51 isp 10 C PCB C C C C KEIL

51 C 51 isp 10   C   PCB C C C C KEIL http://wwwispdowncom 51 C " + + " 51 AT89S51 In-System-Programming ISP 10 io 244 CPLD ATMEL PIC CPLD/FPGA ARM9 ISP http://wwwispdowncom/showoneproductasp?productid=15 51 C C C C C ispdown http://wwwispdowncom

More information

BOOL EnumWindows(WNDENUMPROC lparam); lpenumfunc, LPARAM (Native Interface) PowerBuilder PowerBuilder PBNI 2

BOOL EnumWindows(WNDENUMPROC lparam); lpenumfunc, LPARAM (Native Interface) PowerBuilder PowerBuilder PBNI 2 PowerBuilder 9 PowerBuilder Native Interface(PBNI) PowerBuilder 9 PowerBuilder C++ Java PowerBuilder 9 PBNI PowerBuilder Java C++ PowerBuilder NVO / PowerBuilder C/C++ PowerBuilder 9.0 PowerBuilder Native

More information

chp6.ppt

chp6.ppt Java 软 件 设 计 基 础 6. 异 常 处 理 编 程 时 会 遇 到 如 下 三 种 错 误 : 语 法 错 误 (syntax error) 没 有 遵 循 语 言 的 规 则, 出 现 语 法 格 式 上 的 错 误, 可 被 编 译 器 发 现 并 易 于 纠 正 ; 逻 辑 错 误 (logic error) 即 我 们 常 说 的 bug, 意 指 编 写 的 代 码 在 执 行

More information

_汪_文前新ok[3.1].doc

_汪_文前新ok[3.1].doc 普 通 高 校 本 科 计 算 机 专 业 特 色 教 材 精 选 四 川 大 学 计 算 机 学 院 国 家 示 范 性 软 件 学 院 精 品 课 程 基 金 青 年 基 金 资 助 项 目 C 语 言 程 序 设 计 (C99 版 ) 陈 良 银 游 洪 跃 李 旭 伟 主 编 李 志 蜀 唐 宁 九 李 涛 主 审 清 华 大 学 出 版 社 北 京 i 内 容 简 介 本 教 材 面 向

More information

Converting image (bmp/jpg) file into binary format

Converting image (bmp/jpg) file into binary format RAiO Image Tool 操作说明 Version 1.0 July 26, 2016 RAiO Technology Inc. Copyright RAiO Technology Inc. 2013 RAiO TECHNOLOGY INC. www.raio.com.tw Revise History Version Date Description 0.1 September 01, 2014

More information

mvc

mvc Build an application Tutor : Michael Pan Application Source codes - - Frameworks Xib files - - Resources - ( ) info.plist - UIKit Framework UIApplication Event status bar, icon... delegation [UIApplication

More information

目录

目录 ALTERA_CPLD... 3 11SY_03091... 3 12SY_03091...4....5 21 5 22...8 23..10 24..12 25..13..17 3 1EPM7128SLC.......17 3 2EPM7032SLC.......18 33HT46R47......19..20 41..20 42. 43..26..27 5151DEMO I/O...27 52A/D89C51...28

More information

download.kaoyan.com_2006ÄêÌì½ò¹¤Òµ´óѧ¸ß¼¶ÓïÑÔ³ÌÐòÉè¼Æ£¨409£©¿¼ÑÐÊÔÌâ

download.kaoyan.com_2006ÄêÌì½ò¹¤Òµ´óѧ¸ß¼¶ÓïÑÔ³ÌÐòÉè¼Æ£¨409£©¿¼ÑÐÊÔÌâ 考生注意 : 本试卷共七大题, 满分 150 分 考试时间为 3 小时 ; 所有答案均写在答题纸上 ( 注明题号 ), 在此答题一律无效无效 一 选择题 ( 本题共 20 小题, 每小题 2 分, 满分 40 分 ) 1 char ch 1 2 A 0

More information

01-场景节点.doc

01-场景节点.doc OpenSceneGraph 场景节点 一 OSG 场景节点简介及组合模式介绍 OSG 中的场景是树形结构表示的层次结构, 如下图所示 : Figure 1.1 OpenSceneGraph 场景树形层次结构 根据其源码中的注释得知,OSG 中场景节点的管理采用了组合 (Composite) 模式 先简要 介绍一下组合模式, 其类图为 : Figure 1.2 Composite Pattern's

More information

, 7, Windows,,,, : ,,,, ;,, ( CIP) /,,. : ;, ( 21 ) ISBN : -. TP CIP ( 2005) 1

, 7, Windows,,,, : ,,,, ;,, ( CIP) /,,. : ;, ( 21 ) ISBN : -. TP CIP ( 2005) 1 21 , 7, Windows,,,, : 010-62782989 13501256678 13801310933,,,, ;,, ( CIP) /,,. : ;, 2005. 11 ( 21 ) ISBN 7-81082 - 634-4... - : -. TP316-44 CIP ( 2005) 123583 : : : : 100084 : 010-62776969 : 100044 : 010-51686414

More information

Fun Time (1) What happens in memory? 1 i n t i ; 2 s h o r t j ; 3 double k ; 4 char c = a ; 5 i = 3; j = 2; 6 k = i j ; H.-T. Lin (NTU CSIE) Referenc

Fun Time (1) What happens in memory? 1 i n t i ; 2 s h o r t j ; 3 double k ; 4 char c = a ; 5 i = 3; j = 2; 6 k = i j ; H.-T. Lin (NTU CSIE) Referenc References (Section 5.2) Hsuan-Tien Lin Deptartment of CSIE, NTU OOP Class, March 15-16, 2010 H.-T. Lin (NTU CSIE) References OOP 03/15-16/2010 0 / 22 Fun Time (1) What happens in memory? 1 i n t i ; 2

More information

How to Debug Tuxedo Server printf( Input data is: %s, inputstr); fprintf(stdout, Input data is %s, inputstr); fprintf(stderr, Input data is %s, inputstr); printf( Return data is: %s, outputstr); tpreturn(tpsuccess,

More information

Microsoft Word - 09.數學136-281.docx

Microsoft Word - 09.數學136-281.docx 136. 計 算 梯 型 面 積 (1 分 ) 請 以 JAVA 運 算 式 計 算 下 面 梯 形 面 積, 並 輸 出 面 積 結 果 梯 形 面 積 公 式 為 :( 上 底 + 下 底 ) 高 2 每 一 組 依 序 分 別 輸 入 梯 形 的 上 底 下 底 及 高 的 整 數 輸 出 梯 形 面 積 輸 入 輸 出 94 190 120 99 54 47 137. 計 算 三 角 形 面

More information

Microsoft Word - CPE考生使用手冊160524.docx

Microsoft Word - CPE考生使用手冊160524.docx 大 學 程 式 能 力 檢 定 (CPE) 考 生 使 用 手 冊 2016 年 5 月 24 日 這 份 手 冊 提 供 給 參 加 CPE 檢 定 考 試 的 考 生 內 容 包 含 考 試 環 境 的 使 用, 以 及 解 題 時 所 使 用 I/O 的 基 本 知 識 1. 如 欲 報 名 參 加 CPE 考 試, 請 先 於 CPE 網 站 完 成 帳 號 註 冊, 然 後 再 報 名 該

More information

华恒家庭网关方案

华恒家庭网关方案 LINUX V1.5 1 2 1 2 LINUX WINDOWS PC VC LINUX WINDOWS LINUX 90% GUI LINUX C 3 REDHAT 9 LINUX PC TFTP/NFS http://www.hhcn.com/chinese/embedlinux-res.html minicom NFS mount C HHARM9-EDU 1 LINUX HHARM9-EDU

More information

提问袁小兵:

提问袁小兵: C++ 面 试 试 题 汇 总 柯 贤 富 管 理 软 件 需 求 分 析 篇 1. STL 类 模 板 标 准 库 中 容 器 和 算 法 这 部 分 一 般 称 为 标 准 模 板 库 2. 为 什 么 定 义 虚 的 析 构 函 数? 避 免 内 存 问 题, 当 你 可 能 通 过 基 类 指 针 删 除 派 生 类 对 象 时 必 须 保 证 基 类 析 构 函 数 为 虚 函 数 3.

More information

C C C The Most Beautiful Language and Most Dangerous Language in the Programming World! C 2 C C C 4 C 40 30 10 Project 30 C Project 3 60 Project 40

C C C The Most Beautiful Language and Most Dangerous Language in the Programming World! C 2 C C C 4 C 40 30 10 Project 30 C Project 3 60 Project 40 C C trio@seu.edu.cn C C C C The Most Beautiful Language and Most Dangerous Language in the Programming World! C 2 C C C 4 C 40 30 10 Project 30 C Project 3 60 Project 40 Week3 C Week5 Week5 Memory & Pointer

More information

Microsoft Word - 澎湖田調報告_璉謙組.doc

Microsoft Word - 澎湖田調報告_璉謙組.doc 越 籍 新 住 民 妊 娠 醫 療 照 護 : 訪 談 李 亞 梅 女 士 組 長 : 郭 璉 謙 成 大 中 文 所 博 二 組 員 : 阮 壽 德 成 大 中 文 所 博 一 黃 榆 惠 成 大 中 文 所 碩 一 許 愷 容 成 大 中 文 所 碩 一 何 珍 儀 成 大 中 文 所 碩 一 指 導 老 師 : 陳 益 源 教 授 前 言 2009 年 03 月 21 日, 下 午 2 時 30

More information

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.07.doc

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.07.doc 2 5 8 11 0 1. 13 2. 15 3. 18 1 1. 22 2. 25 3. 27 2 1. 35 2. 38 3. 41 4. 43 5. 48 6. 50 3 1. 56 2. 59 3. 63 4. 65 5. 69 13 22 35 56 6. 74 7. 82 8. 84 9. 87 10. 97 11. 102 12. 107 13. 111 4 114 1. 114 2.

More information

17 Prelight Apply Color Paint Vertex Color Tool Prelight Apply Color Paint Vertex Color Tool 242 Apply Color, Prelight Maya Shading Smooth

17 Prelight Apply Color Paint Vertex Color Tool Prelight Apply Color Paint Vertex Color Tool 242 Apply Color, Prelight Maya Shading Smooth 17 Prelight 233 234 242 Apply Color Paint Vertex Color Tool Prelight Apply Color Paint Vertex Color Tool 242 Apply Color, Prelight Maya Shading Smooth Shade All Custom Polygon DisplayOptions Color in Shaded

More information

C E P A 的 实 施 对 我 市 经 济 的 影 响 的 调 研 我 会 各 部 门 也 都 按 年 初 要 求, 完 成 了 1 ~2 篇 质 量 较 高 的 调 研 报 告 如 经 济 部 完 成 了 深 圳 市 总 商 会 开 展 会 员 科 技 服 务 工 作 情 况 报 告 关 于

C E P A 的 实 施 对 我 市 经 济 的 影 响 的 调 研 我 会 各 部 门 也 都 按 年 初 要 求, 完 成 了 1 ~2 篇 质 量 较 高 的 调 研 报 告 如 经 济 部 完 成 了 深 圳 市 总 商 会 开 展 会 员 科 技 服 务 工 作 情 况 报 告 关 于 深 圳 市 商 会 2 004 年, 深 圳 市 总 商 会 在 深 圳 市 委 的 领 导 下, 以 邓 小 平 理 论 和 三 个 代 表 重 要 思 想 为 指 导, 认 真 学 习 贯 彻 党 的 十 六 大 十 六 届 三 中 全 会 和 市 委 三 届 八 次 全 会 精 神, 贯 彻 执 行 市 委 市 政 府 关 于 加 快 民 营 经 济 发 展 意 见, 围 绕 我 市 建 设

More information

在挑选合适的 SDK 的时候需要注意, 标准 windows 平台应用选择 FBX SDK VS2015,windows 应用商店和全平台通用的不用考虑 windows 全平台通用的应用是 windows10 新推出的功能, 可以打通 windows phone windows s

在挑选合适的 SDK 的时候需要注意, 标准 windows 平台应用选择 FBX SDK VS2015,windows 应用商店和全平台通用的不用考虑 windows 全平台通用的应用是 windows10 新推出的功能, 可以打通 windows phone windows s FBX SDK 安装配置 访问 FBX 网址 :http://www.autodesk.com/products/fbx/overview, 如下 : 点击 GET FBX SDK 进入 SDK 下载页面 ( 网址为 : http://usa.autodesk.com/adsk/servlet/pc/item?siteid=123112&id=25408427): 在挑选合适的 SDK 的时候需要注意,

More information

C

C C 2017 4 1 1. 2. while 3. 4. 5. for 6. 2/161 C 7. 8. (do while) 9. 10. (nested loop) 11. 12. 3/161 C 1. I 1 // summing.c: 2 #include 3 int main(void) 4 { 5 long num; 6 long sum = 0L; 7 int status;

More information

SB All Chinese_ITMU

SB All Chinese_ITMU SB240 ( 問 題 編 號 :2380) (000) 運 作 開 支 據 綱 領 指, 消 防 處 由 2015 年 3 月 31 日 預 算 設 有 的 10 245 個 非 首 長 級 職 位, 增 至 2016 年 3 月 31 日 的 10 390 個, 增 幅 為 145 個, 相 關 新 聘 請 的 職 位 類 別 及 工 作 性 質 為 何? 同 時, 現 有 消 防 處 設 有

More information

Outline USB Application Requirements Variable Definition Communications Code for VB Code for Keil C Practice

Outline USB Application Requirements Variable Definition Communications Code for VB Code for Keil C Practice 路 ESW 聯 USB Chapter 9 Applications For Windows Outline USB Application Requirements Variable Definition Communications Code for VB Code for Keil C Practice USB I/O USB / USB 3 料 2 1 3 路 USB / 列 料 料 料 LED

More information

ebook14-4

ebook14-4 4 TINY LL(1) First F o l l o w t o p - d o w n 3 3. 3 backtracking parser predictive parser recursive-descent parsing L L ( 1 ) LL(1) parsing L L ( 1 ) L L ( 1 ) 1 L 2 L 1 L L ( k ) k L L ( 1 ) F i r s

More information

1273 1265 1274 1272 1845 1922 1862 1874 20 1875 30 200 1861 1945 1888 817 34 1945 4 1 1866 1921 1894 1900 1912 8 1919 55 2 1907 1931 13 15 1926 16 1927 17 1928 19 1930 818 20 1931 1 2 7 23 1909 1987 10

More information

中国科学技术大学学位论文模板示例文档

中国科学技术大学学位论文模板示例文档 University of Science and Technology of China A dissertation for doctor s degree An Example of USTC Thesis Template for Bachelor, Master and Doctor Author: Zeping Li Speciality: Mathematics and Applied

More information

Microsoft Word - 01.DOC

Microsoft Word - 01.DOC 第 1 章 JavaScript 简 介 JavaScript 是 NetScape 公 司 为 Navigator 浏 览 器 开 发 的, 是 写 在 HTML 文 件 中 的 一 种 脚 本 语 言, 能 实 现 网 页 内 容 的 交 互 显 示 当 用 户 在 客 户 端 显 示 该 网 页 时, 浏 览 器 就 会 执 行 JavaScript 程 序, 用 户 通 过 交 互 式 的

More information

Microsoft PowerPoint - STU_EC_Ch02.ppt

Microsoft PowerPoint - STU_EC_Ch02.ppt 樹德科技大學資訊工程系 Chapter 2: Number Systems Operations and Codes Shi-Huang Chen Sept. 2010 1 Chapter Outline 2.1 Decimal Numbers 2.2 Binary Numbers 2.3 Decimal-to-Binary Conversion 2.4 Binary Arithmetic 2.5

More information

untitled

untitled 1 Outline 數 料 數 數 列 亂數 練 數 數 數 來 數 數 來 數 料 利 料 來 數 A-Z a-z _ () 不 數 0-9 數 不 數 SCHOOL School school 數 讀 school_name schoolname 易 不 C# my name 7_eleven B&Q new C# (1) public protected private params override

More information

/ / (FC 3)...

/ / (FC 3)... Modbus/TCP 1.0 1999 3 29 Andy Swales Schneider aswales@modicon.com ... 2 1.... 3 2.... 3 2.1.. 3 2.2..4 2.3..4 2.4... 5 3.... 5 3.1 0... 5 3.2 1... 5 3.3 2... 6 3.4 / /... 7 4.... 7 5.... 8 5.1 0... 9

More information

概述

概述 OPC Version 1.8 build 0925 KOCRDK Knight OPC Client Rapid Development Toolkits Knight Workgroup, eehoo Technology 2002-9 OPC 1...4 2 API...5 2.1...5 2.2...5 2.2.1 KOC_Init...5 2.2.2 KOC_Uninit...5 2.3...5

More information

PowerPoint 簡報

PowerPoint 簡報 國 家 賠 償 法 概 述 主 講 人 : 宋 恭 良 104.10.12 2015.10.30 1 Q. 老 師 是 否 是 公 務 員? 是 否 適 用 國 賠? 法 務 部 95 年 9 月 14 日 法 律 字 第 0170449 號 函 : 國 家 賠 償 法 第 2 條 第 1 項 規 定 本 法 所 稱 公 務 員 者, 謂 依 法 令 從 事 於 公 務 之 員, 係 採 最 廣 義

More information

<4D6963726F736F667420576F7264202D20AC4FBDBDA4FBB67DA96CAABA2DA743A67EAFC5AAA95FA7B9BD5A5F2E646F63>

<4D6963726F736F667420576F7264202D20AC4FBDBDA4FBB67DA96CAABA2DA743A67EAFC5AAA95FA7B9BD5A5F2E646F63> ( 閱 讀 前 ) 練 習 一 動 動 腦, 猜 一 猜 小 朋 友, 現 在 我 們 要 一 起 來 閱 讀 一 本 很 有 趣 的 書, 書 名 是 是 蝸 牛 開 始 的!, 請 動 動 你 的 腦 袋, 想 像 自 己 是 作 者, 猜 猜 這 本 書 在 說 什 麼 樣 的 故 事 呢? 我 覺 得 這 個 故 事 可 能 的 角 色 有 我 覺 得 這 個 故 事 可 能 發 生 的 地

More information

Microsoft Word - MSP430 Launchpad 指导书.docx

Microsoft Word - MSP430 Launchpad 指导书.docx Contents 3... 9... 14 MSP430 LAUNCHPAD 指导书 3 第一部分第一个工程 New Project File > New > CCS Project Project name: ButtonLED Device>Family: MSP430 Variant: MSP430G2553 Project templates and examples : Empty Project

More information

全国计算机技术与软件专业技术资格(水平)考试

全国计算机技术与软件专业技术资格(水平)考试 全 国 计 算 机 技 术 与 软 件 专 业 技 术 资 格 ( 水 平 ) 考 试 2008 年 上 半 年 程 序 员 下 午 试 卷 ( 考 试 时 间 14:00~16:30 共 150 分 钟 ) 试 题 一 ( 共 15 分 ) 阅 读 以 下 说 明 和 流 程 图, 填 补 流 程 图 中 的 空 缺 (1)~(9), 将 解 答 填 入 答 题 纸 的 对 应 栏 内 [ 说 明

More information

JavaIO.PDF

JavaIO.PDF O u t p u t S t ream j a v a. i o. O u t p u t S t r e a m w r i t e () f l u s h () c l o s e () public abstract void write(int b) throws IOException public void write(byte[] data) throws IOException

More information

C PICC C++ C++ C C #include<pic.h> C static volatile unsigned char 0x01; static volatile unsigned char 0x02; static volatile unsigned cha

C PICC C++ C++ C C #include<pic.h> C static volatile unsigned char 0x01; static volatile unsigned char 0x02; static volatile unsigned cha CYPOK CYPOK 1 UltraEdit Project-->Install Language Tool: Language Suite----->hi-tech picc Tool Name ---->PICC Compiler Executable ---->c:hi-picinpicc.exe ( Command-line Project-->New Project-->File Name--->myc

More information

Microsoft Word - template.doc

Microsoft Word - template.doc HGC efax Service User Guide I. Getting Started Page 1 II. Fax Forward Page 2 4 III. Web Viewing Page 5 7 IV. General Management Page 8 12 V. Help Desk Page 13 VI. Logout Page 13 Page 0 I. Getting Started

More information

内 容 提 要 指 针 持 久 动 态 内 存 分 配 字 符 串 ( 字 符 数 组 ) 2

内 容 提 要 指 针 持 久 动 态 内 存 分 配 字 符 串 ( 字 符 数 组 ) 2 第 六 讲 指 针 与 字 符 串 1 内 容 提 要 指 针 持 久 动 态 内 存 分 配 字 符 串 ( 字 符 数 组 ) 2 指 针 什 么 是 指 针 指 针 的 定 义 与 运 算 指 针 与 一 维 数 组 指 针 数 组 行 指 针 与 二 维 数 组 指 针 与 引 用 指 针 与 函 数 3 指 针 定 义 什 么 是 指 针 指 针 变 量, 简 称 指 针, 用 来 存 放

More information

1 2005 9 2005,,,,,,,,,, ( http: \ \ www. ncre. cn,, ) 30,,,,,,,, C : C : : 19 : 100081 : : 7871092 1 /16 : 8. 75 : 96 : 2005 11 1 : 2005 11 1 : ISBN 7

1 2005 9 2005,,,,,,,,,, ( http: \ \ www. ncre. cn,, ) 30,,,,,,,, C : C : : 19 : 100081 : : 7871092 1 /16 : 8. 75 : 96 : 2005 11 1 : 2005 11 1 : ISBN 7 1 2005 9 2005,,,,,,,,,, ( http: \ \ www. ncre. cn,, ) 30,,,,,,,, C : C : : 19 : 100081 : : 7871092 1 /16 : 8. 75 : 96 : 2005 11 1 : 2005 11 1 : ISBN 7-80097 - 564-9 /TP 8 : 10. 00 ,,,, 1994 NCRE,,, ( ),,,,,

More information

2012

2012 中 德 安 联 媒 体 剪 报 精 选 企 业 传 播 部 制 作 双 月 刊 2012 年 11-12 月 安 联 发 展 国 际 金 融 报 2012.11.14 安 联 集 团 三 季 度 利 润 增 超 三 成 2012 年 第 三 季 度, 安 联 集 团 延 续 了 上 半 年 的 强 劲 态 势, 与 前 两 个 季 度 一 样, 总 收 入 经 营 利 润 和 纯 收 益 均 比 2011

More information

ebook39-5

ebook39-5 5 3 last-in-first-out, LIFO 3-1 L i n e a r L i s t 3-8 C h a i n 3 3. 8. 3 C + + 5.1 [ ] s t a c k t o p b o t t o m 5-1a 5-1a E D 5-1b 5-1b E E 5-1a 5-1b 5-1c E t o p D t o p D C C B B B t o p A b o

More information

考試學刊第10期-內文.indd

考試學刊第10期-內文.indd misconception 101 Misconceptions and Test-Questions of Earth Science in Senior High School Chun-Ping Weng College Entrance Examination Center Abstract Earth Science is a subject highly related to everyday

More information

穨control.PDF

穨control.PDF TCP congestion control yhmiu Outline Congestion control algorithms Purpose of RFC2581 Purpose of RFC2582 TCP SS-DR 1998 TCP Extensions RFC1072 1988 SACK RFC2018 1996 FACK 1996 Rate-Halving 1997 OldTahoe

More information

2015年计算机二级(C语言)模拟试题及答案(四)

2015年计算机二级(C语言)模拟试题及答案(四) 2016 年 计 算 机 二 级 (C 语 言 ) 模 拟 试 题 及 答 案 (4) 一 填 空 题 1 C 语 言 中 基 本 的 数 据 类 型 有 : 2 C 语 言 中 普 通 整 型 变 量 的 类 型 说 明 符 为, 在 内 存 中 占 字 节, 有 符 号 普 通 整 型 的 数 据 范 围 是 3 整 数 -35 在 机 内 的 补 码 表 示 为 4 执 行 下 列 语 句 int

More information

2015 年 度 收 入 支 出 决 算 总 表 单 位 名 称 : 北 京 市 朝 阳 区 卫 生 局 单 位 : 万 元 收 入 支 出 项 目 决 算 数 项 目 ( 按 功 能 分 类 ) 决 算 数 一 财 政 拨 款 168738.36 一 一 般 公 共 服 务 支 出 53.83 二

2015 年 度 收 入 支 出 决 算 总 表 单 位 名 称 : 北 京 市 朝 阳 区 卫 生 局 单 位 : 万 元 收 入 支 出 项 目 决 算 数 项 目 ( 按 功 能 分 类 ) 决 算 数 一 财 政 拨 款 168738.36 一 一 般 公 共 服 务 支 出 53.83 二 2015 年 度 部 门 决 算 报 表 ( 含 三 公 经 费 决 算 ) 2015 年 度 收 入 支 出 决 算 总 表 单 位 名 称 : 北 京 市 朝 阳 区 卫 生 局 单 位 : 万 元 收 入 支 出 项 目 决 算 数 项 目 ( 按 功 能 分 类 ) 决 算 数 一 财 政 拨 款 168738.36 一 一 般 公 共 服 务 支 出 53.83 二 上 级 补 助 收 入

More information

目 录 第 一 部 分 档 案 局 概 况 一 主 要 职 责 二 部 门 决 算 单 位 构 成 第 二 部 分 档 案 局 2016 年 度 部 门 预 算 表 一 2016 年 度 市 级 部 门 收 支 预 算 总 表 二 2016 年 度 市 级 部 门 支 出 预 算 表 三 2016

目 录 第 一 部 分 档 案 局 概 况 一 主 要 职 责 二 部 门 决 算 单 位 构 成 第 二 部 分 档 案 局 2016 年 度 部 门 预 算 表 一 2016 年 度 市 级 部 门 收 支 预 算 总 表 二 2016 年 度 市 级 部 门 支 出 预 算 表 三 2016 档 案 局 2016 年 度 部 门 预 算 1 目 录 第 一 部 分 档 案 局 概 况 一 主 要 职 责 二 部 门 决 算 单 位 构 成 第 二 部 分 档 案 局 2016 年 度 部 门 预 算 表 一 2016 年 度 市 级 部 门 收 支 预 算 总 表 二 2016 年 度 市 级 部 门 支 出 预 算 表 三 2016 年 度 市 级 部 门 财 政 拨 款 支 出 预

More information

第六篇

第六篇 國 家 發 展 前 瞻 規 劃 委 辦 研 究 計 畫 - 產 業 人 力 供 需 評 估 ( 含 模 型 建 立 ) ( 第 二 年 度 計 畫 ) 編 號 : 國 家 發 展 前 瞻 規 劃 委 辦 研 究 計 畫 - 產 業 人 力 供 需 評 估 ( 含 模 型 建 立 ) 委 託 單 位 : 行 政 院 國 家 發 展 委 員 會 執 行 單 位 : 財 團 法 人 台 灣 經 濟 研

More information