实验五 循环控制

合集下载

C语言程序设计课程实验指导书

C语言程序设计课程实验指导书

《C语言程序设计》课程实验指导书第一部分前言一、实验的目的学习C程序设计课程不能满足于“懂得了”,满足于能看懂书上的程序,而应当熟练地掌握程序设计的全过程,即独立编写源程序、独立上机调试、独立运行程序和分析结果。

上机实验的目的,绝不仅仅是为了验证教材和讲课的内容,或者验证自己所编写的程序的正确与否。

程序设计课程上机实验的目的是:1.加深对讲授内容的理解,尤其是一些语法规定。

通过实验来掌握语法规则是行之有效的方法。

2.熟悉所用的操作系统。

3.学会上机调试程序。

通过反复调试程序掌握根据出错信息修改程序的方法。

4.通过调试完善程序。

二、实验前的准备工作1.了解所用的计算机系统(包括C编译系统)的性能和使用方法。

2.复习和掌握与本实验有关的教学内容。

3.准备好上机所需的程序,切忌不编程或抄别人的程序去上机。

4.对程序中出现的问题应事先估计,对程序中自己有疑问的地方应先作上记号,以便上机时给予注意。

5.准备好调试程序和运行程序所需的数据。

三、实验的步骤上机实验应一人一组,独立实验。

上机过程中出现的问题,除了是系统的问题以外,不要轻易举手问老师。

尤其对“出错信息”,应善于分析判断,找出出错的行,然后检查该行或其上一行。

上机实验一般应包括以下几个步骤:1.双击桌面Visual C++快捷方式进入Visual C++,或通过执行“开始=>程序=> Microsoft Visual Studio 6.0=> Microsoft Visual C++6.0”或执行文件"C:\Program Files\Microsoft Visual Studio\COMMON\MSDev98\Bin\MSDEV.EXE"。

2.单击“文件”菜单的“新建”命令。

3.在打开的“新建”对话框中选择“文件”标签。

4.选择C++ Source File,选择文件保存位置,然后在文件输入栏中输入文件名。

如图所示:5.输入源程序。

《C程序设计》教学大纲

《C程序设计》教学大纲

理论课程教学大纲《C程序设计基础》教学大纲课程编号:110041总学时:64(其中,讲课:48;实验:16)学分:3实践教学:0.5周修读专业:信息工程大纲文本一、课程的主要内容第1章C语言概述1.1C语言出现的历史背景1.2C语言的特点1.3简单的C程序设计1.4C程序的上机步骤重点:C语言特点;简单的C程序难点:C程序及其上机步骤第2章数据类型、运算符与表达式2.1 C的数据类型2.2 常量和变量2.2.1 常量和符号常量2.2.2 变量2.3 整型数据2.3.1整形常量的表示方法2.3.2整形变量2.3.3整形常量的类型2.4 实型数据2.4.1 实型常量的表示方法2.4.2 实型变量2.4.3 实型常量的类型2.5 字符型数据2.5.1 字符常量2.5.2 字符变量2.5.3 字符数据在内存中的存储形式及其使用方法2.5.4 字符串常量2.6 变量赋初值2.7 各类数值型数据间的混合运算2.8 算术运算符和算术表达式2.8.1 C运算简介2.8.2 算术运算符和算术表达式2.9 赋值运算符和赋值表达式2.10 逗号运算符和逗号表达式重点:数据类型、运算符与表达式的知识难点:各种数值型数据间的混合运算以及各运算符的优先级第3章最简单的C程序设计—顺序程序设计3.1 C语言概述3.2 程序的三种基本结构3.3 赋值语句3.4 数据的输入输出的概念及在C语言中的实现3.5 字符数据的输入输出3.5.1 putchar函数(字符输出函数)3.5.2 getchar函数(字符输入函数)3.6 格式输入和输出3.6.1 printf函数(格式输出函数)3.6.2 scanf 函数(格式输入函数)3.7 顺序结构程序设计举例重点:程序的三种基本结构;格式输入输出;字符数据的输入输出;简单的顺序结构程序设计难点:格式控制字符以及scanf应该注意的一些细节问题第4章逻辑运算和判断选取控制4.1 关系运算符和关系表达式4.1.1 关系运算符及其优先次序4.1.2 关系表达式4.2 逻辑运算符和逻辑表达式4.2.1 逻辑运算符及其优先次序4.2.2 逻辑表达式4.3 if语句4.3.1 if语句的三种形式4.3.2 if语句的嵌套4.3.3 条件运算符4.4 switch语句4.5 程序举例重点:if语句的使用;switch语句的使用;选择结构程序设计难点:多分支语句用if和switch语句实现第5章循环控制5.1 概述5.2 goto语句以及用goto语句构成循环5.3 while语句5.4 do-while语句5.5 for语句5.6 循环的嵌套5.7 几种循环的比较5.8 break语句和continue语句5.8.1 break 语句5.8.2 continue 语句5.9 程序举例重点:循环结构的概念及其使用;for循环的使用;while循环的使用;do-while循环的使用;循环结构程序的编写难点:三种循环的比较;用C语言实现几种循环第6章数组6.1 一维数组的定义和引用6.1.1 一维数组的定义6.1.2 一维数组元素的引用6.1.3 一维数组的初始化6.1.4 一维数组程序举例6.2 二维数组的定义和引用6.2.1 二维数组的定义6.2.2 二维数组的引用6.2.3 二维数组的初始化6.2.4 二维数组程序举例6.3 字符数组6.3.1 字符数组的定义6.3.2 字符数组的初始化6.3.3 字符数组的引用6.3.4 字符串和字符串结束标志6.3.5 字符数组的输入输出6.3.6 字符串处理函数6.3.7 字符数组应用举例重点:一维数组定义和使用;字符数组的定义和使用难点:二维数组的定义和使用第7章函数7.1 概述7.2掌握函数定义的一般形式7.3 函数参数和函数的值7.3.1 形式参数和实际参数7.3.2 函数的返回值7.4掌握函数几种调用7.4.1 函数调用的一般形式7.4.2 函数调用的方式7.4.3 对被调用函数的声明和函数原型7.5 函数的嵌套调用7.6 函数的递归调用7.7 数组作为函数参数7.8 局部变量和全局变量7.8.1 局部变量7.8.2 全局变量7.9掌握几种变量类型的区别和存储类别7.9.1 动态存储方式与表态存储方式7.9.2 auto 变量7.9.3 用static声明局部变量7.9.4 register 变量7.9.5 用extern 声明外部变量7.9.6 用static 声明外部变量7.9.7 关于变量的声明和定义7.9.8 存储类别小结7.10 内部函数和外部函数7.10.1 内部函数7.10.2 外部函数7.11 如何运行一个多文件的程序重点:函数的基础知识及其使用难点:变量的存储类别;数组作为函数参数;函数的综合使用等第8章预处理命令8.1掌握宏定义8.1.1 不带参数的宏定义8.1.2 带参数的宏定义8.2掌握文件包含8.3了解条件编译重点:几种预处理功能第9章指针9.1掌握指针的概念9.2 变量的指针和指向变量的指针变量9.2.1 定义一个指针变量9.2.2 指针变量的引用9.2.3 指针变量作为函数参数9.3 数组的指针和指向数组的指针变量9.3.1 指向数组元素的指针9.3.2 通过指针引用数组元素9.3.3 用数组名作函数参数9.3.4指向多维数组的指针和指针变量9.4 字符串的指针和指向字符串的指针变量9.4.1 字符串的表示形式9.4.2 字符串指针作函数参数9.4.3 对使用字符指针变量和字符数组的讨论9.5 函数的指针和指向函数的指针变量9.5.1 用函数指针变量调用函数9.5.2 用指向函数的指针作函数参数9.6 返回指针值的函数9.7 指针数组和指向指针的指针9.7.1 指针数组的概念9.7.2 指向指针的指针9.7.3 指针数组作main函数的形参9.8 有关指针的数据类型和指针运算的小结9.8.1 有关指针的数据类型的小结9.8.2 指针运算小结9.8.3 void指针类型重点:指针的基本知识及使用;难点:多重指针的使用第10章结构体与共用体10.1 概述10.2 定义结构体类型变量的方法10.3 结构体变量的引用10.4 结构体变量的初始化10.5 结构体数组10.5.1 定义结构体数组10.5.2 结构体数组的初始化10.5.3 结构体数组应用举例10.6 指向结构体类型数据的指针10.6.1 指向结构体变量的指针10.6.2 指向结构体数组的指针10.6.3 用结构体变量和指向结构体的指针作函数参数10.7 用指针处理链表10.7.1链表概述10.7.2 简单链表10.7.3 处理动态链表所需的函数10.7.4 建立动态链表10.7.5 输出链表10.7.6 对链表的删除操作10.7.7 对链表的插入操作10.7.8 对链表的综合操作10.8 共用体10.8.1 共用体的概念10.8.2 共用体变量的引用方式10.8.3 共用体类型数据的特点10.9 枚举类型10.10用typedef定义类型重点:结构体与共同体的基本知识与使用难点:结构体数组的使用;指针处理链表第11章位运算11.1 位运算符和位运算11.1.1 “按位与”运算符(&)11.1.2 按位或运算符(|)11.1.3 “异或”运算符(∧)11.1.4 “取反”运算符(~)11.1.5 左移运算符(<<)11.1.6 右移运算符(>>)11.1.7 位运算赋值运算符11.1.8 不同长度的数据进行位运算11.2 位运算举例11.3 位段重点:位运算的基本知识与运用第12章常见错位和程序调试12.1 常见错误分析12.2 程序调试重点:常见错误及其程序调试的一些知识难点:一些错误分析的方法;程序调试的基础知识二、实验实验一运行一个简单的C程序实验二数据类型、运算符和表达式实验三顺序结构程序设计实验四选择结构程序设计实验五循环结构程序设计实验六一维数组的定义和引用、二维数组的定义和引用实验七字符数组、字符串实验八函数的定义、函数的调用、函数的嵌套调用实验九函数的递归调用、局部变量和全局变量、变量的存储类别, 内部函数和外部函数和编译预处理命令实验十指针的定义及运算,指针作函数参数实验十一指针与数组实验十二字符指针与字符串实验十三结构体、共用体和枚举类型实验十四链表实验十五综合实验三、实习(一)学生成绩排名先采用冒泡法,将学生成绩从高到低进行排序,再输入一个学生的成绩,将此成绩按照排序规律插入已排好序的学生成绩数组,最后将排好序的成绩单进行反序存放。

实验5

实验5

实验五第3章MATLAB程序设计第二节程序控制结构程序控制结构有三种:顺序结构、旋择结构、循环结构.任何复杂的程序都可以由这三种基本结构构成.Matlab提供了实现控制结构的语句,利用这些语句可以编写解决实际问题的程序.一、顺序结构顺序结构是指按照程序中语句的排列顺序从上到下依次执行,直到程序的最后一个语句如例1的qiu文件和例2的dd1文件.这是最简单的一种程序结构.一般涉及数据的输入、计算或处理、数据的输出等内容.1. 数据的输入通过input命令来接收从终端输入的内容,它也可以显示文本和提示.命令集14 输入命令input(out ,in)在屏幕上显示出字符串out的文本并等待终端的输入.如果变量in是's',则输入的内容以字符串的形式进行保存,通常MATL AB在保存前要尽可能地求出表达式的值.如果使用格式控制符号如'\n',字符串out可以是若干行.2. 数据的输出可以通过简单地输入变量的名字来显示数字矩阵或者字符串向量的内容,结果将显示出变量的名字和内容.另一种显示变量的值就是使用命令disp.使用它只显示出变量的内容,这是有用的,特别是在字符串的应用中.命令集15显示命令disp(A)显示矩阵A的内容,如果A是字符串,则显示出它的文本.二、循环结构循环结构是按照给定的条件,重复执行指定的语句.Matlab用于实现循环结构的语句有for — end语句和while — end语句.1.for —end语句for-end语句的格式为:for 循环变量=表达式1 : 表达式2 : 表达式3循环体语句end其中表达式1的值为循环变量的初值,表达式2的值为步长,表达式3的值为循环变量的终值.步长为1时,表达式2可以省略.循环语句应用时应注意:● 循环语句可以嵌套使用;● 不能在 for — end 循环体内改变循环变量的值; ● 为了提高代码的运行效率,应尽可能提高代码的向量化程度,避免 for — end 循环的使用,如例8;● 如果预先就知道循环的次数,则可以采用 for — end 循环;否则,如果预先无法确定循环的次数,则可以使用 while — end 循环.2. while — end 循环while-end 语句的一般格式为:while (条件) 循环体语句 end 其执行过程为:若条件成立,则执行循环体语句,执行后再判断条件是否成立,如果不成立则跳出循环.■例1 使用while-end 结构计算1+2+3+…+100 . 解:■例2 计算 Matlab 中 eps 值 (exp1.m) 解:s=0;for i=1:100 s=s+i; end ss=0; i=1;while i<=100 s=s+i; i=i+1; end snum=0; EPS=1; while (1+EPS)>1 EPS=EPS/2; num=num+1; endEPS,num三、选择结构选择结构是根据给定的条件成立或不成立,分别执行不同的语句.Matlab 用于实现选择结构的语句有条件语句:if –end 和 开关语句:switch-end .1.单分支结构 if —end 语句 2.双分支结构 if —else —end 语句 if-end 语句的格式为: if-else-end 语句的格式为:3.多分支结构 if — elseif — else — end 语句 if — elseif — else — end 语句的格式为:if 条件表达式 语句组 endif 条件表达式 语句组1 else语句组2 endif 条件表达式1 语句组1 elseif 条件表达式 2 语句组2 ... ...elseif 条件表达式 m 语句组m else 语句组end■例3求函数1;00;1;x y x x -<⎧⎪= =0⎨⎪ >⎩ ,输入x 值,输出y 值.解:■例4一个三位整数各位数字的立方和等于该数本身则称该数为水仙花数.输出全部水仙花数.解:程序如下运行结果:153 370 371 407function y=fuhao(x) if x<0 y=-1; elseif x==0 y=0; else y=1; endA=[];for m=100:999m1=fix(m/100); %求m 的百位数字 m2=rem(fix(m/10),10); %求m 的十位数字 m3=rem(m,10); %求m 的个位数字 if m==m1*m1*m1+m2*m2*m2+m3*m3*m3 A=[A,m];endend disp(A)4. switch-end 语句根据表达式的不同取值,分别执行不同的语句.其格式如下:■关于 switch-end 语句的几点注解:● Matlab 首先计算表达式的值,然后将它依次与各个case 指令后的检测值进行比较,当比较结果为真时,就执行相应的语句组,然后跳出 switch-end 结构● 如果所有的比较结果都为假,则执行 otherwise 后面的语句组,然后跳出 switch-end 结构 ● otherwise 指令可以不出现● switch 后面的表达式的值可以是一个标量或字符串 ● case 指令后的检测值超过一个时,应用{}括起来switch 表达式 case 值1 语句组1 case 值2 语句组2 ... ... case 值m 语句组m otherwise 语句组n end■例5 阅读程序method=input('请输入方法名:')switch methodcase {'linear','bilinear'}disp('Method is linear')case 'cubic'disp('Method is cubic')case 'nearest'disp('Method is nearest')otherwisedisp('Unknown method.')end■例6用switch-end语句编一程序,对于给定的一个百分制成绩,输出相应的五分制成绩,设:90分以上为…A‟, 80~89分为…B‟,70~79分为…C‟,60~69分为…D‟,60分以下为…E‟.function sctole(score)grade=fix(score/10);switch gradecase {10,9}grade='A'case 8grade='B'case 7grade='C'case 6grade='D'otherwisegrade='E'end四、其他流程控制语句●break语句●continue语句●return语句●try语句●echo命令●keyboard命令●pause命令1.break和continue语句与循环结构相关的语句还有break语句和continue语句.它们一般与if语句配合使用.break语句用于终止循环的执行.当在循环体内执行到该语句时,程序将跳出循环,继续执行循环语句后的下一语句.continue语句控制跳过循环体中的某些语句.当在循环体内执行到该语句时,程序将跳过循环体中所有剩下的语句,继续下一次循环. ■例7求[100,200]之间第一个能被21整除的整数.for n=100:200if rem(n,21)~=0continueendbreakendn for n=100:200if rem(n,21)==0breakendendn2.try语句语句格式为:try语句组1catch语句组2endtry语句先试探性执行语句组1,如果语句组1在执行过程中出现错误,则将错误信息赋给保留的lasterr变量,并转去执行语句组2.这种试探性执行语句是其他高级语言所没有的.■例8矩阵乘法运算要求两矩阵的维数相容,否则会出错.先求两矩阵的乘积,若出错,则自动转去求两矩阵的点乘.function C=rc(A,B)%A,B为矩阵tryC=A*B;catchC=A.*B;endlasterr %显示出错原因3.请求键盘输入命令keyboard暂停运行程序并处于等待键盘输入状态(便于调试及程序运行中修改变量),键入“return”程序继续运行.如运行如下:4. echo 命令(在命令窗口,程序调用前使用)一般情况下,M 文件执行时,文件中的命令不会显示在命令窗口.echo 命令可使文件命令在执行时可见.这对程序的调试及演示很有用.对命令文件和函数文件,echo 的作用稍微有些不同.●对命令文件,其格式如下:echo on 打开命令文件的回应命令 echo off 关闭回应命令●对函数文件,其格式如下:echo file on 使指定的file 文件的命令在执行中被显示出来 echo file off 关闭指定文件的命令在执行中的回应function y=f(x) keyboardy=(5*x-6)/((x-3)*(x-3)+2);>> f K>> x=4; K>> return ans = 4.6667>> y=f(4) K>> return y = 4.6667。

matlab实验五循环结构程序设计实验报告

matlab实验五循环结构程序设计实验报告

实验五:循环结构程序设计实验报告一、实验目的1. 了解循环结构的基本概念和原理;2. 掌握使用Matlab进行循环结构程序设计的方法;3. 提高编程能力和问题解决能力。

二、实验内容1. 学习while循环和for循环的基本语法和用法;2. 设计并编写一些基于循环结构的Matlab程序;3. 分析程序运行结果并进行总结。

三、实验原理循环结构是程序设计中的重要组成部分,它可以让一段代码重复执行多次,从而简化程序的编写。

在Matlab中,循环结构主要有while 循环和for循环两种形式。

while循环在执行循环体前判断条件是否为真,只有条件为真时才会执行循环体;for循环则是指定循环的次数,每次迭代时执行一次循环体。

四、实验步骤与结果1. 编写一个使用while循环的程序,实现1~100的累加。

程序代码如下:```matlabsum = 0;i = 1;while i <= 100sum = sum + i;i = i + 1;enddisp(sum);```运行程序后,得到的结果为5050。

2. 编写一个使用for循环的程序,实现1~10的阶乘。

程序代码如下:```matlabresult = 1;for i = 1:10result = result * i;enddisp(result);```运行程序后,得到的结果为xxx。

五、实验总结通过本次实验,我深刻理解了循环结构的基本概念和原理,掌握了使用Matlab进行循环结构程序设计的方法。

在编写循环程序的过程中,我发现循环结构可以大大简化程序的编写,并且能够高效地处理重复性任务。

我也进一步提高了自己的编程能力和问题解决能力。

本次实验使我对Matlab中的循环结构有了更加深入的了解,我相信这对我的编程能力和日后的学习工作都将大有裨益。

六、实验感想和改进意见通过本次实验,我深刻认识到循环结构在程序设计中的重要性和灵活性。

循环结构能够帮助我们简化程序的编写,提高代码的重用性和可读性,因此在实际的程序设计中,合理地运用循环结构能够大大提高程序的效率和逻辑清晰度。

实验五 步进电机单轴定位控制实验

实验五 步进电机单轴定位控制实验

方向信号 (a) 脉冲+方向 (b) 正脉冲+负脉冲 实验五 步进电机单轴定位控制实验一、实验目的1. 学习和掌握步进电机及其驱动器的操作和使用方法;2. 学习和掌握步进电机单轴定位控制方法;3.学习和掌握PLC 单轴定位模块的基本使用方法。

二、实验原理步进电动机是一种将电脉冲信号转换为相应的角位移或直线位移量的机电执行元件,即步进电动机输入的是电脉冲信号,输出的是角位移或直线位置。

每给一个脉冲,步进电动机转动一个角度,这个角度称为步距角。

运动速度正比于脉冲频率,角位移正比于脉冲个数。

步进电动机典型控制系统框图如图1-2-9所示。

图1-2-9 步进电动机典型控制系统框图位置控制单元可根据需要的频率和个数以及设定的加减时间控制步进电动机运动。

由于步进电动机需要正反转运动,因此定位单元的输出脉冲形式有“脉冲+方向”和“正脉冲+负脉冲”两种,它们均可控制步进电动机正反转运动。

输出脉冲形式通过参数设定来选择。

其脉冲形式如图1-2-10所示。

图1-2-10 定位模块的两种输出脉冲形式频 率 (HZ ) 脉冲数(PLS ) f 1S 2 S 3S 1由于步进电动机的电磁惯性和所驱动负载的机械惯性,速度不能突变,因此定位模块要控制升降频过程。

步进电机升、降频过程如图1-2-11。

一般情况下,S 2=S 3。

图 1-2-11 步进电机升、降频示意图其中:f 1——设定的运行频率,应小于步进电动机的最高频率;S 1——设定的总脉冲个数;S 2——升频过程中脉冲个数,由加速时间和运行频率确定;S 3——降频过程中脉冲个数,由减速时间和运行频率确定。

步进电动机驱动器将位置定位模块的输出脉冲信号进行分配并放大后驱动步进电动机的各相绕组,依次通电而旋转。

驱动器也可接受两种不同形式的脉冲信号,通过开关来选择,定位模块和驱动器的脉冲形式要相同。

另外,为了提高步进电动机的低频性能,驱动器一般具有细分功能,多个脉冲步进电动机转动一步,细分系数一般为1、2、4、8、16、32等几种,通过拨码开关来设定。

C语言实验学生版(最新版)

C语言实验学生版(最新版)

实验一:简单的C程序设计(2学时)一、实验方式:一人一机二、实验目的:1、了解C语言程序的编译环境和编写过程。

2、掌握C语言程序在Visual C++ 6.0环境下的调试过程。

3、初步了解C语言程序的特点。

4、掌握C语言的数据类型。

三、实验内容:1、计算两个数x和y的和。

(教材P5【例1-2】)2、从键盘输入华氏温度h,输出摄氏温度c(摄氏温度=5/9*(华氏温度-32))。

(实验教材P18)3、给定圆环,输入内圆环半径r1、外圆环半径r2,求出圆环的面积。

(实验教材P27)4、从键盘上输入两个整数x、y,实现两个数的交换,并求出最大值、最小值和两个数的平均值。

(实验教材P21)5、输入并运行以下程序,分析运行结果。

(实验教材P27)#include <stdio.h>void main( ){int i,j;i=8; j=10;printf(“%d,%d\n”,++i,++j);i=8; j=10;printf(“%d,%d\n”,i++,j++);i=8; j=10;printf(“%d,%d\n”,++i,i);i=8; j=10;printf(“%d,%d\n”,i++,i);}四、实验程序代码:五、实验运行结果(截图):实验二:顺序结构程序设计(2学时)一、实验方式:一人一机二、实验目的:1、掌握标识符、常量、变量的定义及使用。

2、掌握C语言的常用运算符及表达式。

3、掌握单分支if语句的使用方法。

4、掌握双分支if-else语句的使用方法。

三、实验内容:1、从键盘输入一个3位整数,请输出该数的逆序数。

(实验教材P27)2、输入3个字符型数据,将其转换成相应的整数后,求它们的平均值并输出。

(实验教材P27)3、判断箱子是正方体还是长方体。

(实验教材P33)4、有一函数: x (x<1)y= 2x-1 (1≤x<10)3x-11 (x≥10) 编写程序,输入x值,输出y值。

电气控制综合实验

电气控制综合实验

实验二 钻床主轴进给控制系统模拟一、实验内容钻头从初始位置开始向右进行钻孔工作,钻孔过程中,钻头向右钻一段距离后返回初始位置,然后再向右钻一段距离再返回初始位置,如此反复,完成钻孔的工作过程。

控制要求:钻头初始位置在原点(光电开关SQ1处),按下启动按钮SB1,钻头进给至SQ2光电开关处后返回原点,然后再进给至SQ3光电开关处后返回原点,紧接着再进给至SQ4光电开关处后返回原点停止。

过程中任意时刻按下停止按钮SB2,钻头立即返回原点。

钻头在原点停止时,按启动按钮SB1,过程可以重新开始。

二、实验要求按照控制要求画出梯形图,验证其正确性。

SQ1SQ4SQ3SQ2SB1SB2向右实验三 小车行驶控制系统模拟一、 实验内容假设有一条自动生产线,用电动机拖动小车,电动机正转小车前进,反转小车后退,小车按照控制要求往返于四个光电开关之间。

控制要求:单周期循环控制和连续循环控制两种工作方式。

1、单周期循环控制小车初始位置在原点(光电开关SQ1处),按下单周期循环按钮SB1,小车前进至SQ3处,再后退到至SQ2处,接着前进至SQ4处,再后退至SQ2处,然后前进至SQ3处,最后反回到原点SQ1处停止,完成单周期循环控制过程。

2、连续循环控制按下连续期循环按钮SB2,小车反复执行单周期循环控制过程,要求每到一处停留2S ,按下停止按钮SB3后,小车立即返回原点SQ1处停止。

二、实验要求按照控制要求画出梯形图,验证其正确性。

SQ1SQ4SQ3SQ2SB1SB3前进SB2实验四圆盘转速、位置控制系统设计任务圆盘上标有八个位置符号,编号为0~7。

圆盘能正、反向旋转,并可进行高、低速调速。

控制要求:1. 圆盘启动后为高速运行,停止前(相差一个位置时)为低速,并只作逆时针单方向旋转(注:仅隔一个位置时,慢速转至所要求位)。

2. 用八个按钮控制,编号也为0~7,当按下某一按钮,圆盘上对应的编号的位置就会旋转至下方出口位置后停下。

实验五 胃肠运动的调节及药物对胃肠运动的影响

实验五 胃肠运动的调节及药物对胃肠运动的影响

实验五胃肠运动的调节及药物对胃肠运动的影响【实验目的】1.观察哺乳类动物消化道平滑肌的生理特性。

2.学习创建离体肠平滑肌活动的模拟内环境和哺乳类动物离体器官或组织灌流的实验方法。

3.观察肾上腺素、乙酰胆碱等药物对离体肠平滑肌的作用及其机制。

【实验原理】消化道平滑肌与骨骼肌、心肌一样,具有肌肉组织共有的特性,如兴奋性、传导性和收缩性等。

但消化道平滑肌兴奋性较低,收缩的潜伏期、收缩期和舒张期较长,造成其收缩缓慢并有伸展性。

其中胃的伸展性变化尤其明显,这对于一个中空的容纳器官来说,能够适应食物容量的变化,具有重要的生理意义;消化道平滑肌处于一种微弱的持续收缩状态,即紧张性,这使消化道内经常维持一定的基础压力,有利于胃肠保持一定的形状和位置,使胃肠的容量和食物的容积相适应;对电刺激不敏感,但对温度变化、化学和机械或牵张刺激很敏感;许多部位消化道平滑肌具有自动节律性,但其节律性收缩比心肌缓慢且不稳定。

消化道功能是在神经、体液调节下完成的。

支配消化道的神经包括外来神经系统和内在神经系统两大部分。

(一)中枢神经系统对消化道功能的调节作用中枢神经系统通过两条途径调节消化道功能:①直接作用:通过交感、副交感神经(主要是迷走神经);②间接作用:通过体液途径即激素或神经内分泌途径,如下丘脑的生长抑素分泌细胞分泌的生长抑素具有明显的消化道兴奋作用;脑啡肽则对消化道有抑制作用。

(二)内在神经系统又称肠神经系统,以往认为肠系统的神经递质为乙酰胆碱和去甲肾上腺素,近年的研究表明,肠神经系统的神经元内几乎存在所有中枢神经系统中的递质,肠内在神经系统的主要神经递质及其作用见表5-1。

表5-1 肠内在神经系统的主要神经递质及作用神经递质名称分布及作用乙酰胆碱(Ach)是支配胃肠道平滑肌、肠上皮细胞、壁细胞、某些肠道的内分泌细胞以及神经突触的主要兴奋性递质胆囊收缩素(CCK)存在于某些分泌调节性神经元和中间神经元,可能参与兴奋性传递,与肌肉兴奋有关5-羟色胺(5-HT)可能参与兴奋性神经元突触传递神经肽Y(NPY)存在于分泌调节性神经元,可能抑制水和电解质的分泌;也可见于中间神经元及某些抑制性肌肉运动神经元血管活性肠肽(VIP)是分泌调节神经元的兴奋性递质;也可能是肠道内血管舒张神经元的递质,与肠内抑制性肌肉运动神经元的信息传递有关101一氧化氮(NO)是肠内抑制性肌肉运动神经的共存递质,也可能是神经元突触传递的递质γ-氨基丁酸(GABA)因动物种属及部位不同,存在于不同类型的神经元胃泌素释放肽(GRP)对胃泌素细胞有兴奋作用,也存在于支配肌肉的神经纤维和中间神经元去甲肾上腺素(NE)具有抑制非括约肌部位的运动、收缩括约肌、抑制分泌调节反射、收缩肠道小动脉等作用生长抑素广泛分布于肠神经元,但作用未明存在于某些分泌调节性神经元和中间神经元,作用不详降钙素基因相关肽(CGRP)三磷酸腺苷(ATP)可能与肠内抑制性肌肉运动神经元的信息传递有关速激肽速激肽包括P物质、神经激肽A、神经激肽K等,是肠道兴奋性肌肉运动神经元的主要递质,也可能是肠道初级感觉神经元的递质(三)外来神经系统包括交感神经和副交感神经。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

实验五:循环控制
㈠实验目的
①熟练掌握用while语句、do-while语句和for语句实现循环的方法。

②掌握在程序设计中应用循环的方法时下一些常用算法。

③进一步学习调试程序。

㈡实验内容
⑴①#include "stdio.h"
int main()
{int i,sum=0;
i=1;
while(i<=100)
{sum=sum+i;
i=i+2;}
printf("%d\n",sum);}
结果:2500
分析:把第一个奇数1 作为初值赋给i,执行while 语句时,先判断表达式i<=100 是否为真,1〈=100 为真,所以执行循环体的语句。

循环体由一个复合语句构成,i〉100 是循环结束的条件,循环体中i=i+2 是最终导致i〉100 的语句。

sum=sum+i语句实现了奇数和的计算。

每执行完一次i=i+2,都要重新判断i<=100 是否为真,直到为假(i〉100)循环结束,执行循环下面的语句。

②#include "stdio.h"
int main()
{int i=1,sum=0;
do{sum=sum+i;i=i+2;}
whlie (i<=100);
printf ("%d\n",sum);}
结果:2500
分析:do_while 语句执行时,先执行一次指定的循环体语句,然后判别表达式i<=100 的值,当为真则返回执行循环体语句。

如此反复,直至表达式值为0。

③#include "stdio.h"
int main()
{int i,sum;
for(i=1,sum=0;i<=100;i=i+2)
sum=sum+i;
printf("%d\n",sum);}
结果:2500
分析:执行for 循环时:(1)先求解表达式1。

(2)求解表达式2,1<=100 值为真,则执行for 语句中指定的内嵌语句sum=sum+i。

(3)求解表达式3。

(4)转回第(2)步继续执行。

(5)若表达式2 的值为假则循环结束,执行for 语句下面的一个语句,输出结果。

⑵#include "stdio.h"
int main()
{int i,j,m,n;
for(i=100;i>=100&&i<=999;i++)
{j=i/100;
m=(i-100*j)/10;
n=(i-100*j-10*m);
if(i==j*j*j+m*m*m+n*n*n)
printf("%d\n",i);}}
结果:153
370
371
407
⑶#include "stdio.h"
void main()
{float sn=100.0,hn=sn/2;
int n;
for(n=2;n<=10;n++)
{ sn=sn+2*hn;
hn=hn/2 ;}
printf("%f\n",sn);
printf("%f\n",hn);}
结果:299.609375
0.097656
㈢实验总结
⑴while 循环是先判断表达式的值,若真后执行语句。

⑵do-while 循环是先执行一次循环的内嵌语句,再判断循环条件是否成立。

当为真则返回重新执行循环体语句。

⑶for 循环不仅可以用于循环次数已经确定的情况,而且可以用于循环次数不确定而只给出循环结束条件的情况,它完全可以代替while 语句。

for 循环的描述更简单。

⑷三个循环语句都是为了实现一些复杂的重复操作而编写的简单程序结构。

相关文档
最新文档