您好,欢迎访问三七文档
当前位置:首页 > 外语资料 > 英语基础 > 第三课赋值和输入输出语句
拆数深入Pascal程序形式Program程序名(程序参数表);Label标号说明;Const常量说明;Type类型说明;Var变量说明;Function函数说明;Procedure过程说明;Begin程序语句;……;程序语句;End.说明部分程序体1、每一个完整语句由分号结束。2、具体程序不一定包括全部说明,但如果出现,必须按这里所指定的前后次序编写。3、程序体不可少,程序体以END.结束,且最后一个句号不能漏掉。4、END前一句语句的分号可有可无,有则编译时多一个空行。3^4programls;usesmath;beginwrite(power(3,4):0:0);end.programls;beginwrite(exp(4*ln(3)));end.试一试{打开数学库}补充(1)inc(x)等同x:=x+1;(2)inc(x,n)等同x:=x+n;(3)dec(x)等同x:=x-1;(4)dec(x,n)等同x:=x-n;位数对调:输入一个三位自然数,把这个数的百位与个位数对调,输出对调后的数。programexam1;varn,g,s,b:integer;beginread(n);g:=nmod10;b:=ndiv100;s:=ndiv10mod10;write(g,s,b);end.参考程序回顾随机产生三位数,此程序如何调?Pascal的System单元提供了两个与随机数有关的子程序:Randomize和Random。Randomize过程用于初始化随机种子,其初始值取决于当前的系统时钟。Random函数用于获取随机数.它有两种调用形式:Random,返回一个0到1之间(不包括1)的随机实数;Random(N),返回0至N之间(不包括N)的随机整数,N为Word类型整数。例如:Random(100)返回[0100)之间的整数随机产生一个三位自然数,分离出百位、十位与个位上的数字programw_sj;varg,s,b,x:integer;beginrandomize;x:=trunc(random*900)+100;g:=xmod10;b:=xdiv100;s:=(xdiv10)mod10;writeln('x=',x);writeln('b=',b);writeln('s=',s);writeln('g=',g);end.Random(900)+100[0900)如果输入时是作为字符或字符串,程序如何改?programls;vara,b,c:char;beginread(a,b,c);write(c,b,a);end.三位数翻转programls;varn,a,b,c:string;beginread(n);a:=copy(n,1,1);b:=copy(n,2,1);c:=copy(n,3,1);write(c,b,a);end.字符输入字符串输入思考:1.如果数字不止3位,但知道位数,也就是输入时除了数字信息还有位数信息,程序应当如何改?2.如果不知道数字的位数,用回车或“#”结束,本程序如何改?programaa;vara,b:longint;beginread(a);writeln('a=',a);repeatb:=amod10;a:=adiv10;write(b)untila=0;readln;end.输入最多几位翻转数程序深入-学生程序一programls;varn:string;x,i:integer;a:array[1..100]ofchar;beginread(x);ifx100thenfori:=1toxdoread(a[i]);fori:=xdownto1dowrite(a[i]);end.read(x);改成readln(x);试试,结果对了没?为什么呢?特别有意思的是看起来正确的程序结果有误,你能知道哪个细节有问题么?原来,由于度入的数据类型是字符,回车、换行都是字符。读完了位数x后光标依然在第一行,然后继续读回车、换行,第3个才读到我们输入的下一行的数字5123451111111111111111111111111111111111111programzzw;varx:string;a,w,q:integer;beginread(x);a:=length(x);q:=a;repeatw:=copy(x,q,1);write(w);q:=dec(q);untilq=0;end.那里错了programzzw;varw,x:string;a,q:integer;beginread(x);a:=length(x);q:=a;repeatw:=copy(x,q,1);write(w);dec(q);untilq=0;end.programasd5;varx:array[1..100]ofchar;a,n:integer;beginread(x);n:=length(x);fora:=ndownto1dowrite(x[a]);end.一个整型数据用来存放整数。Pascal支持五种预定义整型,它们是shortint(短整型)、integer(整型)、longint(长整型)、byte(字节型)和word(字类型),Pascal分别用相同的名字作为他们的表识符。每一种类型规定了相应的整数取值范围以及所占用的内存字节数。整型数值范围占字节数格式shortint-128..1271带符号8位integer-32768..327672带符号16位longint-2147483648..21474836474带符号32位byte0..2551无符号8位word0..655352无符号16位Int64-9223372036854775808..92233720368547758078一个实型数据用类存放实数。Pascal支持五种预定义实型,它们是real(基本实型)、single(但精度实型)、double(双精度实型)、extended(扩展实型)、comp(装配实型),Pascal分别用相同的名字作为他们的表识符。每一种类型规定了相应的实数取值范围、所占用的内存字节数以及它们所能达到的精度。实型数值范围占字节数有效位数real2.9e-39..1.7e38611..12single1.5e-45..3.4e3847..8double5.0e-324..1.7e308815..16extended3.4e-4951..1.1e49321019..20comp-2**63+1..2**63-1819..20简单的IF语句一、格式IF<布尔表达式>THEN语句;IF<布尔表达式>THEN语句1ELSE语句2;布尔表达式语句二语句一then语句布尔表达式thenelse分支programex;varx:real;y:integer;beginwrtie('Inputx:');readln(x);ifx0theny:=1{x0时,y的值为1}else{x≤0时}ifx=0theny:=0elsey:=-1;writeln('x=',x:6:2,'y=',y);end.IF语句中复合语句用法IF<布尔表达式>THENbegin一个语句以上end;此处无符号IF<布尔表达式>THENbegin一个语句以上endELSEbegin一个语句以上end;case表达式of情况标号表1:语句1;情况标号表2:语句2;:情况标号表n:语句nelse语句;end;varx,y:real;beginwrite('Inputx:');readln(x);casetrunc(x/100)of0:y:=x+1;1:y:=x-1;elsey:=0;end;{endofcase}writeln('x=',x:8:2),'y=',y:8:2);end.输入两个实数,再输入+、-、*或/号,根据运算符输出这两个数的和、差、积或商。Programxx;vara,b,s:real;operator:char;beginreadln(a,b);read(operator);caseoperatorof'+’:s:=a+b;'-’:s:=a-b;'*’:s:=a*b;'/’:s:=a/b;end;writeln(a,operator,b,'=’,s:5:4)end.programex1;vara,b:string;x,y,s:real;beginread(x,a,b,y);casebof'+':s:=x+y;'-':s:=x-y;'*':s:=x*y;'/':s:=x/y;end;write(s:0:2);end.programex1;varn,k:integer;l,m,j,a:string;x,y,s:real;beginread(a);n:=length(a);k:=pos('+',a);ifk=0thenk:=pos('-',a);ifk=0thenk:=pos('*',a);ifk=0thenk:=pos('/',a);l:=copy(a,1,k-1);val(l,x);m:=copy(a,k+1,n-k);val(m,y);j:=copy(a,k,1);casej[1]of'+':s:=x+y;'-':s:=x-y;'*':s:=x*y;'/':s:=x/y;end;write(s:0:2);end.循环结构循环结构是程序设计的三种基本结构之一对一条或一组语句重复执行多次,以最终完成某项任务。重复循环对象是一条或多条语句,称为循环体。pascal有三种循环结构形式:计数循环:按己定次数执行循环体当型循环:当条件满足时重复执行循环体直到型循环:反复执行循环体直到条件满足为止for语句的一般格式for控制变量:=表达式1to表达式2do语句;递增for控制变量:=表达式1downto表达式2do语句;递减for语句(复合)for控制变量:=表达式1to表达式2dobegin一个以上语句;end;for控制变量:=表达式1downto表达式2dobegin一个以上语句;end;求100(包括)以内所有数之和whilei=100dobeginnum:=num+i;i:=i+1;end;fori:=1to100donum:=num+i;repeatnum:=num+i;i:=i+1;untili100;思考:从键盘输入若干数字,对它们求和,直到从键盘读入的数是#时结束Whilea‘#’dountila=‘#’1、输出1-100之间的所有偶数2、求s=1+4+7+…+298的值题一编写程序,求100~1000之间能被7整除的数,每行输出10个。Programex34;Varx,a,b,y:integer;BeginForx:=10to99doBegina:=xdiv10;b:=xmod10;y:=b*10+a;ify-x=36thenwriteln(x);End;End.解:①用for循环列举出所有的两位数,x为循环变量;②用公式a:=xdiv10分离出x的十位数字;③用公式b:=xmod10分离出x的个位数字;④用公式y:=b*10+a合成新数y;⑤用式子y-x=36筛选出符合条件的数x并输出。有个两位数x,将它的个位数字与十位数字对调后得到一个新数y,此时y恰好比x大36,请编程求出所有这样的两位数。题二把整数3025从中剪开分为30和25两个数,此时再将这两数之和平方,(30+25)2=3025计算结果又等于原数。求所有符合这样条件的四位数。解:设符合条件的四位数为N,它应当是一个完全平方数,用(a*a)表示。①为了确保N=(a*a)在四位数(1000~9999)范围内,可确定a在32~99循环;②计算N=a*a;将四位数N拆分为两个数n1和n2;③若满足条件(n1+n2)*(n1+n2)=N就输出N题三(选)programexam35;varn,a,x,n1,n2:integer;beginfora:=32to99do
本文标题:第三课赋值和输入输出语句
链接地址:https://www.777doc.com/doc-3370749 .html