文档库 最新最全的文档下载
当前位置:文档库 › linux实验二交叉编译和Makefile实验报告

linux实验二交叉编译和Makefile实验报告

linux实验二交叉编译和Makefile实验报告
linux实验二交叉编译和Makefile实验报告

实验二交叉编译和Makefile

一、实验目的

1.了解和掌握交叉编译模式和方法;

2.了解和掌握makefile文件的编写

3.学会使用交叉编译工具和make工具

二、实验环境

预装redhat9.0(内核版本2.4.x)的PC机一台,XScale嵌入式实验箱一台(已构建嵌入式linux系统),以太网线一根,交叉编译工具链。

三、实验步骤

1.安装交叉编译器arm-linux-gcc,并配置环境。

①解压hybus-arm-linux-R1.1.tar.gz文件。

[root @localhost ~]# cp XSBASE/xsbase/Toolchain/hybus-arm-linux-R1.1.tar.gz /usr/local [root @localhost ~]# tar zvxf /usr/local/hybus-arm-linux-R1.1.tar.gz

此时是hybus-arm-linux-R1.1.tar.gz解压完成时候的截图。

②设置路径。

[root @localhost local]# vi ~/.bash_profile

此时将会进入编辑路径的编辑框,在编辑框内添加一条路径即可。

添加的路径为:PATH=$PA TH:/usr/local/hybus-arm-linux-R1.1/bin

当编辑完上面的时候,按下ESC,然后输入":wq"退出编辑框。

③使路径生效。

[root @localhost local]# source ~/.bash_profile

④测试arm-linux-gcc是否配置成功。

当出现arm-linux-gcc:No input files的时候,说明已经配置成功,没有输入文件是说明此时没有对任何一个文件进行交叉编译。

2.Linux简单程序设计。

使用vi等编辑器编写一个简单程序,我现在是实现输出50以内的奇数和偶数。

[root @localhost ~]# mkdir 2008550533

[root @localhost ~]# cd 2008550533

[root @localhost 2008550533]# mkdir hehui

[root @localhost ~]# cd hehui

[root @localhost hehui]# vi ji_oushu.c

/*输出50以内的奇数和偶数*/

#include

void main()

{

int n=50;

int i=0,j=0;

printf("%d以内的奇数为:",n);

for(i=0;i

{

if(i%2==1)

printf("%d ",i);

}

printf("\n");

printf("%d以内的偶数为:",n);

for(j=0;j

{

if(j%2==0)

printf("%d ",j);

}

printf("\n");

}

②用gcc编译器编译并运行程序;使用file命令查看编译后的可执行文件信息。

[root @localhost hehui]# gcc ji_oushu.c -o hmily

[root @localhost hehui]# file hmily

hmily: ELF 32-bit LSB executable, Intel PXA255/210 PCHCIA, version 1 (SYSV), for GNU/Linux 2.4, dynamically linked (uses shared libs), for GNU/Linux 2.4, not stripped

③运行gcc编译出来的可执行文件。

[root @localhost hehui]# ./hmily

④使用交叉编译器编译并运行。

A.[root @localhost hehui]# arm-linux-gcc -o hmily ji_oushu.c

B.打开另外一个终端,输入minicom进入板子里去。

C.操作一下命令。

XSBase255B>boot

XSBASE login:root

[root@XSBASE /root]$ftp 192.168.0.77

ftp>get ~/hehui/hmily

然后按下Ctrl + D

[root@XSBASE /root]$chmod +x hmily

[root@XSBASE /root]$./hmily

3.Makefile文件的编写。

①编写一个文件prime.h,包含一个判断int类型的数是否为素数。

[root @localhost ~]# mkdir 2008550533/prime

[root @localhost ~]# cd 2008550533/prime

[root @localhost prime]# vi prime.h

进入prime.h编辑预定义程序。

#ifndef __PRIME_H__

#define __PRIME_H__

extern void prime(int );

#endif

当编辑完上面的prime.h程序时候,按下ESC,然后输入":wq"退出编辑框。

②编写一个prime.c,实现prime.h头文件。

[root @localhost prime]# vi prime.c

进入prime.c编辑实现判定一个是否为素数的程序。

#include

void prime(int n)

{

int i,j,m=0;

printf("素数为:\n");

for(i=2;i<=n;i++)

{

for(j=2;j

{

if(i%j==0)

break;

}

if(i==j)

{

printf("%d ",i);

m++;

if(m%5==0)

printf("\n");

}

}

}

当编辑完上面的prime.c程序时候,按下ESC,然后输入":wq"退出编辑框。

③编写一个main.c主函数,实现用户输入整数,程序告诉用户这个数是否为素数。[root @localhost prime]# vi prime.c

进入main.c编辑主函数。

#include

#include "prime.h"

void main()

{

int n=100;

prime(n);

}

当编辑完上面的main.c程序时候,按下ESC,然后输入":wq"退出编辑框。

④使用gcc编译,查看运行结果。

[root @localhost prime]# gcc prime.c -o prime_hehui

[root @localhost prime]# ./prime_hehui

⑤编写Makefile文件实现第④步功能,并使用make工具生成这个可执行文件。

[root @localhost prime]# rm -r prime_hehui

[root @localhost prime]# vi Makefile

进入Makefile编辑:

prime:prime.o main.o

gcc prime.o main.o -o prime

prime.o:prime.c

gcc -c prime.c

main.o:main.c prime.h

gcc -c main.c

clean: 37

rm -fr prime_hehui *.o

当编辑完上面的Makefile的时候,按下ESC,然后输入":wq"退出编辑框。[root @localhost prime]# make

[root @localhost prime]# ./prime_hehui

⑥使用依赖文件的预定义变量改写Makefile,实现第④步功能并使用make工具生成这个可

执行文件,并运行。

[root @localhost prime]# make clean

[root @localhost prime]# mv Makefile Makefile1

[root @localhost prime]# vi Makefile

进入Makefile编辑:

CC=gcc

CFLAGS=

OBJS=prime.o main.o

all:prime

prime:prime.o main.o

$(CC) $(CFLAGS) $^ -o $@

prime.o:prime.c

$(CC) $(CFLAGS) -c $< -o $@

main.o:main.c prime.h

$(CC) $(CFLAGS) -c $< -o $@

clean:

rm -fr prime_hehui *.o

当编辑完上面的Makefile的时候,按下ESC,然后输入":wq"退出编辑框。

[root @localhost prime]# make

[root @localhost prime]# ./prime_hehui

四、思考题

1.为什么要使用交叉编译模式?

答:交叉编译通俗地讲就是在一种平台上编译出能运行在体系结构不同的另一种平台上的程

序,比如在PC平台(X86 CPU)上编译出能运行在以ARM为内核的CPU平台上的程序,编译得到的程序在X86 CPU平台上是不能运行的,必须放ARM CPU平台上才能运行,虽然两个平台用的都是Linux系统。这种方法在异平台移植和嵌入式开发时非常有用。

2.gcc和交叉编译工具生成的可执行文件有什么不同?

答:可执行文件的目标平台不一样。你说的gcc应该是指在pc上,即x86体系结构。而交叉编译生成的应该是其他体系平台的,如ARM等只能在对应的平台上运行。

3.Makefile文件的作用?

答:Makefile文件保存了编译器和连接器的参数选项,还表述了所有源文件之间的关系(源代码文件需要的特定的包含文件,可执行文件要求包含的目标文件模块及库等).创建程序(make 程序)首先读取Makefile文件,然后再激活编译器,汇编器,资源编译器和连接器以便产生最后的输出,最后输出并生成的通常是可执行文件.创建程序利用内置的推理规则来激活编译器,以便通过对特定cpp文件的编译来产生特定的obj文件.

数据的基本统计与非参数检验

北京建筑大学 理学院信息与计算科学专业实验报告 课程名称《数据分析》实验名称数据的基本统计与非参数检验实验地点基C-423 日期2016 . 3 .17 姓名班级学号指导教师成绩 【实验目的】 (1)熟悉数据的基本统计与非参数检验分析方法; (2)熟悉撰写数据分析报告的方法; (3)熟悉常用的数据分析软件SPSS。 【实验要求】 根据各个题目的具体要求,完成实验报告 【实验内容】 根据附件“住房状况调查”给出的相关数据,请选用恰当的分析方法,分别对数据的“家庭收入”、“现住面积”,进行数据的基本统计量分析,撰写相应的分析报告; 根据附件“住房状况调查”给出的相关数据,请选用恰当的分析方法,分别分析不同学历对家庭收入、现住面积是否有显著影响,撰写相应的分析报告。 根据附件“住房状况调查”给出的相关数据,请选用恰当的分析方法,分析家庭收入与10000元是否有显著差异,撰写相应的分析报告。 根据附件“住房状况调查”给出的相关数据,请选用恰当的分析方法,分析婚姻状况对家现住面积是否有显著影响,撰写相应的分析报告。 根据附件“减肥茶数据”给出的相关数据,请选用恰当的分析方法,分析该减肥茶对减肥是否有显著影响,撰写相应的分析报告。 【分析报告】 1. 表一家庭收入和现住面积的基本描述统计量 家庭收入现住面积 N 有效2993 2993 缺失0 0 均值17696.1567 62.7241

均值的标准误279.64310 .47349 中值15000.0000 60.0000 众数10000.00 60.00 标准差15298.80341 25.90383 方差 2.341E8 671.008 偏度 5.546 .910 偏度的标准误.045 .045 峰度55.425 3.078 峰度的标准误.089 .089 百分位数25 10000.0000 45.0000 50 15000.0000 60.0000 75 20000.0000 80.0000 表一说明, 家庭收入方面: 被调查者中家庭收入的均值为17696.16元,中值为15000元,普遍收入为10000元; 家庭收入的标准差和方差都相对较大,所以,各家庭收入之间有明显的差异; 偏度大于零,说明右偏;峰度大于零,说明数据呈尖峰分布; 由家庭收入的四分位数可知,25%的家庭,收入在10000以下,有50%的家庭,收入在15000以下,有75%的家庭,收入在20000以下; 现住面积方面: 被调查者中现住面积的均值为62.724平方米,中值为60平方米,普遍面积为60平方米; 现住面积的标准差和方差都相对较大,所以,各家庭现住面积之间有明显的差异; 偏度近似等于零,说明现住面积数据对称分布;峰度大于零,说明现住面积数据为尖峰分布; 由现住面积的四分位数可知,25%的家庭,现住面积为45平方米以下,有50%的家庭,现住面积在60平方米以下,有75%的家庭,现住面积在80平方米以下。 图一:家庭收入直方图 该图表明,家庭收入分布存在一定的右偏。 图二:现住面积直方图

编译原理实验报告语法分析程序的设计

编译原理实验报告语法分析程序的设计 文档编制序号:[KK8UY-LL9IO69-TTO6M3-MTOL89-FTT688]

实验5语法分析程序的设计(2) 一、实验目的 通过设计、编制、调试一个典型的语法分析程序,实现对词法分析程序所提供的单词序列进行语法检查和结构分析,进一步掌握常用的语法分析中算法优先分析方法。 二、实验内容 设计一个文法的算法优先分析程序,判断特定表达式的正确性。 三、实验要求 1、给出文法如下: G[E] E->T|E+T; T->F|T*F; F->i|(E); +*()i + * ( ) i 21)直接存放,2)为优先关系建立优先函数,这里由学生自己选择一种方式; 1、给出算符优先分析算法如下: k:=1; S[k]:=‘#’; REPEAT 把下一个输入符号读进a中; IF S[k]∈V T THEN j:=k ELSE j:=k-1; WHILE S[j] a DO BEGIN

REPEAT Q:=S[j]; IF S[j-1]∈V T THEN j:=j-1 ELSE j:=j-2 UNTIL S[j] Q 把S[j+1]…S[k]归约为某个N; k:=j+1; S[k]:=N; END OF WHILE; IF S[j] a OR S[j] a THEN BEGIN k:=k+1;S[k]:=a END ELSE ERROR UNTIL a=‘#’ 1、根据给出算法,利用适当的数据结构实现算符优先分析程序; 2、利用算符优先分析程序完成下列功能: 1)手工将测试的表达式写入文本文件,每个表达式写一行,用“;”表示结束; 2)读入文本文件中的表达式; 3)调用实验2中的词法分析程序搜索单词; 4)把单词送入算法优先分析程序,判断表达式是否正确(是否是给出文法的语言),若错误,应给出错误信息; 5)完成上述功能,有余力的同学可以对正确的表达式计算出结果。四、实验环境 PC微机 DOS操作系统或 Windows 操作系统 Turbo C 程序集成环境或 Visual C++ 程序集成环境 五、实验步骤

LINUX实验报告

实验报告 ( 2014/ 2015 学年第一学期) 课程名称操作系统A 实验名称文件系统 实验时间2014 年12 月8 日指导单位计算机学院计算机科学与技术系 指导教师徐鹤 学生姓名王生荣班级学号B12040809 学院(系) 计算机学院专业软件工程

实验名称文件系统指导教师徐鹤 实验类型设计实验学时 2 实验时间2014.12.08 一、实验目的和要求 1. 学习LINUX系统下对文件进行操作的各种命令和图形化界面的使用方法。 2. 深入学习和掌握文件管理系统的基本原理和LINUX等操作系统下常用的系统调用,编写一个使用系统调用的例程。 3.实现一个文本文件的某信息的插入和删除 4.实现一个记录文件的某记录的插入和删除 二、实验环境(实验设备) Windows XP + VMWare + RedHat Linux 8

三、实验过程描述与结果分析 1. 目录/proc下与系统相关的文件和目录 (1) /proc/$pid/fd:这是一个目录,该进程($PID号码进程)每个打开的文件在该目录下有一个对应的文件。 例如:#ls /proc/851/fd 0 1 2 255 这表示,851号进程目前正在使用(已经打开的)文件有4个,它们的描述符分别是0、1、2、255。其中,0、1、2 依次分别是进程的标准输入、标准输出和标准错误输出设备。 (2)/proc/filesystems:该文件记录了可用的文件系统类型。 (3)/proc/mounts:该记录了当前被安装的文件系统信息 例如:#cat /proc/mount (4)/proc/$pid/maps:该文件记录了进程的映射内存区信息。 例如:#cat /proc/851/maps 2.常用命令讲解 ls 命令 用来查看用户有执行权限的任意目录中的文件列表,该命令有许多有趣的选项。例如: $ ls -liah * 22684 -rw-r--r-- 1 bluher users 952 Dec 28 18:43 .profile

2《Linux基础》实验报告 基本配置Linux

实验序号: 2 《Linux基础》 实验报告 实验名称:基本配置Linux操作系统 姓名: 学院:计算机学院 专业: 班级: 学号: 指导教师: 实验地址:N6-113 实验日期:2017.3.7

说明 一.排版要求 1.实验报告“文件名”按模板要求填写。 2.一级标题:顶格排版。汉字用宋体,阿拉伯数字用Times New Roman字 体,四号字体,加粗。 3.二级标题:顶格排版。汉字用宋体,阿拉伯数字用Times New Roman字 体,小四号字体,加粗。 4.三级标题:顶格排版。汉字用宋体,阿拉伯数字用Times New Roman字 体,五号字体。 5.正文:每段缩进量:2个汉字。两端对齐;汉字用宋体,阿拉伯数字用 Times New Roman字体,五号字体。 6.图形要求 (1)在正文中要有引用。 (2)要有图名,图名位于图的下方,汉字用宋体,阿拉伯数字用Times New Roman字体,五号字体。 (3)图和图名“居中”。 7.表格要求 (1)在正文中要有引用。 (2)要有表名,表名位于表的上方,汉字用宋体,阿拉伯数字用Times New Roman字体,五号字体。 (3)表和表名“居中”。 二.注意事项 1.复制、拷贝、抄袭者取消成绩。 2.没有安实验报告排版要求者不及格。

实验2基本配置Linux操作系统实验 【实验目的】 1.。。。。 2.。。。。 3.。。。。 4.思考: (1)Linux默认的系统超级管理员帐户是什么? (2)Linux的操作系统引导器是什么?它有哪几种的操作界面? (3)RHEL的支持哪几种X-Window图形管理器?默认是使用哪一种?(4)RHEL支持哪几种Shell?默认是使用哪一种? 【实验原理】 1.。。。 。。。 2.。。。 。。。 (1)。。。 。。。 (2)。。。 。。。 3.。。 【实验环境】 1.实验配置 本实验所需的软硬件配置如表1所示。 表1 实验配置 本实验的环境如图1所示。

北京科技大学编译原理实验报告

编译原理实验报告 学院: 计算机与通信工程学院专业: 计算机科学与技术 班级: 学号: 姓名: 实验成绩:

词法分析 一、实验目的 设计、编制并调试一个词法分析程序,加深对词法分析原理的理解。 二、实验要求 2.1 待分析的简单的词法 (1)关键字: begin if then while do end 所有的关键字都是小写。 (2)运算符和界符 := + - * / < <= <> > >= = ; ( ) # (3)其他单词是标识符(ID)和整型常数(SUM),通过以下正规式定义: ID = letter (letter | digit)* NUM = digit digit* (4)空格有空白、制表符和换行符组成。空格一般用来分隔ID、SUM、运算符、界符和关键字,词法分析阶段通常被忽略。 2.2 各种单词符号对应的种别码: 输入:所给文法的源程序字符串。 输出:二元组(syn,token或sum)构成的序列。 其中:syn为单词种别码; token为存放的单词自身字符串; sum为整型常数。 例如:对源程序begin x:=9: if x>9 then x:=2*x+1/3; end #的源文件,经过词法分析后输出如下序列: (1,begin)(10,x)(18,:=)(11,9)(26,;)(2,if)…… 三、词法分析程序的算法思想: 算法的基本任务是从字符串表示的源程序中识别出具有独立意义的单词符号,其基本思想是根据扫描到单词符号的第一个字符的种类,拼出相应的单词符号。 3.1 主程序示意图:

3.2词法分析程序流程图: 四、词法分析程序的C++语言程序源代码: #include"stdio.h" #include"stdlib.h" #include"string.h" #define _KEY_WORD_END "waiting for your expanding" typedef struct 开始 变量初始化 是否文件结束? 返回 拼数 Syn=11 返回 拼字符串 是否是关键字? Syn 为对应关键字的单词种别码 Syn=10 给不同的符号相同的 Syn 值 报错 是 否 数字 字母 是 否 运算符, 界符等 其他

linux操作系统实验报告要点

LINUX操作系统实验报告 姓名 班级学号 指导教师 2011 年05月16 日 实验一在LINUX下获取帮助、Shell实用功能 实验目的: 1、掌握字符界面下关机及重启的命令。 2、掌握LINUX下获取帮助信息的命令:man、help。 3、掌握LINUX中Shell的实用功能,命令行自动补全,命令历史记录,命令的排列、替

换与别名,管道及输入输出重定向。 实验内容: 1、使用shutdown命令设定在30分钟之后关闭计算机。 2、使用命令“cat /etc/cron.daliy”设置为别名named,然后再取消别名。 3、使用echo命令和输出重定向创建文本文件/root/nn,内容是hello,然后再使用追加重定向输入内容为word。 4、使用管道方式分页显示/var目录下的内容。 5、使用cat显示文件/etc/passwd和/etc/shadow,只有正确显示第一个文件时才显示第二个文件。 实验步骤及结果: 1.用shutdown命令安全关闭系统,先开机在图形界面中右击鼠标选中新建终端选项中输入 命令Shutdown -h 30 2、使用命令alias将/etc/cron.daliy文件设置为别名named,左边是要设置的名称右边是要更改的文件。查看目录下的内容,只要在终端输入命令即可。取消更改的名称用命令unalias 命令:在命令后输入要取消的名称,再输入名称。 3.输入命令将文件内容HELLO重定向创建文本文件/root/nn,然后用然后再使用追加重定向输入内容为word。步骤与输入内容HELLO一样,然后用命令显示文件的全部内容。 4.使用命令ls /etc显示/etc目录下的内容,命令是分页显示。“|”是管道符号,它可以将多个命令输出信息当作某个命令的输入。

编译原理实验报告二

编译原理实验报告 题目构造识别字符串的自动机学院 专业 班级 学号 学生姓名 指导教师 西安思源学院教务处制 二〇一年

实验二构造识别符号串的自动机 一、实验目的 1 掌握形式语言与自动机的概念 2 了解正规集及有穷自动机的关系 3 能构造识别相应符号串的自动机 4 能构造词法分析程序所识别的各类单词的自动机 二、实验环境 Microsoft Visual C++ 6.0 三、实验内容 1 用高级语言编写程序:该程序能接受C++所有的标识符。 2 用高级语言编写程序:该程序能接受C++所有的常数(整数和定点小数)。 3 用高级语言编写程序:该程序能接受C++的所有保留字。 4 用高级语言编写程序:该程序能接受C++的所有界符、运算符。 四、设计说明 void main() { void find_word(); void show_all(); void Input(); Input(); cout<<"运行结果如下"<'||ch[i]=='('||ch[i]==')') { c[t]=ch[i]; t++; k++; j++; } else if(ch[i]==' '||ch[i]=='\t') { b[k]=' ';

linux实验报告

实验一 实验名称:Linux 基本命令的使用 实验时间:2学时 实验目的:熟练使用Linux字符界面、窗口系统的常用命令。 实验内容 (一)Linux操作基础 1.重新启动linux或关机(poweroff,shutdown,reboot,init 0,init 6) 2.显示系统信息(uname),显示系统日期与时间,查看2014年日历(date,cal) ①uname:查看系统与内核相关信息 uname -asrmpi 参数: -a :所有系统相关的信息; -s: 系统内核名称; -r: 内核的版本; -m:本系统的硬件名称,如i686或x86_64; -p: CPU的类型,与-m类似,只是显示的是CPU的类型; -i :硬件的平台(ix86). ②date:显示日期的命令 ③cal:显示日历 单独cal:列出当前月份的日历 cal 2014:列出2014年的日历 cal 5 2014:列出2014年五月的目录 3.使用帮助命令(man,help) ①man:是manual(操作说明)的简写,是在线帮助系统 man后跟某个命令就会详细说明此命令,例如:man man就会详细说明man 这个命令的用法; ②help:也是帮助命令,一般会在命令后,例如:cd --help 就会列出cd命令的使用说明。 4.查看当前登陆用户列表(who),显示当前用户(whoami) ①who:显示目前已登录在系统上面的用户信息; ②whoami:查询当前系统账户 5.建立一个新用户mytest,设定密码(useradd,passwd) ①useradd mytest(建立新用户mytest);

编译原理词法分析实验报告

词法分析器实验报告 一、实验目的 选择一种编程语言实现简单的词法分析程序,设计、编制并调试一个词法分析程序,加深对词法分析原理的理解。 二、实验要求 待分析的简单的词法 (1)关键字: begin if then while do end 所有的关键字都是小写。 (2)运算符和界符 : = + - * / < <= <> > >= = ; ( ) # (3)其他单词是标识符(ID)和整型常数(SUM),通过以下正规式定义: ID = letter (letter | digit)* NUM = digit digit* (4)空格有空白、制表符和换行符组成。空格一般用来分隔ID、SUM、运算符、界符和关键字,词法分析阶段通常被忽略。 各种单词符号对应的种别码: 表各种单词符号对应的种别码 词法分析程序的功能: 输入:所给文法的源程序字符串。 输出:二元组(syn,token或sum)构成的序列。 其中:syn为单词种别码; token为存放的单词自身字符串; sum为整型常数。 例如:对源程序begin x:=9: if x>9 then x:=2*x+1/3; end #的源文件,经过词法分析后输出如下序列: (1,begin)(10,x)(18,:=)(11,9)(26,;)(2,if)…… 三、词法分析程序的算法思想: 算法的基本任务是从字符串表示的源程序中识别出具有独立意义的单词符号,其基本思想是根

据扫描到单词符号的第一个字符的种类,拼出相应的单词符号。 主程序示意图: 主程序示意图如图3-1所示。其中初始包括以下两个方面: ⑴关键字表的初值。 关键字作为特殊标识符处理,把它们预先安排在一张表格中(称为关键字表),当扫描程序识别出标识符时,查关键字表。如能查到匹配的单词,则该单词为关键字,否则为一般标识符。关键字表为一个字符串数组,其描述如下: Char *rwtab[6] = {“begin”, “if”, “then”, “while”, “do”, “end”,}; 图3-1 (2)程序中需要用到的主要变量为syn,token和sum 扫描子程序的算法思想: 首先设置3个变量:①token用来存放构成单词符号的字符串;②sum用来整型单词;③syn 用来存放单词符号的种别码。扫描子程序主要部分流程如图3-2所示。

Linux常用命令实验报告

实验二 姓名:陈辉龙学号:201407010201 班级:14计科(1)一.实验目的: 掌握Linux常见命令,为今后的实验打下良好的基础。 二.实验内容 1.新建用户为chenhuilong,配置密码为passwd: 2.切换到chenhuilong用户,并在/home/chenhuilong目录下新建文件夹dir: 3.在文件夹dir下新建文件hello(内容为"printf hello world!"),并将其拷贝至/home/user目录: 4.统计/home/user目录下文件的个数,包括子目录里的首字符为-的普通文件:

5.统计/home下目录的个数,包括子目录里的目录: 6.显示/home/user目录下名为hello的文件的行数、字数以及字符数(使用输入重定向): 7.将上步的结果输出重定向到名为cnt_hello的文件: 8.删除/home/user目录下的hello文件: 9.进入/home/user/dir文件夹,将hello文件属性变为-rwxrw-r--(使用符号标记方式),并为hello文件在/home/user目录下建立软链接,链接文件名为link_hello:

10.查看/home/user/dir/hello文件的详细信息: 11.切换至根目录下查找hello文件: 12.打包home/user/dir/hello文件,并进行压缩,然后再进行解压缩解包: 13.退出user用户,删除/home/user文件夹:

14.将文件夹/home的所有者改为user用户,并删除user用户: 三.实验总结: 本实验旨在熟悉Unix的常用命令,实验较简单,操作起来还算顺利,做了一遍感觉还不是很熟悉,因此做了两遍,第二遍就很得心顺手。通过这次实验,熟悉了一些常用的命令操作,为以后的学习打下坚实的基础,提高自己的动手能力。

spss实验报告——非参数检验

实验报告 ——(非参数检验) 实验目的: 1、学会使用SPSS软件进行非参数检验。 2、熟悉非参数检验的概念及适用范围,掌握常见的秩和检验计算方法。 实验内容: 1、某公司准备推出一个新产品,但产品名称还没有正式确定,决定进行抽样调 查,在受访200人中,52人喜欢A名称,61人喜欢B名称,87人喜欢C 名称,请问ABC三种名称受欢迎的程度有无差别?(数据表自建) SPSS计算结果如下: 此题为总体分布的卡方检验。 零假设:样本来自总体分布形态和期望分布没有显著差异。即ABC三种名称受欢迎的程度无差别,分布形态为1:1:1,呈均匀分布。 观察结果,上表为200个观察数据对A、B、C三个名称(分别对应1,2,3)的喜爱的期望频数以及实际观察频数和期望频数的差。从下表中可以看出相伴概

率值为0.007小于显著性水平0.05,因此拒绝零假设,认为样本来自的总体分布与制定的期望分布有显著差异,即A、B、C三种名称受欢迎的程度有差异。 2、某村庄发生了一起集体食物中毒事件,经过调查,发现当地居民是直接饮用 河水,研究者怀疑是河水污染所致,县按照可疑污染源的大致范围调查了沿河居民的中毒情况,河边33户有成员中毒(+)和均未中毒(-)的家庭分布如下:(案例数据run.sav) -+++*++++-+++-+++++----++----+---- 毒源 问:中毒与饮水是否有关? SPSS计算结果如下: 此题为单样本变量值随机检验 零假设:总体某变量的变量值是随机出现的。即中毒的家庭沿河分布的情况随机分布,与饮水无关。 相伴概率为0.036,小于显著性水平0.05,拒绝零假设,因此中毒与饮水有关。 3、某试验室用小白鼠观察某种抗癌新药的疗效,两组各10只小白鼠,以生存日数作为观察指标,试验结果如下,案例数据集为:npara1.sav,问两组小白鼠生存日数有无差别。 试验组:24 26 27 30 32 34 36 40 60 天以上 对照组:4 6 7 9 10 10 12 13 16 16 SPSS计算结果如下: 此题为两独立样本非参数检验。 (1)两独立样本Mann-Whitney U检验:

实验一 Linux基本操作实验报告

实验一Linux基本操作 一.实验目的: 1. 二.实验环境: 虚拟机+Red Hat Enterprise Server 5.0 三.实验内容: 根据以下的文字提示,调用相应的命令来完成,记录相应的运行结果。一)用户和组基本操作 1.添加一个user01用户,家目录为/home/sub2,并设置密码 2.添加一个group1 组 3.将user01用户添加到group1组中 4.修改group1组名称为group2 5.修改user01的家目录为/home/user01 6.判断/etc/password这个目录是否包含user01这个用户 7.修改user01的shell为/bin/tcsh 8.添加一个group3组,把user01和root用户都添加到该组

https://www.wendangku.net/doc/c714857857.html,er01用户从group2组切换到group3组 10.设置user01的密码在2012-5-20过期 11.把/home/user01目录所属的组修改为group3 12.删除user01帐号 13.查看内核版本号 二)进程管理 1.运行cat命令:vi test,输入若干字符如this is a example,挂起vi进程 2.显示当前所有作业 3.将vi进程调度到前台运行

4.将vi进程调度到后台并分别用kill/pkill/killall命令结束该该进程。 三)磁盘管理 1.通过fdisk 将为硬盘增加一个分区(主分区或者逻辑分区)。 2.并格式化ext3系统,

3.检测分区是否有坏道 4.检测分区的完整性 5.加载分区到/mnt目录(或者其他分区)下,并拷贝一些文件到该目录下 6.(选做)为test用户设置磁盘配额(软限制和硬限制参数自行设定) 7.退出/mnt目录后卸载该分区 8.用du查看/usr目录的大小

简单反应时实验报告

标题:视觉简单反应时实验报告 作者:孙洁肖红艳普凤梅 班级:09应用心理学 学号:20091740107 20091740109 20091740126 日期:2011年6月24日

视觉简单反应时实验报告 孙洁(20091740107)肖红艳(20091740109)普凤梅(20091740126) (云南民族大学教育学院2009级应用心理学专业昆明 650031) 摘要:本实验采用闪电测反应速度测定装置测量了35名被试的视觉简单反应时,计算了其中3名被试的视觉简单反应时均值及标准差,进行了相应的比较;并对35名被试进行了视觉简单反应时的差异显著性检验,经过分析得到实验结果:(1)3名被试的视觉简单反应时存在很大的差异,特别是被试3的反应时与被试1、被试2的差异很明显;(2)全体被试的视觉简单反应时存在显著性差异,但在35名被试内进行的性别与组别的T检验都得出被试简单反应时不存在显著差别的结果,即本次实验没有存在练习效应。这与前人的实验研究结果相一致,也验证了实验假设的正确性。 关键词:简单反应时;视觉;差异 1.引言 1.1有关反应时的概念 反应时(简称RT)指刺激作用于有机体后到明显的反应开始时所需要的时间。刺激作用于感官引起感官的兴奋,兴奋传到大脑,并对其加工,再通过传出通路传到运动器官,运动反应器接受神经冲动,产生一定反应,这个过程可用时间作为标志来测量,这就是反应时。反应时最早由天文学家发现,后由生理学家和心理学家加以研究和发展。1873年,奥地利生物学家Exner首先提出“反应时间”这个概念。以后Wundt(冯特)把反应时间引用到他的心理实验室里,使得反应时间直接成为了心理学的研究课题。反应时是心理学研究中最重要的反应变量和指标之一,使用反应时作为指标的实验研究,曾对解决心理学理论问题和生活实际问题起到相当大的作用。 通常,反应时可分为简单反应时和选择反应时两类。简单反应时是指给被试呈现单一的刺激,只要求做单一的反应,并且两者是固定不变的,这时刺激与反应之间的时距就是简单反应时。简单反应时的实验已有一百多年的历史,最早始于天文学家对“人差方程”的研究,赫希(Hirsch, A.)在1861-1865 年间测量了视听与触觉的“生理时间”得到简单反应时的时值,光为180ms,声为140ms,触觉为140ms,这些数据到今天还算是相当标准的。 简单反应时比较短,并且具有通道差异性,因为感官换能的时间不同,研究表明训练有素的成人其视觉的简单反应时为150-230ms;此外反应时的个体差异也很大,所以我们提出假设:全体被试的视觉简单反应时存在显著性差异。 1.2实验目的 本实验涉及的是有关视觉简单反应时的研究。验的目的是:(1)学习视觉简单反应时的测定方法及其实验材料的整理与数据的处理;(2)学会比较视觉简单反应时的个体差异,分析全体被试视觉简单反应时是否存在显著性差异。1.3 实验指导语 这是一次视觉反应时间的测量实验,当你听到“预备”口令后,请你注意电脑屏幕的刺激呈现窗;当你看到闪电刺激后,就迅速按“OK”键(鼠标左键)上。不能提前按键或延迟较长时按键,否则测量无效,并重开一组。

编译原理实验报告总结

学年第学期《编译原理》实验报告 学院(系):计算机科学与工程学院 班级:11303070A 学号:11303070*** 姓名:无名氏 指导教师:保密式 时间:2016 年7 月

目录 1.实验目的 (1) 2.实验内容及要求 (1) 3.实验方案设计 (1) 3.1 编译系统原理介绍 (1) 3.1.1 编译程序介绍 (2) 3.1.2 对所写编译程序的源语言的描述 (2) 3.2 词法分析程序的设计 (3) 3.3 语法分析程序设计 (4) 3.4 语义分析和中间代码生成程序的设计 (4) 4. 结果及测试分析 (4) 4.1软件运行环境及限制 (4) 4.2测试数据说明 (5) 4.3运行结果及功能说明 (5) 5.总结及心得体会 (7)

1.实验目的 根据Sample语言或者自定义的某种语言,设计该语言的编译前端。包括词法分析,语法分析、语义分析及中间代码生成部分。 2.实验内容及要求 (1)词法分析器 输入源程序,输出对应的token表,符号表和词法错误信息。按规则拼单词,并转换成二元形式;滤掉空白符,跳过注释、换行符及一些无用的符号;进行行列计数,用于指出出错的行列号,并复制出错部分;列表打印源程序;发现并定位词法错误; (2)语法分析器 输入token串,通过语法分析,寻找其中的语法错误。要求能实现Sample 语言或自定义语言中几种最常见的、基本的语法单位的分析:算术表达式、布尔表达式、赋值语句、if语句、for语句、while语句、do while语句等。 (3)语义分析和中间代码生成 输入token串,进行语义分析,修改符号表,寻找其中的语义错误,并生 成中间代码。要求能实现Sample语言或自定义语言中几种最常见的、基本的语法单位的分析:算术表达式、布尔表达式、赋值语句、if语句、for语句、while 语句、do while语句等。 实验要求:功能相对完善,有输入、输出描述,有测试数据,并介绍不足。3.实验方案设计 3.1 编译系统原理介绍 编译器逐行扫描高级语言程序源程序,编译的过程如下: (1).词法分析 识别关键字、字面量、标识符(变量名、数据名)、运算符、注释行(给人看的,一般不处理)、特殊符号(续行、语句结束、数组)等六类符号,分别归类等待处理。 (2).语法分析 一个语句看作一串记号(Token)流,由语法分析器进行处理。按照语言的文法检查判定是否是合乎语法的句子。如果是合法句子就以内部格式保存,否则报错。直至检查完整个程序。 (3).语义分析 语义分析器对各句子的语法做检查:运算符两边类型是否相兼容;该做哪些类型转换(例如,实数向整数赋值要"取整");控制转移是否到不该去的地方;是

Linux实验报告

Linux实验 一、实验目的 1. 了解Linux基本使用方法; 2. 掌握Linux基本设置方式; 3. 掌握Linux基本操作命令使用。 二、内容要求 1. 了解进程管理、文件管理与内存管理 2.掌握系统设置文件与命令 3. 熟练使用系统操作与维护命令 4. 熟练使用系统操作与维护命令 三、实验原理 Linux 系统常用命令格式: command [option] [argument1] [argument2] ... 其中option以“-”开始,多个option可用一个“-”连起来,如 “ls-l -a”与“ls-la”的效果是一样的。根据命令的不同,参数 分为可选的或必须的;所有的命令从标准输入接受输入,输出结果显示在 标准输出,而错误信息则显示在标准错误输出设备。可使用重定向功能对这 些设备进行重定向。如: ls –lh > a.txt 命令在正常执行结果后返回一个0值,如果命令出错可未完全完成,则返回 一个非零值(在shell中可用变量$?查看)。在shell script中可用此返 回值作为控制逻辑的一部分。 DSL命令操作: 帮助命令: man 获取相关命令的帮助信息 例如:man dir 可以获取关于dir的使用信息。 info 获取相关命令的详细使用方法 例如:info info 可以获取如何使用info的详细信息。 基本操作: echo 显示字符串 pwd 显示当前工作目录 ls 查看当前文件夹内容 ls -a 查看当前文件夹内容(包括隐藏项) ls -l 查看当前文件夹内容(详细) ls / 查看根目录内容 cd / 移动到根目录

pwd 显示当前工作目录 ls -al 查看根目录文件夹内容(详细情况并包括隐藏项) cd /home/dsl 回到“家”目录 pwd 显示当前工作目录 df -h 显示剩余磁盘空间,参数“-h”表示适合人读取(human readable) du -h 显示文件夹(及子文件夹)所占空间 mkdir fd0 在当前目录下创建目录fd0 touch a.txt 创建一个空文件a.txt ls / -lh > a.txt 利用重定向功能将根目录中的内容写入a.txt。 cat a.txt 显示a.txt内容 wc a.txt 显示a.txt的行数,字数与字节数 find / -name *conf 在根目录下(包括子目录)查找以conf结尾的文件 sudo mount /dev/fd0 fd0 将软盘镜像挂载到目录fd0上 cd fd0 进入软盘镜像所挂载的目录 ls -lh 查看软盘镜像中的文件 cd .. “..”表示进入上一层目录 gzip a.txt 使用gzip压缩a.txt ls -lh 查看当前文件夹 sudo cp a.txt.gz fd0/ 将a.txt复制到fd0目录下,即将其复制到软盘镜像中 sudo mv fd0/a.txt.gz ./ 将a.txt移动到当前目录下,“.”表示当前目录 sudo umount /dev/fd0 将软盘镜像卸载 ls fd0 显示fd0 目录内容 gzip -d a.txt.gz 解压缩a.txt.gz ls -lh 查看当前文件夹 权限管理: 假设当前处于/home/dsl 目录下,且有a.txt(文件)与fd0(目录),当前用户名为dsl。 sudo cat /etc/passwd 用户 sudo cat /etc/shadow 密码 sudo cat /etc/group 组 users 查看当前登录用户 sudo chmod -x fd0 更改文件夹权限 ls fd0 fd0不能被执行,则意味着无法打开! sudo chmod +x fd0 更改文件夹权限 ls fd0 fd0能被打开 sudo chown root fd0 更改目录fd0的所有者 ls -lh 注意看fd0目录的属性 sudo chown dsl:root fd0 更改目录fd0的所有者为dsl,所属组为root ls -lh 注意看fd0目录的属性 chmod a-r a.txt 现在a.txt不具有“读”权限,不能被读取

武汉理工大学编译原理实验报告

武汉理工大学 学生实验报告书 实验课程名称编译原理课程实验 开课学院计算机科学与技术学院指导老师姓名饶文碧 学生姓名徐强国 学生专业班级软件 1602 2018 —2019 学年第1 学期

实验课程名称:编译原理

依次输入关键字,自定义标识符 BBBJKJL KJKJ4234,整数 3432,特 殊符号和其他符号:. {} []。 二、实验结果及分析(包括结果描述、实验现象分析、影响因素讨论、综合分析和结论等)输出为:

三、实验小结、建议及体会 通过这次的词法分析实验,我遇到了不少问题。对于输入字符串的直接处理,首先是分类情况的不完整(起初忽略了对关键字的判断),造成输出结果与预想有很大偏差。总结下:作为编译的第一步,词法分析将高级语言一步步分解,然后转化为自己的语言,这是一个严谨有十分有趣的过程。

核心代码: struct word //存储关键字,特殊符号 { int code; char T[max]; }; word important[5]; //结构体变量存储关键字 word num; //结构体变量存储数字 word identifier; //结构体变量存储标识符 word special_symbol[7]; //结构体变量存储特殊符号 int function(word* a, word b, word c, word* d, char* input, int k) { char getword[max]; int j = 0; if (input[j] == ' ') // 判断空格 { k = k + j + 1; function(a, b, c, d, input + j + 1, k); } else if (input[j] == '=' || input[j] == '+' || input[j] == ',' || input[j] == '(' || input[j] == ')') //判断特殊符号 { if (input[j] == '*') { getword[j] = input[j]; j = j + 1; if (input[j] == '*') { } else { } else { } getword[j] = input[j]; cout << '(' << d[3].code << ',' << d[3].T << ')' << endl; j = j - 1; cout << '(' << d[2].code << ',' << d[2].T << ')' << endl; getword[j] = input[j]; for (int i = 0; i < 7; i++) { if (i == 3) continue;

linux基础实验报告含代码

Linux基础实验

目录 实验一 (3) 实验二 (4) 实验三 (6) 实验四 (9) 实验五 (11) 实验六 (14) 实验七 (16)

实验一螺旋矩阵 一、实验目的 1.熟悉linux下c程序编写。 2.掌握Makefile编写方法。 二、实验环境和工具 Red Hat Linux 三、实验流程 1.编写螺旋矩阵程序 2.编写Makefile文件 四、实验结果 五、实验心得 通过这次实验,我熟悉了linux下c语言程序的编写,掌握了vi的一些常用操作,学会了使用gcc命令和makefile文件两种方法编译程序。同时也使我熟悉了linux里常用命令的使 用,还有,学会了挂载U盘的方法,可以很方便的往linux里传送文件。 六、关键代码 Makefile 文件 CC=gcc EXEC=juzhen OBJS=juzhen.o all:$(EXEC) $(EXEC):$(OBJS) $(CC) -o $@ $(OBJS) clean: -rm -f $(EXEC) $(OBJS)

实验二添加、删除用户 一、实验目的 1.设计一个shell程序,分组批量添加用户。 2.再设计一个批量删除用户的shell程序。 二、实验环境和工具 Red Hat Linux 三、实验流程 1.编写shell程序 2.修改文件权限 chmod +x addusers 3.运行脚本 四、实验结果 添加用户: 删除用户:

五、实验心得 通过本次实验,我了解了shell脚本编程的方法和其语法规则。掌握了使用shell脚本程序添加、删除用户的方法。需要注意的是:shell脚本直接用vi编写,要特别注意空格。 六、关键代码 添加用户: 删除用户:

非参数检验实验报告

实验报告 非参数检验 学院: 参赛队员: 参赛队员: 参赛队员: 指导老师:

目录 一、实验目的 (1) 1.了解假设检验的基本内容; (1) 2.了解卡方检验; (1) 3.了解二项分布检验; (1) 4.了解两个独立样本检验; (1) 5.学会运用spss软件求解问题; (1) 6.加深理论与实践相结合的能力。 (1) 二、实验环境 (1) 三、实验方法 (1) 1.卡方检验; (1) 2.二项分布检验; (1) 3.两个独立样本检验。 (1) 四、实验过程 (1) 问题一: (1) 1.1实验步骤 (2) 1.1.1输入数据 (2) 1.1.2选择:数据 加权个案 (2) 1.1.3选择:分析→非参数检验→旧对话框→卡方 (2) 1.1.4将变量面值放入检验变量列表 (3) 1.1.5观察结果 (3) 1.2输出结果 (3) 1.3结果分析 (3) 问题二: (3) 2.1问题叙述 (3) 2.2提出假设 (4) 2.3实验步骤 (4) 2.3.1导入excel文件数据 (4) 2.3.2二项分布检验 (5) 2.3.3输出结果 (6) 2.4结果分析 (6) 问题三: (6) 3.1实验步骤 (6) 3.1.1数据的输入 (6) 3.1.2选择 (7) 3.1.3检验变量 (7) 3.2输出结果 (7) 3.3结果分析 (9) 五、实验总结 (9)

参数检验 一、实验目的 1.了解假设检验的基本内容; 2.了解卡方检验; 3.了解二项分布检验; 4.了解两个独立样本检验; 5.学会运用spss软件求解问题; 6.加深理论与实践相结合的能力。 二、实验环境 Spss、office 三、实验方法 1.卡方检验; 2.二项分布检验; 3.两个独立样本检验。 四、实验过程 问题一:

Linux实验报告

燕山大学 Linux技术上机实验指导

实验一Linux系统安装与简单配置 一、实验目的 1.掌握Linux系统安装的分区准备。 2.掌握Linux系统的安装步骤。 3.掌握Linux系统分区的挂载和卸载。 4.掌握Linux系统的启动和关闭操作。 二、实验内容 1.安装VMware虚拟机,设置光盘驱动器,为Linux系统安装做准备。2.在虚拟机下安装Linux操作系统(如Ubuntu桌面版本)。 3.配置Linux系统运行环境。 4.利用空闲分区创建新的Linux系统分区。 5.将新的Linux系统分区挂载到系统中;卸载新挂载的分区,重新挂载到目录树中的其他位置。 三、主要的实验步骤 1.制定安装系统的分区计划。 2.配置光驱引导镜像文件iso,启动系统,开始安装过程。 3.根据安装计划,对磁盘空间进行分区设置。 4.根据系统安装指导,完成Linux系统的安装过程。 5.安装成功后,退出系统,重新启动虚拟机,登陆Linux操作系统。6.对Linux系统进行配置,如网络设备等。 7.利用磁盘使用工具和mount,将新创建的Linux系统分区挂载到系统中。将新挂载的分区卸载,并重新挂载到目录树的其他位置。

实验二Linux常用命令使用 一、实验目的 1.掌握Linux一般命令格式。 2.掌握有关文件和目录操作的常用命令。 3.熟练使用man命令。 二、实验内容 1.熟悉cd、date、pwd、cal、who、echo、clear、passwd等常用命令。2.在用户主目录下对文件进行操作:复制一个文件、显示文件内容、查找指定内容、排序、文件比较、文件删除等。 3.对目录进行管理:创建和删除子目录、改变和显示工作目录、列出和更改文件权限、链接文件等。 4.利用man命令显示date、echo等命令的手册页。 5.显示系统中的进程信息。 三、主要实验步骤 1.登陆进入系统,修改个人密码。 2.使用简单命令:date、cal、who、echo、clear等,了解Linux命令格式。

相关文档