版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
三、顺序结构三、顺序结构1主要内容FORTRAN语言的顺序结构C语言的顺序结构主要内容FORTRAN语言的顺序结构2FORTRAN语言的顺序结构赋值语句简单的输出语句简单的输入语句参数语句(PARAMETER语句)END语句、STOP语句、PAUSE语句格式输出格式输入FORTRAN语言的顺序结构赋值语句3赋值语句1、作用--将一个确定的值赋给一个变量一般格式:
V=e变量=表达式例:x=3.2Y=SQRT(x+5.0)/2.0说明:1、“=”为赋值号
其作用为:x3.2特殊:I=I+1(计数器)2、左端只能是变量名,如:x+y=5是不合法的
赋值语句1、作用--将一个确定的值赋给一个变量4赋值语句2、类型转换问题类型相同,直接赋值(I=3)类型不同,先计算表达式的值、后将结果类型转换为左端变量的类型例:I=3.6*5+1.5X=(5+6)/(8-5)为避免出现类型转换过程中的错误,应保证两侧类型一致。赋值语句2、类型转换问题5简单输出语句输出语句的作用:将内存的数据传送到显示器、打印机或保存到磁盘指定区域。输入/输出三要素:对象:哪些数据格式设备输出语句的分类:格式输出表控格式输出(系统标准格式)无格式输出简单输出语句输出语句的作用:将内存的数据传送到显示器、打印机6表控输出语句按计算机系统规定的格式输出系统自动为每种类型的数据规定了列数一、表控输出格式⒈整数的表控格式输出(机器不同10、11、13)若规定:每个整数占11列,数印右端,左补空格例:print*,123,-1128输出结果:︺︺︺︺︺︺︺︺123︺︺︺︺︺︺-1128表控输出语句按计算机系统规定的格式输出7表控输出语句⒉实数的表控格式输出若规定:每个实数占15列,数印右端,左补空格,小数部分占6列。例:print*,15.4,-321.45输出结果:︺︺︺︺︺︺15.400000︺︺︺︺-321.450000表控输出语句⒉实数的表控格式输出8表控输出语句当实数值的绝对值≥107或<1是时,按标准的指数形式输出。共占15列,指数4列,小数6列例:print*,-10000000.,0.98输出结果:︺︺-1.000000E+07︺︺︺9.800000E-01表控输出语句当实数值的绝对值≥107或<1是时,按标准的指数9表控输出语句二、表控格式输出语句一般格式:print﹡,〈输出表列〉write(﹡,﹡)〈输出表列〉F77子集不提供PRINT语句,作用相同例1:print﹡,56.8,125或write(﹡,﹡)56.8,125例2:print﹡,a,b,c或write(﹡,﹡)a,b,c表控输出语句二、表控格式输出语句10表控输出语句例3:x=12.5y=90.5z=x+yprint*,x,yprint*,'z=',zend运行结果:12.50000090.500000Z=103.000000表控输出语句例3:x=12.511简单输入语句输入语句的作用:将外部介质(键盘、磁盘)上的数据传送到内存变量指定的单元中。输入/输出三要素:对象:哪些数据格式设备输入语句的分类:格式输入表控格式输入(系统标准格式)无格式输入简单输入语句输入语句的作用:将外部介质(键盘、磁盘)上的数12表控输入语句自由格式输入语句:read﹡,〈输入表列〉read(﹡,﹡)〈输入表列〉注意:1、执行时,程序会停止,等待用户从键盘上输入数据。2、输入时,数据间以“,”或空格间隔。3、变量名称为输入表。4、输入的数据应和输入表的变量个数、类型,次序严格地一一对应。表控输入语句自由格式输入13例1:read(*,*)a,b,I,j输入:108.6,-37.8,5(回车)---少一个数,则j没有被赋值,程序停止等待输入:108.6,-37.8,5,6,9(回车)---多一个数,则输入的9不起作用,程序正常执行例2:read(*,*)a,b,I,j,c,k,l,p输入:25.8,-8.2(回车)5,8,2.7(回车)2,6,6.9(回车)---数据太多,可以分几个记录输入记录:以回车结束的一批输入/输出数据例1:read(*,*)a,b,I,j14例3:read(*,*)A,B,C,D,E,F,G输入:7*3.5---相同的数据可以用重复系数输入例4:read(*,*)A,B,Cread(*,*)D,I,J输入:2.3,-63.5(回车)6.4,91.0(回车)5,8(回车)结果:A=2.3,B=-63.5,C=6.4,D=5.0,I=8J未被赋值---每个read语句从一个新的记录开始读数例3:read(*,*)A,B,C,D,E,F,G15例5:read(*,*)A,B,Cread(*,*)D,I,Jwrite(*,*)A,B,C,Dwrite(*,*)I,Jend输入:2.3,63.5,6.4(回车)91.0,5,6(回车)输出:-…--2.300000--…-63.500000-…-6.400000--.-91.000000--…--5--…--6---每个write语句也是从一个新的记录开始输出例5:read(*,*)A,B,C16参数语句(parameter语句)作用:将程序中经常用到的常数定义成一个符号常量,其值不可改变。语句:parameter(p1=c1[,p2=c2,…,pn=cn])其中:pn——符号常量;cn——常量例:parameter(r=6.2,PI=3.1415926)s=PI*r**2L=2*PI*rwrite(*,*)s,Lend参数语句(parameter语句)作用:将程序中经常用到的常17注意:1、符号常量的命名规则与变量名相同,但它不同于变量,它的值不改变,在程序中不能对它赋值。例:PI=5.6或read(*,*)r2、符号变量也有类型,也可用三种方法说明类型3、参数语句是非执行语句,也位于所有可执行语句的前面,但位于类型说明语句后面。4、一条语句可以定义多个符号常量。例如:parameter(PI=3.14159,r=25,I=9)5、优点:方便修改程序注意:18END,STOP,PAUSE语句END语句
结束标志;有且仅有一条STOP语句停止运行程序;用于调试程序PAUSE语句暂停执行;用于调试程序END,STOP,PAUSE语句END语句19程序举例【例3】求三角形面积公式:S=√S(S-A)(S-B)(S-C),S=(A+B+C)/2源程序:read(*,*)A,B,CS=(A+B+C)/2area=SQRT(S*(S-A)*(S-B)*(S-C))write(*,*)’A=‘,A,’B=‘,B,’C=‘,Cwrite(*,*)’theareais‘,areaend程序举例【例3】求三角形面积20例:求五边形面积源程序:write(*,*)’InputA,B,C,D,E,F,G’read(*,*)A,B,C,D,E,F,GS=(A+B+C)/2S1=SQRT(S*(S-A)*(S-B)*(S-C))S=(C+D+E)/2S2=SQRT(S*(S-C)*(S-D)*(S-E))S=(D+E+F)/2S3=SQRT(S*(S-D)*(S-E)*(S-F))AREA=S1+S2+S3write(*,*)’area=‘,areaend例:求五边形面积21例:编程将十进制数407转换成八进制数源程序:m=407i1=mod(m,8)i2=mod(m/8,8)i3=mod(m/8/8,8)write(*,*)i3,i2,i1;按高位到低位顺序end例:编程将十进制数407转换成八进制数22格式的输出一、有格式的输出语句一般形式:①write(*,s1)<输出表列>s1format(格式说明)②prints1,<输出表列>s1format(格式说明)其中:“格式说明”是由各种“格式编辑符”构成的。格式的输出一、有格式的输出语句23格式的输出二、格式说明符主要介绍:I、F、E、X、纵向走纸、’(撇号)、r(重复系数)、/(斜杠)⒈I编辑符作用:用于整型数据的输出。一般形式:①Iw②Iw.m其中:I—整型输出;w—字段宽度;m—输出数据的最少数字位数。格式的输出二、格式说明符24格式的输出例1:k=254M=12n=48write(*,100)k,m,n100Format(1x,i8,i6,i6.3)End输出结果:︺︺︺︺︺254︺︺︺︺12︺︺︺048格式的输出例1:k=25425格式的输出例2:i=300j=1250print50,i,j50Format(1x,i6,i3)End输出结果:︺︺︺300***注:format语句可以出现在program和function语句之后、end语句之前的任何位置。格式的输出例2:i=30026格式的输出⒉F编辑符作用:用于实数的小数形式输出。一般形式:Fw.d其中:F—实数的小数形式输出;w—字段宽度;d—输出数据的小数位数格式的输出⒉F编辑符27格式的输出例:x=12.5y=12.3457z=-12.8467print100,x,y,z100Format(1x,f8.2,f10.3,f10.1)End输出结果:︺︺︺12.50︺︺︺︺12.346︺︺︺︺︺-12.8格式的输出例:x=12.528格式的输出⒊E编辑符作用:用于实数的指数形式输出。一般形式:Ew.d其中:E—实数的指数形式输出;w—字段宽度;d—数字部分的小数位数。格式的输出⒊E编辑符29格式的输出例:a=246.0b=0.0000025write(*,100)a,b100Format(1x,e9.3,e9.3)End输出结果:
.246e+03.250e-05
9列9列格式的输出例:a=246.030格式的输出⒋X编辑符作用:用于输出空格。一般形式:nX其中:X—输出空格;n—输出空格数。格式的输出⒋X编辑符31格式的输出例:a=246.0b=0.0000025write(*,100)a,b100Format(1x,e9.3,3x,e9.3)End输出结果:
.246e+03︺︺︺.250e-05
9列9列格式的输出例:a=246.032格式的输出⒌H编辑符作用:用于输出字符常量。一般形式:nH其中:H—输出字符常量;n—输出字符个数。格式的输出⒌H编辑符33格式的输出例:x=12.5y=12.3457write(*,100)x,y100Format(1x,2hx=,f4.1,2x,2hy=,f6.3)End输出结果:x=12.5︺︺y=12.346格式的输出例:x=12.534格式的输出⒍’(撇号编辑符)作用:用于输出字符常量,即把撇号内的字符串原样照打。例:i=140j=2000write(*,100)i,j100format(1x,’i=’,i3,’︺︺j=’,i4)end输出结果:i=140︺︺j=2000格式的输出⒍’(撇号编辑符)35格式的输出注:如果输出的字符中包含撇号,则用两个连续的撇号代表一个要输出的撇号。例:write(*,100)100format(1x,’He’’sastudent.’)end输出结果:He’sastudent.格式的输出注:如果输出的字符中包含撇号,则用两个连续的撇号代36格式的输出⒎纵向走纸编辑符Fortran规定:将输出记录中的第一个字符作为纵向走纸控制符,这个字符不再被打印出来,而从输出记录的第二个字符开始输出。记录中第一个打印字符与纵向走纸的关系:空格为走纸一行;0为走纸二行;1为换页;+不走纸;其它字符为按走纸一行处理格式的输出⒎纵向走纸编辑符37格式的输出例1:integerx,yx=3250y=405write(*,100)x,y100Format(i4,3x,i3)End输出结果:250︺︺︺405(即把3“吃”掉了)格式的输出例1:integerx,y38格式的输出FORTRAN规定:输出记录中的第一个字符作为纵向走纸控制符。如果不预先在输出记录的第一个字符处设一空格,则系统会将输出的第一个字符作为走纸控制符,使本来想打印的内容缺少一个字符。所以,在format语句中一定要预设一个走纸控制符“1X”或‘︺’。格式的输出FORTRAN规定:输出记录中的第一个字符作为纵向39格式的输出例2:integerx,yx=3250y=405write(*,100)x,y100Format(i6,3x,i3)End输出结果:格式的输出例2:integerx,y40格式的输出⒏重复系数r在format语句中,如果出现几个(或几组)相同的格式编辑符,则可以利用重复系数而只写一个(或一组)编辑符。r——可重复使用的次数。例1:format(1x,i10,i10,f8.3,f7.2,f7.2,f7.2)↓format(1x,2i10,f8.3,3f7.2)
格式的输出⒏重复系数r41格式的输出例2:format(1x,i5,f8.2,f8.2,i5,f8.2,f8.2)↓format(1x,2(i5,f8.2,f8.2))⒐斜杠编辑符“/”作用:将输出转入下一行记录。格式的输出例2:42格式的输出例1:i=246j=35x=12.3y=173.5write(*,100)i,x,j,y100Format(1x,i5,f7.1/1x,i5,f7.1)End输出结果:格式的输出例1:i=24643格式的输出例2:i=246j=35x=12.3y=173.5write(*,100)i,x,j,y100Format(1x,i5,f7.1//1x,i5,f7.1/)End输出结果:格式的输出例2:i=24644格式的输出其他格式说明符可实可指--Gw.d双精度--Dw.d逻辑数据—LW字符型数据—Aw、A格式的输出其他格式说明符45格式的输入一、有格式的输入语句一般形式:read(*,s1)<输入表列>s1format(格式说明)其中:“格式说明”是由各种“格式编辑符”构成。格式的输入一、有格式的输入语句46格式的输入例1:read(*,100)i,j100Format(i4,i5)End键盘输入:
︺345︺︺456↙格式的输入例1:47格式的输入例2:read(*,100)a,b,c100Format(f5.1,e12.2,f7.2)End键盘输入:
︺15.7︺2345.67e+04︺705.83↙格式的输入例2:48在print,write和read语句中包含格式说明在格式输入输出时,也可以将format语句中的格式说明放到print、write和read语句中。例1:print100,k,y100format(i8,f7.2)↓print’(i8,f7.2)’,k,y注意写法:‘(…)’在print,write和read语句中包含格式说明在格式输49在print,write和read语句中包含格式说明例2:write(*,100)k,y100format(i8,f7.2)↓write(*,’(i8,f7.2)’)k,y例3:read(*,100)k,y100format(i8,f7.2)↓read(*,’(i8,f7.2)’)k,y在print,write和read语句中包含格式说明例2:50C语言的顺序结构C语言概述赋值语句数据输入输出的概念及在C语言中的实现字符数据的输入输出格式输入与输出C语言的顺序结构C语言概述51C语句概述[例]求园的面积#DEFINEPI=3.1415926main(){floatr,s;r=20;s=r*r*PI;printf(“area=%f”,s);}area=1256.637C程序源程序文件1源程序文件I源程序文件n……预处理命令函数1函数n…说明部分执行部分(语句)语句是计算机执行的最小单位C语句概述[例]求园的面积area=1256.637C程序52
C语句可以分为以下5类:1.控制语句,完成一定的控制功能.2.函数调用语句,由一次函数调用加一个分号构成一个语句.3.表达式语句.4.空语句,只有一个分号的语句,它什么也不做.5.用{}把一些语句包括起来成为复合语句,中最后一个语句中最后的分号不能忽略不写.*C语言允许一行写几个语句,也允许一个语句拆开写在几行上,书写格式无固定要求。C语句可以分为以下5类:1.控制语句,完成一定的控制53赋值语句赋值表达式后面加上分号,构成赋值语句.功能:将数据赋给变量。如:x=3.1;a=‘d’+123+b/d;程序中基本的命令行必须是一个语句,表达式不能单独构成语句.例如:‘d’+123+b/d是一个表达式a=‘d’+123+b/d;是一个赋值语句赋值语句赋值表达式后面加上分号,构成赋值语句.54数据输入输出的概念及在C语言中的实现C语言本身不提供输入输出语句,输入和输出操作是由函数来实现的。
编写语言时,printf,scanf等不是关键字,只是函数的名字。C语言库有一批“标准输入输出函数”,其中有:putchar,getchar,printf,scanf,puts,gets数据输入输出的概念及在C语言中的实现C语言本身不提供输入输55在使用C语言库函数时,要用预编译命令“#include”将有关的“头文件”包括到用户源文件中。考虑到printf,scanf函数使用频繁,系统允许在使用这两个函数时可不加#include命令。在使用C语言库函数时,要用预编译命令“#include”将有56字符数据的输入输出putchar()向终端输出一个字符。例如:putchar(c);[例4.1]#include“stdio.h”main(){chara,b,c;a=‘B’;b=‘O’;c=‘Y’;putchar(a);putchar(b);putchar(c);}BOY字符数据的输入输出putchar()[例4.1]BOY57BOYputchar(a);putchar(‘\n’);putchar(b);putchar(‘\n’);putchar(c);putchar(‘\n’);输出其它转义字符putchar(‘\101’);输出‘A’;putchar(‘\’’);输出单引号putchar(‘\015’);使输出回车,不换行Bputchar(a);putchar(‘\n’);58getchar函数(字符输入函数)一般格式:getchar()[例4.2]#include“stdio.h”main(){charc;c=getchar();putchar(c);}putchar(getchar());输出从键盘得到的值,但不赋给任何变量agetchar函数(字符输入函数)[例4.2]putcha59格式输入与输出printf函数可以按规定格式向终端输出任意类型的数据一般格式:printf(控制格式,输出列表)被输出的数据,可以是常量、变量、表达式。用双引号括起的转换控制字符串,它包括两种信息:格式说明,由%开始。如:%d,%f,%c普通字符,要输出的字符printf(“%d%d”,a,b)格式说明输出列表printf(“a=%db=%d”,a,b);
格式说明输出列表格式输入与输出printf函数一般格式:printf(控制601212312345格式字符(1)d格式符,用来输出十进制数。%d按整型的实际长度输出。a=12,b=123,c=12345;printf(“%d,%d,%d”,a,b,c);12,123,12345%md按给定长度m输出,数字不够长,左边补空格;数字长度大于m,按原长度输出。printf(“%4d%4d%4d”,a,b,c);1212312345格式字符61(5)c格式符,用来输出一个字符。如:charc=‘a’;printf(“%c”,c);aprintf(“%3c”,c);
a[例4.4]main(){charc=‘a’;inti=97;printf(“%c,%d\n”,c,c);printf(“%c,%d\n”,c,c);}a,97a,97(5)c格式符,用来输出一个字符。如:printf(“%362CHINA(6)s格式符,用来输出一个字符串。例如:%s:按实际长度输出printf(“%s”,“CHINA”);CHINA%ms:当字符串长度小于m时,左边补空格。printf(“%7s”,“CHINA\n”);%-ms:当字符串长度小于m时,右边补空格printf(“%-7s”,“CHINA\n”);%m.ns输出占m列,但只取字符串左端的n个,并向右对齐。%-m.nsm和n的含义同上,但向左对齐。若n大于m,取m等于n.CHINA(6)s格式符,用来输出一个字符串。例如:63CHICHINACHCHIN[例]main(){printf(“%3s,%7.2s,%.4s,%-5.3s\n”,“CHINA”,“CHINA”,“CHINA”,“CHINA”);}CHICHINACHCHIN[例]64(7)f格式符,用来输出实数(单精度、双精度),以小数形式输出。%f:不指定宽度,整数部分全部输出,输出6位小数。单精度时,7位数字有效,双精度时,16位数字有效。[例]main(){floatx,y;x=111111.111;y=222222.222;printf(“%f”,x+y);}[例]main(){doublex,y;x=1111111111111.1111111111;y=2222222222222.2222222222;printf(“%f”,x+y);}333333.3281253333333333333.333010(7)f格式符,用来输出实数(单精度、双精度),以小数形式输65%m.nf整个数据占m位,其中小数占n位,向右对齐。%-m.nf意义同上,向左对齐main(){floatf=123.456;printf(“%f%10f%10.2f%0.2f%-10.2f\n”,f,f,f,f,f);}123.455994123.456001123.46123.46123.46%m.nf整个数据占m位,其中小数占n位,向右对齐。1266[例]main(){inta,b,c;scanf(“%d%d%d”,&a,&b,&c);printf(“%d,%d,%d”,a,b,c);}345345scanf格式输入函数一般格式:scanf(格式控制,地址列表)&是地址符,表示a,b,c三个变量在内存中的地址.连续输入多个数字时,空格、回车和tab键均可作为分割符[例]3453scanf格式输入函数67(123a,456b)格式说明scanf(“%3d%3d”,&a,&b);输入123456注:输入数据要与控制格式相符合如:scanf(“%d,%d”,&a,&b);正确的输入为:4,5不正确的输为:4_5scanf(“a=%d,b=%d”,&a,&b);正确的输入:a=4,b=5不正确的输入:4_5和4,5scanf(“%d:%d”,&a,&b);正确的输入为:4:5不正确的输为:4_5或4,5可以指定数据列数不能规定精度经常犯的错误scanf(“%d%d\”\n”,&a,&b)(123a,456b)格式说明经常犯的错误68顺序结构的程序设计顺序结构:按语句排列的先后顺序执行,写在前面的语句先执行。当计算需要引用一个变量时,该变量一定要事先定义、赋值,然后才能出现在表达式中.AB
传统的流程图ABN-S图顺序结构的程序设计顺序结构:按语句排列的先后顺序执行,写在前69[例]输入三角形的边长,求三角形的面积。area=√s*(s-a)*(s-b)*(s-c)s=(a+b+c)/2#include“math.h”main(){floata,b,c,s,area;scanf(“%f,%f,%f”,&a,&b,&c);s=1.0/2*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c));printf(“a=%7.2f,b=%7.2f,c=%7.2f,s=%7.2f\n”,a,c,b,s);printf(“area=%7.2f\n”,area);}输入为:3,4,6输出为:a=3.00,b=4.00,c=6.00,s=6.50area=5.33[例]输入三角形的边长,求三角形的面积。area=√s70[例11]从键盘上输入一个大写字母,分别用大小写字母形式输出,同时输出它们的ascii码。main(){charc1,c2;c1=getchar();printf(“%c,%d\n”,c1,c1);c2=c1+32;printf(“%c,%d\n”,c2,c2);}A,65a,97A[例11]从键盘上输入一个大写字母,分别用大小写字母形式输出71[例12]求ax2+bx+c=0方程的根,a,b,c由键盘键入,设b2-4ac>0#include“math.h”main(){floata,b,c,disc,x1,x2,p,q;scanf(“a=%f,b=%f,c=%f”,&a,&b,&c);disc=b*b-4*a*c;p=-b/(2*a);q=sqrt(disc)/(2*a);x1=p+q;x2=p-q;printf(“\nx1=%5.2f\n\x2=%5.2f\n”,x1,x2);}x1=-1.00x2=-2.00a=1,b=3,c=2[例12]求ax2+bx+c=0方程的根,a,b,c由72三、顺序结构三、顺序结构73主要内容FORTRAN语言的顺序结构C语言的顺序结构主要内容FORTRAN语言的顺序结构74FORTRAN语言的顺序结构赋值语句简单的输出语句简单的输入语句参数语句(PARAMETER语句)END语句、STOP语句、PAUSE语句格式输出格式输入FORTRAN语言的顺序结构赋值语句75赋值语句1、作用--将一个确定的值赋给一个变量一般格式:
V=e变量=表达式例:x=3.2Y=SQRT(x+5.0)/2.0说明:1、“=”为赋值号
其作用为:x3.2特殊:I=I+1(计数器)2、左端只能是变量名,如:x+y=5是不合法的
赋值语句1、作用--将一个确定的值赋给一个变量76赋值语句2、类型转换问题类型相同,直接赋值(I=3)类型不同,先计算表达式的值、后将结果类型转换为左端变量的类型例:I=3.6*5+1.5X=(5+6)/(8-5)为避免出现类型转换过程中的错误,应保证两侧类型一致。赋值语句2、类型转换问题77简单输出语句输出语句的作用:将内存的数据传送到显示器、打印机或保存到磁盘指定区域。输入/输出三要素:对象:哪些数据格式设备输出语句的分类:格式输出表控格式输出(系统标准格式)无格式输出简单输出语句输出语句的作用:将内存的数据传送到显示器、打印机78表控输出语句按计算机系统规定的格式输出系统自动为每种类型的数据规定了列数一、表控输出格式⒈整数的表控格式输出(机器不同10、11、13)若规定:每个整数占11列,数印右端,左补空格例:print*,123,-1128输出结果:︺︺︺︺︺︺︺︺123︺︺︺︺︺︺-1128表控输出语句按计算机系统规定的格式输出79表控输出语句⒉实数的表控格式输出若规定:每个实数占15列,数印右端,左补空格,小数部分占6列。例:print*,15.4,-321.45输出结果:︺︺︺︺︺︺15.400000︺︺︺︺-321.450000表控输出语句⒉实数的表控格式输出80表控输出语句当实数值的绝对值≥107或<1是时,按标准的指数形式输出。共占15列,指数4列,小数6列例:print*,-10000000.,0.98输出结果:︺︺-1.000000E+07︺︺︺9.800000E-01表控输出语句当实数值的绝对值≥107或<1是时,按标准的指数81表控输出语句二、表控格式输出语句一般格式:print﹡,〈输出表列〉write(﹡,﹡)〈输出表列〉F77子集不提供PRINT语句,作用相同例1:print﹡,56.8,125或write(﹡,﹡)56.8,125例2:print﹡,a,b,c或write(﹡,﹡)a,b,c表控输出语句二、表控格式输出语句82表控输出语句例3:x=12.5y=90.5z=x+yprint*,x,yprint*,'z=',zend运行结果:12.50000090.500000Z=103.000000表控输出语句例3:x=12.583简单输入语句输入语句的作用:将外部介质(键盘、磁盘)上的数据传送到内存变量指定的单元中。输入/输出三要素:对象:哪些数据格式设备输入语句的分类:格式输入表控格式输入(系统标准格式)无格式输入简单输入语句输入语句的作用:将外部介质(键盘、磁盘)上的数84表控输入语句自由格式输入语句:read﹡,〈输入表列〉read(﹡,﹡)〈输入表列〉注意:1、执行时,程序会停止,等待用户从键盘上输入数据。2、输入时,数据间以“,”或空格间隔。3、变量名称为输入表。4、输入的数据应和输入表的变量个数、类型,次序严格地一一对应。表控输入语句自由格式输入85例1:read(*,*)a,b,I,j输入:108.6,-37.8,5(回车)---少一个数,则j没有被赋值,程序停止等待输入:108.6,-37.8,5,6,9(回车)---多一个数,则输入的9不起作用,程序正常执行例2:read(*,*)a,b,I,j,c,k,l,p输入:25.8,-8.2(回车)5,8,2.7(回车)2,6,6.9(回车)---数据太多,可以分几个记录输入记录:以回车结束的一批输入/输出数据例1:read(*,*)a,b,I,j86例3:read(*,*)A,B,C,D,E,F,G输入:7*3.5---相同的数据可以用重复系数输入例4:read(*,*)A,B,Cread(*,*)D,I,J输入:2.3,-63.5(回车)6.4,91.0(回车)5,8(回车)结果:A=2.3,B=-63.5,C=6.4,D=5.0,I=8J未被赋值---每个read语句从一个新的记录开始读数例3:read(*,*)A,B,C,D,E,F,G87例5:read(*,*)A,B,Cread(*,*)D,I,Jwrite(*,*)A,B,C,Dwrite(*,*)I,Jend输入:2.3,63.5,6.4(回车)91.0,5,6(回车)输出:-…--2.300000--…-63.500000-…-6.400000--.-91.000000--…--5--…--6---每个write语句也是从一个新的记录开始输出例5:read(*,*)A,B,C88参数语句(parameter语句)作用:将程序中经常用到的常数定义成一个符号常量,其值不可改变。语句:parameter(p1=c1[,p2=c2,…,pn=cn])其中:pn——符号常量;cn——常量例:parameter(r=6.2,PI=3.1415926)s=PI*r**2L=2*PI*rwrite(*,*)s,Lend参数语句(parameter语句)作用:将程序中经常用到的常89注意:1、符号常量的命名规则与变量名相同,但它不同于变量,它的值不改变,在程序中不能对它赋值。例:PI=5.6或read(*,*)r2、符号变量也有类型,也可用三种方法说明类型3、参数语句是非执行语句,也位于所有可执行语句的前面,但位于类型说明语句后面。4、一条语句可以定义多个符号常量。例如:parameter(PI=3.14159,r=25,I=9)5、优点:方便修改程序注意:90END,STOP,PAUSE语句END语句
结束标志;有且仅有一条STOP语句停止运行程序;用于调试程序PAUSE语句暂停执行;用于调试程序END,STOP,PAUSE语句END语句91程序举例【例3】求三角形面积公式:S=√S(S-A)(S-B)(S-C),S=(A+B+C)/2源程序:read(*,*)A,B,CS=(A+B+C)/2area=SQRT(S*(S-A)*(S-B)*(S-C))write(*,*)’A=‘,A,’B=‘,B,’C=‘,Cwrite(*,*)’theareais‘,areaend程序举例【例3】求三角形面积92例:求五边形面积源程序:write(*,*)’InputA,B,C,D,E,F,G’read(*,*)A,B,C,D,E,F,GS=(A+B+C)/2S1=SQRT(S*(S-A)*(S-B)*(S-C))S=(C+D+E)/2S2=SQRT(S*(S-C)*(S-D)*(S-E))S=(D+E+F)/2S3=SQRT(S*(S-D)*(S-E)*(S-F))AREA=S1+S2+S3write(*,*)’area=‘,areaend例:求五边形面积93例:编程将十进制数407转换成八进制数源程序:m=407i1=mod(m,8)i2=mod(m/8,8)i3=mod(m/8/8,8)write(*,*)i3,i2,i1;按高位到低位顺序end例:编程将十进制数407转换成八进制数94格式的输出一、有格式的输出语句一般形式:①write(*,s1)<输出表列>s1format(格式说明)②prints1,<输出表列>s1format(格式说明)其中:“格式说明”是由各种“格式编辑符”构成的。格式的输出一、有格式的输出语句95格式的输出二、格式说明符主要介绍:I、F、E、X、纵向走纸、’(撇号)、r(重复系数)、/(斜杠)⒈I编辑符作用:用于整型数据的输出。一般形式:①Iw②Iw.m其中:I—整型输出;w—字段宽度;m—输出数据的最少数字位数。格式的输出二、格式说明符96格式的输出例1:k=254M=12n=48write(*,100)k,m,n100Format(1x,i8,i6,i6.3)End输出结果:︺︺︺︺︺254︺︺︺︺12︺︺︺048格式的输出例1:k=25497格式的输出例2:i=300j=1250print50,i,j50Format(1x,i6,i3)End输出结果:︺︺︺300***注:format语句可以出现在program和function语句之后、end语句之前的任何位置。格式的输出例2:i=30098格式的输出⒉F编辑符作用:用于实数的小数形式输出。一般形式:Fw.d其中:F—实数的小数形式输出;w—字段宽度;d—输出数据的小数位数格式的输出⒉F编辑符99格式的输出例:x=12.5y=12.3457z=-12.8467print100,x,y,z100Format(1x,f8.2,f10.3,f10.1)End输出结果:︺︺︺12.50︺︺︺︺12.346︺︺︺︺︺-12.8格式的输出例:x=12.5100格式的输出⒊E编辑符作用:用于实数的指数形式输出。一般形式:Ew.d其中:E—实数的指数形式输出;w—字段宽度;d—数字部分的小数位数。格式的输出⒊E编辑符101格式的输出例:a=246.0b=0.0000025write(*,100)a,b100Format(1x,e9.3,e9.3)End输出结果:
.246e+03.250e-05
9列9列格式的输出例:a=246.0102格式的输出⒋X编辑符作用:用于输出空格。一般形式:nX其中:X—输出空格;n—输出空格数。格式的输出⒋X编辑符103格式的输出例:a=246.0b=0.0000025write(*,100)a,b100Format(1x,e9.3,3x,e9.3)End输出结果:
.246e+03︺︺︺.250e-05
9列9列格式的输出例:a=246.0104格式的输出⒌H编辑符作用:用于输出字符常量。一般形式:nH其中:H—输出字符常量;n—输出字符个数。格式的输出⒌H编辑符105格式的输出例:x=12.5y=12.3457write(*,100)x,y100Format(1x,2hx=,f4.1,2x,2hy=,f6.3)End输出结果:x=12.5︺︺y=12.346格式的输出例:x=12.5106格式的输出⒍’(撇号编辑符)作用:用于输出字符常量,即把撇号内的字符串原样照打。例:i=140j=2000write(*,100)i,j100format(1x,’i=’,i3,’︺︺j=’,i4)end输出结果:i=140︺︺j=2000格式的输出⒍’(撇号编辑符)107格式的输出注:如果输出的字符中包含撇号,则用两个连续的撇号代表一个要输出的撇号。例:write(*,100)100format(1x,’He’’sastudent.’)end输出结果:He’sastudent.格式的输出注:如果输出的字符中包含撇号,则用两个连续的撇号代108格式的输出⒎纵向走纸编辑符Fortran规定:将输出记录中的第一个字符作为纵向走纸控制符,这个字符不再被打印出来,而从输出记录的第二个字符开始输出。记录中第一个打印字符与纵向走纸的关系:空格为走纸一行;0为走纸二行;1为换页;+不走纸;其它字符为按走纸一行处理格式的输出⒎纵向走纸编辑符109格式的输出例1:integerx,yx=3250y=405write(*,100)x,y100Format(i4,3x,i3)End输出结果:250︺︺︺405(即把3“吃”掉了)格式的输出例1:integerx,y110格式的输出FORTRAN规定:输出记录中的第一个字符作为纵向走纸控制符。如果不预先在输出记录的第一个字符处设一空格,则系统会将输出的第一个字符作为走纸控制符,使本来想打印的内容缺少一个字符。所以,在format语句中一定要预设一个走纸控制符“1X”或‘︺’。格式的输出FORTRAN规定:输出记录中的第一个字符作为纵向111格式的输出例2:integerx,yx=3250y=405write(*,100)x,y100Format(i6,3x,i3)End输出结果:格式的输出例2:integerx,y112格式的输出⒏重复系数r在format语句中,如果出现几个(或几组)相同的格式编辑符,则可以利用重复系数而只写一个(或一组)编辑符。r——可重复使用的次数。例1:format(1x,i10,i10,f8.3,f7.2,f7.2,f7.2)↓format(1x,2i10,f8.3,3f7.2)
格式的输出⒏重复系数r113格式的输出例2:format(1x,i5,f8.2,f8.2,i5,f8.2,f8.2)↓format(1x,2(i5,f8.2,f8.2))⒐斜杠编辑符“/”作用:将输出转入下一行记录。格式的输出例2:114格式的输出例1:i=246j=35x=12.3y=173.5write(*,100)i,x,j,y100Format(1x,i5,f7.1/1x,i5,f7.1)End输出结果:格式的输出例1:i=246115格式的输出例2:i=246j=35x=12.3y=173.5write(*,100)i,x,j,y100Format(1x,i5,f7.1//1x,i5,f7.1/)End输出结果:格式的输出例2:i=246116格式的输出其他格式说明符可实可指--Gw.d双精度--Dw.d逻辑数据—LW字符型数据—Aw、A格式的输出其他格式说明符117格式的输入一、有格式的输入语句一般形式:read(*,s1)<输入表列>s1format(格式说明)其中:“格式说明”是由各种“格式编辑符”构成。格式的输入一、有格式的输入语句118格式的输入例1:read(*,100)i,j100Format(i4,i5)End键盘输入:
︺345︺︺456↙格式的输入例1:119格式的输入例2:read(*,100)a,b,c100Format(f5.1,e12.2,f7.2)End键盘输入:
︺15.7︺2345.67e+04︺705.83↙格式的输入例2:120在print,write和read语句中包含格式说明在格式输入输出时,也可以将format语句中的格式说明放到print、write和read语句中。例1:print100,k,y100format(i8,f7.2)↓print’(i8,f7.2)’,k,y注意写法:‘(…)’在print,write和read语句中包含格式说明在格式输121在print,write和read语句中包含格式说明例2:write(*,100)k,y100format(i8,f7.2)↓write(*,’(i8,f7.2)’)k,y例3:read(*,100)k,y100format(i8,f7.2)↓read(*,’(i8,f7.2)’)k,y在print,write和read语句中包含格式说明例2:122C语言的顺序结构C语言概述赋值语句数据输入输出的概念及在C语言中的实现字符数据的输入输出格式输入与输出C语言的顺序结构C语言概述123C语句概述[例]求园的面积#DEFINEPI=3.1415926main(){floatr,s;r=20;s=r*r*PI;printf(“area=%f”,s);}area=1256.637C程序源程序文件1源程序文件I源程序文件n……预处理命令函数1函数n…说明部分执行部分(语句)语句是计算机执行的最小单位C语句概述[例]求园的面积area=1256.637C程序124
C语句可以分为以下5类:1.控制语句,完成一定的控制功能.2.函数调用语句,由一次函数调用加一个分号构成一个语句.3.表达式语句.4.空语句,只有一个分号的语句,它什么也不做.5.用{}把一些语句包括起来成为复合语句,中最后一个语句中最后的分号不能忽略不写.*C语言允许一行写几个语句,也允许一个语句拆开写在几行上,书写格式无固定要求。C语句可以分为以下5类:1.控制语句,完成一定的控制125赋值语句赋值表达式后面加上分号,构成赋值语句.功能:将数据赋给变量。如:x=3.1;a=‘d’+123+b/d;程序中基本的命令行必须是一个语句,表达式不能单独构成语句.例如:‘d’+123+b/d是一个表达式a=‘d’+123+b/d;是一个赋值语句赋值语句赋值表达式后面加上分号,构成赋值语句.126数据输入输出的概念及在C语言中的实现C语言本身不提供输入输出语句,输入和输出操作是由函数来实现的。
编写语言时,printf,scanf等不是关键字,只是函数的名字。C语言库有一批“标准输入输出函数”,其中有:putchar,getchar,printf,scanf,puts,gets数据输入输出的概念及在C语言中的实现C语言本身不提供输入输127在使用C语言库函数时,要用预编译命令“#include”将有关的“头文件”包括到用户源文件中。考虑到printf,scanf函数使用频繁,系统允许在使用这两个函数时可不加#include命令。在使用C语言库函数时,要用预编译命令“#include”将有128字符数据的输入输出putchar()向终端输出一个字符。例如:putchar(c);[例4.1]#include“stdio.h”main(){chara,b,c;a=‘B’;b=‘O’;c=‘Y’;putchar(a);putchar(b);putchar(c);}BOY字符数据的输入输出putchar()[例4.1]BOY129BOYputchar(a);putchar(‘\n’);putchar(b);putchar(‘\n’);putchar(c);putchar(‘\n’);输出其它转义字符putchar(‘\101’);输出‘A’;putchar(‘\’’);输出单引号putchar(‘\015’);使输出回车,不换行Bputchar(a);putchar(‘\n’);130getchar函数(字符输入函数)一般格式:getchar()[例4.2]#include“stdio.h”main(){charc;c=getchar();putchar(c);}putchar(getchar());输出从键盘得到的值,但不赋给任何变量agetchar函数(字符输入函数)[例4.2]putcha131格式输入与输出printf函数可以按规定格式向终端输出任意类型的数据一般格式:printf(控制格式,输出列表)被输出的数据,可以是常量、变量、表达式。用双引号括起的转换控制字符串,它包括两种信息:格式说明,由%开始。如:%d,%f,%c普通字符,要输出的字符printf(“%d%d”,a,b)格式说明输出列表printf(“a=%db=%d”,a,b);
格式说明输出列表格式输入与输出printf函数一般格式:printf(控制1321212312345格式字符(1)d格式符,用来输出十进制数。%d按整型的实际长度输出。a=12,b=123,c=12345;printf(“%d,%d,%d”,a,b,c);12,123,12345%md按给定长度m输出,数字不够长,左边补空格;数字长度大于m,按原长度输出。printf(“%4d%4d%4d”,a,b,c);1212312345格式字符133(5)c格式符,用来输出一个字符。如:charc=‘a’;printf(“%c”,c);aprintf(“%3c”,c);
a[例4.4]main(){charc=‘a’;inti=97;p
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 浙江省杭州市四校2025-2026学年初三下学期一练前第二次强化训练英语试题含解析
- 山东东营市2026年初三英语试题模拟考试(江门一模)英语试题试卷与评分参考含解析
- 山西省(晋城地区)2026年初三下学期1月第一次联合考试英语试题含解析
- 西双版纳市重点中学2025-2026学年初三物理试题下学期第二次模拟考试试题含解析
- 2025 高中文言文阅读理解之特殊称谓辨析课件
- 2026年自动化仓储市场中的竞争对手分析
- 2026年自动化仓储服务中的人性化设计
- 2026年全民环保的宣传与实践路径
- 骨折患者的康复训练方案
- 2026广西柳州融水苗族自治县人民法院招聘书记员2人备考题库及参考答案详解【典型题】
- 2026年护士资格考试统考历年真题及答案
- 2026江苏南京市雨花台区征收拆迁安置办公室招聘编外人员3人笔试参考题库及答案解析
- 内部财务交叉检查制度
- OpenClaw:AI从聊天到行动 下一代智能助手白皮书
- 电梯维保2026年复工培训
- 中国整形美容外科诊疗指南(2025版)
- GB/T 19362.2-2017龙门铣床检验条件精度检验第2部分:龙门移动式铣床
- FZ/T 07008-2020定形机热平衡测试与计算方法
- 精细化工过程与设备 第四章 塔式反应器
- 第6章-六足仿生机器人项目设计课件
- 安全文明施工措施费专款专用的方案
评论
0/150
提交评论