lab
- 格式:doc
- 大小:561.00 KB
- 文档页数:91
L a b色彩表示法Document serial number【UU89WT-UU98YT-UU8CB-UUUT-UUT108】Lab色彩表示法L,A,B是代表物体颜色的色度值,也就是该颜色的色空间坐标,任何颜色都有唯一的坐标值,其中L,代表明暗度(黑白),A,代表红绿色,B代表黄蓝色,dEab是总色差(判定是否合格),其中dL,如果是正值,说明样品比标准板偏亮,如果是负值,说明偏暗,dA,如果色差仪显示是正值,说明样板比标准偏红,如果负值,说明偏绿,dB,如果是正值,说明样板比标准偏黄,如果负值,说明偏蓝。
的定义:是由(CIE)于1976年公布的一种色彩模式。
是CIE组织确定的一个理论上包括了人眼可见的所有色彩的色彩模式。
弥补了 RGB与CMYK两种彩色模式的不足,是Photoshop用来从一种色彩模式向另一种色彩模式转换时使用的一种内部色彩模式。
Lab模式也是由三个通道组成,第一个通道是明度,即“L”。
a通道的颜色是从红色到深绿;b通道则是从蓝色到黄色。
在表达色彩范围上,最全的是Lab模式,其次是,最窄的是。
也就是说Lab模式所定义的色彩最多,且与光线及设备无关,并且处理速度与同样快,比快数倍。
色差仪L、a、b、c、h分别代表什么意思色差仪L、a、b、c、h的意思,L代表明暗度(黑白),a代表红绿色,b代表黄蓝色,c表示彩度(色彩饱和的程度或纯粹度),h表示色调角。
色差仪,广泛应用于塑胶、印刷、油漆油墨、纺织、印染服装等行业的颜色管理领域,根据CIE色空间的Lab,Lch原理,测量显示出样品与被测样品的色差dE以及dLab值。
适合企业内、外部色彩评价和数据管控。
△E也就是△Eab的缩写,代表的意思是产品(样品)总值。
这个值是由于△L,△A和△B计算得出的,即△L,△A和△B的,再开根号即可;C代表,H代表色调角;色调角定性,即色调不同,颜色不同;饱和度定量;绝大多数颜色△E在以内是看不到颜色的,所以很多行业色差要求就是在一以内。
L、A、B值红、黄、蓝定义为色彩三原色红、绿、蓝定义为色光三原色<(L标-L测)平方+(A标-A测)平方+(B标-B测)平方>开根号=E值Lab 颜色标尺按如下标识:L (亮度)轴表示黑白, 0 为黑, 100 为白A (红绿)轴正值为红,负值为绿, 0 为中性色B (黄蓝)轴正值为黄,负值为蓝, 0 为中性色所有的颜色都可以通过任何一种 Lab 标尺被感知并测量。
这些标尺也可以用来表示标样同试样的色差,并通常有Δ为标识符。
如果Δ L为正,说明试样比标样浅,如果ΔL为负,说明试样比标样深。
如果Δ a 为正,说明试样比标样红(或者少绿),如果为负,说明试样绿(或者少红)如果Δ b为正,说明试样比标样黄(或者少蓝),如果为负,说明试样蓝(或这少黄)L,a,b 颜色差异还可以通过一个单独的色差符号ΔE来表示出来,ΔE被定义为样品的总色差,但不能表示出样品的色差的偏移方向,ΔE数值越大,说明色差越大,它通过下面的公式计算得来:△E*=[(△L*)2+(△a*)2+(△b*)2]1/2从这可知并无定值注意大多数情况下,数据是相对色差,而不是绝对色差。
有些公司只要求总色差小于2,有些要求比较严格的,就会要求到L a b值△a△ b △c △l一般情况下均没有定值,但严格要求的话,应该是各有要求.△△E*=[(△L*)2+(△a*)2+(△b*)2]1/2△△c*=[(△a*)2+(△b*)2]1/2△如果△E小于等于,建议△a△b△l均小于等于△一般的,△E在时目视可以分辨.CIE Lab和Lch的色彩空间图CIE 色空间坐标图CIE LABLAB色空间是基于一种颜色不能同时既是蓝又是黄这个理论而建立。
所以,单一数值可用于描述红/绿色及黄/蓝色特徽。
当一种颜色用CIE L*a*b*时,L* 表示明度值;a*表示红/绿及b*表示黄/蓝值。
CIE LCHCIE LCH颜色模型采用了同L*a*b*一样的颜色空间,但它采用L表示明度值;C表示饱和度值及H 表示色调角度值得柱形坐标。
面料lab值测试标准-回复"面料lab值测试标准"是指用于评估面料质量和性能的一种专业测试方法。
在纺织行业中,lab值测试广泛应用于面料色牢度、光泽度、透气性等指标的评估中。
本文将逐步解释lab值测试的基本概念、步骤和应用。
一、什么是面料lab值测试?面料lab值测试是一种基于国际标准的面料质量测试方法。
它通过测量和比较面料的颜色属性和物理性能,为纺织业用户提供有关面料的详细信息和指导。
一般来说,面料lab值测试包括色相、明度和饱和度等三个基本参数。
色相指的是面料的颜色分布,可以用数字表示。
明度是反映颜色亮度的数值,值越高表示面料越亮。
饱和度是指面料颜色的纯度,数值越高表示颜色越鲜艳。
二、面料lab值测试的步骤1. 选择合适的测试设备。
lab值测试通常采用专业的光谱色度计来测量面料颜色。
这种设备能够准确测量面料中各种色彩的相对强度。
2. 准备面料样本。
样本的选择应该是代表性的,并符合实际应用场景。
样本应该经过标准化处理,去除可能影响测试结果的杂质和污渍。
3. 进行测试。
将样本放置在测试设备上,按照设备说明操作,获取面料的色相、明度和饱和度数值。
4. 记录测试结果。
将测试得到的lab值数值记录下来,并进行分析和比较。
可以使用软件进行数据处理和展示,以便更好地理解面料的质量和性能。
三、面料lab值测试的应用1. 评估色牢度。
色牢度是面料的一项重要指标,衡量面料在日常使用和清洗中是否容易褪色。
通过对面料进行lab值测试,可以确定其色牢度等级,帮助纺织生产商选择更耐色牢的面料材料。
2. 评估光泽度。
光泽度是面料表面反射光的能力,与面料材质和表面处理有关。
面料lab值测试可以提供各种因素对光泽度的影响,帮助设计师选择合适的面料,实现预期的光泽效果。
3. 评估透气性。
透气性是指面料对空气和水分的透过能力,特别重要的是在服装和床上用品行业中。
通过面料lab值测试,可以确定面料的透气性能,为选择适合的产品提供科学依据。
Lab颜色模型Lab颜色模型是有国际照明委员会(CIE)于1976年公布的一种颜色模型,Lab 颜色模型弥补了RGB和CMYK两种色彩模式的不足。
Lab颜色模型由三个要素组成,一个要素是亮度(L),a 和b是两个颜色通道。
a包括的颜色是从深绿色(低亮度值)到灰色(中亮度值)再到亮粉红色(高亮度值);b是从亮蓝色(底亮度值)到灰色(中亮度值)再到黄色(高亮度值)。
因此,这种颜色混合后将产生具有明亮效果的色彩。
4. Lab色彩模式Lab色彩模式由光度分量(L)和两个色度分量组成,这两个分量即a分量(从绿到红)和b分量(从蓝到黄),如图8所示。
Lab色彩模式与设备无关,不管使用什么设备(如显示器、打印机或扫描仪)创建或输出图像,这种色彩模式产生的颜色都保持一致。
A.光度=100(白)B.绿到红分量C.蓝到黄分量D.光度=0(黑)图2-11Lab色彩模式通常用于处理Photo CD(照片光盘)图像、单独编辑图像中的亮度和颜色值、在不同系统间转移图像以及打印到PostScript(R)Level 2和Level 3打印机。
色彩模式在进行图形图像处理时,色彩模式以建立好的描述和重现色彩的模型为基础,每一种模式都有它自己的特点和适用范围,用户可以按照制作要求来确定色彩模式,并且可以根据需要在不同的色彩模式之间转换。
下面,介绍一些常用的色彩模式的概念。
1. RGB色彩模式自然界中绝大部分的可见光谱可以用红、绿和蓝三色光按不同比例和强度的混合来表示。
RGB分别代表着3种颜色:R代表红色,G代表绿色、B代表蓝色。
RGB模型也称为加色模型,如图5所示。
RGB模型通常用于光照、视频和屏幕图像编辑。
图5RGB色彩模式使用RGB模型为图像中每一个像素的RGB分量分配一个0~255范围内的强度值。
例如:纯红色R值为255,G值为0,B值为0;灰色的R、G、B三个值相等(除了0和255);白色的R、G、B都为255;黑色的R、G、B都为0。
L、A、B值红、黄、蓝定义为色彩三原色红、绿、蓝定义为色光三原色<(L标-L测)平方+(A标-A测)平方+(B标-B测)平方>开根号=E值Lab 颜色标尺按如下标识:L (亮度)轴表示黑白, 0 为黑, 100 为白A (红绿)轴正值为红,负值为绿, 0 为中性色B (黄蓝)轴正值为黄,负值为蓝, 0 为中性色所有的颜色都可以通过任何一种 Lab 标尺被感知并测量。
这些标尺也可以用来表示标样同试样的色差,并通常有Δ为标识符。
如果Δ L为正,说明试样比标样浅,如果ΔL为负,说明试样比标样深。
如果Δ a 为正,说明试样比标样红(或者少绿),如果为负,说明试样绿(或者少红)如果Δ b为正,说明试样比标样黄(或者少蓝),如果为负,说明试样蓝(或这少黄)L,a,b 颜色差异还可以通过一个单独的色差符号ΔE来表示出来,ΔE被定义为样品的总色差,但不能表示出样品的色差的偏移方向,ΔE数值越大,说明色差越大,它通过下面的公式计算得来:△E*=[(△L*)2+(△a*)2+(△b*)2]1/2从这可知并无定值注意大多数情况下,数据是相对色差,而不是绝对色差。
有些公司只要求总色差小于2,有些要求比较严格的,就会要求到L a b值△a△ b △c △l一般情况下均没有定值,但严格要求的话,应该是各有要求.△△E*=[(△L*)2+(△a*)2+(△b*)2]1/2△△c*=[(△a*)2+(△b*)2]1/2△如果△E小于等于,建议△a△b△l均小于等于△一般的,△E在时目视可以分辨.CIE Lab和Lch的色彩空间图CIE 色空间坐标图CIE LABLAB色空间是基于一种颜色不能同时既是蓝又是黄这个理论而建立。
所以,单一数值可用于描述红/绿色及黄/蓝色特徽。
当一种颜色用CIE L*a*b*时,L* 表示明度值;a*表示红/绿及b*表示黄/蓝值。
CIE LCHCIE LCH颜色模型采用了同L*a*b*一样的颜色空间,但它采用L表示明度值;C表示饱和度值及H 表示色调角度值得柱形坐标。
色差lab检测原理
色差LAB检测是一种常用的色彩比较方法,可以准确地衡量
不同样本间的颜色差异。
其原理是利用LAB(L、A、B)色
彩空间来描述颜色的明暗、红绿和黄蓝三个属性。
LAB色彩空间是一种基于人眼感知的色彩模型,它包含了三
个通道:亮度(L)通道,以及两个色度(A和B)通道。
其中,L通道表示黑白,取值从0到100,0表示纯黑,100表示纯白;A通道表示红绿对比度,正值表示红色,负值表示绿色;B通道表示黄蓝对比度,正值表示黄色,负值表示蓝色。
在色差LAB检测中,首先需要将被测样本的颜色通过色彩传
感器转换为LAB颜色值。
然后,通过计算样本与参考样本在LAB空间中的欧氏距离,来衡量它们之间的色差。
欧氏距离
的计算公式为:
√((L2 - L1)^2 + (A2 - A1)^2 + (B2 - B1)^2)
其中,L1、A1、B1表示参考样本的LAB值,L2、A2、B2表
示被测样本的LAB值。
通过计算得到的欧氏距离越大,表示
样本之间的色差越大。
通过色差LAB检测,可以对不同样本之间的颜色差异进行客观、准确的评估。
这种方法广泛应用于颜色品质控制、色彩匹配等领域,可以有效地提高产品质量和一致性。
Lab色彩表示法L,A,B是代表物体颜色的色度值,也就是该颜色的色空间坐标,任何颜色都有唯一的坐标值,其中L,代表明暗度(黑白),A,代表红绿色,B代表黄蓝色,dEab是总色差(判定是否合格),其中dL,如果是正值,说明样品比标准板偏亮,如果是负值,说明偏暗,dA,如果色差仪显示是正值,说明样板比标准偏红,如果负值,说明偏绿,dB,如果是正值,说明样板比标准偏黄,如果负值,说明偏蓝。
Lab模式的定义:Lab模式是由国际照明委员会(CIE)于1976年公布的一种色彩模式。
是CIE组织确定的一个理论上包括了人眼可见的所有色彩的色彩模式。
Lab模式弥补了RGB与CMYK两种彩色模式的不足,是Photoshop用来从一种色彩模式向另一种色彩模式转换时使用的一种内部色彩模式。
Lab模式也是由三个通道组成,第一个通道是明度,即“L”。
a通道的颜色是从红色到深绿;b通道则是从蓝色到黄色。
在表达色彩范围上,最全的是Lab模式,其次是RGB模式,最窄的是CMYK模式。
也就是说Lab模式所定义的色彩最多,且与光线及设备无关,并且处理速度与RGB模式同样快,比CMYK模式快数倍。
色差仪L、a、b、c、h分别代表什么意思色差仪L、a、b、c、h的意思,L代表明暗度(黑白),a代表红绿色,b 代表黄蓝色,c表示彩度(色彩饱和的程度或纯粹度),h表示色调角。
色差仪,广泛应用于塑胶、印刷、油漆油墨、纺织、印染服装等行业的颜色管理领域,根据CIE色空间的Lab,Lch原理,测量显示出样品与被测样品的色差dE以及dLab值。
适合企业内、外部色彩评价和数据管控。
△E也就是△Eab的缩写,代表的意思是产品(样品)色差总值。
这个色差值是由于△L,△A和△B计算得出的,即△L,△A和△B的平方和,再开根号即可;C代表色饱和度,H代表色调角;色调角定性,即色调不同,颜色不同;饱和度定量;绝大多数颜色色差△E在1.0以内是看不到颜色的,所以很多行业色差要求就是在一以内。
Lab颜色模式在什麽情况下时用不要给我加分,这是引用的。
我看了一下,基本都是对的。
RGB、CMYK、LAB、HSB……也许很多朋友都看到过这些色彩模式,但你了解它们吗?大多数朋友都会说不了解吧。
色彩模式是图形设计最基本的知识,不掌握怎么行呢?每一种模式都有自己的优缺点,都有自己的适用范围,下面我详细的跟大家谈谈这些色彩模式。
1、 RGB模式RGB是色光的色彩模式。
R代表红色,G代表绿色,B代表蓝色,三种色彩叠加形成了其它的色彩。
因为三种颜色都有256个亮度水平级,所以三种色彩叠加就形成1670万种颜色了。
也就是真彩色,通过它们足以在现绚丽的世界。
在RGB模式中,由红、绿、蓝相叠加可以产生其它颜色,因此该模式也叫加色模式。
所有显示器、投影设备以及电视机等等许多设备都依赖于这种加色模式来实现的。
就编辑图象而言,RGB色彩模式也是最佳的色彩模式,因为它可以提供全屏幕的24bit的色彩范围,即真彩色显示。
但是,如果将RGB模式用于打印就不是最佳的了,因为RGB模式所提供的有些色彩已经超出了打印的范围之外,因此在打印一幅真彩色的图象时,就必然会损失一部分亮度,并且比较鲜艳的色彩肯定会失真的。
这主要因为打印所用的是CMYK模式,而CMYK模式所定义的色彩要比RGB模式定义的色彩少很多,因此打印时,系统自动将RGB模式转换为CMYK模式,这样就难免损失一部分颜色,出现打印后失真的现象。
2、 CMYK模式当阳光照射到一个物体上时,这个物体将吸收一部分光线,并将剩下的光线进行反射,反射的光线就是我们所看见的物体颜色。
这是一种减色色彩模式,同时也是与RGB模式的根本不同之处。
不但我们看物体的颜色时用到了这种减色模式,而且在纸上印刷时应用的也是这种减色模式。
按照这种减色模式,就衍变出了适合印刷的CMYK色彩模式。
CMYK代表印刷上用的四种颜色,C代表青色,M代表洋红色,Y代表黄色,K代表黑色。
因为在实际引用中,青色、洋红色和黄色很难叠加形成真正的黑色,最多不过是褐色而已。
lab色差计算公式
Lab 色空间及色差计算
它是当前最通用的测量物体颜色的色空间之一,是由CIE在197
6年制定的。
L值表示亮度:△L表示亮度差值,它是用L、a、b一组数据将一
种颜色用数字表示出来,一组Lab 值跟一种颜色形成--对应关系。
a、
b 值为色坐标值。
其中a值表示红绿方向颜色变化。
+a 表示向红色方向变化,a表示向绿色方向变化。
b表示黄蓝方向变化,+b表示向黄色方向变化,b表示向蓝色方向变化
重要概念:
AL表示您的样品跟您的标准(为您的客户提供给您的制作标准)之间
的亮度差。
△L为正,说明您的样品偏白,△L为负说明您的样品偏黑; Aa值为正,说明您的样品偏红,△a 值为负值,表示您的样品偏绿:
△b 值为正值,表示您的样品偏黄,△b值为负值,表示您的样品偏蓝。
(偏红、偏绿、偏黄、偏蓝都是相对客户提供给您的标准而言的。
)
△E 为色差综合评定指标,它与△L、△a、△b 关系为:
△E= (△L) ²+(△a) ²+(△b)2
色差AE 计算,
CIE1976 L*,a*,b*与三刺激值X.Y,Z之间的转换公式:
L*=11d%)-16 (当%>0.008856时)
L*-903.3%) (当%≤0.008856时)
u'=500 /(¾)-(%) r=200(%)-(½)。
Lab色差统计范围是指当两种颜色在Lab色彩空间中存在差异时,所确定的数值范围。
在Lab 色彩空间中,颜色的差异可以通过比较两种颜色的Lab值来衡量。
一般来说,可以通过计算两种颜色的差值并将其范围限定在一个合理的范围内,以便更好地描述颜色的差异程度。
在Lab色彩空间中,颜色的差异可以通过计算两种颜色的Lab值的差值来衡量。
其中,L值表示明度,a值表示从红色到绿色的方向,b值表示从黄色到蓝色的方向。
一般来说,a值和b值的绝对差值通常不会超过5,因此可以将其范围设定在±5之内。
而L值的差异可能会更大一些,但是也可以将其设定在±10之内。
当然,具体范围还需要根据实际应用和标准来确定。
此外,为了更好地描述颜色的差异程度,通常会使用一个相对量化的数值来表达颜色差异的比率。
一般来说,可以将差异范围定义为95-100(无色差)、80-94(基本无色差)、75-79(微弱色差)、60-74(稍有偏差)、45-59(中等色差)和44以下(严重色差)。
这些数值可以根据具体情况进行调整和修改,以便更好地适应实际应用和标准的要求。
总之,Lab色差统计范围应该根据实际应用和标准来确定,通常可以将差异范围限定在±5之内,并使用相对量化的数值来描述颜色差异的程度。
这些数值可以帮助更好地描述颜色差异的程度和范围,以便更好地满足客户的需求和标准的要求。
第2部分实验指导实验1VC++ 6.0开发环境应用入门(2学时)一、实验目的1.了解Visual C++ 6.0的特点。
2.熟悉Visual C++ 6.0的开发环境。
3.学习用Visual C++ 6.0编写标准的C++控制台程序。
二、实验任务使用Visual C++建立一个非图形化的标准C++程序,编译、运行教材例2.1,即以下程序:#include <iostream.h>void main(void){cout<<"Hello!\n";cout<<"Welcome to c++!\n";}三、实验步骤1.启动Visual C++ 6.0开发环境从“开始”菜单中选择“程序”| Microsoft Visual Studio 6.0 | Microsoft Visual C++6.0,显示Visual C++ 6.0开发环境主窗口。
2.创建一个项目单击File菜单中的New选项显示New(新建)对话框(如图1-1所示)。
单击Projects标签,在Projects(项目)选项卡中,选择Win32 Console Application(Win32控制台应用程序)。
在Location(位置)文本框中指定一个路径d:\c++lab,在Preject Name(项目名称)文本框中为项目输入一个名字“lab1_1”,单击OK(确定)按钮。
在弹出的Win32 Console Application-Step 1 of 1 对话框中选择An Empty Project单选项,然后单击Finish(完成)按钮(如图1-2所示)。
最后在New Project Information对话框中单击OK按钮,完成项目的建立。
图1-1 New对话框图1-2 创建控制台应用程序第一步3.建立C++源程序文件选择菜单命令Project | Add to Project | New,弹出New对话框。
如图1-3所示,在new对话框的Files选项卡中选择C++ Source File,并填入文件名称“lab1_1”,单击OK按钮,完成新建C++源程序文件。
图1-3 添加新的源程序文件4.编辑C++源程序文件内容在文件编辑窗口中输入代码(如图1-4所示)。
图1-4在文件编辑窗口中输入代码 选择菜单命令File | Save保存这个文件。
5.建立并运行可执行程序选择菜单命令Build-> Build lab1_1.exe 建立可执行程序。
如果你正确输入了源程序,此时便成功地生成了可执行程序lab1_1.exe。
如果程序有语法错误,则屏幕下方的状态窗口中会显示错误信息。
根据这些错误信息对源程序进行修改后,重新选择菜单命令Build | Build lab1_1.exe ,建立可执行程序。
选择菜单命令Build | Execute lab1_1.exe运行程序,观察屏幕的显示内容。
6.关闭工作空间选择菜单命令File | Close Workspace关闭工作空间。
实验2C++简单程序设计(4学时)一、实验目的1.学会编写简单的C++程序。
2.复习基本数据类型变量和常量的应用。
3.复习运算符与表达式的应用。
4.复习结构化程序设计基本控制结构的运用。
5.复习自定义数据类型的应用。
6.练习使用简单的输入输出。
7.观察头文件的作用。
8.学会使用VC++6.0开发环境中的debug调试功能:单步执行、设置断点、观察变量值。
二、实验任务1.输入并运行教材上的例题2.7,即:用do-while语句编程,求自然数1~10之和。
程序正确运行之后,去掉源程序中#include语句,重新编译,观察会有什么问题。
2.将do-while语句用for语句代替,完成相同的功能。
3.编程计算图形的面积。
程序可计算圆形、长方形、正方形的面积,运行时先提示用户选择图形的类型,然后,对圆形要求用户输入半径值,对长方形要求用户输入长和宽的值,对正方形要求用户输入边长的值,计算出面积的值后将其显示出来。
4.使用debug调试功能观察任务3程序运行中变量值的变化情况。
5.定义一个表示时间的结构体,可以精确表示年、月、日、小时、分、秒;提示用户输入年、月、日、小时、分、秒的值,然后完整地显示出来。
三、实验步骤1.建立一个控制台应用程序项目lab2_1,向其中添加一个C++源文件lab2_1.cpp(方法见实验一),输入教材中例2.7的代码,检查一下确认没有输入错误,选择菜单命令Build | Build lab2_1.exe编译源程序,再选择Build | Execute 运行程序,观察输出是否与教材上的答案一致。
2.程序正确运行之后,在源程序第一行“#include<iostream.h>”前面加注释标记“//”,使之成为注释行,重新编译,C++/C++I/O I/O cout和cin都是这个类库预定义的流对象,#include <iostream.h>指示编译器在对程序进行预处理时,将头文件iostream.h中的代码嵌入到该程序中该指令所在的地方。
文件iostream.h中声明了程序所需要的输入和输出操作的有关信息,在C++程序中如果使用了系统中提供的一些功能,就必须嵌入相关的头文件,否则,系统无法找到实现这些功能的代码。
现在,删除注释标记,将程序恢复正确。
3.另建立一个项目lab2_2,包含一个c++源程序lab2_2.cpp,将do-while语句用for语句代替,完成与实验任务1相同的功能。
4.建立项目lab2_3,计算图形的面积。
圆形的面积计算公式为S=PI*r*r,长方形的面积计算公式为S=a*b,正方形的面积计算公式为S=a*a;程序中定义一个整型变量iType表示图形的类型,用cout语句输出提示信息让用户选择图形的类型,用cin读入iType的值,然后,使用switch语句判断图形的类型,分别提示用户输入需要的参数值,计算出面积的值后用cout语句显示出来;最后,编译运行程序。
5.学习简单的debug调试功能,参考程序如下://lab2_3.cpp#include <iostream.h>const float PI = 3.1416;void main(){int iType;float radius, a, b, area;cout << "图形的类型为?(1-圆形2-长方形3-正方形):";cin >> iType;switch(iType){case 1:cout << "圆的半径为:";cin >> radius;area = PI * radius * radius;cout<<"面积为:"<<area<<endl;break;case 2:cout << "矩形的长为:";cin >> a;cout << "矩形的宽为:";cin >> b;area = a * b;cout<<"面积为:"<<area<<endl;break;case 3:cout << "正方形的边长为:";cin >> a;area = a * a;cout<<"面积为:"<<area<<endl;break;default:cout << "不是合法的输入值!"<<endl;}}一个程序,特别是大型程序,编写完成后往往会存在这样或那样的错误。
有些错误在编译连接阶段可以由编译系统发现并指出(如步骤2所示),称为语法错误。
当修改完语法错误生成了可执行程序后,并不意味着程序已经正确。
我们常常会发现程序运行的结果与我们预期的结果相去甚远,有时甚至在运行过程中程序中止或发生死机,这种错误称为运行错误,是因为算法设计不当或编程实现时的疏忽造成的。
所谓调试就是指在发现了程序存在运行错误以后,寻找错误的原因和位置并排除错误。
这一工作是非常困难的,对于初学者而言尤其如此。
虽然编译系统不能像对待语法错误那样,明确指出运行错误的原因和位置,但大多数开发环境都为我们提供了辅助调试工具,可以实现单步运行、设置断点、观察变量和表达式的值等功能,使我们可以跟踪程序的执行流程、观察不同时刻变量值的变化状况。
首先在第10行处设置调试断点。
用鼠标右键单击源程序第10行左边的空白处,出现一个菜单,如图2-1所示;图2-1 添加断点选择Insert/Remove Breakpoint一项,可看到左边的边框上出现了一个褐色的圆点,这代表已经在这里设置了一个断点;所谓断点就是程序运行时的暂停点,程序运行到断点处便暂停,这样我们就可以观察程序的执行流程,以及执行到断点处时有关变量的值。
然后选择菜单命令Build | Start Debug | Go,或按下快捷键F5,系统进入Debug(调试)状态,程序开始运行,一个DOS窗口出现,此时,Visual Studio的外观如图2-2所示,程序暂停在断点处。
图2-2 调试状态下的Visual Studio单步执行:从Debug菜单或Debug工具栏中单击Step Over选项或按钮两次。
在程序运行的DOS窗口中输入选择的图形类型,例如,输入3,代表正方形,这时,回到Visual Studio中,把鼠标放在变量名iType上片刻,可看到出现了一个提示:iType = 3;此时,在Variables窗口中也可看到iType以及其他变量的值。
单步执行时每次执行一行语句,便于跟踪程序的执行流程。
因此为了调试方便,需要单步执行的语句不要与其它语句写在一行中。
在Watch窗口中,在Name栏中输入iType,按回车键,可看到Value栏中出现3,这是变量iType现在的值(如果没看到Variables窗口或Watch窗口,可通过View菜单的Debug Windows | Variables或Debug Windows | Watch 选项打开它们)。
图2-3是此时Variables窗口和Watch窗口的状态。
继续执行程序,参照上述的方法,再试试Debug菜单栏中别的菜单项,熟悉Debug的各种方法。
6.建立一个项目lab2_4,包含一个c++源程序lab2_4.cpp。
定义一个表示时间的结构体,有表示年、月、日、小时、分、秒的成员,可以使用short类型;在主程序中实现输入输出。