版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、拆数深入,Pascal 程序形式,Program 程序名(程序参数表); Label 标号说明; Const 常量说明; Type 类型说明; Var 变量说明; Function 函数说明; Procedure 过程说明; Begin 程序语句; ; 程序语句; End.,说明部分,程序体,1、每一个完整语句由分号结束。 2、具体程序不一定包括全部说明,但如果出现,必须按这里所指定的前后次序编写。 3、程序体不可少,程序体以END.结束,且最后一个句号不能漏掉。 4、END前一句语句的分号可有可无,有则编译时多一个空行。,34,program ls; uses math; begin wri
2、te(power(3,4):0:0); end.,program ls; begin write(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;,位数对调:输入一个三位自然数,把这个数的百位与个位数对调,输出对调后的数。,program exam1; var n,g,s,b:integer; begin read(n); g:=n mod 10; b:=n div 100; s:=n div 10
3、 mod 10; write(g,s,b); end.,参考程序,回顾,随机产生三位数,此程序如何调?,Pascal的System单元提供了两个与随机数有关的子程序:Randomize和Random。 Randomize过程用于初始化随机种子,其初始值取决于当前的系统时钟。 Random函数用于获取随机数. 它有两种调用形式: Random,返回一个0到1之间(不包括1)的随机实数; Random(N),返回0至N之间(不包括N)的随机整数,N为Word类型整数。,例如:Random(100) 返回0 100)之间的整数,随机产生一个三位自然数,分离出百位、十位与个位上的数字,program
4、w_sj; var g,s,b,x:integer; beginrandomize;x:=trunc(random*900)+100;g:=x mod 10;b:=x div 100;s:=(x div 10) mod 10;writeln(x=,x );writeln(b=,b);writeln(s=,s);writeln(g=,g); end.,Random(900)+100,0 900),如果输入时是作为字符或字符串,程序如何改?,program ls; var a,b,c:char; begin read(a,b,c); write(c,b,a); end.,三位数翻转,program
5、 ls; var n,a,b,c:string; begin read(n); a:=copy(n,1,1); b:=copy(n,2,1); c:=copy(n,3,1); write(c,b,a); end.,字符输入,字符串输入,思考: 如果数字不止3位,但知道位数,也就是输入时除了数字信息还有位数信息,程序应当如何改? 如果不知道数字的位数,用回车或“#”结束,本程序如何改?,program aa; var a,b:longint; begin read(a); writeln(a=,a); repeat b:=a mod 10; a:=a div 10; write(b) until
6、 a=0; readln; end.,输入最多几位,翻转数程序深入-学生程序一 program ls; var n:string;x,i:integer; a:array1.100 of char; begin read(x); if x100 then for i:=1 to x do read(ai); for i:=x downto 1 do write(ai); end.,read(x);改成readln(x);试试,结果对了没? 为什么呢?,特别有意思的是看起来正确的程序结果有误,你能知道哪个细节有问题么?,原来,由于度入的数据类型是字符,回车 、换行都是字符。读完了位数x后光标依然
7、在第一行,然后继续读回车、换行,第3个才读到我们输入的下一行的数字,5 12345,1111111111111111111111111111111111111,program zzw; var x:string; a,w,q:integer; begin read(x); a:=length(x); q:=a; repeat w:=copy(x,q,1); write(w); q:=dec(q); until q=0; end.,那里错了,program zzw; var w,x:string; a, q:integer; begin read(x); a:=length(x); q:=a;
8、repeat w:=copy(x,q,1); write(w); dec(q); until q=0; end.,program asd5; var x:array1.100 of char; a,n:integer; begin read(x); n:=length(x); for a:=n downto 1 do write(xa); end.,一个整型数据用来存放整数。Pascal支持五种预定义整型,它们是shortint(短整型)、 integer(整型)、 longint(长整型)、 byte(字节型)和 word(字类型), Pascal分别用相同的名字作为他们的表识符。每一种类型
9、规定了相应的整数取值范围以及所占用的内存字节数。,一个实型数据用类存放实数。 Pascal支持五种预定义实型,它们是real(基本实型)、 single(但精度实型)、double(双精度实型)、extended(扩展实型)、comp(装配实型), Pascal分别用相同的名字作为他们的表识符。每一种类型规定了相应的实数取值范围、所占用的内存字节数以及它们所能达到的精度。,简单的IF语句,一、格式 IF 布尔表达式THEN 语句; IF 布尔表达式THEN 语句 ELSE 语句;,then,else,分支,program ex; var x:real;y:integer; begin wrti
10、e(Input x:);readln(x); if x0then y:=1x0时,y的值为1 else x0时 if x=0then y:=0 else y:=-1; writeln(x=,x:6:2,y=,y); end.,IF语句中复合语句用法,IF 布尔表达式THEN begin 一个语句以上 end;,IF 布尔表达式THEN begin 一个语句以上 end ELSE begin 一个语句以上 end;,case of :语句1; :语句2; : :语句n else 语句; end;,var x,y:real; begin write(Input x:);readln(x); cas
11、e trunc(x/100) of 0:y:=x+1; 1:y:=x-1; else y:=0; end;end of case writeln(x=,x:8:2),y=,y:8:2); end.,输入两个实数,再输入+、-、* 或 / 号,根据运算符输出这两个数的和、差、积或商。,Program xx; var a,b,s:real; operator:char; begin readln(a,b); read (operator); case operator of +: s:=a+b; -:s:=a-b; *:s:=a*b; /:s:=a/b; end; writeln(a,operat
12、or,b, =,s:5:4) end.,program ex1; var a,b:string; x,y,s:real; begin read(x,a,b,y); case b of +:s:=x+y; -:s:=x-y; *:s:=x*y; /:s:=x/y; end; write(s:0:2); end.,program ex1; var n,k:integer; l,m,j,a:string; x,y,s:real; begin read(a); n:=length(a); k:=pos(+,a); if k=0 then k:=pos(-,a); if k=0 then k:=pos(
13、*,a); if k=0 then k:=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); case j1 of +:s:=x+y; -:s:=x-y; *:s:=x*y; /:s:=x/y; end; write(s:0:2); end.,循环结构,循环结构是程序设计的三种基本结构之一 对一条或一组语句重复执行多次,以最终完成某项任务。 重复循环对象是一条或多条语句,称为循环体。 pascal有三种循环结构形式: 计数循环:按己定次数执行循环体 当型循环:当条件满足时重复执行
14、循环体 直到型循环:反复执行循环体直到条件满足为止,for语句的一般格式,for := to do ; 递增,for := downto do ; 递减,for语句(复合),for := to do begin 一个以上语句; end;,for := downto do begin 一个以上语句; end;,求100(包括)以内所有数之和,while i=100 do begin num:=num+i; i:=i+1; end;,for i:=1 to 100 do num:=num+i;,repeat num:=num+i; i:=i+1; until i100;,思考:从键盘输入若干数字,
15、对它们求和,直到从键盘读入的数是#时结束,While a# do,until a=#,1、输出1100之间的所有偶数 2、求s=1+4+7+298的值,题一,编写程序,求1001000之间能被7整除的数,每行输出10个。,Program ex34; Var x,a,b,y:integer; Begin For x := 10 to 99 do Begin a := x div 10; b := x mod 10; y := b*10+a; if y-x=36 then writeln(x); End; End.,解: 用for循环列举出所有的两位数,x为循环变量; 用公式a:= x div 1
16、0分离出x的十位数字; 用公式b:= x mod 10分离出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)在四位数(10009999)范围内,可确定a在3299循环; 计算N=a*a;将
17、四位数N拆分为两个数n1和n2; 若满足条件(n1+n2)*(n1+n2)N 就输出 N,题三(选),program exam35; var n,a, x,n1,n2: integer; begin for a:=32 to 99 do begin n:=a*a; n1:= n div 100; 拆取四位数的前两位数 n2:= n-n1*100; 拆取四位数的后两位数 x:=n1+n2; if x*x=n then writeln (n); end; readln end.,WHILE循环,格式: while do ;其意义为:当布尔表达式的值为true时,执行do后面的语句。,While i
18、=100 do begin num:=num+i; i:=i+1; End;,应用一,输入若干个字符,以“#”为终止字符,统计输入字符中字母“a”出现的次数(包括大写A)。 参考程序 program tmp; var ch:char; i:integer; begin i:=0; read(ch); while ch# do begin if (ch=a) or (ch=A) then i:=i+1; read(ch); end; writeln(i=,i); readln; end.,应用二,求输入一个整数的各位数字之和。 分析,求328各位之和可以按下面方法进行 首先 328 mod 10得8,328 div 10得32 继续32 mod 10得2,32 div 10得3 3 mod 10得3,3 div 10为0 为了达到循环执行,可以令X=328,然后X逐步赋值缩小为32、3、0 参考程序 program tmp; var s,x,t:integer; begin s:=0; readln(x);
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小学竞选家委会主任发言稿简短精-辟
- 小区绿化养护考核细则
- 星级酒店客房部保洁服务标准与工作流程操作规范
- 物业参加街道消防安全会议发言稿
- 教师防侵权自查报告
- 售楼部旺季销售冲刺执行方案手册
- 滑冰场花样滑冰训练场地保障手册
- 城市供水公共设施管理手册
- 鱼类加工防交叉污染控制手册
- 新房团购与渠道分销合作管理手册
- 扣件式钢管脚手架安全管理培训
- 2024年计划员采购员工作总结报告
- 水泥混凝土路面常见病害类型及分级
- 财政投资评审项目造价咨询服务方案审计技术方案
- 《习作我学会了》 全市一等奖
- 水电技术交底记录
- 《知行合一投资赢家》培训心得
- 《城市经济学》各章-练习题及参考答案
- GB/T 5537-2008粮油检验磷脂含量的测定
- 三、卫生行政处罚程序课件
- 住建部施工临时用电安全管理培训
评论
0/150
提交评论