ISD1730程序编写

ISD1730程序编写
ISD1730程序编写

#include

#include

#include

#include

#include

//--------------------------------------------------------------------------------------- //SPI与MCU引脚连接

sbit SS = P2^7;

sbit MISO = P2^4;

sbit MOSI = P2^5;

sbit SCLK = P2^6;

sbit led=P2^0;

uchar bdata SR0_L;

uchar bdata SR0_H;

uchar bdata SR1;

uchar ID,APCL=0,APCH=0;

uint temshow[4];

/*************延时n ms子函数**************************/ void delay_ms(unsigned int tt)//延时1ms

{

unsigned char j;

while(tt--)

{

for(j=0;j<125;j++);

}

}

void I_delay(void)

{

unsigned char i;

for(i=0;i<18;i++)

_nop_();

}

/**************************************************************************

* 函数原型: void ISD_Init(void);

* 功能: 初始化

**************************************************************************/ void ISD_Init(void){

ISD_Reset();

do{

P1=1;

ISD_PU();

RdStatus();

// DogReset();

}while((SR0_L&0x01)||(!(SR1&0x01))); //if(SR0_L^0==1){system Err}

SBUF=RD_DevID();//读取芯片ID,----1760为0xa0

P2=RD_DevID();

ClrInt();

ISD_WR_APC2(0xa8);

RdAPC();

}

/**************************************************************************

* 函数原型: void ISD_CHK_ME(void);

* 功能: 空间检查

**************************************************************************/ void ISD_CHK_MEM(void)

{

ISD_SendData(CHK_MEM);

ISD_SendData(0x00);

SS=1;

delay_ms(10);

}

/**************************************************************************

* 函数原型: void ISD_PU(void);

* 功能: 上电

**************************************************************************/ void ISD_PU(void)

{

ISD_SendData(0x11);

ISD_SendData(0x00);

SS=1;

delay_ms(50);

}

/************************************************************************** * 函数原型: void ISD_Stop(void);

* 功能: 停止

**************************************************************************/

void ISD_Stop(void)

{

ISD_SendData(STOP);

ISD_SendData(0x00);

SS=1;

delay_ms(50);

}

/************************************************************************** * 函数原型: void ISD_Reset(void);

* 功能: 复位

**************************************************************************/ void ISD_Reset(void)

{

ISD_SendData(0x13);

ISD_SendData(0x00);

SS=1;

delay_ms(50);

}

/************************************************************************** * 函数原型: void ISD_PD(void);

* 功能: 掉电

**************************************************************************/

void ISD_PD(void)

{

ISD_SendData(PD);

ISD_SendData(0x00);

SS=1;

}

/************************************************************************** * 函数原型: void ISD_SendData(uchar BUF_ISD);

* 功能: 发送数据

**************************************************************************/ uchar ISD_SendData(uchar BUF_ISD)

{

uchar i,dat=BUF_ISD;

SCLK=1;

SS=0;

for(i=0;i<8;i++){

SCLK=0;

I_delay();

if(dat&0x01){

MOSI=1;

}

else{

MOSI=0;

}

dat>>=1;

if(MISO){

dat|=0x80;

}

SCLK=1;

I_delay();

}

MOSI=0;

// SS=1;

return(dat);

}

/************************************************************************** * 函数原型: void RdStatus(void);

* 功能: 读取状态

**************************************************************************/ void RdStatus(void)

{

ISD_SendData(RD_STA TUS);

ISD_SendData(0x00);

ISD_SendData(0x00);

SS=1;

delay_ms(10); //延迟10ms

SR0_L =ISD_SendData(RD_STA TUS);

SR0_H =ISD_SendData(0x00);

SR1 =ISD_SendData(0x00);

SS=1;

delay_ms(10);

}

/**************************************************************************

* 函数原型: void RdStatus(void);

* 功能: 读取ID

**************************************************************************/ uchar RD_DevID(void)

{

ISD_SendData(RD_DEVID);

ISD_SendData(0x00);

ISD_SendData(0x00);

SS=1;

delay_ms(10); //延迟10ms

SR0_L =ISD_SendData(RD_DEVID);

SR0_H =ISD_SendData(0x00);

ID =ISD_SendData(0x00);

SS=1;

delay_ms(10);

return(ID);

}

/************************************************************************** * 函数原型: void RD_APC(void);

* 功能: 读取APC

**************************************************************************/ void RdAPC(void){

ISD_SendData(RD_APC);

ISD_SendData(0x00);

ISD_SendData(0x00);

ISD_SendData(0x00);

SS=1;

delay_ms(10); //延迟10ms

SR0_L =ISD_SendData(RD_APC);

SR0_H =ISD_SendData(0x00);

APCL =ISD_SendData(0x00);

APCH =ISD_SendData(0x00);

SS=1;

delay_ms(10); //延迟10ms

/*

SBUF=SR0_L;

delay_ms(1);

SBUF=SR0_H;

delay_ms(1);

SBUF=APCL;

delay_ms(1);

SBUF=APCH;

*/

}

/**************************************************************************

* 函数原型: void ClrInt(void);

* 功能: 清除中断

**************************************************************************/ void ClrInt(void)

{

ISD_SendData(CLI_INT);

ISD_SendData(0x00);

SS=1;

delay_ms(10); //延迟10ms

}

/**************************************************************************

* 函数原型: void ISD_WR_APC2(uchar voiceV alue);

* 功能: 设置APC2

**************************************************************************/ void ISD_WR_APC2(uchar voiceV alue)

{

ISD_SendData(WR_APC2);

ISD_SendData(0xa8|voiceV alue); //0xa8声音最大,0xaf声音最小

ISD_SendData(0x0c); //D11=1,在SETPLA Y模式下,执行到EOM 自动结束。或者在连续两个SET_PLA Y命令后,执行到第一个EOM自动跳到第二段开始SS=1;

delay_ms(10); //延迟10ms

ISD_WR_NVCFG(); //永久写入寄存器

}

/**************************************************************************

* 函数原型: void ISD_WR_NVCFG(void);

* 功能: 永久写入寄存器

**************************************************************************/ void ISD_WR_NVCFG(void){

ISD_SendData(WR_NVCFG);

ISD_SendData(0x00);

SS=1;

delay_ms(10); //延迟10ms

}

/**************************************************************************

* 函数原型: void GetToneAdd(uchar cNum, Uint * ipStartAdd, Uint * ipEndAdd);

* 功能: 取出当前语音的首末地址

**************************************************************************/

void GetToneAdd(uchar cNum, uint * ipStartAdd, uint * ipEndAdd)

{

uint

caToneAdd[26]={0x0010,0x0017,0x00018,0x001D,0x0020,0x0023,0x0028,0x002C,0x0031,0x00 35,

0x0036,0x003B,0x003D,0x0042,0x0044,0X0049,0x004B,0x0051,0X0053,0x0058,

0x005C,0x005E,0x0065,0x0067,0x006C,0x6F};

//先通过独立按键模式每隔0.6-1.0秒分别录取发音(0,1,2,3,4,5,6,7,8,9,十,点,摄氏度)

*ipStartAdd=caToneAdd[cNum*2]; // ipStartAdd为每段起始地址

*ipEndAdd=caToneAdd[cNum*2+1]; // ipEndAdd为每段结束地址

}

/**************************************************************************

* 函数原型: void SetPLAY(uchar cNum);

* 功能: 定点播放

**************************************************************************/

void SetPLAY(uchar cNum)

{

uint Add_ST, Add_ED;

uchar Add_ST_H, Add_ST_L, Add_ED_H, Add_ED_L;

do{

RdStatus();

//DogReset();

}while((SR0_L&0x01)||(!(SR1&0x01))); //if(SR0_L^0==1){system Err}

ClrInt();

// GetToneAdd(cNum, &Add_ST, &Add_ED);

Add_ST=0x10;

Add_ED=0xff;

Add_ST_L=(uchar)(Add_ST&0x00ff);

Add_ST_H=(uchar)((Add_ST>>8)&0x00ff);

Add_ED_L=(uchar)(Add_ED&0x00ff);

Add_ED_H=(uchar)((Add_ED>>8)&0x00ff);

delay_ms(1);

//send_char_com(Add_ST_L) ;

SBUF=Add_ST_L;

delay_ms(1);

//send_char_com(Add_ST_H);

SBUF=Add_ST_H;

delay_ms(1);

//send_char_com(Add_ED_L);

SBUF=Add_ED_L;

delay_ms(1);

//send_char_com(Add_ED_H);

SBUF=Add_ED_H;

delay_ms(1);

ISD_SendData(0x90);

ISD_SendData(0x00);

ISD_SendData(Add_ST_L); //S7:S0 开始地址

ISD_SendData(Add_ST_H); //S10:S8

ISD_SendData(Add_ED_L); //E7:E0 结束地址

ISD_SendData(Add_ED_H); //E10:E8

ISD_SendData(0x00);

SS=1;

delay_ms(10); //延迟10ms

do{

RdStatus();

// DogReset();

}while((SR0_L&0x01)||((SR1&0x04))); //if(SR0_L^0==1){system Err}

}

/**************************************************************************

* 函数原型: void SetREC(uchar cNum);

* 功能: 定点录音

**************************************************************************/ void SetREC(uchar cNum)

{

uint Add_ST, Add_ED;

uchar Add_ST_H, Add_ST_L, Add_ED_H, Add_ED_L;

do{

RdStatus();

//DogReset();

}while((SR0_L&0x01)||(!(SR1&0x01))); //if(SR0_L^0==1){system Err}

ClrInt();

// GetToneAdd(cNum, &Add_ST, &Add_ED);

Add_ST=0x10;

Add_ED=0xff;

Add_ST_L=(uchar)(Add_ST&0xff);

Add_ST_H=(uchar)(( _iror_(Add_ST, 8))&0xff);

Add_ED_L=(uchar)(Add_ED&0xff);

Add_ED_H=(uchar)(( _iror_(Add_ED, 8))&0xff);

delay_ms(1);

send_char_com(Add_ST_L);

//SBUF=Add_ST_L;

delay_ms(1);

send_char_com(Add_ST_H);

//SBUF=Add_ST_H;

delay_ms(1);

send_char_com(Add_ED_L);

//SBUF=Add_ED_L;

delay_ms(1);

send_char_com(Add_ED_H);

//SBUF=Add_ED_H;

delay_ms(1);

ISD_SendData(0x91);

ISD_SendData(0x00);

ISD_SendData(Add_ST_L); //S7:S0 开始地址

ISD_SendData(Add_ST_H); //S10:S8

ISD_SendData(Add_ED_L); //E7:E0 结束地址

ISD_SendData(Add_ED_H); //E10:E8

ISD_SendData(0x00);

SS=1;

delay_ms(10); //延迟10ms

do{

RdStatus();

// DogReset();

}while((SR0_L&0x01)||((SR1&0x08))); //if(SR0_L^0==1){system Err}

// }while((SR0_L&0x01)||(!(SR1&0x01))); //if(SR0_L^0==1){system Err}

}

/**************************************************************************

* 函数原型: void SetERASE(uchar cNum);

* 功能: 定点删除,容易破坏存储结构(CMA),所以不用

**************************************************************************/

void SetERASE(uchar cNum)

{

uint Add_ST, Add_ED;

uchar Add_ST_H, Add_ST_L, Add_ED_H, Add_ED_L;

Add_ST_L=(uchar)(Add_ST&0xff);

Add_ST_H=(uchar)(Add_ST>>8);

Add_ED_L=(uchar)(Add_ED&0xff);

Add_ED_H=(uchar)(Add_ED>>8);

ISD_SendData(SET_ERASE);

ISD_SendData(0x00);

ISD_SendData(Add_ST_L); //S7:S0 开始地址

ISD_SendData(Add_ST_H); //S10:S8

ISD_SendData(Add_ED_L); //E7:E0 结束地址

ISD_SendData(Add_ED_H); //E10:E8

ISD_SendData(0x00);

// SS=1;

// delay_ms(120);

}

/**************************************************************************

* 函数原型: void Erase_All(void);

* 功能: 全部删除

**************************************************************************/ void Erase_All(void)

{

ISD_SendData(G_ERASE);

ISD_SendData(0x00);

SS=1;

delay_ms(100); //延迟10ms

}

/**************************************************************************

* 函数原型: void init_serialcomm(void)

* 功能: 串口

**************************************************************************/

void init_serialcomm(void)

{

TMOD=0x20; // 采用定时器1的工作方式2

TL1=0xfd; //计算定时器1的初值,装载TL1,TH1

TH1=0Xfd; //波特率(9600)=(2^SMOD)*(定时器1的溢出率)/32

//溢出速率=(计数速率)/ [256-(TH1)]

//计数速率与TMOD寄存器中C/T(TMOD.6)的状态有关。当C/T=0时,//计数速率为Fosc/12,当C/T=1时计数速率取决与外部输入时钟频率,//但此频率不能超过Fosc/24。

SCON=0X50; //允许串口接受数据,工作方式为1,无奇偶校验位。

PCON=0x00; //串口波特率不加倍。

TR1=1; //启动定时器1计数,TR1是TCON.6

}

void send_char_com(unsigned char ch)

{

SBUF=ch;

while(TI==0);

TI=0;

}

/**************************************************************************

* 函数原型: void showled(float abc)

* 功能: 温度量化

**************************************************************************/

showled(float abc)

{ //abc为所测温度值,这里使用范围为00.0-99.9℃

temshow[0]=((uchar)abc)/10;

temshow[1]=((uchar)abc)%10;

temshow[3]=(uint)(abc*10)%10;

}

/**************************************************************************

* END

* END

**************************************************************************/

main()

{

uchar i,j;

// showled(27.3) ;//假如数值为27.3℃,

// ISD_Init();

//led=0;

init_serialcomm();

send_char_com(0x35);

//SetPLAY(0);

SetREC(0);

led=0;

for(i=0;i<2;i++ )//温度值读两次

{

/* SetPLA Y(2);

SetPLA Y(10);

SetPLA Y(7);

SetPLA Y(11);

SetPLA Y(3);

SetPLA Y(12); */

if(temshow[0]==0)

SetPLA Y(temshow[1]);

if(temshow[0]==1)

{

SetPLA Y(10);

if(temshow[1]!=0)

SetPLA Y(temshow[1]);

}

else

{

SetPLA Y(temshow[0]);

if(temshow[1]==0)

SetPLA Y(10);

else

{

SetPLA Y(10);

SetPLA Y(temshow[1]);

}

}

SetPLA Y(11);

SetPLA Y(temshow[3]);

SetPLA Y(12);

delay_ms(255);

/*

SetPLA Y(0); 发“0”音

SetPLA Y(1); 发“1“音

SetPLA Y(2); 发“2”音

SetPLA Y(3); 发“3”音

SetPLA Y(4); 发“4”音

SetPLA Y(5); 发“5”音

SetPLA Y(6); 发“6”音

SetPLA Y(7); 发“7”音

SetPLA Y(8); 发“8”音

SetPLA Y(9); 发“9”音

SetPLA Y(10); 发“十”音

SetPLA Y(11); 发“点”音

SetPLA Y(12); 发“℃”音*/

}

while(1) ;

//这里有点问题,我要不加while(1),它会一直重复for(i=0;i<2;i++ )读数,不知为什么,估计和DogReset()有关,可不知DogReset()的内容和怎么用

}

2016Linux程序设计复习题

一、填空题 1、在Linux 系统中,以文件方式访问设备。 2、Linux 内核引导时,从文件/etc/fstab 中读取要加载的文件系统。 3、Linux 文件系统中每个文件用i 节点来标识。 4、全部磁盘块由四个部分组成,分别为引导块、专用块、i 节点表块和数据存储块。 5、链接分为:硬链接和符号链接。 6、超级块包含了i 节点表和空闲块表等重要的文件系统信息。 7、某文件的权限为:drw-r--r-- ,用数值形式表示该权限,则该八进制数为:644 ,该文件属性是目录。 8、前台起动的进程使用Ctrl+C 终止。 9、静态路由设定后,若网络拓扑结构发生变化,需由系统管理员修改路由的设置。 10、网络管理的重要任务是:控制和监控。 11、安装Linux 系统对硬盘分区时,必须有两种分区类型:文件系统分区和交换分区。 12、编写的Shell 程序运行前必须赋予该脚本文件执行权限。 13、系统管理的任务之一是能够在分布式环境中实现对程序和数据的安全 保护、备份、恢复和更新。 14、系统交换分区是作为系统虚拟存储器的一块区域。 15、内核分为进程管理系统、内存管理系统、I/O 管理系统和文件管理系统等四个子系统。 16、内核配置是系统管理员在改变系统配置硬件时要进行的重要操作。 17、在安装Linux 系统中,使用netconfig 程序对网络进行配置,该安装程序会一步步提示用 户输入主机名、域名、域名服务器、IP 地址、网关地址和子网掩码等必要信息。 18、唯一标识每一个用户的是用户ID 和用户名。 19、RIP 协议是最为普遍的一种内部协议,一般称为动态路由选择协议。 20、在Linux 系统中所有内容都被表示为文件,组织文件的各种方法称为文件系统。 21、DHCP可以实现动态IP 地址分配。 22、系统网络管理员的管理对象是服务器、用户和服务器的进程以及系统的各种资源。 23、网络管理通常由监测、传输和管理三部分组成,其中管理部分是整个网络管理的 中心。 24、当想删除本系统用不上的设备驱动程序时必须编译内核,当内核不支持系统上的 设备驱动程序时,必须对内核升级。 25、Ping 命令可以测试网络中本机系统是否能到达一台远程主机,所以常常用于测试网络 的连通性。 26、vi 编辑器具有三种工作模式:命令模式、底行模式和输入模式。 27、可以用ls –al 命令来观察文件的权限,每个文件的权限都用10 位表示,并分为四段, 其中第一段占 1 位,表示文件类型,第二段占 3 位,表示文件所有者对该文件的权限。 28、进程与程序的区别在于其动态性,动态的产生和终止,从产生到终止进程可以具有的基 本状态为:运行态、就绪态和等待态(阻塞态)。 29、DNS实际上是分布在internet 上的主机信息的数据库,其作用是实现IP地址和主

简单程序设计

简单程序设计 1.两位BCD编码转换为二进制码 BCD编码,用于表示十进制数,十进制各位上的数字0~9分别用对应的四位二进制数表示,两位BCD编码即8位二进制数,一个字节。 将BCD编码转换为二进制,实际上就是计算其表示的数据大小,而BCD编码为十进制,因此应按照十进制进行计算:B=D0*100+D1*101+D2*102+…+D n*10n 由于还没有学习其他程序结构,因此这里假设对两位BCD 编码进行转换,即只考虑D0和D1 ,如果对多位BCD编码进行转换,可以使用后续学到的循环结构。 参考程序: DATA SEGMENT BCDD DB 56H BD DB ? DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA START: MOV AX, DATA MOV DS, AX MOV AL, BCDD MOV AH, AL AND AL, 0FH AND AH, 0F0H MOV CL, 4 SHR AH, CL SHL AH, 1 MOV DL, AH 图4 两位BCD码转换为二进制数 SHL AH, 1 SHL AH, 1

ADD AH, AL MOV BD, AH MOV AH, 4CH ;在DOS环境或者命令行窗口运行汇编程序时,程序的最 INT 21H ;后需要进行DOS功能调用4CH,以返回操作系统。 CODE ENDS END START 2.简单的运算程序 以下举例说明如何编程实现简单的算术运算,因为较复杂的算术运算往往需要使用循环和分支程序结构。 编写程序实现((B1+B2-B3)/B4*B5)2—〉W,Bi为字节型变量,W为字变量,不考虑溢出问题。 参考程序如下: DATA SEGMENT B1 DB 12H B2 DB 0CH B3 DB 1FH B4 DB 03H B5 DB 4AH W DW ? DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA START: MOV AX, DATA MOV DS, AX MOV AL, B1 ADD AL, B2 SUB AL, B3 XOR AH,AH DIV B4 MUL B5 MUL AX MOV W, AX

程序流程图编写规范_(终极整理版)

程序流程图规范 1.引言 国际通用的流程图形态和程序: 开始(六角菱型)、过程(四方型)、决策(菱型)、终止(椭圆型)。在作管理业务流程图时,国际通用的形态:方框是流程的描述;菱形是检查、审批、审核(一般要有回路的);椭圆一般用作一个流程的终结;小圆是表示按顺序数据的流程;竖文件框式的一般是表示原定的程序;两边文件框式的一般是表示留下来的资料数据的存储。 2.符号用法 程序流程图用于描述程序内部各种问题的解决方法、思路或算法。 图1-1 标准程序流程图符号 1)数据:平行四边形表示数据,其中可注明数据名、来源、用途或其 它的文字说明。此符号并不限定数据的媒体。 2)处理:矩形表示各种处理功能。例如,执行一个或一组特定的操作,

从而使信息的值,信息形式或所在位置发生变化,或是确定对某一流向的选择。矩形内可注明处理名或其简要功能。 3)特定处理:带有双纵边线的矩形表示已命名的特定处理。该处理为 在另外地方已得到详细说明的一个操作或一组操作,便如子例行程序,模块。矩形内可注明特定处理名或其简要功能。 4)准备:六边形符号表示准备。它表示修改一条指令或一组指令以影 响随后的活动。例如,设置开关,修改变址寄存器,初始化例行程序。 5)判断:菱形表示判断或开关。菱形内可注明判断的条件。它只有一 个入口,但可以有若干个可供选择的出口,在对符号内定义各条件求值后,有一个且仅有一个出口被激活,求值结果可在表示出口路径的流线附近写出。 6)循环界限:循环界限为去上角矩形或去下角矩形,分别表示循环的 开始和循环的结束。一对符号内应注明同一循环标识符。可根据检验终止循环条件在循环的开始还是在循环的末尾,将其条件分别在上界限符内注明(如:当A>B)或在下界限符内注明(如:直到C

Linux系统编程试题C

上嵌《嵌入式Linux系统编程》考试试卷C 一、选择题(5×1') 1、( C )是操作系统中最重要、最基本的概念之一,它是系统分配资源的基本单位,是一个具有独立功能的程序段对某个数据集的一次执行活动。 A. 程序 B. 作业 C. 进程 D. 线程 2、( B )的主要特点是提供即时响应和高可靠性。生产过程的控制、武器系统、航空订票系统、银行业务就是这样的系统。 A. 分时系统 B. 实时系统 C. 批处理系统 D. 分布式系统 3、( B )数据传送方式的作用是在外围设备和内存之间开辟直接的数据交换通道。 A. 程序直接控制 B. DMA C. 通道控制 D. 中断 4、下面临界区概念论述正确的是( A ) A.临界区是指进程中用于实现进程互斥的那段程序代码 B.临界区是指进程中用于实现进程同步的那段程序代码 C.临界区是指进程中用于实现进程通信的那段程序代码 D.临界区是指并发进程中与共享变量有关的程序段 5、多道程序设计是指( D ) A.在实时系统中并发运行多个程序 B.在分布式系统中同一时刻运行多个程序 C.在一台处理机上同一时刻运行多个程序 D.在一台处理机上并发运行多个程序 二、填空题(20×1') 1、在Linux系统中,以_____文件___方式访问设备,每个文件用____i节点___来标识。 2、启动Linux Shell的时候,stdin , stdout , stderr 三个文件描述 符会自动打开,他们的值分别是_ 0 _, 1 , 2 . 3、创建新进程的系统调用是 fork()、 exec() ,创建新线程的函数是 pthread_create() . 4、操作系统发展的历程,从串行处理,批处理程序,多道程序,_____分时处理______. 5、进程控制块的三类信息:进程标识信息,___进程状态信息____,___进程控制信息_____.

PWM调速的C语言程序编写非常简单

PWM调速的C语言程序编写 关于PWM的原理在上一篇文章中已经说的很详细了,现在就细说一下pwmC语言程序的编写。C语言中PWM的编写有这么几种方法;一、用普通的I/O口输出的PWM,二、使用定时计数器编写,三、就是使用片内PWM了。 1先说使用普通的I\O口编写PWM程序了。 ??????使用I/O口输出PWM波形你必须首先明白PWM他的实质是:调制占空比,占空比就是波形中高电平的长度与整个波长的比值。我们写C语言的目的是写PWM波形的一个周期。在这个周期内高低电平的比值是可以改变的。这也就符合了PWM的原意脉宽调制。即高电平的宽度的调制。当然了PWM他也可用于改变频率,我们这里只先说他改变脉宽。?????一旦我们的C语言程序写完那么他产生的PWM波形的频率就一定了。(也可写频率变化的PWM,难度有点大)一般我们控制使用1K到10K的PWM波进行控制。当然了你也可在要求不是很高的地方使用频率更低的PWM波。比如在飞思卡尔智能车比赛中我们学校使用的PWM波频率只有600HZ. ?????我们要改变一个PWM波周期内的高电平的宽度显然需要将一个PWM波的周期分成单片机可以控制的N个小的周期,N的取值越大你的调速等级越高,但产生的PWM频率就越低。我们下面以实现100级调速为例编写PWM程序。 ????先写出程序再慢慢给大家分析 ???voidpwm(ucharx,uinty)???//X为占空比Y为函数使用时间

{??uinti,j,a,b; ??for(i=y;i>0;i--)?????????????????????????//定时外函数{ ???for(j=7;j>0;j--)??????????????????????//定时内函数??{ ???for(a=y;a>0;a--)?????????????????//PWM波高电平宽度??{ ???PORTA=0X01; ??} for(b=100-y;b>0;b--)????????????//PWM低电平宽度 { PORTA=0X00; } ??} ??}

《Linux系统应用与开发教程》所有课后习题和答案

《Linux系统应用与开发教程》所有课后习题和答案 第1章Linux概述 (1) 第2章shell及常用命令 (4) 第3章vi编辑器的使用 (7) 第4章X Window系统的使用 (9) 第5章Linux系统的常用软件 (11) 第6章硬件管理 (11) 第7章网络基本配置 (12) 第8章常用网络服务的配置和使用 (15) 第9章系统管理与监控 (19) 第10章Linux系统的安全管理 (21) 第11章shell程序设计 (24) 第12章gcc的使用与开发 (26) 第13章gtk+图形界面程序设计 (27) 第14章Qt图形界面程序设计 (28) 第15章集成开发环境KDevelop的使用 (31) 第1章 Linux概述 1.什么是Linux? Linux是一套免费使用和自由传播的类UNIX操作系统,源代码开放,能运行于各类硬件平台,包括Intel x86系列和RISC处理器。这个系统是由世界各地成千上万的程序员设计和实现的。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的UNIX兼容产品。 2.Linux有哪些特性? (1)开放性 (2)多用户 (3)多任务 (4)良好的用户界面 (5)设备独立性 (6)丰富的网络功能

(7)可靠的系统安全 (8)良好的可移植性 3.Linux与Windows操作系统的主要区别是什么? (1)从发展的背景看,Linux是从一个比较成熟的操作系统发展而来的,而其他操作系统,如Windows等,都是自成体系,无对应的相依托的操作系统 (2)从使用费用上看,Linux是一种开放、免费的操作系统,Windows是封闭的系统,需要有偿使用。 (3)Linux上丰富的应用软件也是自由的,而在Windows下,几乎所有的软件都有独立的版权,需要购买使用,即使某些软件可以免费使用,也一般不提供其源代码,更不用说由用户修改扩充其功能了。 (4)Windows对硬件配置要求高,而Linux在低端PC系统上仍然可以流畅运行4.Linux与Unix的共同点与不同点是什么? 共同点:由于Linux是从Unix发展来到,它遵循Unix开放标准,基本支持同样的软件、程序设计环境和网络特性,可以说Linux是UNIX的PC版本,Linux在PC机上提供了相当于UNIX工作站的性能。 与商用Unix的不同点有:1)Linux是免费软件,用户可以从网上下载,而商用的UNIX除了软件本身的价格外,用户还需支付文档、售后服务费用;2)Linux拥有GNU软件支持,Linux能够运行GNU计划的大量免费软件,这些软件包括应用程序开发、文字处理、游戏等方面的内容;3)Linux的开发是开放的,任何志愿者都可以对开发过程做出贡献;而商用UNIX则是由专门的软件公司进行开发的。 与自由Unix的不同点: 1)在组织方式上,FreeBSD由它的核心团队(core team)的领导,他们负责原始程序的开发与维护。有core team的优点是原始程序会有一致性,会有组织的被更新,但是整个系统的活力操纵在core team手中,缺乏活力。Linux没有核心团队,在Linus的主导下来自世界各地的爱好者都可以发布自己的patch,缺点是源代码杂乱无章且可能会相互冲突。 2)在发展方向上,FreeBSD的核心团队将主要精力投入在UNIX自身的风格和特点上。Lin ux通常会首先加入商品化系统上的各种东西,比如新的硬件驱动、samba等。因此,从易用和可用上讲,Linux更容易上手和使用。 3)在系统核心功能上二者区别不大,但在Linux系统上,几乎可是找到任何需要的功能 4)在系统的性能上,据专家分析,FreeBSD在网络性能、软件移植性和系统规范化上略胜一畴,而在硬件支持、磁盘IO操作等方面Linux略强一些。 5.什么是GNU软件,什么是GPL和LGPL? GUN项目主要由自由软件基金资助的一个项目,目标是开发一个自由的、UNIX类型的操作系统,称为GNU系统。GNU是―GNU’s Not UNIX‖的首字母的递归缩写,目前使用Linux内

程序代码编写规范

程序编写规范及约定 (仅供内部使用) 文档作者:_______________ 日期:___/___/___ 开发/测试经理:_______________ 日期:___/___/___ 项目经理:_______________ 日期:___/___/___ 请在这里输入公司名称 版权所有不得复制

目录 程序编写规范及约定 (3) 1编写目的 (3) 2代码编写风格 (3) 2.1单元风格 (3) 2.2语句风格 (3) 3命名规则 (3) 3.1命名约定 (3) 3.1.1标志符 (3) 3.1.2类class (3) 3.1.3枚举类型enum (4) 3.1.4委托delegate (4) 3.1.5常量const (4) 3.1.6接口interface (4) 3.1.7方法function (4) 3.1.8命名空间namespace (4) 3.1.9参数 (4) 3.1.10局部变量 (5) 3.1.11数据成员 (5) 3.1.12自定义异常类 (5) 3.1.13命名缩写 (5) 3.1.14数据库命名 (5) 3.2代码编写命名规范 (6) 3.3界面常用控件命名约定 (6) 3.4文件命名规范 (7) 3.4.1文档文件命名 (7) 3.4.2配置文件命名 (7) 3.4.3程序文件命名 (7)

程序编写规范及约定 1编写目的 为了使编写代码具有可读性、可理解性、可维护性,对程序编写人员代码实行统一风格,使得程序代码能够以名称反映含义、以形式反映结构。此文档可供程序代码编写人员及代码维护人员使用。 2代码编写风格 2.1单元风格 2.2语句风格 3命名规则 3.1命名约定 Pascal和Camel命名约定: 编程的命名方式主要有Pascal和Camel两种(Pascal:每个单词的首字母大写,例如ProductType;Camel:首个单词的首字母小写,其余单词的首字母大写,例如productType) 3.1.1标志符 规则:Pascal、Camel 实例与描述:例子说明 3.1.2类class 规则:Pascal 实例与描述:Application

实验二Linux下C语言开发环境及程序调试 (1)

实验二Linux下C语言开发环境及程序调试 一、实验目的 1、熟悉Linux下的C语言程序编译流程。 2、掌握vi、gcc、gdb的使用。 二、实验设备 硬件:PC机。 软件:VMware Workstation虚拟机、Linux操作系统。 三、实验预习要求 1、gcc编译过程及常用编译选项。 2、gdb调试器使用流程,查看文件、设置断点、单步运行等gdb基本命令的使用。 四、实验内容及步骤 1、Linux下C语言开发流程及GCC编译器的使用。 (1)启动虚拟机,进入Linux操作系统,然后启动终端。 (2)使用Vim编辑源程序,练习命令模式、编辑模式、底行模式之间的切换,在终端中输入vi hello.c,编辑完成后存盘。(注:代码自己编写)(3)练习以下编译选项的使用: gcc -E hello.c -o hello.i gcc -S hello.i -o hello.S gcc -c hello.S -o hello.o //目标文件 gcc hello.o -o hello //可执行文件 (4)运行程序,在终端中查看程序运行结果。 2、GDB调试器的使用。 使用Vim编辑源程序,在终端中输入vi test.c,输入如下源代码,编辑完成后存盘。此代码的功能为输出倒序main函数中定义的字符串,但结果没有输出显示,现通过调试的方式来解决程序中存在的问题。程序源代码如下:#include int display1 (char *string) int display2 (char *string1) int main () { char string[] = "Embedded Linux"; display1 (string); display2 (string); }

程序代码注释编写规范

程序代码注释编写规范 XXX份公司

为提高控制程序的阅读性与可理解性,现制定相关代码程序代码注释编写的编写规范。 一般情况下,源程序有效注释量必须在20%以上,注释的原则是有助于对程序的阅读理解,在该加的地方都加了,注释不宜太多也不能太少,注释语言必须准确、易懂、简洁。 常规注释有以下两种方式。 单行:以"//"符号开始,任何位于该符号之后的本行文字都视为注释。 多行:以"/*"符号开始,以"*/"结束。任何介于这对符号之间的文字都视为注释。 一、说明性文件 说明性文件(如头文件.h文件、.inc文件、.def文件、编译说明文件.cfg等)头部应进行注释,注释必须列出:版权说明、版本号、生成日期、作者、内容、功能、与其它文件的关系、修改日志等,头文件的注释中还应有函数功能简要说明。 示例:下面这段头文件的头注释比较标准,当然,并不局限于此格式,但上述信息建议要包含在内。 /************************************************* COPYRIGHT (C), MicTiVo International. Co., Ltd. File NAME: // 文件 Author: Version: Date: // 作者、版本及完成日期 DESCRIPTION: // 用于详细说明此程序文件完成的主要功能,与其他模块 // 或函数的接口,输出值、取值范围、含义及参数间的控 // 制、顺序、独立或依赖等关系 Others: // 其它内容的说明 Function List: // 主要函数列表,每条记录应包括函数名及功能简要说明 1.... History: // 修改历史记录列表,每条修改记录应包括修改日期、修改 // 者及修改内容简述 1. Date: Author: Modification: 2. .. *************************************************/ 二、源文件头 源文件头部应进行注释,列出:版权说明、版本号、生成日期、作者、模块目的/功能、主要函数及其功能、修改日志等。 示例:下面这段源文件的头注释比较标准,当然,并不局限于此格式,但上述信息建议要包含在内。 /************************************************************

Linux系统应用与开发教程第二版刘海燕等主编

习题和答案 第1 章Linux 概述..................................................................................................................... 第2 章shell 及常用命令......................................................................................................... 第3 章vi 编辑器的使用........................................................................................................... 第4 章X Window 系统的使用.................................................................................................. 第5 章Linux 系统的常用软件................................................................................................ 第6 章硬件管理........................................................................................................................ 第7 章网络基本配置 .............................................................................................................. 第8 章常用网络服务的配置和使用..................................................................................... 第9 章系统管理与监控.......................................................................................................... 第10 章Linux 系统的安全管理.............................................................................................. 第11 章shell 程序设计........................................................................................................... 第12 章gcc 的使用与开发....................................................................................................... 第13 章gtk+图形界面程序设计............................................................................................. 第14 章Qt 图形界面程序设计................................................................................................ 第15 章集成开发环境KDevelop 的使用............................................................................... 第 1 章Linux 概述 1.什么是Linux? Linux 是一套免费使用和自由传播的类UNIX 操作系统,源代码开放,能运行于各类硬件平台,包括Intel x86 系列和RISC 处理器。这个系统是由世界各地成千上万的程序员设计和实现的。其目的是建立不受任何商品化软件的版权制约的、全世界都能自由使用的UNIX 兼容产品。 2.Linux 有哪些特性? (1)开放性 (2)多用户 (3)多任务 (4)良好的用户界面 (5)设备独立性 (6)丰富的网络功能 (7)可靠的系统安全 (8)良好的可移植性 3.Linux 与Windows 操作系统的主要区别是什么? (1)从发展的背景看,Linux 是从一个比较成熟的操作系统发展而来的,而其他操作系统,如Windows 等,都是自成体系,无对应的相依托的操作系统 (2)从使用费用上看,Linux 是一种开放、免费的操作系统,Windows 是封闭的系统,需要有偿使用。 (3)Linux 上丰富的应用软件也是自由的,而在Windows 下,几乎所有的软件都有独立的版权,需要购买使用,即使某些软件可以免费使用,也一般不提供其源代码,更不用说由用户修改扩充其功能了。 (4)Windows 对硬件配置要求高,而Linux 在低端PC 系统上仍然可以流畅运行4.Linux 与Unix 的共同点与不同点是什么? 共同点:由于Linux 是从Unix 发展来到,它遵循Unix 开放标准,基本支持同样的软

《C++程序设计教程(第2)》课后习题

第1章 C++语言简介 1. 修改例1-1的Hello World!程序,使其能够在计算机屏幕上显示:I am a student, and I like programming! 2. 修改例1-3的加法计算器程序,编写一个乘法计算器程序。 3. 修改例1-4的生日卡程序,使其能够输入和显示日期。 4. 参考例1-5,使用梯形法计算下式定积分的值。 ?-+1 1)(sin dx e x x 其中积分区域等分数可取为200,并将计算结果和手算结果相比较。 提示:e x 用标准数学函数库cmath 中的库函数exp(x)表示。 5. 仿照例1-6,编写一个计算矩形面积的程序。 第2章 基本数据类型 1. 为例2-2添加数据检验部分。给出三边长,检验其是否能构成一个三角形的方法是检查是否任意两边和均大于第三边。如果检验不合格,输出信息“Error Data!” 2. 输入两个角度值x 、y ,计算如下式子的值。 |)cos(||) ||sin(|y x y x ++ 3. 编写一个程序,要求完成以下要求: 1) 提示用户输入任意的3个小数; 2) 显示这三个小数; 3) 将这三个小数相加,并显示其结果; 4) 将结果按四舍五入方法转换成整数并显示。 4. 从键盘输入任意三个整数,然后输出这三个数并计算其平均值。 5. 编写一个程序,将字符串“Love ”译成密码,译码方法采用替换加密法,其加密规则是:将原来的字母用字母表中其后面的第3个字母的来替换,如字母c 就用f 来替换,字母y 用b 来替换。 提示:分别用4个字符变量来存储'L'、'o'、'v'和'e',利用ASCII 表中字母的排列关系,按照译码方法对各个变量进行运算后输出即可。

如何编写一个简单的程序

如何编写一个简单的程序 这里为大家介绍一下如何开始编写一个真正的但是简单程序。 程序的概念: 下面一段,关于程序的概念,内容来自维基百科: 先阅读一段英文的:computer program and source code,看不懂不要紧,可以跳过去,直接看下一条。 A computer program, or just a program, is a sequence of instructions, written to perform a specified task with a computer.[1] A computer requires programs to function, typically executing the program's instructions in a central processor.[2] The program has an executable form that the computer can use directly to execute the instructions. The same program in its human-readable source code form, from which executable programs are derived ., compiled), enables a programmer to study and develop its algorithms. A collection of computer programs and related data is referred to as the software. Computer source code is typically written by computer programmers.[3] Source code is written in a programming language that usually follows one of two main paradigms: imperative or declarative programming. Source code may be converted into an executable file (sometimes called an executable program or a binary) by a compiler and later executed by a central processing unit. Alternatively, computer programs may be executed with the aid of an interpreter, or may be embedded directly into hardware. Computer programs may be ranked along functional lines: system software and application software. Two or more computer programs may run simultaneously on one computer from the perspective of the user, this process being known as multitasking. 计算机程序 计算机程序(Computer Program)是指一组指示计算机或其他具有信息处理能力装置每一步 动作的指令,通常用某种程序设计语言编写,运行于某种目标体系结构上。打个比方,一个 程序就像一个用汉语(程序设计语言)写下的红烧肉菜谱(程序),用于指导懂汉语和烹饪 手法的人(体系结构)来做这个菜。 通常,计算机程序要经过编译和链接而成为一种人们不易看清而计算机可解读的格式,然后 运行。未经编译就可运行的程序,通常称之为脚本程序(script)。

linux系统及编程基础课后答案

第1章习题答案 1. 什么是Linux? 答:Linux是一款优秀的操作系统,支持多用户、多进程、多线程,实时性好,功能强大且稳定。同时,它又具有良好的兼容性和可移植性,被广泛应用于各种计算机平台上。作为Internet的产物,Linux操作系统由全世界的许多计算机爱好者共同合作开发,是一个自由的操作系统。 2. Linux的主要特点是什么? 答:Linux具有UNIX的所有特性并且具有自己独特的魅力,主要表现在以下几个方面: 开放性 多用户 多任务 出色的稳定性能 良好的用户界面:Linux向用户提供了两种界面:用户界面和系统调用界面。 设备独立性:设备独立性是指操作系统把所有外部设备统一当作文件来看,只要安装它们的驱动程序,任何用户都可以像使用文件那样操作并使用这些设备,而不必知道它们的具体存在形式。 丰富的网络功能:完善的内置网络是Linux的一大特点,Linux在通信和网络 功能方面优于其他操作系统。其他操作系统不包含如此紧密的内核结合在一起的联接网络的能力,也没有内置这些联网特性的灵活性。而Linux为用户提供了完善的、强大的网络功能。

可靠的安全性 良好的可移植性:可移植性是指将操作系统从一个平台转移到另一个平台,使它仍然能按其自身的方式运行的能力。 3. Linux的主要组成包括什么? 答:Linux主要组成为: Linux内核(Kernel):内核(Kernel)是系统的心脏,是运行程序和管理硬件设备的内核程序,决定着系统的性能和稳定性,实现操作系统的基本功能。 Linux的Shell:Shell是系统的用户界面,提供用户与内核进行交互操作的一种接口。Shell是一个命令解释器,它解释由用户输入的命令并且把他们送到内核执行。Shell编程语言具有普通编程语言的很多特点,用这种编程语言编写shell程序与其他应用程序具有同样的效果。 Linux 文件系统:文件系统是文件存放在磁盘等存储设备上的组织方法。通常是按照目录层次的方式进行组织,用户能够从一个目录切换到另一个目录,而且可以设置目录和文件的权限、文件的共享程度。 Linux 实用程序(utilities)和应用程序(Applications):标准的Linux系统都有一套成为应用程序的程序集,包括文本编辑器、编程语言、X Window、办公套件、Internet工具、数据库等。 4. Linux与Windows的主要区别是什么? 答:主要区别: (1)Linux的应用目标是网络 Linux的设计定位于网络操作系统。虽然现在已经实现Linux操作系统的图形界面,但仍然没有舍弃文本命令行。由于纯文本可以非常好地跨越网络进行工作,所以Linux

linux下编写c源程序并编译运行

姓名:雨田河南大学rjxy 班级:XXXX 实验二Linux基本操作 实验二Linux基本操作 编写c源程序并用编译运行 【需求】 ◆在当前目录下创建新文件t.c,用vi编辑器一段简单代码,代码要求在屏幕上输出 文字“Hello Linux!”; ◆用gcc编译t.c文件,并运行,查看输出结果,若结果错误,请根据提示修改;【系统及软件环境】 操作系统:Virtualbox,Fedora 13 【实验配置文件及命令】 1.配置文件: 2.命令:touch、rpm、gcc、./等

进入Linux操作系统,应用程序-> 系统工具-> 终端,输入命令:su 输入密码切换到root超级用户。 1.在当前目录建立一个新的目录test:$ mkdir test 在test目录下建立文件t.c :$touch t.c 3编辑程序源代码:vi t.c 首先按下键盘的“i”键,字符界面下方出现“insert”提示字符,此时输入以下代码: #include "stdio.h" int main() { printf("Hello Linux!\n"); return 0; } 4 保存退出:先按下“Esc”键,然后按下“shift”和“:”键,界面上出现冒号,然后输入“xq!”或者“x”对代码保存退出。 5 由于系统默认没有安装C语言编译程序,下面进行安装gcc 程序; 此处不再赘述,以下引用实验指导书: 1.gcc的安装 (1)查看gcc是否安装 rpm –q gcc (2)指定安装源 在“系统-分配光驱”里选择“Fedora-13-i386-DVD.iso” (3)查看安装源挂载位置 df命令,可查看到虚拟光驱挂载点 返回结果为:/media/Fedora 13 i386 DVD (4)使用安装源 安装的文件为RPM安装包,所在位置为安装光盘中的“Packages”目录下,可用“cd”命令进入此目录 cd /media/ Fedora 13 i386 DVD/Packages ★由于“Fedora 13 i386 DVD”名字中有空格,若直接输入,则会提示找不到此目录,可用“tab”键自动补全 【方法】cd /media/F)/P() 则可返回如下结果: cd /media/Fedora\ 13\ i386 \DVD\ /Packages (5)查看当前目录下是否有gcc安装包

程序设计规范

程序设计规范 一、程序风格: 1、严格采用阶梯层次组织程序代码: 各层次缩进的分格采用VC的缺省风格,即每层次缩进为4格,括号位于下一行。要求相匹配的大括号在同一列,对继行则要求再缩进4格。例如: 2、提示信息字符串的位置 在程序中需要给出的提示字符串,为了支持多种语言的开发,除了一些给调试用的临时信息外,其他所有的提示信息必须定义在资源中。 3、对变量的定义,尽量位于函数的开始位置。 二、命名规则: 1、变量名的命名规则 ①、变量的命名规则要求用“匈牙利法则”。即开头字母用变量的类型,其余部分用变量的英文意思或其英文意思的缩写,尽量避免用中文的拼音,要求单词的第一个字母应大写。即:变量名=变量类型+变量的英文意思(或缩写) 对非通用的变量,在定义时加入注释说明,变量定义尽量可能放在函数的开始处。 见下表: bool(BOOL) 用b开头bIsParent byte(BYTE) 用by开头byFlag short(int) 用n开头nStepCount long(LONG) 用l开头lSum char(CHAR) 用c开头cCount float(FLOAT) 用f开头fAvg double(DOUBLE) 用d开头dDeta void(VOID) 用v开头vVariant unsigned int(WORD)用w开头wCount unsigned long(DWORD) 用dw开头dwBroad HANDLE(HINSTANCE)用h开头hHandle DWORD 用dw开头dwWord LPCSTR(LPCTSTR) 用str开头strString 用0结尾的字符串用sz开头szFileName 对未给出的变量类型要求提出并给出命名建议给技术委员会。 ②、指针变量命名的基本原则为: 对一重指针变量的基本原则为: “p”+变量类型前缀+命名 如一个float*型应该表示为pfStat 对多重指针变量的基本规则为: 二重指针:“pp”+变量类型前缀+命名 三重指针:“ppp”+变量类型前缀+命名 ...... ③、全局变量用g_开头,如一个全局的长型变量定义为g_lFailCount,即:变量名=g_+变量类型+变量的英文意思(或缩写)

操作系统实验指导书(linux版)

《操作系统》实验指导书 实验学时:16 适用专业:计算机科学与技术 实验一:进程和线程的创建 1.在linux下编写一个应用程序,命名为an_ch2_1b。这个程序不断地输出如下行:Those output come from child,[系统时间] 另外写一个应用程序,命名为an_ch2_1a。这个程序创建一个子进程,执行an_ch2_1b。这个程序不断地输出如下行: Those output come from child,[系统时间] 观察程序运行的结果,并对你看到的现象进行解释。 2。在linux环境下编写一个控制台应用程序,程序中有一个共享的整型变量shared_var,初始值为0;创建一个线程并使其立即与主线程并发执行。新创建的线程与主线程均不断地循环,并输出shared_var 的值。主线程在循环中不断地对shared_var 进行加1操作,即每次循环shared_var 被加1;而新创建的线程则不断地对shared_var 进行减1 操作,即每次循环shared_var 被减1。观察程序运行的结果,并对你看到的现象进行解释。 3。提交源代码以及实验报告。 实验二:进程和线程同步和互斥 1。生产者消费者问题(信号量) 参考教材中的生产者消费者算法,创建5个进程,其中两个进程为生产者进程,3个进程为消费者进程。一个生产者进程试图不断地在一个缓冲中写入大写字母,另一个生产者进程试图不断地在缓冲中写入小写字母。3个消费者不断地从缓冲中读取一个字符并输出。为了使得程序的输出易于看到结果,仿照的实例程序,分别在生产者和消费者进程的合适的位置加入一些随机睡眠时间。

实验项目:实验一 最简单的C程序设计

实验项目:实验一最简单的C程序设计 (所属课程:《C语言程序设计》学时:2) 一、实验目的 1.掌握:使用标准输入/输出函数进行常见数据类型的数据的输入/输出方法。 2.初步培养编制程序框图和源程序、准备测试数据以及实际调试程序的独立编程能力。 3.掌握顺序结构程序设计的基本思路。 二、实验条件 Pc和vc++编程环境 三、实验内容 1.熟悉编程环境。 2.输入并运行一个C程序 3.掌握各种格式转换符的正确使用方法。 4.编程序:设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。要求用scanf函数从键盘上输入数据(半径和高),输出各计算结果,输出时要求有文字说明,取小数点后2位数字。5.编程序:用getchar函数输入两个字符给C1、C2,然后分别用putchar 函数和printf函数输出这两个字符。 四、实验步骤 编写程序,输入数据,观察结果。 五、实验结果 观察结果和预期是否一致。 实验项目:实验二选择结构程序设计

(所属课程:《C 语言程序设计》学时:2) 一、实验目的 1.了解C 语言表示逻辑量的方法(以0代表“假”,以非0代表“真”)。 2.学会正确使用逻辑运算符和逻辑表达式。 3.熟练掌握if 语句和switch 语句 二、实验条件 Pc 和vc++编程环境 三、实验内容 1.有一函数: ?? ???≥-<≤-<=)10x (113x )10x 1(12x )1x (x y 用scanf 函数输入x 的值,求y 值。 运行程序,输入x 的值(分别为x<1、1≤x <10、x ≥10三种情况),检查输出的y 值是否正确。 2.给出一个百分制成绩,要求输出成绩等级A 、B 、C 、D 、E 。90分以上为A ,81~89分为B ,71~79分为C ,61~69分为D ,60分以下为E 。 3.输入4个整数,要求按由小到大顺序输出。 四、实验步骤 编写程序,输入数据,观察结果。 五、实验结果 观察结果和预期是否一致。 实验项目:实验三 循环结构程序设计

相关文档
最新文档