2014080802-- 实验八最终报告
- 格式:pdf
- 大小:552.30 KB
- 文档页数:11
第1篇一、实验目的1. 学习并掌握化学产物的分析方法;2. 培养学生的实验操作技能和数据分析能力;3. 了解实验中可能出现的误差及如何减少误差。
二、实验原理本实验采用化学分析法对未知化学产物进行定性和定量分析。
定性分析主要通过观察化学产物的颜色、形态、气味等特征,以及与已知物质的反应来确定化学产物的种类。
定量分析则通过滴定、重量法等方法,计算出化学产物的含量。
三、实验用品1. 仪器:烧杯、滴定管、容量瓶、移液管、玻璃棒、酒精灯、滤纸、锥形瓶等;2. 药品:未知化学产物、标准溶液、指示剂、酸碱试剂等。
四、实验步骤1. 样品准备:取一定量的未知化学产物,用适量的溶剂溶解,配制成一定浓度的溶液。
2. 定性分析:(1)观察未知化学产物的颜色、形态、气味等特征;(2)进行化学实验,观察未知化学产物与已知物质的反应,确定其种类。
3. 定量分析:(1)根据实验目的选择合适的定量分析方法,如滴定法、重量法等;(2)按照实验步骤进行操作,准确测量化学产物的含量。
五、实验数据记录与处理1. 记录实验过程中观察到的现象,如颜色变化、沉淀生成等;2. 记录实验数据,如溶液的浓度、滴定液的使用量等;3. 根据实验数据,进行数据处理,如计算化学产物的含量、误差分析等。
六、结果与讨论1. 根据实验结果,确定未知化学产物的种类和含量;2. 分析实验过程中可能出现的误差,如操作误差、仪器误差等;3. 讨论如何减少误差,提高实验精度。
七、实验结论1. 通过本次实验,掌握了化学产物的分析方法;2. 提高了实验操作技能和数据分析能力;3. 对化学实验中可能出现的误差有了更深入的了解。
八、注意事项1. 实验过程中,严格遵守实验操作规程,确保实验安全;2. 注意观察实验现象,准确记录实验数据;3. 在进行定量分析时,尽量减少误差,提高实验精度。
九、实验报告格式1. 实验题目:化学产物分析实验2. 实验目的:学习并掌握化学产物的分析方法,培养实验操作技能和数据分析能力3. 实验原理:简要介绍实验原理,如定性分析和定量分析方法4. 实验用品:列出实验中使用的仪器和药品5. 实验步骤:详细描述实验步骤,包括样品准备、定性分析、定量分析等6. 实验数据记录与处理:记录实验过程中观察到的现象和数据,进行数据处理7. 结果与讨论:根据实验结果,确定未知化学产物的种类和含量,分析实验误差8. 实验结论:总结实验结果,强调实验目的和实验意义9. 注意事项:提醒实验过程中应注意的事项10. 实验报告格式:按照实验报告格式要求,规范撰写实验报告本实验报告为化学产物分析实验报告范本,具体实验内容可根据实际情况进行调整。
第1篇一、实验背景本次实验是在XXX实验室进行的,旨在验证XXX理论或研究XXX问题。
实验背景如下:1. 研究背景随着社会经济的快速发展,XXX问题日益突出,为了解决这一问题,国内外学者对XXX进行了广泛的研究。
我国政府也高度重视XXX问题,投入了大量的人力、物力和财力进行研究和实践。
2. 研究目的本次实验旨在验证XXX理论或研究XXX问题,通过实验数据分析和结论总结,为我国XXX问题的解决提供理论依据和实践指导。
二、实验方法与过程1. 实验方法本次实验采用XXX方法,主要包括XXX、XXX和XXX等步骤。
(1)XXX:首先,对实验材料进行预处理,包括XXX、XXX和XXX等。
(2)XXX:然后,按照实验方案进行XXX操作,确保实验的准确性和可靠性。
(3)XXX:最后,对实验结果进行数据分析和处理。
2. 实验过程(1)实验材料准备:实验材料包括XXX、XXX和XXX等,共计XXX份。
(2)实验操作:按照实验方案,对实验材料进行XXX、XXX和XXX等操作。
(3)数据采集:在实验过程中,对实验数据进行实时采集,包括XXX、XXX和XXX 等。
(4)数据分析:对采集到的实验数据进行统计分析,包括XXX、XXX和XXX等。
三、实验结果与分析1. 实验结果本次实验共获得XXX组实验数据,经统计分析,得到以下结论:(1)XXX:实验结果显示,XXX现象与XXX理论相符。
(2)XXX:实验结果显示,XXX问题的解决方法具有可行性。
(3)XXX:实验结果显示,XXX因素对XXX问题的影响显著。
2. 结果分析(1)XXX现象与XXX理论相符,说明XXX理论具有一定的指导意义。
(2)XXX问题的解决方法具有可行性,为我国XXX问题的解决提供了实践指导。
(3)XXX因素对XXX问题的影响显著,为今后研究XXX问题提供了参考。
四、实验结论与展望1. 实验结论本次实验验证了XXX理论,为我国XXX问题的解决提供了理论依据和实践指导。
第1篇一、实验目的本次实验旨在通过(实验名称)实验,探究(实验目的),以验证(实验假设)的正确性。
二、实验方法1. 实验原理(简要介绍实验原理,包括实验原理的来源、实验原理的应用等)2. 实验仪器与材料(列举实验中所使用的仪器和材料,并简要说明其作用)3. 实验步骤(详细描述实验步骤,包括实验操作、数据记录等)三、实验结果1. 实验数据(整理实验过程中所得到的数据,包括原始数据和经过处理后的数据)2. 实验现象(描述实验过程中观察到的现象,如颜色变化、沉淀生成、气泡产生等)四、结果分析1. 数据分析(对实验数据进行统计分析,如计算平均值、标准差、相关系数等)2. 结果讨论(根据实验结果,对实验目的、实验假设进行讨论,分析实验结果与预期结果之间的差异,探讨原因)(1)实验结果与预期结果的一致性分析实验结果与预期结果的一致性,说明实验是否达到了预期目的。
(2)实验结果与预期结果的差异性分析实验结果与预期结果的差异性,探讨产生差异的原因,如实验误差、实验条件控制不当等。
(3)实验结果的可靠性评估实验结果的可靠性,分析实验过程中可能存在的误差来源,并提出改进措施。
3. 结论根据实验结果和分析,得出以下结论:(1)实验目的达成(2)实验假设成立或不成立(3)实验结果的可靠性五、实验改进建议1. 实验方法改进针对实验过程中存在的问题,提出改进实验方法的具体措施。
2. 实验条件优化针对实验条件控制不当导致实验结果不准确的问题,提出优化实验条件的方法。
3. 实验数据分析方法改进针对实验数据分析方法不合理导致实验结果误差较大的问题,提出改进数据分析方法的具体措施。
六、参考文献(列出实验过程中参考的文献,按照规范格式进行标注)注:本模板仅供参考,具体实验报告应根据实验内容进行调整。
在撰写实验报告时,请注意以下几点:1. 实验报告应结构清晰,层次分明,便于阅读。
2. 实验结果应真实可靠,数据准确。
3. 结果分析应深入、全面,具有说服力。
第1篇一、试验目的本次试验旨在通过模拟实验,验证某种新型材料在特定环境下的性能表现,为后续产品的研发和改进提供数据支持。
二、试验背景随着科技的不断发展,新型材料在各个领域得到了广泛应用。
为了提高材料的性能,降低成本,本研究团队对某种新型材料进行了深入研究。
为了进一步了解该材料在特定环境下的性能表现,我们开展了本次试验。
三、试验方法1. 试验材料本次试验采用的新型材料为A材料,其主要成分包括:B、C、D等元素。
2. 试验设备(1)高温高压反应釜:用于模拟材料在高温高压环境下的性能表现。
(2)电子天平:用于称量试验样品。
(3)热分析仪:用于分析材料的热稳定性。
(4)扫描电子显微镜:用于观察材料的微观结构。
3. 试验步骤(1)将A材料与B、C、D等元素按一定比例混合,搅拌均匀。
(2)将混合物放入高温高压反应釜中,在特定温度和压力下反应一定时间。
(3)反应结束后,取出样品,进行热分析、扫描电子显微镜等检测。
四、试验结果与分析1. 热分析结果通过热分析,我们发现A材料在高温下具有良好的热稳定性,其分解温度在600℃左右。
2. 扫描电子显微镜结果扫描电子显微镜结果显示,A材料的微观结构较为均匀,无明显缺陷。
3. 性能表现在高温高压环境下,A材料表现出良好的耐腐蚀性、耐磨性和抗冲击性。
五、试验结论1. A材料在高温高压环境下具有良好的性能表现,可应用于相关领域。
2. 通过本次试验,我们验证了A材料的性能,为后续产品的研发和改进提供了数据支持。
六、试验不足与改进措施1. 试验不足(1)本次试验仅模拟了高温高压环境,未考虑其他环境因素对材料性能的影响。
(2)试验样品数量较少,可能导致试验结果存在一定的偶然性。
2. 改进措施(1)在后续试验中,增加不同环境因素对材料性能的影响试验,以全面评估材料性能。
(2)扩大试验样品数量,提高试验结果的可靠性。
七、试验总结本次试验通过对A材料在高温高压环境下的性能进行模拟实验,验证了其良好的性能表现。
2014080802--14022016.6.1171234(-1)""3""2""3""2""10""9""9""10""9""9""2""2""3""2""2""3""10""9""10""9""11""11""11""11(1)ADTD{ai|ai,i=1,2,...,n,n0}R1{<ai-1,ai>|ai-1,ai D,i=2,...,n}a1 anAList(int size)//void setStart()void setEnd()int length()//bool getValue(Elem&it)const//bool insert(Elem item)//bool append(Elem&item)//void search()bool swap(int n)212345 6312311class AList{private:int listsize;int maxsize;int fence;Elem*listArray;public:AList(int size){maxsize=size;fence=listsize=0;listArray=new Elem[size];}~AList(){delete[]listArray;}void setStart(){fence=0;}void setEnd(){fence=listsize;}int length(){return listsize;}void prev(){if(fence!=0)fence--;} void next(){if(fence<=listsize)fence++;}bool getValue(Elem&it)const{it=listArray[fence];return true;}bool insert(Elem item){if(listsize==maxsize)return false;for(int i=listsize;i>fence;i--)listArray[i]=listArray[i-1];listArray[fence]=item;listsize++;return true;}bool append(Elem&item){if(listsize=maxsize)return false;listArray[listsize++]=item;return true;}char c;ifstream fin("out.txt");while(!fin.eof()){fin>>c;a.append(c);}void search(){string s;ifstream fin("search.txt");//ofstream fout("in.txt");//while(!fin.eof()){string a;fin>>a;s+=a;}int i,j;int size=0;for(j=0;j<s.length();j+=2){if(s[j]==''){j--;continue;}int judge=0;for(i=0;i<=listSize;i+=2){if(listArray[i]==s[j]&&listArray[i+1]==s[j+1]){judge=1;swap(i);break;}}if(judge){cout<<"""<<s[j]<<s[j+1]<<"""<<""<<" "<<i/2+1<<endl;fout<<"""<<s[j]<<s[j+1]<<"""<<""<<" "<<i/2+1<<endl;}else{cout<<"""<<s[j]<<s[j+1]<<"""<<""<<" "<<i/2-1<<endl;fout<<"""<<s[j]<<s[j+1]<<"""<<""<<" "<<i/2-1<<endl;}}fin.close();fout.close();}bool swap(int n){if(n<=1)return true;Elem temp;temp=listArray[n];listArray[n]=listArray[n-2];listArray[n-2]=temp;temp=listArray[n+1];listArray[n+1]=listArray[n-1];listArray[n-1]=temp;return0;}};2judge=0judge=1swap()char c;ifstream fin("out.txt");while(!fin.eof()){fin>>c;a.append(c);}judge=0judge=0void search(){string s;ifstream fin("search.txt");//ofstream fout("in.txt");//while(!fin.eof()){string a;fin>>a;s+=a;}int i,j;int size=0;for(j=0;j<s.length();j+=2){if(s[j]==''){j--;continue;}int judge=0;for(i=0;i<=listSize;i+=2){if(listArray[i]==s[j]&&listArray[i+1]==s[j+1]){judge=1;swap(i);break;}}}bool swap(int n){if(n<=1)return true;Elem temp;temp=listArray[n];listArray[n]=listArray[n-2];listArray[n-2]=temp;temp=listArray[n+1];listArray[n+1]=listArray[n-1];listArray[n-1]=temp;return0;}if(judge){cout<<"""<<b[j]<<b[j+1]<<"""<<""<<""<<i/2+1<<endl;fout<<"""<<b[j]<<b[j+1]<<"""<<""<<""<<i/2+1<<endl;}else{cout<<"""<<b[j]<<b[j+1]<<"""<<""<<""<<i/2<<endl;fout<<"""<<b[j]<<b[j+1]<<"""<<""<<""<<i/2<<endl;}mainint main(){AList a(100);char c;ifstream fin("out.txt");while(!fin.eof()){fin>>c;a.append(c);}cout<<"--------------------------come on-------------------------------"<<endl;a.search();fin.close();cout<<"--------------------------THE END-------------------------------"<<endl;return0;}3n n (n)(n 2)451char c;ifstream fin("out.txt");while(!fin.eof()){fin >>c;a.append(c);}2string s;ifstream fin("search.txt");//while(!fin.eof()){string a;fin >>a;s +=a;}if (judge){cout <<"""<<b[j]<<b[j +1]<<"""<<""<<""<<i /2+1<<endl; a.append()//search()swap()//AListk ()print()//fout<<"""<<b[j]<<b[j+1]<<"""<<""<< ""<<i/2+1<<endl;}else{cout<<"""<<b[j]<<b[j+1]<<"""<<""<< ""<<i/2<<endl;fout<<"""<<b[j]<<b[j+1]<<"""<<""<< ""<<i/2<<endl;}""3""2""3""2。
第1篇实验名称:探究光合作用的条件与产物实验目的:1. 了解光合作用的基本原理和过程。
2. 探究光合作用所需的条件,如光照、二氧化碳、水分等。
3. 观察并分析光合作用的产物,如氧气、葡萄糖等。
实验时间:2021年10月15日实验地点:实验室光合作用实验台实验人员:张三、李四、王五一、实验原理光合作用是植物在光照条件下,利用光能将二氧化碳和水转化为有机物(如葡萄糖)和氧气的过程。
其基本反应式为:6CO2 + 6H2O + 光能→ C6H12O6 + 6O2。
二、实验材料与仪器1. 实验材料:- 玉米幼苗- 黑色塑料袋- 水盆- 二氧化碳气瓶- 氧气传感器- 葡萄糖测定试剂盒- 秒表2. 实验仪器:- 光合作用实验台- 照度计- 光合作用气体分析仪- 电子天平三、实验步骤1. 准备实验材料,将玉米幼苗均匀分布在实验台上,并确保每株幼苗的叶片都能接受到光照。
2. 设置对照组:将一部分幼苗放入黑色塑料袋中,作为对照组,用于观察黑暗条件下光合作用的产物。
3. 设置实验组:a. 光照实验组:在光照条件下,观察并记录玉米幼苗的光合作用产物。
b. 二氧化碳实验组:在光照条件下,将玉米幼苗放入二氧化碳气瓶中,观察并记录光合作用产物。
c. 水分实验组:在光照条件下,将玉米幼苗放入水盆中,观察并记录光合作用产物。
4. 在实验过程中,每隔一定时间,使用氧气传感器和葡萄糖测定试剂盒检测并记录各组玉米幼苗的光合作用产物。
5. 实验结束后,将数据整理并进行分析。
四、实验结果与分析1. 对照组实验结果:在黑暗条件下,玉米幼苗的光合作用产物为0,说明黑暗条件下无法进行光合作用。
2. 光照实验组实验结果:在光照条件下,玉米幼苗的光合作用产物为氧气和葡萄糖。
其中,氧气产生速率随光照时间延长而逐渐增加,葡萄糖产生速率在光照一段时间后达到峰值,随后逐渐降低。
3. 二氧化碳实验组实验结果:在光照条件下,将玉米幼苗放入二氧化碳气瓶中,氧气产生速率和葡萄糖产生速率均有所提高。
第1篇一、实验背景随着科学技术的不断发展,实验已成为我们认识世界、探索真理的重要手段。
初中阶段是学生科学素养培养的关键时期,实验教学在培养学生动手能力、观察力、思维能力和创新精神等方面具有重要作用。
本实验报告旨在总结初二学生在进行科学实验过程中的现象,分析实验结果,并提出改进建议。
二、实验目的1. 通过实验,使学生掌握科学实验的基本方法和技能;2. 培养学生观察、分析、解决问题的能力;3. 增强学生对科学知识的理解和运用能力;4. 激发学生对科学的兴趣,培养学生的创新精神。
三、实验内容本次实验选取了以下五个实验项目进行总结:1. 水的沸点与气压的关系实验;2. 氧气制取与检验实验;3. 植物细胞观察实验;4. 热胀冷缩现象实验;5. 声音传播实验。
四、实验现象总结1. 水的沸点与气压的关系实验实验现象:在常压下,水的沸点为100℃;当气压降低时,水的沸点也随之降低;当气压升高时,水的沸点也随之升高。
实验分析:水的沸点与气压的关系符合热力学原理,即沸点随气压的升高而升高,随气压的降低而降低。
2. 氧气制取与检验实验实验现象:将过氧化氢溶液与二氧化锰混合,产生大量气泡,说明氧气被释放出来;将带有火星的木条伸入集气瓶中,木条复燃,证明氧气已制取。
实验分析:过氧化氢在二氧化锰的催化作用下分解生成水和氧气,符合化学反应原理。
3. 植物细胞观察实验实验现象:在显微镜下观察植物细胞,可以看到细胞壁、细胞膜、细胞质、细胞核等结构。
实验分析:植物细胞是生命活动的基本单位,具有多种结构和功能,符合生物学原理。
4. 热胀冷缩现象实验实验现象:将金属棒加热后,其长度变长;将金属棒冷却后,其长度变短。
实验分析:物体的热胀冷缩现象符合物理学原理,即物体在受热时体积膨胀,受冷时体积收缩。
5. 声音传播实验实验现象:将振动的音叉靠近水面,水面会溅起水花;将振动的音叉靠近薄纸片,纸片会振动。
实验分析:声音是通过介质传播的,符合声学原理。
97 中学化学试验报告八年级__班0801 号姓名_________试验日期____年__月__日试验名称用试验证明我们吸入的空气和呼出的气体中的氧气含量有什么不同试验目的氧气可以使带火星的木条复燃,木条燃烧越旺,说明氧气含量越高一、试验器材、药品水槽、集气瓶〔250ml〕两个、玻片两片、饮料管〔或玻璃管〕、酒精灯、火柴、小木条、水,盛放废弃物的大烧杯。
试验步骤1.检查仪器、药品。
2.做好用排水法收集气体的各项预备工作。
现象、解释、结论及反响方程式呼出的气体中二氧化碳含量大于空3.用饮料管向集气瓶中吹气,用气中二氧化碳含量排水法收集一瓶我们呼出的气呼出的气体中氧气含量小于空气中体,用玻璃片盖好,放在桌面上。
4.将另一集气瓶放置在桌面上,用玻璃片盖好。
5.用燃烧的小木条分别伸入两个集气瓶内。
6.观看试验现象,做出推断,并向教师报告试验结果。
7.清洗仪器,整理复位。
氧气的含量.试验装置图疑问争论评语教师签名:297 中学化学试验报告八年级级__班 0802 号姓名_________试验日期____年__月__日试验名称组装试验室制取氧气的装置试验目的 正确地组装一套试验室制取氧气的装置,并做好排水集气的预备 试验器材、药品大试管(Ф32mm ×200mm)、带导管的橡皮塞〔与试管配套〕、酒精灯、铁架台〔带铁夹〕、木质垫假设干块、集气瓶 〔125mL 〕、毛玻璃片、水槽(装好水)、烧杯(100mL)。
试验步骤现象、解释、结论及反响方程式1. 检查仪器、药品。
2H 2O 2MnO 22H 2 O +O 2↑2. 组装气体发生装置。
2KClOMnO 2 2KCl+3O ↑3. 检查气体发生装置的气密 3 △△2KMnO 42K 2MnO 4+MnO 2+O ↑ 性。
4. 依据试验室制取氧气的要求装配好气体发生装置。
5. 在水槽中用烧杯向集气瓶中注满水,盖好毛玻璃片,将集气瓶倒置在水槽中。
6. 撤除装置,整理复位。
第1篇一、实验背景随着科学技术的不断发展,实验在各个领域的研究中发挥着越来越重要的作用。
为了提高实验技术水平,培养高素质的实验人才,我国相关部门和组织开展了多项实验专项。
本报告针对某实验专项进行总结,旨在分析实验成果、总结经验教训,为今后类似实验项目的开展提供参考。
二、实验目的1. 提高实验技术水平,提升实验人员综合素质;2. 探索新的实验方法,推动实验技术发展;3. 优化实验流程,提高实验效率;4. 为相关领域的研究提供实验支持。
三、实验内容本次实验专项主要包括以下几个方面:1. 实验技术研究:针对实验过程中遇到的技术难题,开展技术研究,寻找解决方案;2. 实验设备改进:针对现有实验设备存在的问题,进行改进,提高设备性能;3. 实验流程优化:分析现有实验流程,找出瓶颈,提出优化方案;4. 实验人员培训:针对实验人员的技术水平和综合素质,开展培训,提高实验队伍整体实力。
四、实验过程1. 实验技术研究阶段(1)收集实验技术相关资料,了解国内外实验技术发展趋势;(2)针对实验过程中遇到的技术难题,进行研讨,提出解决方案;(3)开展实验技术研究,验证解决方案的有效性。
2. 实验设备改进阶段(1)对现有实验设备进行调研,分析设备存在的问题;(2)针对设备问题,提出改进方案;(3)开展设备改进实验,验证改进方案的效果。
3. 实验流程优化阶段(1)分析现有实验流程,找出瓶颈;(2)针对瓶颈问题,提出优化方案;(3)开展实验流程优化实验,验证优化方案的效果。
4. 实验人员培训阶段(1)根据实验人员的技术水平和综合素质,制定培训计划;(2)开展实验技术培训,提高实验人员的技术水平;(3)开展综合素质培训,提高实验人员的综合素质。
五、实验成果1. 实验技术研究取得一定成果,成功解决实验过程中遇到的部分技术难题;2. 实验设备改进取得显著效果,设备性能得到提升;3. 实验流程优化取得明显成效,实验效率得到提高;4. 实验人员培训取得良好效果,实验队伍整体实力得到提升。
第1篇一、实验目的1. 理解复分解反应的概念和条件。
2. 掌握复分解反应的实验操作步骤。
3. 观察复分解反应的现象,并分析其原理。
二、实验原理复分解反应是指两种化合物在水溶液中交换成分,生成另外两种化合物的反应。
其一般形式为:AB + CD → AD + CB。
复分解反应的发生需要满足以下条件:1. 反应物中至少有一种是可溶的。
2. 生成物中至少有一种是难溶的(沉淀)、气体或水。
三、实验仪器与试剂仪器:1. 烧杯2. 玻璃棒3. 试管4. 滴管5. 烧瓶6. 粗滤纸7. 精密天平试剂:1. 硫酸钠溶液2. 氢氧化钡溶液3. 硝酸银溶液4. 氯化钠溶液5. 硫酸铜溶液6. 碳酸钠溶液7. 氢氧化钠溶液8. 稀盐酸9. 氢氧化钙溶液四、实验步骤1. 实验一:硫酸钠与氢氧化钡溶液的反应 1.1 在烧杯中加入5mL硫酸钠溶液。
1.2 滴加氢氧化钡溶液,观察现象。
2. 实验二:硝酸银与氯化钠溶液的反应2.1 在烧杯中加入5mL硝酸银溶液。
2.2 滴加氯化钠溶液,观察现象。
3. 实验三:硫酸铜与碳酸钠溶液的反应3.1 在烧杯中加入5mL硫酸铜溶液。
3.2 滴加碳酸钠溶液,观察现象。
4. 实验四:氢氧化钠与稀盐酸的反应4.1 在烧杯中加入5mL氢氧化钠溶液。
4.2 滴加稀盐酸,观察现象。
5. 实验五:氢氧化钙与碳酸钠溶液的反应 5.1 在烧杯中加入5mL氢氧化钙溶液。
5.2 滴加碳酸钠溶液,观察现象。
五、实验现象1. 实验一:观察到产生白色沉淀。
2. 实验二:观察到产生白色沉淀。
3. 实验三:观察到产生蓝色沉淀和二氧化碳气泡。
4. 实验四:观察到溶液颜色由蓝色变为无色。
5. 实验五:观察到产生白色沉淀。
六、实验结果分析1. 实验一:硫酸钠与氢氧化钡溶液反应生成硫酸钡沉淀和氢氧化钠溶液。
反应方程式:Na2SO4 + Ba(OH)2 → BaSO4↓ + 2NaOH2. 实验二:硝酸银与氯化钠溶液反应生成氯化银沉淀和硝酸钠溶液。
题目:快速排序学生姓名:学生学号:2014080802--专业班级:物联1402指导老师:李晓鸿完成日期:2016.6.17实验8快速排序一、需求分析(1)输入的形式和输入值的范围;输入一个整数表示任务的总数。
输入n个整数,以空格隔开,表示每件任务所需要的时间。
(2)输出的形式;输出n个整数,以空格隔开,即排序结果。
(3)程序所能达到的功能;程序能存储用户输入的任务总数和每件任务的用时。
程序能将任务按照时间从小到大顺序进行排序。
(4)测试数据:(以n=-1结束程序,0<n<=100)第一组:输入:9输入:534261573输出:123345567输入:-1//结束程序第二组:(简单顺序)输入:5输入:12345输出:12345输入:-1//结束程序第三组:(数据稍大)输入:9输入:8765904863281432014输出:1420434863658790281输入:-1//结束程序第四组:(超过n的范围)输入:101输出:请重新输入任务总数:(0,100)输入:-5输出:请重新输入任务总数:(0,100)输入:-1//结束程序第五组:(当输入任务时间数大于输入任务总数)输入:5输入:123456789输出:12345输入:3输入:312输出:123输入:-1//结束程序二、概要设计(1)抽象数据类型的定义:本程序所输入的任务总数和任务时间均为整数,可使用整数实现数据的存储。
因为输入的除第一个和最后一个元素外的每一个元素都有唯一的一个前驱和唯一的后继满足线性表的特征,所以可以用线性表来存储。
线性表ADT:数据对象:D={ai|ai∈字符型,i=1,2,...,n,n≥0}数据关系:R1={<ai-1,ai>|ai-1,ai∈D,i=2,...,n}约定a1为线性表头,an为线性表尾。
基本操作:AList(int n)bool append(int a)int getmaxSize()void swap(int a,int b)int getlistArry(int i)void setlistArry(int i,int key)(2)算法的基本思想:1、存储用户输入的任务总数,当为-1时跳转至5。
2、存储用户输入的任务的时间数。
3、利用快速排序进行排序。
4、输出排序后的数组,跳转至1。
5、结束程序。
(3)程序的流程:程序由三个模块组成:(1)输入模块:输入一个整数n(0<n<100)表示任务的总数。
输入n个正整数表示每件任务所用的时间,假设输入的时间都符合要求。
(2)排序模块:调用随机函数产生轴值,进行快速排序。
(3)输出模块:输出排序的结果。
三、详细设计(1)实现概要设计中定义的所有数据类型(物理数据结构),对每个操作只需要写出伪码算法:1、本题中需要对一些元素进行交换,使用顺序表来进行交换更加便利,所以使用顺序表来实现线性表。
class AList{private:int maxSize;int listSize;int*listArry;public:AList(int n){maxSize=n;listSize=0;listArry=new int[maxSize];}bool append(int a){if(listSize==maxSize)return false;listArry[listSize++]=a;return true;}int getmaxSize(){return maxSize;}void setlistArry(int i,int key){listArry[i]=key;}int getlistArry(int i){return listArry[i];}void swap(int a,int b){int temp;temp=listArry[a];listArry[a]=listArry[b];listArry[b]=temp;}};(2)算法的具体步骤:①存储用户输入的任务总数,验证是否符合要求,当为-1时跳转至5,若不满足要求则重新输入。
②存储用户输入的任务的时间数。
③调用随机函数random()产生轴值。
根据所得轴值,将序列分成两部分。
其中左半部分的结点的关键字小于等于轴值,右半部分的结点的关键字大于轴值。
用递归方式对左右两部分分别进行类似的处理,直至排好序为止。
④输出排序后的数组,跳转至1。
⑤结束程序。
相关部分伪代码:输入:cout<<"请输入任务的个数:";cin>>n;if(n==-1){cout<<"THE END"<<endl;return0;}cin.clear();cin.sync();while(n<=0||n>100){cout<<"请重新输入任务总数:(0,100)"<<endl;cin>>n;if(n==-1){cout<<"THE END"<<endl;return0;}}AList a(n);cout<<"-------------------------------------------------------------"<<endl;cout<<"请输入每个任务的时间:"<<endl;for(int i=0;i<n;i++){cin>>time;a.append(time);}调用随机函数产生轴值:int random(int i,int r){srand(1);int result=i+rand()%(r-i+1);return result;}快速排序:·若序列中有n个元素,任选一个关键字作为轴值,将序列分成两部分。
——其中左半部分的结点的关键字小于等于轴值,右半部分的结点的关键字大于轴值。
·然后用递归方式对左右两部分分别进行类似的处理,直至排好序为止。
void quickSort(AList*a,int i,int j){if(j<=i)return;int pivot=random(i,j);a->swap(pivot,j);int k=partition(a,i-1,j,a->getlistArry(j));a->swap(k,j);quickSort(a,i,k-1);quickSort(a,k+1,j);}输出:void print(AList*a){cout<<"-------------------------------------------------------------"<<endl;cout<<"排序结果:";for(int i=0;i<a->getmaxSize();i++)cout<<a->getlistArry(i)<<"";cout<<endl;cout<<"完成一波!!!完成一波!!!完成一波!!!完成一波!!!完成一波!!!"<< endl;cout<<endl;cout<<endl;cin.clear();cin.sync();}main()函数:int main(){while(1){int n,time;cout<<"请输入任务的个数:";cin>>n;if(n==-1){cout<<"THE END"<<endl;return0;}cin.clear();cin.sync();while (n <=0||n>100){cout <<"请重新输入任务总数:(0,100)"<<endl;cin >>n;if (n ==-1){cout <<"THE END"<<endl;return 0;}}AList a(n);cout <<"-------------------------------------------------------------"<<endl;cout <<"请输入每个任务的时间:"<<endl;for (int i =0;i <n;i++){cin >>time;a.append(time);}QuickSort(&a,0,n -1);print(&a );}return 0;}(3)算法的时空分析和改进设想:快速排序的每一趟排序时间代价为Θ(n),平均情况下要执行logn 次,因此快速排序的时间复杂度为Θ(nlogn)。
(4)画出函数的调用关系图:(5)输入和输出的格式:输入:输入一个整数表示任务的总数。
输入n 个整数,以空格隔开,表示每件任务所需要的时间。
1、输入任务总数int n,time;主程序qsort();快排random();//产生轴值cin.clear();cin.sync();清空缓冲区swap()//交换两个值partition();//最两部分进行操作cout<<"请输入任务的个数:";cin>>n;if(n==-1){cout<<"THE END"<<endl;return0;}cin.clear();cin.sync();while(n<=0||n>100){cout<<"请重新输入任务总数:(0,100)"<<endl;cin>>n;if(n==-1){cout<<"THE END"<<endl;return0;}}2、每件任务所需的时间for(int i=0;i<n;i++){cin>>time;a.append(time);}例:输入:9输入:534261573输入:-1//结束程序输出:输出n个整数,以空格隔开,即排序结果。