第3章 数据的输入与输出
c语言——数据的输入与输出PPT教学课件

第四章
数据的输入和输出
共 25 页 第 1 页
本章要点
• 掌握C语言中输入输出数 据的方法
• 掌握各种格式的使用
共 25 页 第 2 页
数据输入输出的概念
输出:从计算机向显示器、打印机等外部设 备输出数据。
输入:从标准输入设备键盘、鼠标等向计算 机输入数据。
C语言不提供输入输出语句,输入输出操作 是由C函数库中的函数实现。
共 25 页 第 12 页
(7) f格式符 以小数形式输出实数(包括单、双精度)。
1) %f , 不指定字段宽度,由系统自动指定,使整数部 分全部输出,并输出6位小数(输出双精度数据, 也是6位,但误差降低)。
2) %m.nf , 指定输出的数据共占m列,其中有n位小 数.若数据长度小于m,则左端补空格。
printf(“%d,%o”,a,a);
输出:
VC++下
-1,177777
共 25 页 第 9 页
(3) x格式符,以十六进制数形式输出整数。 (4) u格式符,以十进制形式输出无符号型数据。 [例]
#include <stdio.h> main() {
unsigned int a=65535; int b=-2; printf(“a=%d,%o,%x,%u\n”,a,a,a,a); printf(“b=%d,%o,%x,%u\n”,b,b,b,b); } 输出: a=-1,177777,ffff,65535 b=-2,177776,fffe,65534
使用系统库函数时,要用预编译命令 “#include”将有关头文件包括在用户的源 文件中。如#include “stdio.h”
共 25 页 第 3 页
C语言课件第三章

三、 自增、自减运算符 ++ --
++、- -运算符的作用是使变量的值加1或减1
1)该运算符为单目运算符,其运算对象只能是 变量,不能为常量或者表达式。 例如: i++ 、x- - 都是正确的 5++ 、(x+y)++ 都是错误的
2)该运算符作前缀、后缀都可以 例如 i++、++i、i- - 、- -i 都是正确的
3)对变量而言 i++ 或者++i都相当于i=i+1 i- -或者- -i都相当于i=i-1
例如: main( ) { int i=3 , j=3; +i+++i; j---j;; printf (“%d, %d\n”, i, j ); }
运行结果:4,2
4)但如果作为表达式,前缀和后缀则不同: 后缀:先取值再运算(i++,先取i值,i再自加) 前缀:先运算再取值(++i,i先自加,再取i值)
2)强制类型转换运算符优先级高于算术运算符
float x=3.6; int y; y=(int)x%3+2;
x = ?3.6 y=?2
计算下列表达式的值 设 x=2.5, a=7,y=4.7
x+a%3 * (int)(7x7+.2y ) % 2 / 4
设 a=2,b=3,x=3.5,y=2.5
(float5).(0a+b )/2+(int3)(x)%(int2)(y)
例如: main() { int i=3; printf(“%d\n”+, +i+i+ ); printf(“%d”, i ); }
第三章 matlab程序设计基础

3. 程序控制流 3.多分支if语句
• 多分支if语句格式为:
if 条件1 语句组1 elseif 条件2 语句组2 …… elseif 条件m 语句组m else 语句组m+1
end
3. 程序控制流
• 例 输入一个字符,若为大写字母,则输出其后继字符,若为 小写字母,则输出其前导字符,若为数字字符则输出其对应 的数值,若为其他字符则原样输出。 – 程序如下:
c=input('请输入一个字符','s'); if c>='A' & c<='Z' disp(setstr(abs(c)+1)); elseif c>='a'& c<='z' disp(setstr(abs(c)-1)); elseif c>='0'& c<='9' disp(abs(c)-abs('0')); else disp(c); end
分类:脚本文件(Script File)和函数文件(Function File)。 主要区别。
1. M文件 脚本文件
没有输入和输出 由一系列指令组成 可在命令窗口直接运行 产生的所有变量存储在workspace中。 例 test.m。
1. M文件 例 脚本M文件实例
脚本M文件实例,查找10 ~100所有素数。
1. M文件
• 函数文件examp.m: function fout=charray(a,b,c) %举例说明函数文件名与函数名不同 if nargin==1 fout=a; elseif nargin==2 fout=a+b; elseif nargin==3 fout=(a*b*c)/2; end • 命令窗口: x=[1:3];y=[1;2;3]; examp(x) examp(x,y') examp(x,y,3)
C++语言程序设计第3章

优先级和结合性:
先乘除,后加减,同级自左至右。
Page 20
3.3.1 算术运算符和表达式
例: float f = 3.5; int n = 6; long k = 21; double ss = f*n + k/2;
Page 21
3.3.2 自加自减运算符和表达式
运算符 ++ ++ ---
名字 增量(前缀) 增量(后缀) 减量(前缀) 减量(后缀)
▪ 字符数据在内存中的存储形式 - 以ASCII码存储,占1字节,用7个二进制位
Page 14
3.2.2 变量和常量—字符型数据
▪ 字符串常量
例:"CHINA" "a" 'a'
C H I N A \0 a \0 a
所以:char c;
c="a";
Page 15
3.2.2 变量和常量—布尔型数据
▪ 布尔型变量的说明: 例:bool flag;
Union
Unsigned
Class
Const_cast Delete
Friend Public Try Asm Except
Inline
Mutable
Reinterpret_c ast
Typeid
Typename
Namespac e
Static_cast
New Template
Using
Virtual
▪ 布尔型数据的取值: 只有 false 和 true 两个值
▪ 整型数与布尔变量的转换: - 非0整数隐式转换成true,整数0隐式转
换成false; - true转换成1, false转换成0;
3数据的输入输出(p35)精品文档35页

}
09.01.2020
第 3 章数据的输入和输出
4
#include <stdio.h> main() { int c;
printf("Enter a character:"); c=getchar(); printf("%c--->%d\n",c,c); }
运行结果: Enter a character:A A--->65
41
o 八进制无符号整数 int a=65;printf(“%o”,a);
101
u c s
不单字带一符符字串号符例十进例制ipnr整tiipn数nrtatia=fnc=3(tiphfn3,“r(at例i“,brnab%t=%a==f=4d(6d“4{65;%5;m;%%p;upspdra”indrr\n,iii“sn\nntnAfit(t(gf””)Bf“(n“(,%Ca"%e,,uu”dabc)”=;”,),a;,%iba)n);)dt;;\un=",6u5);535;
这运条行预编结译果指:令A的作用是告诉编译器,putchar()函数是在 stdio.h这个头文件B中进行了说明。如果不进行事先说明的话,
一个函数是不会被编译器所识别的。
09.01.2020
第 3 章数据的输入和输出
3
•字符输入函数:
格式: getchar( ) 功能:从终端(键盘)读入一字符 输入参数:无 返值:正常,返回读取的代码值; 注意:只接受一个字符,空格、回车符为有效字符需读入
putchar(‘A’); /*将大写字母A输出到屏幕*/ putchar(48); /*将ASCII码为48的字符输出到屏幕*/ putchar(x); /*将变量X的值当成ASCII码值,并将此ASCII码 对应的字符输出到屏幕,这里X可以是字符型或整型变量*
土地信息系统课程习题库和参考答案

第七章 土地信息的表示与可视化
1.土地信息的表示方法有哪些? 2.地图与土地信息系统有何联系与区别? 3.地图符号的涵义、作用、构成。 4.实现自动注记放置的系统应具备的功能。 5.面状专题内容的表示方法。 6.专题地图设计的内容。 7.如何进行土地信息的可视化? 8.空间可视化的类型。 9.何为虚拟地理环境,有何特点?
2、 简述土地信息系统的组成、基本功能。
土 地 信 息 系 统 的 组 成 : 一般由硬件、软件、数据库和人组成。硬件的配置主要包括输入设 备(如数字化仪、扫描仪、键盘等),输出设备(如绘图仪、打印机、显视器等),计算机系统,数 据存贮设备(如磁盘和光盘驱动器、磁带机等);信息系统的软件由管理软件和功能软件组成; 土地信息系统的核心是数据库(Data Base),用于存贮各种空间位置、拓扑关系和非空间数据。 其基本功能:1、数据采集、检验与编辑; 2、数据格式化、转换、概化;3.数据的存储与组织 4.查询、统计、计算 5、空间分析 6、显示
10 设计题:随着土地管理工作的深入,地籍、地类历史数据的查询与检索越来越频繁,土
地管理工作者对于土地信息系统时空数据管理功能的要求也越来越高。目前,即使一座中等 规模的城市,每天土地使用权交易量平均都可达十宗以上。存储并使用这些与日俱增的大量 数据对土地信息系统的时空数据管理功能是一个巨大的挑战。为满足实际工作对时空数据的 管理功能要求,提出你的设计方案。
C语言—数据输入与输出

C语言没有提供输入、输出语句,输入与输出是通过调 语言没有提供输入、输出语句, 用系统的标准函数实现的。 用系统的标准函数实现的。 字符的输入、 3.1 字符的输入、输出函数 一、字符输入函数getchar 字符输入函数getchar 形式: 形式:getchar( ) 功能:从终端(如键盘)输入一个字符。 功能:从终端(如键盘)输入一个字符。 说明: 说明: 括号中无参数; 1)括号中无参数; 使用该函数时,程序前须有#include stdio.h stdio.h” 2)使用该函数时,程序前须有#include “stdio.h ; 函数值可赋给字符或整型变量。 3)函数值可赋给字符或整型变量。
2、输出项表:由逗号隔开的若干个输出项,输出项可 、输出项表:由逗号隔开的若干个输出项, 以是变量、常量、函数、表达式等。 以是变量、常量、函数、表达式等。 3、格式字符的个数、类型与输出项的个数、类型应相 、格式字符的个数、类型与输出项的个数、 匹配。 匹配。 4、整型数据的输出: 、整型数据的输出: 格式字符: 格式字符: d 例:int a=12; o unsigned b=12; x printf(“%d,%o,%x,%u”, a, a, a, b); u 输出: 输出: ld 12,14,c,12 , , , mld
2、输入项地址表:若干用逗号隔开的地址项组成,其 、输入项地址表:若干用逗号隔开的地址项组成, 逗号隔开的地址项组成 中的地址项形式: 变量名 中的地址项形式:&变量名 3、 、 1)若有:scanf(“%d%d”, &a,&b); )若有: 则输入时打入: ﹍ (回车), ),或 则输入时打入:2﹍3(回车),或: 2)若有:scanf(“%d, %d”, &a,&b); )若有: 则输入时打入: 则输入时打入:2, 3(回车); (回车); 3)若有:scanf(“%d: %d”, &a,&b); )若有: 则输入时打入: 则输入时打入:2: 3(回车); (回车); 4)若有:scanf(“a=%d, b=%d”, &a,&b); )若有: 则输入时打入: 则输入时打入:a=2, b=3(回车)。 (回车)。 回车) 2(回车) 回车) 3(回车)
四川大学《c语言程序设计》课件-第3章 键盘输入与屏幕输出

Please input a and b: 123456↙ a=12, b=56, a+b = 68
30/44
输入数据的格式控制——例3.9
#include <stdio.h> main() {
int a, b;
12 34↙
scanf("%d %d", &a, &b); printf("a = %d, b = %d\n", a, b); }
%d decimal 以带符号十进制整数输出
%f float 以小数形式输出浮点数(6位小数)
%e exponent 以标准指数形式输出(6位小数)
%g
选用%f,%e中输出宽度较小的一种格式
%o octal 以八进制无符号整数输出(无前导0)
%x hex
以十六进制无符号整数输出(无前导0x)
%u unsigned 以十进制无符号整数输出
例:
printf("Value is:%10f", 32.6784728);
6 digits (default) Value is: 32.678473
10 个字符长度
19/44
printf 函数 – 浮点数输出
例:
printf("Value is:%10.5f", 32.6784);
5 digits Value is: 32.67840
break
do~while() return
变量定义语句
int a, b, c; 表达式语句
c = a + b; 函数调用语句
printf("Hello World!"); 复合语句 空语句
C语言电子教案第3章 输入输出及顺序结构

o
o
o
在%与格式符之间插入一个整数表示指定输出的宽度.若 指定的输出宽度大于实际数据的宽度,那么数据向右靠齐, 左边补空格;若指定的宽度小于实际数据的宽度,那么按 实际数据的宽度输出. 可以采用"m.n"的格式修饰格式符来输出一个实数,这里m 和n是两个整数. 对于字符串,采用"m.n"的附加格式符来修饰格式符表示 指定字符串的总宽度为m,不足m则向右靠齐,左补空格.n 表示指定截取实际字符串的前n个字符输出.也可以省略m, 不指定总宽度. 可以在宽度之前加一个""来指定输出的数据向左靠齐.
输出表列 o 输出表列是需要输出的数据,可以是变量,常量或表达 式.输出表列可以是零项,一项或多项,若多于一项则 各项之间用逗号分隔. o 输出表列和格式说明符在个数与类型上应相匹配. 例如,printf("\n x = %d , y = %f ", x , y+1);
3.2 常用输出与输入函数 printf的格式说明符
3.2 常用输出与输入函数
程序的运行结果是: 57 5 7 67.856400,-789.124023 67.856400,-789.124023 67.86,-789.12,67.856400,789.124023,67.856400,-789.124023 6.785640e+01,-7.9e+02 A,65,101,41 1234567,4553207,d687 65535,177777,ffff,-1 COMPUTER,COM
3.2 常用输出与输入函数
printf函数在使用时的注意事项
printf函数可以输出常量,变量和表达式的值.但 格式控制中的格式符必须按从左到右的顺序,与 输出项表中每个数据在类型上一一匹配,否则将 导致数据输出错误. 类型转换字符x,e,g可以用小写字母,也可以用大 写字母.使用大写字母时,输出数据中包含的字 母也要大写.除x,e,g外,其他类型转换字符必须 用小写字母,例如%f不能写成%F. 在输入long整型数据时,一定要使用格式%ld.如 果只用了%d,将输出错误数据. 若需要输出百分号"%",则应在格式串中用连续 的两个百分号"%%"表示. 类型转换字符紧跟在"%"后面时作为类型转换字 符,否则将作为普通字符处理. printf函数的返回值通常是本次调用中输出字符的 个数.
《C语言程序设计:现代方法(第2版)》第3章格式化输入输出

《C语⾔程序设计:现代⽅法(第2版)》第3章格式化输⼊输出⽬录第3章格式化输⼊/输出在探索难以实现的问题时,问题本⾝的简单性只会使情况更糟。
scanf函数和printf函数是C语⾔编程中使⽤最频繁的两个函数,它们⽤来格式化输⼊和输出。
正如本章要展⽰的那样,虽然这两个函数功能强⼤,但要⽤好它们却不容易。
3.1节描述printf函数,3.2节则介绍scanf函数。
但是这两节的介绍都不完整,完整的细节将留到第22章中介绍。
3.1 printf函数printf函数被设计⽤来显⽰**格式串(format string)的内容,并且在该串中的指定位置插⼊可能的值。
调⽤printf函数时必须提供格式串,格式串后⾯的参数是需要在显⽰时插⼊到该串中的值:printf(格式串, 表达式1, 表达式2, ...);显⽰的值可以是常量、变量或者更加复杂的表达式。
调⽤printf函数⼀次可以打印的值的个数没有限制。
格式串包含普通字符和**转换说明(conversion specification),其中转换说明以字符%开头。
转换说明是⽤来表⽰打印过程中待填充的值的占位符。
跟随在字符%后边的信息指定了把数值从内部形式(⼆进制)转换成打印形式(字符)的⽅法,这也就是“转换说明”这⼀术语的由来。
例如,转换说明%d指定printf函数把int型值从⼆进制形式转换成⼗进制数字组成的字符串,转换说明%f对float型值也进⾏类似的转换。
格式串中的普通字符完全如在字符串中出现的那样显⽰出来,⽽转换说明则要⽤待显⽰的值来替换。
思考下⾯的例⼦:#include <stdio.h>int main() {int i, j;float x, y;i = 10;j = 20;x = 43.2892f;y = 5527.0f;printf("i = %d, j = %d, x = %f, y = %f\n", i, j, x, y);return 0;}这个printf函数调⽤会产⽣如下输出:i = 10, j = 20, x = 43.289200, y = 5527.000000格式串中的普通字符被简单复制给输出⾏,⽽变量i、j、x和y的值则依次替换了4个转换说明。
第三章 数据的输入和输出

3.3.1 文件的基本操作(续) 文件的基本操作(
函数: 函数:FINDFILE
格式:数组名= 文件名描述’ 格式:数组名=FINDFILE([‘文件名描述’] 文件名描述 [, COUNT=变量 变量]) 变量 功能:返回满足“文件名描述” 功能:返回满足“文件名描述”的所有文件的 名称组成的字符型数组
3.2.2 数据的格式输入(续) 数据的格式输入(
如果从字符型变量中, 如果从字符型变量中,按照指定的格式读取数 则可以使用READS命令 据,则可以使用 命令 格式: 字符变量, 变量1, 变量n, 格式:READS, 字符变量 变量 …, 变量 FORMAT=‘(格式描述 格式描述)’ 格式描述 功能:按照“格式描述”中指定的格式, 功能:按照“格式描述”中指定的格式,从字 符变量中读取n个数据 依次存入变量1, 个数据, 符变量中读取 个数据,依次存入变量 …, 变 量n中 中 例
– A. 在命令输入行,输入的数据之间必须用逗号或 在命令输入行, 者空格或者Tab隔开,或者回车换行后再依次输入; 隔开, 者空格或者 隔开 或者回车换行后再依次输入; – B. 如果当前输入行的数据少于变量个数,则会从 如果当前输入行的数据少于变量个数, 下一输入行继续读入, 下一输入行继续读入 , 直到输入数据的总个数等 于变量的个数; 于变量的个数; – C. 如果输入行的数据个数多于变量的个数,则输 如果输入行的数据个数多于变量的个数, 入行中多余的数据将被忽略; 入行中多余的数据将被忽略; – D. 对于字符型变量,则一次读入当前输入行的所 对于字符型变量, 有字符,直到回车; 有字符,直到回车;
3.3.1 文件的基本操作(续) 文件的基本操作(
函数FILEPATH 函数
格式:变量=FILEPATH (‘文件名’ 文件名’ 格式:变量= 文件名 [, ROOT_DIR=字符型变量 字符型变量1] 字符型变量 [, SUBDIRECTORY=字符型变量 字符型变量2]) 字符型变量 功能:返回由字符型变量1,字符型变量2和文 功能:返回由字符型变量 ,字符型变量 和文 件名组成的完整路径
C语言第3章_数据的输入输出

如: scanf(“%c%c%c”,&c1,&c2,&c3); 若输入a• b• c 则ac1, • c2, b c3
17/22
例:有以下程序 #include<stdio.h> main() { int a1,a2; char c1,c2; float x,y,z; char a,b,c; scanf("%d%c%d%c",&a1,&c1,&a2,&c2); printf("%d,%c,%d,%c",a1,c1,a2,c2); } 若想通过键盘输入,使得al的值为12,a2的值为34 ,cl的值为字符a,c2的值为字符b,程序输出结果是 :12,a,34,b则正确的输入格式是(以下□代表空格, <CR>代表回车)( A )。 A)12a34b<CR> B)12□a□34□b<CR> C)12,a,34,b<CR> D)12□a34□b<CR>
4/22
d(int) o x(X)
以带符号的10进制形式输出整数 以8进制无符号形式输出整数 以16进制无符号形式输出整数
u(unsighed) 以无符号10进制形式输出整数
c(char) s f(float) e(E) 以字符形式输出一个字符 输出字符串
注意: long(%ld) double(%lf)
23/22
16/22
实数不许规定小数精度,像%10.4f不合法 输入格式中不能含有\n,如: scanf(“%d%d\n”,&a,&b); long型数据一定要用%ld格式输入,double型数 据一定要用%lf格式输入,否则运行结果错误。 用‚%c”格式符时,空格和转义字符作为有 效字符输入
第三章 C语言数据的输入与输出复习

l L
从上表可知:双精度实型数据的输出不要用%lf, 只要用%f即可。但长双精度实型数据的输出必须加 长度修饰符L, 例如%Lf、%Le等。
格式化输出函数printf()
printf函数的输出格式说明
每个格式说明都必须用%开头,以一个格式字
符作为结束,在此之间根据需要可以插入"宽度说
明"、长度修饰符'l'和'L"等。
(1)格式字符:格式字符用于规定输出不同的数据 类型,格式字符和它们的作用如下表,可详见附录 D。
格式化输出函数printf()
scanf函数的功能是从标准输入流中按指定格式 接收输入的数据; scanf函数的调用格式为: scanf(格式控制字符串, 地址列表);
格式控制字符串同printf
地址列表是由若干个地址组成的表列,可以是变 量的地址,或字符串的首地址
格式化输入函数scanf()
例:用scanf函数输入数据 #include "stdio.h" a在内存中的地 main() 址 &是地址运算符 {int a,b,c; scanf("%d%d%d",&a,&b,&c); printf("%d,%d,%d\nf",a,b,c); } 运行情况: 3 4 5<回车> (输入a,b,c的值) 3 ,4 ,5 (输出a,b,c的值)
微型计算机控制系统课件第3章 输入输出接口及输入输出通道

除缓冲器和锁存器外,还有一类既有缓冲功能又有锁存功 能的器件,Intel公司8255A可编程并行I/O扩展接口芯片就是 这样的器件。8255A与工业控制计算机(ISA)总线的连接如 图3-5所示。8255A有三个可编程的8位输入输出端口A、B和 C,内部有一个控制寄存器。通过向控制寄存器写入控制字定 义A、B、C端口的数据传输方向(输入或输出)。图中 ATF16V8作译码器用。
数字量输入接ቤተ መጻሕፍቲ ባይዱ原理图
数字量输出接口原理图
输入输出接口设计
输入接口是输入通道与工业控制机总线之间的桥梁,输出接口是输出通道与工业控制机总线之间 的桥梁。下图是由缓冲器和译码器组成的数字量输入接口示例,以及锁存器和译码器组成的数字量输 出接口示例。
数字量输入接口示例
数字量输出接口示例
输入输出接口设计
S1=/A9+/A8+A7+A6+A5+A4+A3+A2 Y0=AEN+S2
输入输出接口与输入输出通道 数据信息的输入输出控制方式 数字量/模拟量输入输出通道的基本组成
基于板卡的输入输出接口与通道的设计
基于计算机通讯接口的输入输出接口与通道的 设计
第3章 算法与输入输出

什么是算法? 什么是算法
为解决一个问题而采用的方法和步骤称为算法。 为解决一个问题而采用的方法和步骤称为算法。 对同一个问题,可以有不同的算法,但算法有优劣 同一个问题,可以有不同的算法, 之分,有的算法步骤少,有的算法步骤多。 之分,有的算法步骤少,有的算法步骤多。我们希望 得到方法正确,步骤少的算法。 得到方法正确,步骤少的算法。 种工具, 算法语言只是一 种工具,为实际问题设计算法才 是程序设计的核心。 是程序设计的核心。 因此,为了有效地进行解题, 因此,为了有效地进行解题,不仅需要保证算法 正确,还要考虑算法的质量,选择合适的算法。 正确,还要考虑算法的质量,选择合适的算法。
图3.5是当型循环的应用例子,图3.6是直到型循 环的应用例子。
图3.4
图3.5
图3.6
图3.5和图3.6的作用都是打印5个数:1,2,3, 4,5。可以看到, 对同一个问题既可以用当型循环 来处理,也可以用直到型循环来处理。 以上三种基本结构,有以下共同特点:
(1) 只有一个入口。 (2) 只有一个出口。请注意,一个菱形判断框 有两个出口,而一个选择结构只有一个出口。不 要将菱形框的出口和选择结构的出口混淆。 (3) 结构内的每一部分都有机会被执行到。对 每一个框来说,都应有一条从入口到出口的路径 通过它。图3.7中没有一条从入口到出口的路径通 过A框。 (4) 结构内不存在“死循环”(无终止的循环)。 图3.8就是一个死循环。
② 直到型(Until型)循环 见图3.4(b)。它的功能是先执行A框,然后判 断给定的p2条件是否成立,如果p2条件不成立, 则再执行A,然后再对p2条件作判断,如果p2条 A p2 p2 件仍然不成立,又执行A……如此反复执行A, 直到给定的p2条件成立为止,此时不再执行A, 从b点脱离本循环结构。
计算机控制技术 第3章 过程输入输出通道

36
SM331的8个模拟量输入通道共用一 个积分式A/D转换部件,即通过模拟切 换开关,各输入通道按顺序一个接一个 地转换。 某一通道从开始转换模拟量输入值 起,一直持续到再次开始转换的时间称 模入模块的循环时间,它是模块中所有 活动的模拟量输入通道的转换时间的总 和。
37
实际上,循环时间是对外部模拟量 信号的采样间隔。 对于一个积分时间设定为20ms,8个 输入通道都接有外部信号且都需断线监 视的SM331模块,其循环时间为 (22+10)*8ms=256ms 因此,对于采样时间要求更快一些的 场合,优先选用二输入通道的SM331模 块。
激励电压 激励电压 全桥和半桥设置 全桥和半桥设置 隔离,放大, 噪声滤波 隔离,放大,噪声滤波 隔离,放大, 隔离,放大,
Demo
泛华测控 / Pansino
22
温度传感器的信号调理
绝大多数传感器均有相应的变送器,但温 度传感器的调理电路往往需自己制作,当然也 有现成的产品,但价格较高。常见的温度调理 电路采用桥式电路原理进行测量。
18
液位传感器
磁致伸缩液位传感器:
测量范围: 测量范围:0.2~5m 基本测量精度: 基本测量精度:0.05%
19
压力型液位变送器
JYB-K*-**型液位变送器 型液位变送器 量 程 : 0-0.5m,4m,100m 精度: 级 ± 精度:A级≤±0.25% % B级≤±0.5% 级 ± %
20
27
A/D转换器
A/D转换器是将模拟电压或电流转换成数 字量的器件或装置,它是一个模拟系统和计算 机之间的接口,它在数据采集和控制系统中, 得到了广泛的应用。
28
3.1.1 模拟量输入通道
变送器输出的信号为0~ 变送器输出的信号为 ~10mA或4 ~ 20mA 或 的统一信号,需要经过I/V变换变成电压信号 变换变成 电压信号后 的统一信号 , 需要经过 变换 变成 电压信号 后 才能处理。 对于电动单元组合仪表, 才能处理 。 对于电动单元组合仪表 , DDZ—Ⅱ Ⅱ 号标准为0~ 型的输出信 号标准为 ~10mA,而DDZ—III型 , 型 输出信号标准为4~ 输出信号标准为 ~20mA。 。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第3章数据的输入与输出本章只介绍MATLAB最常用的输入与输出命令。
3.1 用INPUT函数输入数据数据可以按程序或函数限定的格式由用户用input输入。
此外,input还可以在MATLAB命令窗口中显示以提示用户输入什么。
然而,数据的具体形式依赖于数据是标量、向量还是矩阵,以及它们是数值还是字符串。
举例说明一下这几种情况。
3.1.1 标量的输入输入一个数值时,可以采用:InputData=input(‘Enter the temperature in degrees C:’);在MATLAB命令窗口中显示:Enter the temperature in degrees C: 121.7其中数值121.7由用户输入。
表达式末尾的分号可禁止系统对于输入数据的回显。
在同一表达式中可以执行用户输入数据的计算。
例如:InputData= input(‘Enter the starting angle in degrees:’)*pi/180;结果显示:Enter the starting angle in degrees:45其中数值45由用户输入。
然而,InputData的数值为 0.7854(45π/180)。
又如,考虑温度从摄氏度向华氏度的变换,输入:InputData=1.88*input(‘Enter the temperature in degrees C:’)+32;结果显示:Enter the temperature in degrees C:100其中数值100由用户输入。
而InputData的数值为212。
(220)如希望将提示信息显示在几行中,则可以在单引号内的适当位置上加入定义符“\ n”,即:InputData= input(‘Enter the starting angle\ n in degrees:’)*pi/180;结果显示:Enter the starting anglein degrees:3.1.2 字符串的输入输入一个字符串时,可以采用:InputData=input(‘Enter file name,including its extension:’,’s’)*pi/180;结果显示:Enter file name,including its extension:DataSet3.txt其中字符串DataSet3.txt由用户输入。
注意这里不需要加单引号,这是由input 函数中第二项参数’s’决定的。
3.1.3 向量的输入输入由数值构成的向量时,可以采用:InputData=input(‘Enter the temperature in degrees C:’);在MATLAB命令窗口显示:Enter the temperature in degrees C:[120,141,169,201]其中向量[120,141,169,201]由用户输入。
这里方括号是必须的。
若要输入列向量,则用户应输入[120,141,169,201]'。
3.1.4 矩阵的输入输入由数值构成的矩阵时,可以采用:InputData=input(‘Enter the temperature in degrees C \n at levels 1 and 2:’);在MATLAB命令窗口显示:Enter the temperature in degrees Cat levels 1 and 2:[67 35 91;44 51 103]其中数组[67 35 91;44 51 103]由用户输入。
3.2 字符串(文字)和注释的输出在MATLAB中允许矩阵的创建、存贮和操作,这些矩阵可以是字母、数字和一些特殊字符任意组合而成的字符串。
字符串的定义是把字符串放在单引号内,除此以外,其他与向量和矩阵的定义类似。
下面介绍几个最常用的几个函数。
1、num2str----将数值转换为字符串。
2、disp----在MATLAB命令窗口显示字符串。
例如:num=12.567;z=num2str(num);disp(['产品重量 =','z','kg'])或者,更为紧凑的形式是:num=12.567;disp(['产品重量 =',num2str(num),'kg'])执行后,显示在MATLAB命令窗口中的结果为:产品重量 =12.567 kg若num是重量的向量,那么num=[12.567,3.458,9.111];disp(['产品重量 =',num2str(num),'kg'])显示:产品重量 =12.567 3.458 9.111 kg然而,可以使用下面的程序建立与每个mun值一致的注释:num=[12.567,3.458,9.111];disp([repmat('产品重量 ='n,1),num2str(num'),repmat('kg',n,1)]) 执行后显示:产品重量 =12.567 kg产品重量 =3.458 kg产品重量 =9.111 kg若不需要显示num的注释,则num=[12.567,3.458,9.111];disp(num)在MATLAB命令窗口中显示:12.56703.45809.1110MATLAB允许用户指定数值转换为字符串时的位数:(不懂)num2str(a,N)其中a是要转换的数值,N是数值的位数。
若指定的位数小于小数点左边的位数,则MATLAB将数值转换为指数描述形式,且有效数字等于N。
考虑下面的例子,a=100 =3141.592653589,则:num2str(a,1) →3e+003 num2str(a,3) →3.14e+003num2str(a,4) →3142 num2str(a,5) →3141.5num2str(a,8) →3141.59273、fprintf ----可以在MATLAB窗口中显示有格式的数据,他相对于函数disp的优势在于他能够控制数值得显示格式。
函数fprintf的语法结构为: fprintf(1,'% ….',variables)其中第一个参数为‘1’,表示在MATLAB命令窗口输出,而引号内的参数是变量格式的附加说明。
格式说明的顺序对应着变量的顺序。
符号%在每个具体格式说明之前。
通过下面的向量可说明fprintf的几种不同的用法。
num=[12,-14,3.458,0.11167];fprintf(1,'%5.3f',num)结果为:12.000 -14.000 3.458 0.112 >>注意num(1)和num(2)的值加了3个0,而num(4)在小数点后则近似取了3位数。
另外,>>表明数据已经在一行中显示出来,可以执行其他的MATLAB表达式。
若想得到下一行,按Enter键即可。
如果要把这4个数值作为一列来显示,可以采用定义符“\ n”,如下所示:num=[12,-14,3.458,0.11167];fprintf(1,'%5.3f \ n',num)结果为:(为什么得到的是一行而不是一列?)12.000-14.0003.4580.112若想得到与给定精度相同的4个数值,则:(%和f之间的数字是什么意思?) num=[12,-14,3.458,0.11167] ;fprintf(1,'%2.0f %2.0f %5.3f %5.5f',num)其中每个f和%之间都有两个空格,这样数值就被两个空格分开了。
执行后产生: 12 -14 3.458 0.11167 >>可以用如下方法对每一个数值进行注释:num=[12,-14,3.458,0.11167];fprintf(1,'weight = %2.0f kg pressure = %2.0f Pa time = %5.3f s … length = %5.3f m \n',num)结果为:weight = 12 kg pressure = -14 Pa time = 3.458 m length = 0.11167 m 如想按列显示数值,则程序为:num=[12,-14,3.458,0.11167];fprintf(1,'weight = %2.0f kg \ npressure = %2.0f Pa \ ntime = %5.3f s… \ nlength = %5.3f m \n',num)结果为:weight = 12 kgpressure = -14 Patime = 3.458 slength = 0.11167 m若让每个数值按相同的格式显示,则可以简化格式说明并产生注释输出,程序为:num=[12,-14,3.458,0.11167];nn=1:length(num);fprintf(1,'x(%1.0f) = %7.5f \ n',[nn;num])结果为:x(1) = 12.00000x(2) = -14.00000x(3) = 3.45800x(4) = 0.111673.3 数据文件的输入与输出如前所述,数据输入的一种方法是通过程序用input函数完成。
第二种方法是在程序中定义数据。
其他输入数据的方法是将数据存放在ASCII文本文件之中,然后调用load函数。
load函数按行读取数据,每行由回车符分隔且每个数值之间用空格或逗号分隔。
下面举例说明load函数的两种使用方法。
假设数据按下面的形式存放在DataSection33.txt文件中:(怎么保存?和调用)11 12 1321 22 2331 32 3341 42 43laod函数的用途在于将不带扩展名(后缀“.txt”)的主文件名变为变量名,将文件中的数据变为向量或矩阵元素。
因此,程序中名为DataSection33的变量是一个(4x3)阶的数值矩阵,他在程序中的使用就如同一个已放置在等号左边的名为DataSection33的变量一样。
函数语句可为:load DataSection33.txt 或 load ‘DataSection33.txt’或 load(‘DataSection33.txt’)如果希望对矩阵中的每一个元素取平方,可输入:load ‘DataSection33.txt’y=DataSection33.^2结果显示: 121 144 169441 484 529961 1024 10891981 1764 1849如果要把程序中的数值保存到文件之中,可使用:save假如要把文件DataSection33.txt 中每个值得平方存成ASCII 文本文件,程序为:load ‘DataSection33.txt ’y=DataSection33.^2save ‘SaveDataSection33.txt ’y-ascii结果生成一个包含下列内容的文本文件:1.2100000e+002 1.4400000e+002 1.6900000e+0024.4100000e+002 4.8400000e+0025.2900000e+0029.6100000e+002 1.0240000e+003 1.0890000e+0031.6810000e+003 1.7680000e+003 1.8490000e+003当给定文件名时,MATLAB 把文件存放在默认的目录中。