下列实验操作

范文一:下列关于实验操作步骤的叙述

下列关于实验操作步骤的叙述,正确的是 ( )

A.用于鉴定还原糖的斐林试剂甲液和乙液,可直接用于蛋白质的鉴定

B.在脂肪的鉴定实验中,需要用显微镜才能看到被染成橘黄色的脂肪滴

C.鉴定还原糖时,先加入斐林试剂甲液摇匀后,再加入乙液

D.用于鉴定蛋白质的双缩脲试剂A液与B液要混合均匀后,再加入含样品的试管中,且必须现用现混

分析多肽E和多肽F(均由一条肽链组成),得到以下结果:(O-位:

A.A表示的碱基有5种 B.D表示脱氧核糖核苷酸

C.D表示核糖核苷酸 D.B表示的是核糖

人的骨骼肌细胞的细胞质内含有的多糖和核酸主要是 ( )

A.糖原和DNA B.糖原和RNA C.淀粉和DNA D.淀粉和RNA

同一生物体各细胞中含量最稳定的化合物是 ( )

A.脱氧核糖核酸B.蛋白质 C.水 D.脂肪

下列关于多糖的叙述,不正确的是 ( )

A.它们是生物的主要能源物质 B.它们是植物细胞壁的主要成分

C.它们是遗传信息的载体 D.它们的分子质量较大

下列关于“碳是生命的核心元素”、“没有碳,就没有生命”的叙述,不正确的是( )

A.碳元素在生物体内含量较多

B.组成细胞的重要有机物都含有碳元素

C.组成蛋白质的氨基酸是以若干个相连的碳原子构成的碳链为基本骨架

D.组成多糖的单糖是以若干个相连的碳原子构成的碳链为基本骨架

纤维素、核酸、胃蛋白酶的单体分别是 ( )

A.碱基、单糖、氨基酸 B.葡萄糖、核苷酸、葡萄糖

C.葡萄糖、核苷酸、氨基酸 D.单糖、碱基、葡萄糖

萝卜贮藏根组织细胞中是否存在蛋白质和DNA?某生物小组对此进行了研究。他们查阅了有关资料得知:①蛋白质在lO%Nacl溶液中可沉淀析出;②在蛋白质溶液中,加入双缩脲试剂,溶液呈现特有的颜色;③DNA溶于10%NaCl溶液,但在95%酒精中呈白色絮状沉淀析出。

实验材料:白萝卜。

实验用具:粉碎机、烧杯、漏斗、试管、滤纸、玻棒、镊子、载玻片、天平、纱布。

实验药品及试剂:蒸馏水、NaCl、95%酒精、甲基绿染液(遇DNA呈蓝绿色)、双缩脲

试剂、蛋白质标准样品。

请你根据所提供的条件参与实验设计并回答问题:

(1)材料处理:称取50 g 洗净切块,加水30 mL,用粉碎机粉碎,将匀浆经纱布过滤。

(2)提取:

①向经纱布过滤得到的滤液中加入 ,直至沉淀析出。经滤纸过滤,将滤纸上的沉淀物放入试管中,加入1 mL蒸馏水,振荡,用于 鉴定。

②除去蛋白质的滤液中,加入 ,用玻棒轻轻搅拌,有白色絮状沉淀产生。

经滤纸过滤,用镊子将滤纸上的絮状沉淀置于载玻片,用于 鉴定。

(3)鉴定及结果:

①在用于蛋白质鉴定的试管中,加入双缩脲试剂,产生紫色反应;同时将 和1 mL蒸馏水放入另一试管,加入双缩脲试剂,产生紫色反应。观察到两支试管中颜色基本一致,说明 。 ②在用于DNA鉴定的载玻片上,滴加甲基绿染液,白色絮状沉淀呈现蓝绿色, 说明 。

③通过对白萝卜贮藏根匀浆液的检测,说明

1)白萝卜 (2)①10%NaCl溶液 蛋白质 ②95%酒精 DNA

(3)①蛋白质标准样品 实验试管中有蛋白质存在 ②该白色絮状沉淀为DNA

③萝卜贮藏根组织细胞中存在蛋白质和DNA

实验表明:生命活动旺盛的细胞中自由水和结合水的比值较大,而处于休眠状态的细胞中自由水和结合水的比值较小。请分析并回答下列问题:

(1)自由水占细胞鲜重的绝大部分,是细胞的良好溶剂,有利于物质的 ,有 利于 的顺利进行,所以生命活动旺盛的细胞中自由水的含量就 。在成熟的植物细胞中,水主要以 的形式存在于 和 等部位,随着发育状况的不同和细胞种类的不同而有很大的差异。

(2)绿色植物干种子内所含的水主要是 水;抗旱性强的植物结合水的含

量 ;处于休眠状态的细胞,自由水的含量 。

(3)水在生物体内的流动,可以完成的生理功能是

(1)运输 化学反应 高 自由水 细胞质基质 液泡 (2)结合高 低

(3)运送营养物质,同时把细胞产生的废物运送到排泄器官或直接排出体外

下图表示细胞中4种有机物的组成。请据图分析并回答下列问题:

(1)A是 。E在动物肌肉中是指 ,在植物块茎细胞

中主要指 。

(2)F是 ,它是由B 形成的,除此之外,常见的脂质还包

括 和 等。

(3)C的通式是 ,C形成G的反应叫 ;由m个C构成G物质时,

其相对分子量最多可减少 。

(4)D是 ,H由 ;H由 种D组成。

(5)四大有机物都含有的化学元素是 。

1)葡萄糖 糖原 淀粉 (2)脂肪 甘油和脂肪酸 磷脂 固醇

(3)氨基酸通式略 脱水缩合 18(m一1) (4)核苷酸核酸 8

(5)C、H、O

范文二:科学下册实验操作试卷

遵义县毛石小学三年级科学下册实验操作试题

(2014年春季学期)

班级 姓名成绩

实验一:用温度计测量水的温度(33分)

实验器材:温度计、烧杯、水。

实验过程:

1、将一定量的水倒入( )。(5分)

2、手拿着温度计的上端,将温度计的液泡完全浸入水中,不能碰到( )的底与壁。(5分)

3、视线与( )液面持平,在液柱不再( )或( )时准确读数,注意读数时( )不能拿出水面。(20分)

4、整理器材(3分)

实验二:用什么方法辨认铁制物品 (34分)

实验器材:磁铁、大头针、木块、橡皮、塑料尺、卡纸、铁钉。 实验步骤:

1、预测以上物品是否能被( )吸引。 (5分)

2、用磁铁验证,观察现象并说出结论:( )能被磁铁吸引。(25分)

3、整理器材。 (4分)

实验三:辨别没有标记磁铁的南北极(33分)

实验器材:有、无标记磁铁各一块。

实验步骤:

1、指出有标记磁铁的( )极、( )极。(12分)

2、用( )标记磁铁的任一端接触无标记(

端,观察现象,再检验另一端,多次验证。(12分)

3、辨别出无标记( )的南极、北极。(5分)

4、整理器材。 (4分)

)的一

遵义县毛石小学四年级科学下册实验操作试题

(2014年春季学期)

班级 姓名成绩

实验一:连接一个简单电路(25分)

实验材料:小灯座、电池盒、导线、小灯泡、电池、开关。

实验步骤:

1、组装电路:①在电池盒的两端各连接好一根导线,把( )正确安装在电池盒里。②用连接电池的两根导线的另一端接触( ),确定能使小灯泡( )。③将( )安装在小灯座中。④打开开关。⑤用导线将灯座和( )连接起来组成一个简单电路。(20分)

2、接通电路:闭合( ),观察小灯泡的变化。(2分)

3、拆分器材:断开开关,使小灯泡( )。(2分)

4、整理器材。(1分)

实验二:检测导体与绝缘体(27分)

实验材料:木片、塑料片、陶瓷、纸板、橡皮、布、丝绸、皮毛、钢管、玻璃、铅笔、铜丝、铁钉、铝片……,1个电路检测器。

实验步骤:

1、从以上物品中选择6种检测。(3分)

2、检查电路检测器。(3分)

3、检测每种物品,观察现象:使小灯泡发光,说明被鉴别的材料容易( );小灯泡不发光,说明被鉴别的材料不容易( )(注意要重复检测)。 (10分)

4、能说出导体、绝缘体的概念,并将被检测物品正确的分为( )和( )两组。(10分)

5、整理器材。(1分)

实验三:选择两种连接方式点亮小灯泡(24分)

实验材料:小灯泡、电池、导线。

实验步骤:

1、选择连接方式使小灯泡发光:

①导线连接小灯泡的螺纹与( )底部的锌壳,电池铜帽与小灯泡的锡粒接触,观察现象。(5分)

②导线连接小灯泡的锡粒与( )底部的锌壳,电池铜帽与小灯泡螺纹接触,观察现象。(5分)

③导线连接电池铜帽与小灯泡螺纹,小灯泡的锡粒与( )底部的锌壳接触,观察现象。(5分)

2、实验结论:小灯泡亮了。(8分)

3、整理器材。(1分)

实验四:辨别食物的营养成分 (24分)

实验材料:花生米、瓜子、馒头、面包、土豆……白纸、碘酒、滴管。 实验步骤:

1、辨别脂肪:

①去掉花生米的种皮,用它在白纸上( )、滑动,观察现象。(3分) ②去皮的瓜子在白纸上挤压、( ),观察现象。(3分)

③花生米、瓜子在白纸上留下油渍说明它们含有( )。(3分)

2、辨别淀粉:

①掰一小块馒头,在馒头上滴1-2滴( ),观察现象。(3分)

②将( )滴在其他食物上,观察现象。(3分)

③淀粉遇碘会变( ),馒头、土豆等食物变成蓝色,说明这些食物中含有( )。(6分)

3、整理实验材料。(3分)

遵义县毛石小学五年级科学下册实验操作试题

(2014年春季学期)

班级 姓名成绩

实验一:橡皮泥由沉变浮的秘密(26分)

实验材料:油性橡皮泥、刻度杯、200ML水、记录表。

实验步骤:

1、把( )实心团放入200ML水中观察沉浮,并记录排开的水量,再捏成实心的其它形状,完成同样操作(再捏一种实心形状即可)。( 5分)

2、把橡皮泥捏成能浮在水面上的多种形状:(10分)

①把橡皮泥捏成碗形,并记录排开的水量。

②把橡皮泥捏成盘形,并记录排开的水量。

③把橡皮泥捏成船形,并记录排开的水量。

④把橡皮泥捏成盒形,并记录排开的水量。

⑤……。

(每个方法5分,做出两种即得满分10分,以后多一种加5分)

3、比较数据,得出结论:橡皮泥由沉变浮的原因在于它的( )不变,而是排开的水量( )了。( 10分)

4、整理器材。( 1分)

实验二:验证液体、气体的热胀冷缩 (24分)

实验材料:装有红色液体的平底烧瓶、玻璃管、橡皮塞、烧杯、冷水、热水、记号笔、锥形瓶、气球。

实验步骤:

1、利用所提供的实验材料验证液体是否有( )现象。(7分)

2、利用所提供的实验材料验证气体是否有( )现象。(7分)

3、实验结论:液体、气体都有热胀冷缩的现象。( )的现象。(7

分)

4、整理器材。(3分)

实验三:热是怎样传递的(10分)

实验材料:金属棒、蜡烛、凡士林、塑料小棒或火柴棍。

实验步骤:

1、把热学实验盒中的( )支好。(6分)

2、把塑料小棒的一端用凡士林依次粘在( )上。(6分)

3、用蜡烛给金属棒加热。从离蜡烛最近的一端塑料小棒( )落下。(6分)

4、实验结论:热能沿着物体传递,从温度高的部分传到( )的部分。(6分)

5、整理实验材料。(1分)

实验四:摆的快慢有什么有关 (25分)

实验材料:秒表、不同轻重的摆锤、不同长短的摆绳、铁架台。

实验步骤:

1、摆锤与摆绳一端连接,摆绳另一端( )在支架上。(3分)

2、摆绳长短不变,改变( )的重量,观察记录摆在15秒内摆动的次数(做三次)(3分)

3、摆锤重量不变,改变( )的长度,观察记录摆在15秒内摆动的次数(做三次)(3分)

4、汇报结果:摆的快慢跟摆锤的( )无关,跟摆绳的( )有关,摆绳越长摆动越( ),摆绳越( ),摆动越快。(12分)

5、整理器材。(4分)

遵义县毛石小学六年级科学下册实验操作试题

(2014年春季学期)

班级 姓名成绩

实验一:用显微镜观察洋葱表皮细胞(55分) 实验材料:显微镜、洋葱表皮细胞切片。

实验步骤:

1、( )手握住镜臂,( )手托住镜座,把显微镜向着光放在( )上。(15分)

2、对光:转动转换器,使低倍物镜对准( )。(5分)

3、调节载物台下的( ),从目镜往下看,能看见亮的光圈。(5分)

4、观察:调节粗准焦( ),把所要观察的洋葱表皮切片放在( )上,用( )夹住,标本要正对通光孔的( )。(20分)

5、左眼向目镜内看,同时转动粗准焦螺旋等,直到看清切片上的( )为止。(5分)

6、整理器材。(5分)

实验二:小苏打和白醋混合的实验(45分)

实验材料:小苏打、白醋、玻璃杯、玻璃片、细木条、火柴。

实验步骤:

1、说出小苏打和( )的使用比例约为1∶3。(7分)

2、把小苏打小心地倒入杯底、再把白醋沿着杯壁( )地倒入杯中(顺序可互换)。(7分)

3、马上用毛玻璃片盖上( )。(7分)

4、多角度地观察实验现象:有很多( )冒出,杯壁变凉等等。(7分)

5、将燃烧的细木条伸进玻璃杯中,火焰( )。(7分)

6、实验结论:小苏打和白醋混合后产生一种气体,能使燃烧的木条( )。(7分)

7、整理器材。(3分)

范文三:初中化学实验基本操作系列微课

教 案

教材版本 章节 人教版 学段 九年级 学科 课时 曾后生 化学 5

1.3 课题名

初中化学实验基本操作系列微课 九江市第六中学 教师姓名

执教教师单位

教 学 目 标

1.知识与技能 ⑴认识常用的化学仪器及部分仪器的使用方法和注意事项; ⑵知道药品的取用规则,初步学会药品的取用方法; ⑶ 能遵守实验室规则,初步养成良好的实验习惯。 2.过程与方法 ⑴通过参观化学实验室,了解实验室规则、仪器名称; ⑵通过实验探究,学习并学会一些实验基本操作技能。 3.情感态度价值观 ⑴注重培养实事求是、严肃认真的科学态度,以及良好的道德品质; ⑵通过对化学家们研究过程的了解产生探究的欲望; ⑶通过本节的动手实验、实践获得乐趣,真正体会严谨的科学态度、合理的实验步骤 和正确的操作方法是实验成功的关键。

教 学 重 点 教 学

滴管、量筒的使用 1.常见化学实验仪器的使用方法、注意事项的识记; 2.固体药品的取用、滴管、量筒的使用。

难 点 教 具 时 间 安

一课时 1. 多媒体课件; 2. 试管、镊子、药匙、量筒、酒精灯、试管夹、试管刷、大理石、碳酸钠、锌粒、稀 盐酸、硝酸银溶液、氢氧化钠溶液、硫酸铜溶液等。

(www.wenku1.com)排 课 后 小 结 备 注 教师活动

[温故引新] 学习化学的一个重要途径是 _ ___, _______是科学探究的重要手段。 九年级的学生也可能是第一次走进化学实验室,但绝不是第一次走进厨房,也绝 不会是第一次取用固体、倾倒液体。老师在本课中把“厨房——化学实验室”联系起 来了,有效地缩短了“学生与新知识、新技能”之间的心理距离,学生在参观化学“三 室”过程中,在陌生的环境中又有几份“似曾相识”的感受。 从学生的实践中找出实例进行展示, 又让学生来辨析正误, 不仅 “纠错” , 还要 “究 因” 。这种“正与误”都来自学生的操作展示,能使学生充分感受到在平等、和谐的氛 围中“做中学” 、 “学中做” 。教学没有停留在“辨析”上,而是从实验室又回到生活中 去,反思一些不良习惯,如茶杯盖、水瓶塞的正放,又如酱油瓶标签的污染等。 整个教学体现了“学生为本” ,教师主导,课堂内外结合的特点。教得活泼,学得轻松。

学生活动

思考,回忆上 堂课的知识并 完成填空。 参观与感受 思考

设计意图

通过参观化学实验室,感 受化学实验室中的各种陈 设对化学学习的重要性。 通过学习实验室规则,让 学生了解规范操作对于取 得实验成功的作用。 让学生认识常见实验仪器 并体验的实验仪器的使用 方法,为后续学习做准备。

[观看视频] 参观化学实验室 [进入新课] 请

大家思考:进入实验室前我们要了解些 什么要求呢? 展示“实验规则”和常用危险化学品标志

阅读

[认识仪器] 认识常见化学仪器,了解其名称、用途及 注意事项等。 [指导学习] 阅读、交流药品的取用规则。 [填一填] 1.取用药品,应注意节约,如果没有说明 用 量 , 一 般 应 按 ______ 取 用 , 液 体 是 _____,固体只需______________。 2. 实 验 剩 余 的 药 品 要 放 入 ___________ __, 既 不 能 ___________, 也 不 要 ______ ____,更不要_____________。 3.实验时不小心将药液溅到眼中,首先应 _________ [指导学习] 阅读教材并填写空格: 固体药品通常保存在________里,取用固 体药品一般用_____________,有些块状 的药品可用_______夹取。

认识与体验 阅读。

自主阅读后,通过练习加 深理解和记忆。 完成空格的填 写。 通过归纳口诀帮助识记。

(www.wenku1.com)[总结归纳] 固体药品的取用方法可总结为: 一横二送三直起,块状药品莫竖投。 [及时小结] 这节课里,你收获了什么? [讲解]这节课我们—— 认识了实验室和常见的实验仪器; 了解了部分实验仪器的用途; 学习了固体药品的取用方法。

感受,体验。

总结、归纳

及时小结,实现知识的升 华。

[练习] 1. 下列仪器中 , 不能用作反应容器的是 ( ) A.试管 B.集气瓶 C.量筒 D.烧杯 2.下列仪器中 ,能直接用酒精灯加热的是 ( ) A.试管 B.量筒 C.烧杯 D.集气瓶 3. 下列关于酒精灯使用的说法错误的是 ( ) A. 使用前先向酒精灯里添满酒精 B. 点燃时不能用燃着的酒精灯引燃 C. 用酒精灯外焰加热物质 D. 用灯帽盖灭酒精灯 4.根据下图所示仪器回答: (1)写出仪器名称: A B ; C D 。 (2)填写仪器编号回答下列问题: ①配制溶液时, 用来溶解固体的 容器 ; ②用于作热源的 仪器是 ; ③加热试管内溶液时,用于夹持试管的仪 器是 ; ④用来量度液体体积的是 。 [布置作业]

利用家中的杯子、瓶子、筷子、匙、食盐、 冰糖、水、吸管、盆子等,进行固体取用、 排水法收集气体的操作练习。

练习

及时反馈学习效果

复习

温故

板书设计 课题 3 走进化学实验室 三、药品的取用 1. 固体药品的取用

(www.wenku1.com)2.液体药品的取用 (1)直接倾倒 (2)量筒量取 (3)滴管滴加 四、物质的加热 物质的加热方法。 五、仪器的洗涤

范文四:初中化学实验基本操作系列微课

教 案

教材版本 章节 1.3 人教版 课题名 学段 九年级 学科 课时 曾后生 化学 5

初中化学实验基本操作系列微课 九江市第六中学 教师姓名

执教教师单位

教 学 目 标

1.知识与技能 ⑴认识常用的化学仪器及部分仪器的使用方法和注意事项; ⑵知道药品的取用规则,初步学会药品的取用方法; ⑶ 能遵守实验室规则,初步养成良好的实验习惯。 2.过程与方法 ⑴通过参观化学实验室,了解实验室规则、仪器名称; ⑵通过实验探究,学习并学会一些实验基本操作技能。 3.情感态度价值观 ⑴注重培养实事求是、严肃认真的科学态度,以及良好的道德品质; ⑵通过对化学家们研究过程的了解产生探究的欲望; ⑶通过本节的动手实验、实践获得乐趣,真正体会严谨的科学态度、合理的实验步骤和正确的 操作方法是实验成功的关键。

教 学 重 点 教 学

滴管、量筒的使用 1.常见化学实验仪器的使用方法、注意事项的识记; 2.固体药品的取用、滴管、量筒的使用。

难 点 教 具 时 间 安

一课时 1. 多媒体课件; 2. 试管、镊子、药匙、量筒、酒精灯、试管夹、试管刷、大理石、碳酸钠、锌粒、稀盐酸、硝 酸银溶液、氢氧化钠溶液、硫酸铜溶液等。

(www.wenku1.com)排 课 后 小 结 备 注 教师活动

[温故引新] 学习化学的一个重要途径是_ _______是科学探究的重要手段。 ___ , 九年级的学生也可能是第一次走进化学实验室,但绝不是第一次走进厨房,也绝不会是第 一次取用固体、倾倒液体。老师在本课中把“厨房——化学实验室”联系起来了,有效地缩短 了“学生与新知识、新技能”之间的心理距离,学生在参观化学“三室”过程中,在陌生的环 境中又有几份“似曾相识”的感受。 从学生的实践中找出实例进行展示,又让学生来辨析正误,不仅“纠错” ,还要“究因” 。 这种“正与误”都来自学生的操作展示,能使学生充分感受到在平等、和谐的氛围中“做中学” 、 “学中做” 。教学没有停留在“辨析”上,而是从实验室又回到生活中去,反思一些不良习惯, 如茶杯盖、水瓶塞的正放,又如酱油瓶标签的污染等。 整个教学体现了“学生为本” ,教师主导,课堂内外结合的特点。教得活泼,学得轻松。

学生活动

思考, 回忆上堂 课的知识并完 成填空。 参观与感受 思考

设计意图

通过参观化学实验室, 感受化 学实验室中的各种陈设对化 学学习的重要性。 通过学习实验室规则, 让学生 了解规范操作对于取得实验 成功的作用。 让学生认识常见实验仪器并 体验的实验仪器的使用方法, 为后续学习做准备。

[观看视频] 参观化学实验室 [进入新课] 请大家

思考: 进入实验室前我们要了解些什么 要求呢? 展示“实验规则”和常用危险化学品标志

阅读

[认识仪器] 认识常见化学仪器,了解其名称、用途及注意 事项等。

认识与体验

[指导学习] 阅读。 阅读、交流药品的取用规则。 [填一填] 1.取用药品, 应注意节约, 如果没有说明用量, 一般应按______取用,液体是_____,固体只 需______________。 2.实验剩余的药品要放入___________ __,既 不能___________,也不要______ ____,更不 要_____________。 完成空格的填 3. 实验 时不 小心 将药 液溅 到眼 中, 首先 应 写。 _________ [指导学习] 阅读教材并填写空格: 固体药品通常保存在________里, 取用固体药 品一般用_____________,有些块状的药品可 用_______夹取。

自主阅读后, 通过练习加深理 解和记忆。

通过归纳口诀帮助识记。

(www.wenku1.com)[总结归纳] 固体药品的取用方法可总结为: 一横二送三直起,块状药品莫竖投。 [及时小结] 这节课里,你收获了什么? [讲解]这节课我们—— 认识了实验室和常见的实验仪器; 了解了部分实验仪器的用途; 学习了固体药品的取用方法。

感受,体验。

总结、归纳

及时小结,实现知识的升华。

[练习] 1.下列仪器中,不能用作反应容器的是( ) A.试管 B.集气瓶 C.量筒 D.烧杯 2. 下 列 仪 器 中 , 能 直 接 用 酒 精 灯 加 热 的 是 ( ) A.试管 B.量筒 C.烧杯 D.集气瓶 3.下列关于酒精灯使用的说法错误的是( ) A. 使用前先向酒精灯里添满酒精 B. 点燃时不能用燃着的酒精灯引燃 C. 用酒精灯外焰加热物质 D. 用灯帽盖灭酒精灯 4.根据下图所示仪器回答: (1)写出仪器名称: A B ; C D 。 (2)填写仪器编号回答下列问题: ①配制溶液时,用 来溶解固体的容 器 ; ②用于作热源的 仪器是 ; ③加热试管内溶液时,用于夹持试管的仪器 是 ; ④用来量度液体体积的是 。

练习

及时反馈学习效果

[布置作业]

利用家中的杯子、瓶子、筷子、匙、食盐、冰糖、 水、吸管、盆子等,进行固体取用、排水法收集 气体的操作练习。

复习

温故

板书设计 课题 3 走进化学实验室 三、药品的取用 1. 固体药品的取用

(www.wenku1.com)2.液体药品的取用 (1)直接倾倒 (2)量筒量取 (3)滴管滴加 四、物质的加热 物质的加热方法。 五、仪器的洗涤

范文五:实验二EVIEWS中时间序列相关函数操作

实验二 EVIEWS中时间序列相关函数操作

【实验目的】熟悉Eviews的操作:菜单方式,命令方式;

练习并掌握与时间序列分析相关的函数操作。

【实验内容】

一、EViews软件的常用菜单方式和命令方式; 二、各种常用差分函数表达式;

三、时间序列的自相关和偏自相关图与函数; 【实验步骤】

一、EViews软件的常用菜单方式和命令方式; ㈠创建工作文件 ⒈菜单方式

启动EViews软件之后,进入EViews主窗口

在主菜单上依次点击File/New/Workfile,即选择新建对象的类型为工作文件,将弹出一个对话框,由用户选择数据的时间频率(frequency)、起始期和终止期。选择时间频率为Annual(年度),再分别点击起始期栏(Start date)和终止期栏(End date),输入相应的日期,然后点击OK按钮,将在EViews软件的主显示窗口显示相应的工作文件窗口。

工作文件窗口是EViews的子窗口,工作文件一开始其中就包含了两个对象,一个是系数向量C(保存估计系数用),另一个是残差序列RESID(实际值与拟合值之差)。

⒉命令方式

在EViews软件的命令窗口中直接键入CREATE命令,也可以建立工作文件。命令格式为:CREATE 时间频率类型 起始期 终止期 则菜单方式过程可写为:CREATE A 1985 1998

㈡输入Y、X的数据 ⒈DATA命令方式

在EViews软件的命令窗口键入DATA命令,命令格式为: DATA … 本例中可在命令窗口键入如下命令: DATA Y X ⒉鼠标图形界面方式

在EViews软件主窗口或工作文件窗口点击Objects/New Object,对象类型

选择Series,并给定序列名,一次只能创建一个新序列。再从工作文件目录中选取并双击所创建的新序列就可以展示该对象,选择Edit+/-,进入编辑状态,输入数据。

㈢生成log(Y)、log(X)、X^2、1/X、时间变量T等序列 在命令窗口中依次键入以下命令即可: GENR LOGY=LOG(Y) GENR LOGX=LOG(X) GENR X1=X^2 GENR X2=1/X GENR T=@TREND(84)

㈣选择若干变量构成数组,在数组中增加变量。

在工作文件窗口中单击所要选择的变量,按住Ctrl键不放,继续用鼠标选择要展示的变量,选择完以后,单击鼠标右键,在弹出的快捷菜单中点击Open/as Group,则会弹出数组窗口,其中变量从左至右按在工作文件窗口中选择变量的顺序来排列。

在数组窗口点击Edit+/-,进入全屏幕编辑状态,选择一个空列,点击标题栏,在编辑窗口输入变量名,再点击屏幕任意位置,即可增加一个新变量。

增加变量后,即可输入数据。点击要删除的变量列的标题栏,在编辑窗口输入新变量名,再点击屏幕任意位置,弹出RENAME对话框,点击YES按钮即可。

㈤在工作文件窗口中删除、更名变量。

⒈在工作文件窗口中选取所要删除或更名的变量并单击鼠标右键,在弹出的快捷菜单中选择Delete(删除)或Rename(更名)即可

⒉在工作文件窗口中选取所要删除或更名的变量,点击工作文件窗口菜单栏中的Objects/Delete selected…(Rename selected…),即可删除(更名)变量

⒊在工作文件窗口中选取所要删除的变量,点击工作文件窗口菜单栏中的Delete按钮即可删除变量。

二、各种常用差分函数表达式

(一)利用D(x)命令系列对时间序列进行差分(x为表1-1中的数据)。

1、在命令窗口中键入:genr dx= D(x)

则生成的新序列为序列x的一阶差分序列 2、在命令窗口中键入:genr dxn= D(x,n) 则生成的新序列为序列x的n阶差分。 3、在命令窗口中键入:genr dxs= D(x,0,s)

则生成的新序列为序列x的对周期长度为s一阶季节差分。 4、在命令窗口中键入:genr dxsn= D(x,n,s)

则生成的新序列为对周期长度为s的时间序列x取一阶季节差分后的序列再取n 阶差分。

5、在命令窗口中键入:genr dlx= Dlog(x) 则生成的新序列为x取自然对数后,再取一阶差分。 6、在命令窗口中键入:genr dlxsn= Dlog(x,n,s)

则生成的新序列为周期长度为s的时间序列x先取自然对数,再取一阶季节差分,然后再对序列取n 阶差分。

在EVIEWS中操作的图形分别为:

150100500-50-100-150

495051525354555657585960

80

60

40

20

-20

495051525354555657585960

60

495051525354555657585960

0.30.20.10.0-0.1-0.2-0.3

495051525354555657585960

40

20

-20

-40

0.150.100.050.00-0.05-0.10-0.15

495051525354555657585960

三、时间序列的自相关和偏自相关图与函数;

(一)观察时间序列的自相关图。

命令方式:(1)在命令行输入命令:Ident x (x为序列名称);

(2)然后在出现的对话框中输入滞后时期数。(可取默认数)

菜单方式:(1)双击序列图标。 菜单操作方式:View—>Correlogram, 在出现的对话框中输入滞后数。(可取默认数)

(二)练习:观察一些CPI指数序列自相关函数Autocorrelation,偏自相

关函数Partial autocorrelation的特征

步骤:(1)导入数据。

(2)观察序列cpi的趋势图,自相关图(自相关函数,偏自相关函数)的特征。

(3)对序列取一阶差分,生成新序列dc:genr dc=d(cpi),并观察其趋势图,自相关图(同上,下略)的特征。

(4)对该序列的自然对数取一阶差分,生成新的序列dlnc:dlnc=dlog(cpi),并观察其趋势图,自相关图。

genr

范文六:栈和队列基本操作实验报告

实验二 堆栈和队列基本操作的编程实现

【实验目的】

堆栈和队列基本操作的编程实现

要求:

堆栈和队列基本操作的编程实现(2学时,验证型),掌握堆栈和队列的建立、进栈、出栈、进队、出队等基本操作的编程实现,存储结构可以在顺序结构或链接结构中任选,也可以全部实现。也鼓励学生利用基本操作进行一些应用的程序设计。

【实验性质】

验证性实验(学时数:2H)

【实验内容】

内容:

把堆栈和队列的顺序存储(环队)和链表存储的数据进队、出队等运算其中一部分进行程序实现。可以实验一的结果自己实现数据输入、数据显示的函数。

利用基本功能实现各类应用,如括号匹配、回文判断、事物排队模拟、数据逆序生成、多进制转换等。

【实验分析、说明过程】

【思考问题】

【实验小结】 (总结本次实验的重难点及心得、体会、收获)

【附录-实验代码】

范文七:栈和队列的基本操作实验报告

《数据结构》

软件132

201300514211

徐蜀

实验二 栈和队列的基本操作及其应用

一、实验目的

1、掌握栈和队列的顺序存储结构和链式存储结构,以便在实际中灵活应用。

2、掌握栈和队列的特点,即后进先出和先进先出的原则。

3、掌握栈和队列的基本运算,如:入栈与出栈,入队与出队等运算在顺序存储结构和链式存储结构上的实现。

二、实验内容

1.回文判断

三、实验要求

1、按照数据结构实验任务书,提前做好实验预习与准备工作。

2、加“*”题目必做,其他题目任选;多选者并且保质保量完成适当加分。

3、严格按照数据结构实验报告模板和规范,及时完成实验报告。

四、实验步骤

(说明:依据实验内容分别说明实验程序中用到的数据类型的定义、主程序的流程以及每个操作(函数)的伪码算法、函数实现、程序编码、调试与分析。 附流程图与主要代码)

㈠、数据结构与核心算法的设计描述

(程序中每个模块或函数应加注释,说明函数功能、入口及出口参数)

1、栈的初始长度与需要再增加的长度

#define STACK_INIT_SIZE 100;

#define STACKINCREMENT 10;

typedef char SElemType;//定义SElemType为char型

2、栈的顺序存储表示

typedef struct

{

SElemType *base;

SElemType *top;

int stacksize;

}SqStack;

3、队列的链式表示方法

typedef struct QNode

{

SElemType data;

struct QNode *next;

} QNode, *QueuePtr;

typedef struct

{

QueuePtr front;

QueuePtr rear;

}LinkQueue;

4、初始化栈

/* 函数功能:对栈进行初始化

参数:栈(SqStack &S)

成功返回1,否则返回0 */

int InitStack(SqStack &S)

{

S.base = (SElemType *)malloc(STACK_INIT_SIZE * sizeof(SElemType)); //申请内存

if(!S.base) //判断有无申请到空间

return ERROR; //没有申请到内存,返回0

S.top = S.base;

S.stacksize = STACK_INIT_SIZE;

return OK;

}

5、入栈操作

/* 函数功能:将元素入栈

参数:栈(SqStack &S),插入元素e

插入成功返回1,否则返回0 */

int Push(SqStack &S, SElemType e)

{

if(S.top - S.base >= S.stacksize) //判断栈顶与栈底的差是否大于栈的

//容量

{

S.base = (SElemType *)realloc(S.base, (S.stacksize + STACKINCREMENT) * sizeof(SElemType)); //栈满了,重新申请内存 if(!S.base) //判断是否申请成功

return ERROR; //不成功返回0

S.top = S.base + S.stacksize;

S.stacksize += STACKINCREMENT;

}

*S.top++ = e;

return OK;

}

6、出栈操作

/* 函数功能:将栈中的元素弹出

参数:栈(SqStack &S),记录元素e */

int Pop(SqStack &S, SElemType &e)

{

if(S.top == S.base) //判断栈是否为空

return ERROR;

e = *(--S.top) ;

return OK;

}

7、初始化队列

/* 函数功能:初始化队列

参数:队列(LinkQueue &Q)

成功返回1, 否则返回0 */

int InitQueue(LinkQueue &Q)

{

Q.front = Q.rear = (QueuePtr)malloc(sizeof(QNode));

//申请结点的内存

if(!Q.front) //判断有无申请到空间

return ERROR; //没有返回0

Q.front ->next = NULL;

return OK;

}

8.在队列队尾插入元素

/* 函数功能:在队列队尾插入元素

参数:队列(LinkQueue &Q),插入元素e

成功返回1, 否则返回0 */

int EnQueue(LinkQueue &Q, QElemType e)

{

p = (QueuePtr)malloc(sizeof(QNode)); //申请新的结点

if(!p)

return ERROR;

p -> data = e;

p -> next = NULL;

Q.rear -> next = P;

Q.rear = p;

return OK;

}

9.删除队头元素

/* 函数功能:删除对头元素

参数:队列(LinkQueue &Q),记录值e

成功返回1,否则返回0 */

int DeQueue(LinkQueue &Q, QElemType &e)

{

if(Q.front == Q.rear) //判断队列是否为空

return ERROR;

p = Q.front -> next;

e = p -> data;

Q.front -> next = p -> next;

if(Q.rear == p)

Q.rear = Q.front;

free(p);

return OK;

}

10、主函数

int main()

{

SqStack S; //声明一个栈

LinkQueue Q; //声明一个队列

char m,k,c;

int n=0,i,j,t=0,z=0;

while(!t)

{

cout

InitQueue (Q);

InitStack (S);

while((c=getchar())!='@')//对字符的判断 不断输入字符

{

EnQueue (Q,c);

Push (S,c);

n++;

}

for( j=1;j

{

OutQueue (Q,m);

Pop (S,k);

if(m!=k)

break;

}

if(j>n) //如果j > n则说明全部相等

cout

else

cout

}

return 0;

}

说明:

通过调用序列号不同的函数进行各种操作。函数根据每次输入的数进行判断不在1—10内的函数将结束,否则将继续进行。

㈢ 程序调试及运行结果分析(应包含多组测试数据)

五、实验总结

通过这次试验,我知道自己还有很多不足,还会犯一些细节上的错误,但是也因此对栈和队列的操作有了很好的认识

附录

1、程序流程图

2、程序清单

#include

#include

using namespace std;

//栈的表示和实现

#define STACK_INIT_SIZE 100

#define STACKINCREMENT 10

#define ERROR 0

#define OK 1

typedef char SElemType;

typedef struct

{

SElemType *base;

SElemType *top;

int stacksize;

}SqStack;

//队列的表示和实现

typedef struct QNode

{

SElemType data;

struct QNode *next;

} QNode, *QueuePtr;

typedef struct

{

QueuePtr front;

QueuePtr rear;

}LinkQueue;

//关于栈的函数

int InitStack(SqStack &S)

{

S.base = (SElemType *)malloc(STACK_INIT_SIZE * sizeof(SElemType)); if(!S.base)

return ERROR;

S.top = S.base;

S.stacksize = STACK_INIT_SIZE;

return OK;

}

int Push(SqStack &S, SElemType e)

{

if(S.top - S.base >= S.stacksize)

{

S.base = (SElemType *)realloc(S.base, (S.stacksize STACKINCREMENT) * sizeof(SElemType));

if(!S.base)

return ERROR;

S.top = S.base + S.stacksize;

S.stacksize += STACKINCREMENT;

}

*S.top++ = e;

return OK;

}

int Pop(SqStack &S, SElemType &e)

{

if(S.top == S.base)

return ERROR;

e = *(--S.top) ;

return OK;

}

//关于队列的函数

int InitQueue(LinkQueue &Q)

{

Q.front = Q.rear = (QueuePtr)malloc(sizeof(QNode));

if(!Q.front)

return ERROR;

Q.front ->next = NULL;

return OK;

}

int EnQueue(LinkQueue &Q, SElemType e)

{

QueuePtr p = (QueuePtr)malloc(sizeof(QNode));

if(!p) +

return ERROR;

p -> data = e;

p -> next = NULL;

Q.rear -> next = p;

Q.rear = p;

return OK;

}

int DeQueue(LinkQueue &Q, SElemType &e)

{

if(Q.front == Q.rear)

return ERROR;

QueuePtr p = Q.front -> next;

e = p -> data;

Q.front -> next = p -> next;

if(Q.rear == p)

Q.rear = Q.front;

free(p);

return OK;

}

//主函数

int main()

{

SqStack S;

LinkQueue Q;

char m,k,c;

int n=0,i,j,t=0,z=0;

while(!t)

{

cout

InitStack (S);

while((c=getchar())!='@')//对字符的判断 不断输入字符 {

EnQueue (Q,c);

Push (S,c);

n++;

}

for( j=1;j

{

DeQueue (Q,m);

Pop (S,k);

if(m!=k)

break;

}

if(j>n)

cout

cout

return 0;

}

范文八:实验一EVIEWS中时间序列相关函数操作

实验一 EVIEWS中时间序列相关函数操作

【实验目的】熟悉Eviews的操作:菜单方式,命令方式;

练习并掌握与时间序列分析相关的函数操作。

掌握时间序列的白噪声检验

【实验内容】

一、复习EViews软件的常用菜单方式和命令方式; 二、各种常用差分函数表达式以及确定性趋势模型拟合; 三、时间序列的自相关和偏自相关图与函数; 四、时间序列的白噪声检验 【实验步骤】

复习:EViews软件的常用菜单方式和命令方式; (一)创建工作文件 ⒈菜单方式

启动EViews软件之后,进入EViews主窗口

在主菜单上依次点击File/New/Workfile,即选择新建对象的类型为工作文件,将弹出一个对话框,由用户选择数据的时间频率(frequency)、起始期和终止期。选择时间频率为Annual(年度),再分别点击起始期栏(Start date)和终止期栏(End date),输入相应的日期,然后点击OK按钮,将在EViews软件的主显示窗口显示相应的工作文件窗口。

工作文件窗口是EViews的子窗口,工作文件一开始其中就包含了两个对象,一个是系数向量C(保存估计系数用),另一个是残差序列RESID(实际值与拟合值之差)。

⒉命令方式

在EViews软件的命令窗口中直接键入CREATE命令,也可以建立工作文件。命令格式为:CREATE 时间频率类型 起始期 终止期 则菜单方式过程可写为:CREATE A 1985 1998

(二)输入Y、X的数据 ⒈DATA命令方式

在EViews软件的命令窗口键入DATA命令,命令格式为: DATA „ 本例中可在命令窗口键入如下命令: DATA Y X

⒉鼠标图形界面方式

在EViews软件主窗口或工作文件窗口点击Objects/New Object,对象类型选择Series,并给定序列名,一次只能创建一个新序列。再从工作文件目录中选取并双击所创建的新序列就可以展示该对象,选择Edit+/-,进入编辑状态,输入数据。

(三)生成log(Y)、log(X)、X^2、1/X、时间变量T等序列 在命令窗口中依次键入以下命令即可: GENR LOGY=LOG(Y) GENR LOGX=LOG(X) GENR X1=X^2 GENR X2=1/X GENR T=@TREND(84)

(四)选择若干变量构成数组,在数组中增加变量。

在工作文件窗口中单击所要选择的变量,按住Ctrl键不放,继续用鼠标选择要展示的变量,选择完以后,单击鼠标右键,在弹出的快捷菜单中点击Open/as Group,则会弹出数组窗口,其中变量从左至右按在工作文件窗口中选择变量的顺序来排列。

在数组窗口点击Edit+/-,进入全屏幕编辑状态,选择一个空列,点击标题栏,在编辑窗口输入变量名,再点击屏幕任意位置,即可增加一个新变量

增加变量后,即可输入数据。点击要删除的变量列的标题栏,在编辑窗口输入新变量名,再点击屏幕任意位置,弹出RENAME对话框,点击YES按钮即可。

(五)在工作文件窗口中删除、更名变量。

⒈在工作文件窗口中选取所要删除或更名的变量并单击鼠标右键,在弹出的快捷菜单中选择Delete(删除)或Rename(更名)即可

⒉在工作文件窗口中选取所要删除或更名的变量,点击工作文件窗口菜单栏中的Objects/Delete selected„(Rename selected„),即可删除(更名)变量

⒊在工作文件窗口中选取所要删除的变量,点击工作文件窗口菜单栏中的Delete按钮即可删除变量。

练习一:各种常用函数表达式

实验文件:操作文件:usagnp.wf1(美国1947年第一季度~1970年第四季度GNP数据) 实验内容:

(一)理解Eviews中各种差分函数的含义。

在Eviews 软件中,通过函数D(x,n,s)来实现对时间序列的差分运算,其中: x为时间序列的名称,n为差分的阶数,s为季节长度。如D(x)为一阶差分,D(x,2)为二阶差分,D(x,0,4)对周期长度为4的序列求一阶季节差分等等。 在Eviews 软件中,通过函数Dlog(x,n,s)来实现对时间序列的对数差分运算。

步骤:(1)打开该文件,观察序列usagnp的趋势图的特征

Plot usagnp

(2)对序列取对数,观察其趋势图。 Genr lngnp=log(usagnp)

(或直接输入 plot log(usagnp), 下同)

(3)对该序列取一阶差分,生新的序列,并观察其趋势图。 Genr dgnp=d(usagnp) plot dgnp

(或直接输入 plot d(usagnp), 下同)

(4)对该序列取一阶季节差分,生新的序列dsgnp,并观察其趋势图: Genr dsgnp=d(usagnp,0,4) plot dsgnp。

(5)对该序列的自然对数取一阶差分,生成新的序列dlngnp观察其趋势图。

Genr dlngnp=dlog(usagnp) Plot dlngnp

(6)对序列取自然对数,再做一次季节差分,生成新序列dslngnp并观察其趋势图的特征

genr dslngnp=dlog(usagnp,0,4) plot dslngnp。

(7)对该序列的自然对数取一阶季节差分,再做一阶差分,生成新的序

列并观察其趋势图:。

dslngnp=dlog(usagnp,1,4) plot ds1lngnp

图1 图2

图3

图4

图5 图6

图 7

(二)对usagnp序列拟合确定性趋势模型模型

(1)利用@trend( )函数生成确定性趋势序列t=1,2,…. genr

(2)对usagnp的自然对数序列拟合线性趋势模型 Ls log(usagnp) c t

图8

(3)点击图8中“

(4)对usagnp的自然对数序列拟合确定性的季节模型,首先利用函数@seas()生成季节虚拟变量

Genr d1=@seas(1) Genr d2=@seas(2) Genr d3=@seas(3) Genr d4=@seas(4)

(5)对usagnp的自然对数序列拟合确定性的季节模型

Ls log(usagnp) d1 d2 d3 d4 t

图10

(6)点击图10中“Resids”按钮,观察拟合图

图11

练习二:时间序列的自相关和偏自相关图与函数,以及序列的白噪声检验 实验文件:Stpoor.wf1(美国S&P500工业股票价格指数1980年1月~1996年2月)

实验内容:观察时间序列的自相关图,并对序列进行白噪声检验 步骤:

(1) 打开练习文件Stpoor.wf1, 观察时间序列的自相关图,输入: Ident stpoor (或者使用菜单方式:双击序列stpoor图标,在出现的对话框中选择菜单操作方式:View—>Correlogram,滞后期选默认的即可)

图11

理解自相关图(自相关函数,偏自相关函数,2倍标准差,Q统计量,P值)。并判断该序列是否为白噪声序列,并对原序列进行白噪声检验

例如:选取滞后期20期, Q统计量为2669.9,相应的P值为0.000,拒绝原假设,原序列不是白噪声。

(2) 对stpoor取一阶差分,观察其自相关图,并做白噪声检验。

Ident d(stpoor)

图12

(3) 对stpoor的自然对数取一阶差分,观察其自相关图,并做白噪声检

验。

图12

作业:操作文件hsindices.wf1(香港恒生指数数据) 1. 2.

判断序列hs是否为白噪声序列,要求写出具体的检验过程。 生成序列hs的一阶对数差分序列,并检验其是否为白噪声

范文九:实验二栈和队列(基本操作)

实验二 栈和队列

1、实验目的:

(1) 熟悉栈的特点(先进后出)及栈的基本操作,如入栈、出栈等,掌握栈的基本操作

在栈的顺序存储结构和链式存储结构上的实现;

(2) 熟悉队列的特点(先进先出)及队列的基本操作,如入队、出队等,掌握队列的基

本操作在队列的顺序存储结构和链式存储结构上的实现。

2、实验要求:

(1) 复习课本中有关栈和队列的知识;

(2) 用C语言完成算法和程序设计并上机调试通过;

(3) 撰写实验报告,给出算法思路或流程图和具体实现(源程序)、算法分析结果(包括

时间复杂度、空间复杂度以及算法优化设想)、输入数据及程序运行结果(必要时给出多种可能的输入数据和运行结果)。

3、实验内容

[实验1] 栈的顺序表示和实现

实验内容与要求:

编写一个程序实现顺序栈的各种基本运算,并在此基础上设计一个主程序,完成如下功能:

(1)初始化顺序栈

(2)插入元素

(3)删除栈顶元素

(4)取栈顶元素

(5)遍历顺序栈

(6)置空顺序栈

分析:

栈的顺序存储结构简称为顺序栈,它是运算受限的顺序表。

对于顺序栈,入栈时,首先判断栈是否为满,栈满的条件为:p->top= =MAXNUM-1,栈满时,不能入栈; 否则出现空间溢出,引起错误,这种现象称为上溢。

出栈和读栈顶元素操作,先判栈是否为空,为空时不能操作,否则产生错误。通常栈空作为一种控制转移的条件。

注意:

(1)顺序栈中元素用向量存放

(2)栈底位置是固定不变的,可设置在向量两端的任意一个端点

(3)栈顶位置是随着进栈和退栈操作而变化的,用一个整型量top(通常称top为栈顶指针)来指示当前栈顶位置

参考程序:

#include

#include

#define MAXNUM 20

#define ElemType int

/*定义顺序栈的存储结构*/

typedef struct

{ ElemType stack[MAXNUM];

int top;

}SqStack;

/*初始化顺序栈*/

void InitStack(SqStack *p)

{ if(!p)

printf("Eorror");

p->top=-1;

}

/*入栈*/

void Push(SqStack *p,ElemType x)

{ if(p->top

{ p->top=p->top+1;

p->stack[p->top]=x;

}

else

printf("Overflow!\n");

}

/*出栈*/

ElemType Pop(SqStack *p)

{ ElemType x;

if(p->top!=0)

{ x=p->stack[p->top];

printf("以前的栈顶数据元素%d已经被删除!\n",p->stack[p->top]);

p->top=p->top-1;

return(x);

}

else

{ printf("Underflow!\n");

return(0);

}

}

/*获取栈顶元素*/

ElemType GetTop(SqStack *p)

{ ElemType x;

if(p->top!=0)

{ x=p->stack[p->top];

return(x);

}

else

{ printf("Underflow!\n");

return(0);

}

}

/*遍历顺序栈*/

void OutStack(SqStack *p)

{ int i;

printf("\n");

if(p->top

printf("这是一个空栈!");

printf("\n");

for(i=p->top;i>=0;i--)

printf("第%d个数据元素是:%6d\n",i,p->stack[i]);

}

/*置空顺序栈*/

void setEmpty(SqStack *p)

{

p->top= -1;

}

/*主函数*/

main()

{ SqStack *q;

int y,cord;ElemType a;

do{

printf("\n");

printf("第一次使用必须初始化!\n");

printf("\n");

printf("\n 主菜单 \n");

printf("\n 1 初始化顺序栈 \n");

printf("\n 2 插入一个元素 \n");

printf("\n 3 删除栈顶元素 \n");

printf("\n 4 取栈顶元素 \n");

printf("\n 5 置空顺序栈 \n");

printf("\n 6 结束程序运行 \n");

printf("\n--------------------------------\n");

printf("请输入您的选择( 1, 2, 3, 4, 5,6)");

scanf("%d",&cord);

printf("\n");

switch(cord)

{ case 1:

{ q=(SqStack*)malloc(sizeof(SqStack));

InitStack(q);

OutStack(q);

}break;

case 2:

{ printf("请输入要插入的数据元素:a=");

scanf("%d",&a);

Push(q,a);

OutStack(q);

}break;

case 3:

{ Pop(q);

OutStack(q);

}break;

case 4:

{ y=GetTop(q);

printf("\n栈顶元素为:%d\n",y);

OutStack(q);

}break;

case 5:

{ setEmpty(q);

printf("\n顺序栈被置空!\n");

OutStack(q);

}break;

case 6:

exit(0);

}

}while (cord

}

[实验2] 栈的链式表示和实现

实验内容与要求:

编写一个程序实现链栈的各种基本运算,并在此基础上设计一个主程序,完成如下功能:

(1)初始化链栈

(2)链栈置空

(3)入栈

(4)出栈

(5)取栈顶元素

(6)遍历链栈

分析:

链栈是没有附加头结点的运算受限的单链表。栈顶指针就是链表的头指针。

注意:

(1)LinkStack结构类型的定义可以方便地在函数体中修改top指针本身

(2)若要记录栈中元素个数,可将元素个数属性放在LinkStack类型中定义。

(3)链栈中的结点是动态分配的,所以可以不考虑上溢。

参考程序:

#include "stdio.h"

#include "malloc.h"

#include "stdlib.h"

typedef int Elemtype;

typedef struct stacknode {

Elemtype data;

stacknode * next;

}StackNode;

typedef struct {

stacknode * top; //栈顶指针

}LinkStack;

/*初始化链栈*/

void InitStack(LinkStack * s)

{ s->top=NULL;

printf("\n已经初始化链栈!\n");

}

/*链栈置空*/

void setEmpty(LinkStack * s)

{ s->top=NULL;

printf("\n链栈被置空!\n");

}

/*入栈*/

void pushLstack(LinkStack * s, Elemtype x)

{ StackNode * p;

p=(StackNode *)malloc(sizeof(StackNode)); //建立一个节点。

p->data=x;

p->next=s->top; //由于是在栈顶pushLstack,所以要指向栈顶。

s->top=p; //插入

}

/*出栈*/

Elemtype popLstack(LinkStack * s)

{ Elemtype x;

StackNode * p;

p=s->top; //指向栈顶

if (s->top ==0)

{ printf("\n栈空,不能出栈!\n");

exit(-1);

}

x=p->data;

s->top=p->next; //当前的栈顶指向原栈的next

free(p); //释放

return x;

}

/*取栈顶元素*/

Elemtype StackTop(LinkStack *s)

{ if (s->top ==0)

{ printf("\n链栈空\n");

exit(-1);

}

return s->top->data;

}

/*遍历链栈*/

void Disp(LinkStack * s)

{ printf("\n链栈中的数据为:\n");

printf("=======================================\n");

StackNode * p;

p=s->top;

while (p!=NULL)

{ printf("%d\n",p->data);

p=p->next;

}

printf("=======================================\n");

}

void main()

{ printf("================= 链栈操作=================\n\n");

int i,m,n,a;

LinkStack * s;

s=(LinkStack *)malloc(sizeof(LinkStack));

int cord;

do{ printf("\n");

printf("第一次使用必须初始化!\n");

printf("\n");

printf("\n 主菜单 \n");

printf("\n 1 初始化链栈 \n");

printf("\n 2 入栈 \n");

printf("\n 3 出栈 \n");

printf("\n 4 取栈顶元素 \n");

printf("\n 5 置空链栈 \n");

printf("\n 6 结束程序运行 \n");

printf("\n--------------------------------\n");

printf("请输入您的选择( 1, 2, 3, 4, 5,6)");

scanf("%d",&cord);

printf("\n");

switch(cord)

{ case 1:

{ InitStack(s);

Disp(s);

}break;

case 2:

{printf("输入将要压入链栈的数据的个数:n=");

scanf("%d",&n);

printf("依次将%d个数据压入链栈:\n",n);

for(i=1;i

{scanf("%d",&a);

pushLstack(s,a);

}

Disp(s);

}break;

case 3:

{ printf("\n出栈操作开始!\n");

printf("输入将要出栈的数据个数:m=");

scanf("%d",&m);

for(i=1;i

{printf("\n第%d次出栈的数据是:%d",i,popLstack(s));}

Disp(s);

}break;

case 4:

{ printf("\n\n链栈的栈顶元素为:%d\n",StackTop(s));

printf("\n");

}break;

case 5:

{ setEmpty(s);

Disp(s);

}break;

case 6:

exit(0);

}

}while (cord

}

[实验3] 队列的顺序表示和实现

实验内容与要求

编写一个程序实现顺序队列的各种基本运算,并在此基础上设计一个主程序,完成如下功能:

(1)初始化队列

(2)建立顺序队列

(3)入队

(4)出队

(5)判断队列是否为空

(6)取队头元素

(7)遍历队列

分析:

队列的顺序存储结构称为顺序队列,顺序队列实际上是运算受限的顺序表。

入队时,将新元素插入rear所指的位置,然后将rear加1。出队时,删去front所指的元素,然后将front加1并返回被删元素。

顺序队列中的溢出现象:

(1) "下溢"现象。当队列为空时,做出队运算产生的溢出现象。“下溢”是正常现象,常用作程序控制转移的条件。

(2) "真上溢"现象。当队列满时,做进栈运算产生空间溢出的现象。“真上溢”是一种出错状态,应设法避免。

(3) "假上溢"现象。由于入队和出队操作中,头尾指针只增加不减小,致使被删元素的空间永远无法重新利用。当队列中实际的元素个数远远小于向量空间的规模时,也可能由于尾指针已超越向量空间的上界而不能做入队操作。该现象称为"假上溢"现象。

注意:

(1)当头尾指针相等时,队列为空。

(2)在非空队列里,队头指针始终指向队头元素,尾指针始终指向队尾元素的下一位置。

参考程序:

#include

#include

#define MAXNUM 100

#define Elemtype int

#define TRUE 1

#define FALSE 0

typedef struct

{ Elemtype queue[MAXNUM];

int front;

int rear;

}sqqueue;

/*队列初始化*/

int initQueue(sqqueue *q)

{ if(!q) return FALSE;

q->front=-1;

q->rear=-1;

return TRUE;

}

/*入队*/

int append(sqqueue *q, Elemtype x)

{ if(q->rear>=MAXNUM-1) return FALSE;

q->rear++;

q->queue[q->rear]=x;

return TRUE;

}

/*出队*/

Elemtype Delete(sqqueue *q)

{ Elemtype x;

if (q->front==q->rear) return 0;

x=q->queue[++q->front];

return x;

}

/*判断队列是否为空*/

int Empty(sqqueue *q)

{ if (q->front==q->rear) return TRUE;

return FALSE;

}

/*取队头元素*/

int gethead(sqqueue *q)

{ if (q->front==q->rear) return 0;

return(q->queue[q->front+1]);

}

/*遍历队列*/

void display(sqqueue *q)

{ int s;

s=q->front;

if (q->front==q->rear)

printf("队列空!\n");

else

{printf("\n顺序队列依次为:");

while(srear)

{s=s+1;

printf("%dqueue[s]);

}

printf("\n");

printf("顺序队列的队尾元素所在位置:rear=%d\n",q->rear); printf("顺序队列的队头元素所在位置:front=%d\n",q->front); }

}

/*建立顺序队列*/

void Setsqqueue(sqqueue *q)

{ int n,i,m;

printf("\n请输入将要入顺序队列的长度:");

scanf("%d",&n);

printf("\n请依次输入入顺序队列的元素值:\n");

for (i=0;i

{ scanf("%d",&m);

append(q,m);}

}

main()

{ sqqueue *head;

int x,y,z,select;

head=(sqqueue*)malloc(sizeof(sqqueue));

do{printf("\n第一次使用请初始化!\n");

printf("\n请选择操作(1--7):\n");

printf("===================================\n"); printf("1 初始化\n");

printf("2 建立顺序队列\n");

printf("3 入队\n");

printf("4 出队 \n");

printf("5 判断队列是否为空\n");

printf("6 取队头元素 \n");

printf("7 遍历队列\n");

printf("===================================\n"); scanf("%d",&select);

switch(select)

{case 1:

{ initQueue(head);

printf("已经初始化顺序队列!\n");

break;

}

case 2:

{ Setsqqueue(head);

printf("\n已经建立队列!\n");

display(head);

break;

}

case 3:

{ printf("请输入队的值:\n ");

scanf("%d",&x);

append(head,x);

display(head);

break;

}

case 4:

{ z=Delete(head);

printf("\n队头元素%d已经出队!\n",z); display(head);

break;

}

case 5:

{ if(Empty(head))

printf("队列空\n");

else

printf("队列非空\n");

break;

}

case 6:

{ y=gethead(head);

printf("队头元素为:%d\n",y);

break;

}

case 7:

{ display(head);

break;

}

}

}while(select

}

[实验4[ 队列的链式表示和实现

实验内容与要求:

编写一个程序实现链队列的各种基本运算,并在此基础上设计一个主程序,完成如下功能:

(1)初始化并建立链队列

(2)入链队列

(3)出链队列

(4)遍历链队列

分析:

队列的链式存储结构简称为链队列。它是限制仅在表头删除和表尾插入的单链表。 注意:

(1)和链栈类似,无须考虑判队满的运算及上溢。

(2)在出队算法中,一般只需修改队头指针。但当原队中只有一个结点时,该结点既是队头也是队尾,故删去此结点时亦需修改尾指针,且删去此结点后队列变空。

(3)和单链表类似,为了简化边界条件的处理,在队头结点前可附加一个头结点。 参考程序:

#include

#include

#define ElemType int

typedef struct Qnode

{ ElemType data;

struct Qnode *next;

}Qnodetype;

typedef struct

{ Qnodetype *front;

Qnodetype *rear;

}Lqueue;

/*初始化并建立链队列*/

void creat(Lqueue *q)

{ Qnodetype *h;

int i,n,x;

printf("输入将建立链队列元素的个数:n= ");

scanf("%d",&n);

h=(Qnodetype*)malloc(sizeof(Qnodetype));

h->next=NULL;

q->front=h;

q->rear=h;

for(i=1;i

{ printf("链队列第%d个元素的值为:",i);

scanf("%d",&x);

Lappend(q,x);

}

}

/*入链队列*/

void Lappend(Lqueue *q,int x)

{ Qnodetype *s;

s=(Qnodetype*)malloc(sizeof(Qnodetype));

s->data=x;

s->next=NULL;

q->rear->next=s;

q->rear=s;

}

/*出链队列*/

ElemType Ldelete(Lqueue *q)

{ Qnodetype *p;

ElemType x;

if(q->front==q->rear)

{ printf("队列为空!\n");

x=0;

}

else

{ p=q->front->next;

q->front->next=p->next;

if(p->next==NULL)

q->rear=q->front;

x=p->data;

free(p);

}

return(x);

/*遍历链队列*/

void display(Lqueue *q)

{ Qnodetype *p;

p=q->front->next; /*指向第一个数据元素节点 */

printf("\n链队列元素依次为:");

while(p!=NULL)

{ printf("%d-->",p->data);

p=p->next;

}

printf("\n\n遍历链队列结束! \n");

}

main()

{ Lqueue *p;

int x,cord;

printf("\n*****第一次操作请选择初始化并建立链队列!*****\n "); do

{ printf("\n 链队列的基本操作\n ");

printf("=========================================\n"); printf(" 主菜单 \n");

printf("=========================================\n"); printf(" 1 初始化并建立链队列 \n");

printf(" 2 入链队列 \n");

printf(" 3 出链队列 \n");

printf(" 4 遍历链队列 \n");

printf(" 5 结束程序运行 \n");

printf("==========================================\n"); scanf("%d",&cord);

switch(cord)

{ case 1:

{ p=(Lqueue *)malloc(sizeof(Lqueue));

creat(p);

display(p);

}break;

case 2:

{ printf("请输入队列元素的值:x=");

scanf("%d",&x);

Lappend(p,x);

display(p);

}break;

case 3:

{ printf("出链队列元素:x=%d\n",Ldelete(p)); display(p);

}break;

} {display(p);}break; case 5: {exit (0);} } }while (cord

范文十:可操作实验

初中生物济南版教材实验目录

七年级上册

学生实验

1.练习使用显微镜 P12

2.观察动植物细胞的结构 P17

3.观察草履虫的生命活动 P20

4.观察水绵 P51

5.观察植物的蒸腾现象 P58

6.观察叶片的结构 P59

7.绿叶在光下制造淀粉 P63

8.观察蝗虫 P82

9.观察鲫鱼的形态、结构 P83

10.观察家鸽 P86

11.观察动植物的绕道取食行为 P97

12.观察细菌的形态 P111

13.观察酵母菌和霉菌 P114

演示实验

1.蚯蚓对土壤的翻耕 P45

2.光合作用产生氧气 P64

3.观察种子的呼吸现象 P71

4.观察关节的结构 P93

探究活动

1.光照对黄粉虫幼虫生活的影响 P38

2.二氧化碳是光合作用的原料 P66 应用与实践

1.观察紫鸭跖草的细胞质流动 P23

2.观察洋葱根尖的细胞分裂 P27

3.为鱼安个家 P91

4.观察鸡的学习行为 P100

5.调查当地动物的养殖情况 P104

6.调查当地食用菌的种类 P117

7.校园植物辨认挂牌活动 P126

七年级下册

学生实验

1.人体呼吸产生二氧化碳 P27

2.观察人血的永久涂片 P45

3.观察血液的流动 P50

4.观察心脏的结构 P53

5.观察膝跳反射 P85

演示实验

1.胆汁对脂肪的作用 P13

2.模拟呼吸运动 P25

3.观察加入抗凝剂的血液 P44

4.观察肾的结构 P66

5.模拟眼球成像原理 P91

探究活动

1.比较不同果蔬中维生素C的含量 P6

2.口腔对淀粉的消化作用 P10

3.探究不同食物的热价 P31

4.脉搏与运动的关系 P58

5.酒精对水蚤心率的影响 P61

6.水体污染对生物的影响 P124 应用与实践

1.模拟练习止血急救 P55

2.训练金鱼建立条件反射 P89

3.设计置备家庭小药箱 P113

4.制作再生纸贺卡 P120

八年级上册

学生实验

1.观察花的结构 P4

2.观察种子的结构 P14

3.观察枝芽的结构 P30

4.观察鸡蛋的结构 P51

演示实验

1.观察种子萌发的过程 P19

2.植物的生活需要无机盐 P25 探究活动

1.探究果实发育过程中体积的变化 P12

2.探究种子萌发的条件 P17

3.探究根长长的主要部位P23

4.脉搏与运动的关系 P44

5.探究生男生女的比例 P79

八年级下册

学生实验(无)

演示实验(无)

探究活动

1.制作酸奶需要的条件 P79

2.探究食品腐败的原因 P85

应用与实践

1.探究虾和蟹的亲缘关系 P17

2.探究肥料对藻类生长的影响 P42

3.设计生态校园建设方案 P61

4.保护生物的多样性 P74