植硅体的应用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了植硅体的应用相关的知识,希望对你有一定的参考价值。
参考技术A植硅体研究在国外开展较早,在我国是近几十年才开展起来的一门研究古环境古气候的新兴的边缘学科,尽管如此,现已在考古学及古环境古气候解释及植物起源中取得可喜的成果。利用植硅体分析可以提取冲积物中赋存的古植被信息,利用植硅体进行古植被重建、古气候学研究是当前国际上生物地层、气候地层研究的一个新兴方向。
植硅体在考古学中的应用
考古学是植硅体应用相对广泛的领域之一,最早可追溯到上个世纪90年代初期。植物硅酸体在三个方面为考古学提供证据:野生植物的可利用性,栽培作物的起源和扩散,古人类遗址的环境变迁。
考古土壤中的植硅体组合代表了原地腐烂的植物残留。因此,植硅体组合在某种程度上能反映微观的环境变化及相关的文化活动。一般来说,由于人类使用植物的活动,考古遗址各层在堆积过程中,可能存在大量植物的茎和叶。茎和叶腐烂后,植硅体——这种硅化细胞和组织能够长期保存,而且数量较多。姜钦华等通过对石家河文化时期的堆积物进行植硅石分析,统计有重要意义的植硅体形态类型,发现水稻扇形植硅石,稻哑铃型,水稻颖壳三种对鉴定稻作农业最为重要的三种植硅体类型 。郑云飞和俞为洁等对河姆渡遗址和罗家角遗址进行植硅体分析发现了起源于水稻叶片运动细胞植硅体,并把两遗址的植硅体形状特征进行比较,发现此两遗址的稻分别为粳稻和籼稻。Pearsall等利用十字型植硅体、块状植硅体鉴定出玉米。
植硅体研究在古环境解释中的应用
沉积物中植硅体的组合特征记录着一个地方不同时期的植被面貌,植被面貌的变化主要受控于气候和环境的变化,所以根据植硅体组合特征可以了解该区域的植被变迁,从而推断该区域的气候和环境变化。植硅体分析广泛地应用于重建古气候、古环境、古植被。
在我国,经过近几十年的发展,植硅体定量分析也逐步成熟,通过对黄土、泥炭、海洋沉积物、湖泊沉积物以及考古土壤等沉积物中富含的植硅体进行分析,成功地重建了古环境、古气候,发现气候冷暖波动规律及一些特殊环境事件。
吕厚远和刘东生等通过对渭南、宝鸡和兰州剖面进行植硅体分析表明,末次间冰期以来,在黄土高原南部,主要发育森林草原和发育草原,只有在降水量超过800mm以上,在其后最适宜期,才能有短期的森林植被发育。范斌和许世远等对巢湖南灵钻孔的植硅体化石进行系统研究,划分出六个植硅体组合带,并根据各组合带反映的古生态、古环境特征,发现自5600aBP以来气候分为3个相对寒冷期和3个相对温暖时期,并泰伦了个时期巢湖流域的环境变迁。顾延生等对浙江长兴中-晚更新世红土进行分析,发现含有丰富的植硅体形态类型,主要来自草本植物、阔叶和裸子植物等。运用植硅体和分子化石的相关指标揭示了红土沉积时期的植被与气候信息。
C语言结构体数组,结构体数组的定义,结构体数组的输出,结构体的应用
结构体数组
结构体数组的定义:
结构体数组格式:声明变量类型 数组名称[数组长度]
//定义一个结构体数组名为a,它里面包含有5个元素,每一个元素都是一个结构体变量
Wor a[5]=;
#include<stdio.h>
typedef struct worker
char id[10];
char name[10];
char sex[10];
int pay;
WOR;
void main()
WOR a[3]=
"0001","陈文杰","男",1200,
"0001","张三丰","女",500,
"0001","张四丰","女",1200
对比记忆
结构体数组的输出
#include<stdio.h>
typedef struct worker
char id[10];
char name[10];
char sex[10];
int pay;
WOR;
void main()
WOR a[6]=
"0001","陈文杰","男",1200,
"0002","张三丰","女",5000,
"0003","张四丰","女",1200,
"0004","张五丰","男",2200,
"0005","张六丰","男",5200,
"0006","张七丰","男",6200
;
int i;
for(i=0;i<6;i++)
printf("%s,%s,%s,%d\\n",a[i].id,a[i].name,a[i].sex,a[i].pay);
结构体对象中的a[i]就代表一个对象,它已经不再是一个值了
所以我们应该用a[ii].成员名
改进以上程序
#include<stdio.h>
typedef struct worker
char id[10];
char name[10];
char sex[10];
int pay;
WOR;
void output(WOR a[],int n)//次函数是用来输出长度为n的工人数组的信息
int i;
printf("工号\\t姓名\\t性别\\t年龄\\n");
for(i=0;i<6;i++)
printf("%s\\t%s\\t%s\\t%d\\n",a[i].id,a[i].name,a[i].sex,a[i].pay);
void main()
WOR a[6]=
"0001","陈文杰","男",1200,
"0002","张三丰","女",5000,
"0003","张四丰","女",1200,
"0004","张五丰","男",2200,
"0005","张六丰","男",5200,
"0006","张七丰","男",6200
;
output(a,6);
结构体的应用
案例一、
1、编写一个函数,它的目的是为了输出所有性别为男的的职工信息
算法分析:
1)这个函数它不用返回值因为该函数是为了完成输出
2)该函数要处理很多职工,就需要一个数组,数组的类型为职工类型
注意:在C语言当中字符串不能直接比较是否相同,要通过strcmp这个函数来比较其两个字符串是否相同
#include<stdio.h>
#include<string.h>
typedef struct worker
char id[10];
char name[10];
char sex[10];
int pay;
WOR;
void QueryWorker(WOR a[],int n)//次函数是用来输出长度为n的工人数组的信息
int i;
printf("全部员工:\\n");
printf("工号\\t姓名\\t性别\\t年龄\\n");
for(i=0;i<6;i++)
printf("%s\\t%s\\t%s\\t%d\\n",a[i].id,a[i].name,a[i].sex,a[i].pay);
printf("所有男员工:\\n");
printf("工号\\t姓名\\t性别\\t年龄\\n");
for(i=0;i<6;i++)
if(strcmp(a[i].sex,"男")==0)
printf("%s\\t%s\\t%s\\t%d\\n",a[i].id,a[i].name,a[i].sex,a[i].pay);
printf("所有女员工:\\n");
printf("工号\\t姓名\\t性别\\t年龄\\n");
for(i=0;i<6;i++)
if(strcmp(a[i].sex,"女")==0)
printf("%s\\t%s\\t%s\\t%d\\n",a[i].id,a[i].name,a[i].sex,a[i].pay);
void main()
WOR a[6]=
"0001","陈文杰","男",1200,
"0002","张三丰","女",5000,
"0003","张四丰","女",1200,
"0004","张五丰","男",2200,
"0005","张六丰","男",5200,
"0006","张七丰","男",6200
;
QueryWorker(a,6);
2、能够输出指定性别的职工
#include<stdio.h>
typedef struct worker
char id[10];
char name[10];
char sex[10];
int pay;
WOR;
void QueryBySex(WOR a[],int n,char b[])//次函数是用来输出长度为n的工人数组的信息
int i;
printf("工号\\t姓名\\t性别\\t年龄\\n");
for(i=0;i<6;i++)
if(strcmp(a[i].sex,b)==0)
printf("%s\\t%s\\t%s\\t%d\\n",a[i].id,a[i].name,a[i].sex,a[i].pay);
void main()
WOR a[6]=
"0001","陈文杰","男",1200,
"0002","张三丰","女",5000,
"0003","张四丰","女",1200,
"0004","张五丰","男",2200,
"0005","张六丰","男",5200,
"0006","张七丰","男",6200
;
char b[10];
printf("请输入您要查询的性别 :\\n");
scanf("%s",b);
QueryBySex(a,6,b);
案例二、
让用户输入一个工号,然后在一个结构体数组当中去查找有没有这个工人,如果有则输出这个工人的信息,如果没有则找不到此人
#include<stdio.h>
typedef struct worker
char id[10];
char name[10];
char sex[10];
int pay;
WOR;
void FindById(WOR a[],int n,char id[])
//我们要访问数组里面每一个工人,如果发现了一个工人,就退出循环。如果找不到就输出找不到此人
int i;
for(i=0;i<n;i++)
if(strcmp(a[i].id,id)==0)//说明第i个工人就是我们要找的职工
break;//强制终止循环
//在退出循环之后,再来检查i与n的关系
if(i<n)//说明循环在中途就break,发现了职工
printf("%s\\t%s\\t%s\\t%d\\n",a[i].id,a[i].name,a[i].sex,a[i].pay);
else//找不到职工
printf("找不到此人");
void main()
WOR a[6]=
"0001","陈文杰","男",1200,
"0002","张三丰","女",5000,
"0003","张四丰","女",1200,
"0004","张五丰","男",2200,
"0005","张六丰","男",5200,
"0006","张七丰","男",6200
;
char b[10];
printf("请输入您要查询的id :\\n");
gets(b);
FindById(a,6,b);
案例三、
求出所有职工中最高工资那个职工的信息
注意:这里有一个知识点:成员比较整体赋值
#include<stdio.h>
#include<string.h>
typedef struct worker
char id[10];
char name[10];
char sex[10];
int pay;
WOR;
void max(WOR a[],int n)
WOR m=a[0];
int i;
for(i=0;i<n;i++)
if(m.pay<a[i].pay)//如果m的工资小于a[i]的工资,就把m赋值给a[i]
m=a[i];
printf("%s\\t%s\\t%s\\t%d\\n",m.id,m.name,m.sex,m.pay);
//假设第一个工人是最高工资的那个工人
void main()
WOR a[6]=
"0001","陈文杰","男",1200,
"0002","张三丰","女",7000,
"0003","张四丰","女",1200,
"0004","张五丰","男",2200,
"0005","张六丰","男",5200,
"0006","张七丰","男",6200
;
max(a,6);
上方程序改进
输出所有工资大于平均工资的职工
1、必须要先求出平均
2、在访问每一个职工,如果发现这个职工的工资要小于平均工资的话,就输出这个职工的信息。
#include<stdio.h>
#include<string.h>
typedef struct worker
char id[10];
char name[10];
char sex[10];
int pay;
WOR;
void QueryByAver(WOR a[],int n)
int i;
float aver;
int sum = 0;
//求出总工资
for(i=0;i<n;i++)
sum+=a[i].pay;
//求出平均工资aver
aver =(float)sum/n;
printf("平均工资为%f\\n",aver);
printf("大于平均工资为:\\n");
//访问每一个职工
for(i=0;i<n;i++)
if(a[i].pay>=aver)//如果发现职工的工资大于等于平局工资,就输出对应职工的信息
printf("%s\\t%s\\t%s\\t%d\\n",a[i].id,a[i].name,a[i].sex,a[i].pay);
void main()
WOR a[6]=
"0001","陈文杰","男",3200,
"0002","张三丰","女",7000,
"0003","张四丰","女",1200,
"0004","张五丰","男",2200,
"0005","张六丰","男",5200,
"0006","张七丰","男",6200
;
QueryByAver(a,6);
算法变换
#include<stdio.h>
#include<string.h>
typedef struct stud//定义了一个结构体
char Id[10];//学号
char Name[10];//姓名
int China;//语文成绩
int Math;//数学成绩
int English;Spring,tomcat中http应用程序/json请求体的限制大小