linux 程序实验总结,实验二 Linux shell程序设计总结范文

实验二 Linux shell程序设计

一、 实验目的

熟悉linux shell 简单程序设计

二、 实验内容

1、 变量引用。在用户主目录下运行如下命令

$dir_1=/11/22 $echo $dir_1 $echo dir_1

2、 数组。在用户主目录下运行如下命令

$city[0]=Beijing $city[1]=Shanghai $city[2]=Tianjin

显示city的第二个元素的值

$A=(this is an example of shell script) (1) 同时显示数组A的第

2、

4、6个元素的值。 (2) 显示所有数组元素的值

3、 完成书上P106-107中关于read命令的使用的例子。

4、 完成书上p108-110例4.7-例4.9

三、 实验步骤

1. 输入命令:

$dir_1=/11/22 $echo $dir_1 $echo dir_1

2. 输入命令:

$city[0]=Beijing $city[1]=Shanghai $city[2]=Tianjin $echo ${city[2]} $A=(this is an example of shell script) $echo ${A[2]} ${A[4]} ${A[6]} $echo ${A[8]} 3. 输入命令:

$read x y z Today is Monday $echo $z $x $y $read n1 n2 n3 First Second Third 1234 abcd $echo $n3 $echo $n2 $n1 Read n1 n2 n3 1 2 $echo $n3 $echo $n1 $n2

4. 4-7:$touch m1.c

$vi m1.c

按”i”输入:main()

{

printf(“Begin\n”);

}

按“Esc”输入“:wq”

$cat m1.c

$touch m2.c

$vi m2.c

按”i”输入:main()

{

printf(“OK!\n”);

printf(“End\n”);

}

按“Esc”输入“:wq”

$cat m2.c $touch ex6

$vi ex6 按”i”输入:#ex6:shell script to combine files and count lines

cat $1 $2 $3 $4 $5b $6 $7 $8 $9|wc –l

#end

按“Esc”输入“:wq”

$cat ex6 $chmod a+x ex6 $PATH=$PATH:. $ex6 m1.c m2.c

4-8 $touch ex7 Vi ex7 i #!/bin/bash #ex7:shell script to combine filesand count lines #using command set to set positional paramters Set m1.c m2.c Cat $1 $2 $3|wc -l #end $cat ex7 $chmod a+x ex7 $PATH=$PATH:. $ex7

4-9 $touch ex8 Vi ex8 i

#!/bin/bash

#ex8:shell script to demonstrate the shift command Echo $0 $ 1 $2 $3 $4 $5 $6 $7 $8 $8 &9 Shift Echo $0 $ 1 $2 $3 $4 $5 $6 $7 $8 $8 &9 Shift

4 Echo $0 $ 1 $2 $3 $4 $5 $6 $7 $8 $8 &9 #end $cat ex8 $chmod a+x ex8 $PATH=$PATH:. $ ex8

四、 实验总结

通过这次实验,我懂得了定义SHELL程序设计中的变量,掌握了SHELL程序中LINUX基本命令的使用,理解了SHELL程序的设计方法,并且熟悉了SHELL程序编辑、运行、调试方法与过程。这位我日后继续深入学习LINUX课程打下基础。

一、 实验目的

学会使用单片机定时器产生定时中断,并利用定时中断产生更长时间延时。

二、实验设备及器件

IBM PC机

一台

DP-51PRO.NET单片机仿真器、编程器、实验仪三合一综合开发平台

三、实验内容

1. 实验二 定时器程序设计

2.编写程序,使P10端口来控制LED闪烁 3. C语言程序

//1ms定时中断实现100ms发光管闪烁 #include"REG51.h" sbit LED=P1^0; void main(void) { TMOD = 0x01; //设置定时器模式 16位定时器

TL0 = 0x18; //设置定时初值

TH0 = 0xFC; //设置定时初值

TR0 = 1; //定时器T0开始计时

ET0=1; //开定时器中断

EA=1;

//开总中断

while(1); }

//******************** //1ms void pit0(void) interrupt 1 (中断程序) { static unsigned char ms_cnt=0;//16 ffff TL0 = 0x18; //设置定时初值

TH0 = 0xFC; //设置定时初值

if(++ms_cnt==100) {

ms_cnt=0;

LED=!LED; } } 定时器的由程序

直接汇编语言 ORG 0 AJMP MAIN ORG 0BH AJMP PIT0 MAIN: MOV TMOD,#01H MOV TH0,#18H MOV TL0,#0FCH SETB TR0 SETB ET0 SETB EA SJMP $

生成

;********************************** PIT0: MOV TH0,#18H MOV TL0,#0FCH INC R7 CJNE R7,#100,PIT0_R MOV R7,#0 CPL P1.0 PIT0_R: RETI END

四 实验要求

学会使用并掌握单片机定时器中断来实现LED100ms闪烁。

五 实验步骤

1.调试运行本节实验程序。若程序无错误,编译并进行二进制转换,下载程序。

2.连接线路,将A2区的P10端口连接到D1区的任意LED接口。3.观察LED灯闪烁情况

C语言程序设计实验

(二)

[实验1]

1.实验题目

下列各题的算法用传统流程图及N-S流程图两种方式表示:

(1)输出图形(顺序结构)

★★★★★★★★

★★★★★★★★

★★★★★★★★

★★★★★★★★

(2)判断用户输入的字符是数字字符、字母字符还是其它字符。(选择结构)

(3)运用循环结构打印如下图形(for循环结构)。

◆◆◆

◆◆◆◆◆

◆◆◆◆◆◆◆

◆◆◆◆◆◆◆◆◆

(4)输入任意数N,求P的值 (P=N!)(当型循环结构)

(5)输出1~N间20个不能被3整除的数列(直到型循环结构)

(6)计算并打印九九表。(直到型循环结构)

2.实验目标

(1)熟练掌握流程图表示算法的方法。

(2)熟练掌握结构化程序设计的三种基本结构。

[实验2] 变量的变化情况。

1.实验题目

有以下程序

#include

#definea 3*2+1

#defineA a*a+a

#defineb (3*2+1)

#defineB (b)*(b)+(b)

main()

{

int x1,x2;

int y1,y2;

x1=a*a;

y1=A*A;

x2=b*b;

y2=B*B;//换为y2=(A)*(A)结果是否相同

printf("x=%d \t\ty=%d\n",x1,y1);

printf("x=%d\t\ty=%d\n",x2,y2);

}用逐行断点测试方法,体会程序运行时各变量值的变化情况。

2.实验要求

(1)在上机实验之前先将每执行一条语句后变量x

1、x2和y

1、y2的预期结果写在相应语句旁。

(2)设置4个监视项x

1、x2和y

1、y2,断点逐行测试执行程序。

(3)每执行一条语句后,对比Watch窗口中变量x

1、x2和y

1、y2的值与预期的值是否一致,若不一致,请解释原因。

(4)将语句“y2=B*B;”换为“y2=(A)*(A)”,测试结果是否相同,为什么?

(5)运行结束后查看输出结果,确认该结果是否与预期的值一致。

3.实验目标

(1)宏定义的正确定义。

(2)宏定义的正确使用。

实验二 Linux shell程序设计

一、 实验目的

熟悉linux shell 简单程序设计

二、 实验内容

1、 变量引用。在用户主目录下运行如下命令

$dir_1=/11/22 $echo $dir_1 $echo dir_1

2、 数组。在用户主目录下运行如下命令

$city[0]=Beijing $city[1]=Shanghai $city[2]=Tianjin

显示city的第二个元素的值

$A=(this is an example of shell script) (1) 同时显示数组A的第

2、

4、6个元素的值。 (2) 显示所有数组元素的值

3、 完成书上P106-107中关于read命令的使用的例子。

4、 完成书上p108-110例4.7-例4.9

三、 实验步骤

1. 输入命令:

$dir_1=/11/22 $echo $dir_1 $echo dir_1

2. 输入命令:

$city[0]=Beijing $city[1]=Shanghai $city[2]=Tianjin $echo ${city[2]} $A=(this is an example of shell script) $echo ${A[2]} ${A[4]} ${A[6]} $echo ${A[8]} 3. 输入命令:

$read x y z Today is Monday $echo $z $x $y $read n1 n2 n3 First Second Third 1234 abcd $echo $n3 $echo $n2 $n1 Read n1 n2 n3 1 2 $echo $n3 $echo $n1 $n2

4. 4-7:$touch m1.c

$vi m1.c

按”i”输入:main()

{

printf(“Begin\n”);

}

按“Esc”输入“:wq”

$cat m1.c

$touch m2.c

$vi m2.c

按”i”输入:main()

{

printf(“OK!\n”);

printf(“End\n”);

}

按“Esc”输入“:wq”

$cat m2.c $touch ex6

$vi ex6 按”i”输入:#ex6:shell script to combine files and count lines

cat $1 $2 $3 $4 $5b $6 $7 $8 $9|wc –l

#end

按“Esc”输入“:wq”

$cat ex6 $chmod a+x ex6 $PATH=$PATH:. $ex6 m1.c m2.c

4-8 $touch ex7 Vi ex7 i #!/bin/bash #ex7:shell script to combine filesand count lines #using command set to set positional paramters Set m1.c m2.c Cat $1 $2 $3|wc -l #end $cat ex7 $chmod a+x ex7 $PATH=$PATH:. $ex7

4-9 $touch ex8 Vi ex8 i

#!/bin/bash

#ex8:shell script to demonstrate the shift command Echo $0 $ 1 $2 $3 $4 $5 $6 $7 $8 $8 &9 Shift Echo $0 $ 1 $2 $3 $4 $5 $6 $7 $8 $8 &9 Shift

4 Echo $0 $ 1 $2 $3 $4 $5 $6 $7 $8 $8 &9 #end $cat ex8 $chmod a+x ex8 $PATH=$PATH:. $ ex8

四、 实验总结

通过这次实验,我懂得了定义SHELL程序设计中的变量,掌握了SHELL程序中LINUX基本命令的使用,理解了SHELL程序的设计方法,并且熟悉了SHELL程序编辑、运行、调试方法与过程。这位我日后继续深入学习LINUX课程打下基础。

实验二

简单的C程序设计

实验目的:

1. 掌握C语言的运算符和表达式的正确使用以及C语言的几种基本数据类型和基本输入输出函数的使用方法。

2. 通过编程进一步理解和掌握运算符的确切含义和功能。

3. 理解和掌握运算符与运算对象的关系,优先级和结合方向。

1. 通过编程,掌握C语言的几种基本数据类型,int、char、flloat、double,以及由这些基本数据类型构成的常量和变量的使用方法。

2. 掌握基本输入/输出函数的使用方法,包括printf()、scanf()、getchar()、putchar()。 3. 掌握简单的C程序的查错方法。 实验内容:

一、 输入程序,观察输出结果,并对输出结果作出合理的解释。 1./* e1.cpp */ #includevoid main()

{

float x; double y; x=213.82631;y=213.82631; printf("%-4.2f,-6.2e\n",x,y); }

输出结果: 解释:

2./* e2.cpp */ #includevoid main() {

char ch;

int k;

ch=’a’;k=10;

printf(“%d,%x,%o,%c”,ch,ch,ch,ch,k);

printf(“k=%%d\n”,k);

} 输出结果:

解释:

3./* e3.cpp */

#includevoid main() { float a1,a2;

double b1,b2;

a1=3141.59;a2=0.000001;

b1=3141.59;b2=0.000001;

printf(“%f,%lf\n”,a1+a2,b1+b2);

} 输出结果:

解释:

4. /* e4.cpp */ #includevoid main() {

float x=5/2,y=5.0/2;

printf("x=%f,y=%f\n",x,y); } 输出结果:

解释:

二、 编写程序。

1. 编程(c1.cpp)定义3个整型变量x,y,z和一个实型变量averge,计算并输出3个整数的平均值averge,其中x=y=1,z=0。观察运行结果。再将x,y,z和averge改为实型变量,再观察运行结果。理解整除和不同类型数据进行混合运算的转化规律,对结果进行合理的解释。 源程序:

输出结果: 解释:

2. 改写程序(c2.cpp),针对上一题要求,采用从键盘用scanf()函数输入x,y,z的值。要求输出结果的形式为averge=…。

源程序:

输出结果: 解释:

3. 输入3个整数给a,b,c,然后交换它们中的数,把a中原来的值给b,把b原来的值给c,把c中原来的值给a。 源程序:

输出结果:

三、 调示示例。 1. 求华氏温度100。F对应的摄氏温度。计算公式:C=(5/9)(F-32),其中C表示摄氏温度,F表示华氏温度。 源程序(有错误) #includevoid main() {

int celsius;fahr; fahr=100; celsius=5*(fahr-32)/9; printf("fahr=d,celsius=%d\n",fahr,celsius); } 1)输入源程序。

2)实验一中用菜单完成编译、连接和运行,现在介绍工具栏的使用方法。在工具栏

或菜单栏上单击鼠标右键,出现如图所示的整个工具箱,在“编译”或“编译微型条”项前打上“√”。

图中第1个按钮为“Compile”(编译,Ctrl+F7),第2个按钮为“Build”(构件,F7),第4个按钮为“Build Execute”(执行,Ctrl+F5)。 3)单击“编译”工具条中的第1个按钮,出现第一个错误信息:

Cannot open include file: 'stdoi.h': No such file or directory (不能打开stdoi.h)

改正(应该是stdio.h)后,重新编译,新产生的第一个错误信息是:

'fahr' : undeclared identifier (“fahr”变量没有定义) 改正:将fahr前的分号改为逗号,重新编译,编译正确。

4)单击“编译”工具条中的第2个按钮,连接正确。

5)单击“编译”工具条中的第4个按钮,运行结果为 :

fahr=d,Celsius=100

不符合题目的要求,仔细检查源程序,发现函数printf()中的d应为%d,改正的,重新连接和运行,运行结果与题目要求的结果一致,程序调试结束。

2. 改错,计算某个数x的平方y,并以算术公式的形式输出x和y的值.请不要删除源程序中的任何注释。 输入输出示例(假设x的值为3): 9=3*3 3*3=9 #include void main() {

int y;

y=x*x;

printf(“%d=%d*%d”,x);

/* 输出

printf(“d*%d=%d”,y);

}

改正后的源程序:

实验报告要求

将以上各题的源程序、运行结果,以及实验中遇到的问题和解决问题的方法,以及实验过程中的心得体会,写在实验报告上。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值