guet—实验6—指针
- 格式:doc
- 大小:134.00 KB
- 文档页数:8
Oligo使用方法介绍作为目前最好、最专业的引物设计软件,Oligo的功能很强,在这里我们介绍它的一些主要功能:如:普通引物对的搜索、测序引物的设计、杂交探针的设计以及评估引物对质量等等。
在正式进行引物设计前,我们首先面临的一个任务就是向Oligo程序导入模板序列,根据不同的实验情况,导入模板有三种方法:1,直接用键盘输入:a,点击file菜单中的New Sequence 浮动命令,或直接点击工具栏中的New Sequence命令,进入序列展示窗口;b,此时即可键入DNA序列;c,如果需要的话,Oligo提供碱基回放功能,在边键入时边读出碱基,防止输入错误。
点击Edit菜单中的“Readback on”即可。
2,利用复制和粘贴:当我们序列已经作为TXT文件存在或其它oligo不能直接open的文件格式,如word 文件.html格式,这个功能就显得很有用了。
在相应文件中复制序列后在序列展示窗口粘贴,oligo会自动去除非碱基字符。
当序列输入或粘贴完成后,点击Accept/Discard菜单中的Accept浮动命令,即可进入引物设计模式。
3,如果序列已经保存为Seq格式或者FASTA,GenBank格式时,oligo就可以直接打开序列文件。
点击File菜单中的“Open”浮动命令,找到所需文件,打开即可。
进入引物设计模式后,oligo一般会弹出三个窗口,分别是6-碱基频率窗口,碱基退火温度窗口以及序列内部碱基稳定性窗口,其中的退火温度窗口是我们引物设计的主窗口,其它的两个窗口则在设计过程中起辅助作用,比如6-碱基频率窗口可以使我们很直观地看到所设计引物在相应物种基因组中的出现频率,如果我们的模板是基因组DNA或混合DNA时,该信息就显得有用了,而内部稳定性窗口则可以显示引物的5’端稳定性是否稍高于3’端等。
一, 普通引物对的搜索:以Mouse 4E(cDNA序列)为例。
我们的目的是以Mouse 4E(2361 bp)为模板,设计一对引物来扩增出600-800bp长的PCR产物。
C++11unique_ptr智能指针详解在《》的基础上,本节继续讲解 C++11 标准提供的另⼀种智能指针,即 unique_ptr 智能指针。
作为智能指针的⼀种,unique_ptr 指针⾃然也具备“在适当时机⾃动释放堆内存空间”的能⼒。
和 shared_ptr 指针最⼤的不同之处在于,unique_ptr 指针指向的堆内存⽆法同其它 unique_ptr 共享,也就是说,每个 unique_ptr 指针都独⾃拥有对其所指堆内存空间的所有权。
这也就意味着,每个 unique_ptr 指针指向的堆内存空间的引⽤计数,都只能为 1,⼀旦该 unique_ptr 指针放弃对所指堆内存空间的所有权,则该空间会被⽴即释放回收。
unique_ptr 智能指针是以模板类的形式提供的,unique_ptr<T>(T 为指针所指数据的类型)定义在<memory>头⽂件,并位于 std 命名空间中。
因此,要想使⽤ unique_ptr 类型指针,程序中应⾸先包含如下 2 条语句:1. #include <memory>2. using namespace std;第 2 句并不是必须的,可以不添加,则后续在使⽤ unique_ptr 指针时,必须标注std::。
unique_ptr智能指针的创建考虑到不同实际场景的需要,unique_ptr<T> 模板类提供了多个实⽤的构造函数,这⾥给读者列举了⼏种常⽤的构造 unique_ptr 智能指针的⽅式。
1) 通过以下 2 种⽅式,可以创建出空的 unique_ptr 指针:1. std::unique_ptr<int> p1();2. std::unique_ptr<int> p2(nullptr);2) 创建 unique_ptr 指针的同时,也可以明确其指向。
例如:1. std::unique_ptr<int> p3(new int);由此就创建出了⼀个 p3 智能指针,其指向的是可容纳 1 个整数的堆存储空间。
图A-1 C 语言程序的调试、运行步骤
图A-1 中,虚线表示当某一步骤出现错误时的修改路线。
运行时,无论是出现编译错误、连接错误,还是运行结果不对(源程序中有语法错误或逻辑错误),都需要修改源程序,并对它重新编译、连接和运行,直至将程序调试正确为止。
图A-2新建文件
如果程序已经输入过,可选择“文件”菜单的“打开”菜单项,并在查找范围中找到正确的文件夹,调入指定的程序文件。
3 程序保存
在打开的VC++界面上,可直接在编辑窗口输入程序,由于完全是Windows
入及修改可借助鼠标和菜单进行,十分方便。
当输入结束后,保存文件时,因指定扩展名“.C”,否则系统将按C++扩展名“.CPP”保存。
如图A-3所示。
图A-4 编译连接菜单图A-5 编译连接正确
图A-7 数据输入输出窗口
图A-9 关闭程序工作区。
野(wild)指针与悬空(dangling)指针1. 什么是野指针(wild pointer)?A pointer in c which has not been initialized is known as wild pointer.野指针(wild pointer)就是没有被初始化过的指针。
例如,o foo1.c1int main(int argc, char *argv[])2 {3int *p;4return (*p & 0x7f); /* XXX: p is a wild pointer */5 }如果⽤"gcc -Wall"编译, 会出现如下警告:1 $ gcc -Wall -g -m32 -o foo foo.c2 foo.c: In function ‘main’:3 foo.c:4:10: warning: ‘p’ is used uninitialized in this function [-Wuninitialized]4 return (*p & 0x7f); /* XXX: p is a wild pointer */5 ^2. 什么是悬空指针(dangling pointer)?If a pointer still references the original memory after it has been freed, it is called a dangling pointer.悬空指针是指针最初指向的内存已经被释放了的⼀种指针。
典型的悬空指针看起来是这样的,(图⽚来源是)如果两个指针(p1和p2)指向同⼀块内存区域, 那么free(p1)后,p1和p2都成为悬空指针。
如果进⼀步将p1设置为NULL, 那么p2还是悬空指针。
诚然,使⽤*p1会导致⾮法内存访问,但是使⽤*p2却会出现⽆法预料的结果,可谓防不胜防。
例如:o foo2.c1 #include <stdlib.h>2 int main(int argc, char *argv[])3 {4 int *p1 = (int *)malloc(sizeof (int));5 int *p2 = p1; /* p2 and p1 are pointing to the same memory */6 free(p1); /* p1 is a dangling pointer, so is p2 */7 p1 = NULL; /* p1 is not a dangling pointer any more */8 return (*p2 & 0x7f); /* p2 is still a dangling pointer */9 }3. 使⽤野指针和悬空指针的危害⽆论是野指针还是悬空指针,都是指向⽆效内存区域(这⾥的⽆效指的是"不安全不可控")的指针。
案例三求解器使用一.案例描述6SigmaET具有非常强大的求解器,支持稳态、瞬态求解,层流、湍流模型,对流、热传导、热辐射、太阳辐射模型,焦耳热(电生热)模型等。
求解器并行效率高、收敛性良好,本例将在案例二的基础上讲解求解器的各种功能。
二.版本树功能6SigmaET的版本树是一个实用性很强的新功能,将您所有的设计方案整合成一个树状列表,保存在一个模型当中,而不必分散保存为单个文件。
各方案之间的从属关系一目了然。
建立风扇抽风的新方案我们在案例二的基础上建立新方案,点击结构树旁边的Version Tree即版本树,在原始方案上右键,点击Edit可以为原始方案更改名字或添加备注。
为了便于区分,我们把原始方案改名字为Flow in。
在原始方案上右键,可以看到有两种方式创建新方案,一种是创建Version,它与原始方案是从属关系,当原始方案中进行了改动,新建立的Version也会跟着改动。
另一种是创建Alternate,它与原始方案是并列关系,它和原始方案互不影响。
在此,我们以Alternate的方式建立新方案,并取名为Flow out。
此时会弹出一个提示框,询问是否要复制原始方案的结果。
一般地,当改动不大时,比如物体位置发生了微调、更改了功耗等情况,可以复制原来的结果并继续算。
而像这种进风改为了出风的情况属于改动比较大的,选择No,然后重新算就可以了。
此时,可以看到新方案的图标是蓝色的,说明现在被激活的是新方案,现在视图区显示的是新方案。
在哪个方案的图标上双击可以切换方案,图标为蓝色的方案处于激活状态。
此时,点击Model Tree,即进入新方案的结构树,选中风扇并在其属性里将风向切换为Out,即向外抽风。
然后点击计算按钮开始计算。
查看新方案结果观察变量稳定并且残差收敛后,计算完成。
显示PCB图层的温度。
对比不同方案结果在Result菜单里有一个功能是将多个方案的结果在同一个窗口中进行比较,点击Result >> Compare Model。
实验6 指针
姓名:学号:实验日期:某年某月某日1.实验目的和要求
(1)掌握指针的概念、指针变量定义格式和引用。
(2)掌握指针的运算方法。
(3)掌握数组的指针和指向数组的指针变量。
(4)掌握指针与函数的关系。
(5)能正确使用字符串的指针和指向字符串的指针变量。
(6)了解指向函数的指针。
(7)了解指向指针变量的指针。
2.实验内容:实验指导书中的实验九。
3.实验步骤
9.1 调试程序,找出程序的错误。
9.2 运行程序:
9.3 修改程序错误,并运行。
9.4. 程序填空:
9.5. 程序填空:
9.6 编程(选作)
97. 运行程序(选作):
4、实验心得:。