版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Pascal语言程序设计信息学奥赛的内容:
程序=计算机语言+数据结构+算法FreePascalC/C++1、观察和分析问题的能力;2、将实际问题转化为数学模型的能力;3、灵活地运用各种算法的能力;4、熟练编写程序并将其调试通过的能力;5、根据题目的要求,自己设计测试数据,检查自己的解法是否正确、是否完备的能力.
6、具有很强的自学能力,需要学习有关组合数学、图论、基本算法、数据结构、人工智能搜索算法及数学建模等知识,还要学会高级语言和编程技巧,要具备很强的上机操作能力.考察的能力:选手应具备的条件:前提:综合成绩突出1、扎实的数学基础。2、很强的自学能力。3、与同学之间的密切友好的合作与交流。4、持之以恒,坚持不懈的学习。5、耐得住枯燥与寂寞。6、不能以参加竞赛为理由而耽误了其他课程的学习。7、坚决抵制玩游戏、上网聊天。
要将一张100元的大钞票,换成等值的10元、5元、2元、1元一张的小钞票,每次换成40张小钞票,每种至少1张。如,有一种换法:
10元:1张
5元:5张
2元:31张
1元:3张问:一共有多少种换法。问题举例:【引例1】:换钱问题已知:
s=1+1/2+1/3+…+1/n求:使s的值大于10时最小的n。【引例2】:求最小的n枚举
已知正整数a和b,a<b,求a除以b的值,精确到小数点后1000位。【引例3】:除法问题高精度n个客人围着一个桌子吃饭,每一个人都至少认识其他的2个客人。请设计程序求得n个人的一种坐法,使得每个人都认识他左右的客人。【引例4】:安排座位12435模型转化:构造一个图:人看成顶点,认识关系看成一条边。目标:找一个环,包含所有的点。哈密顿回路
有两个无刻度标志的水杯,分别可装满x升和y升的水。设另一个水缸,可以用来向水杯灌水或从水杯向水缸里倒水,两个水杯之间也可以相互倒水。已知x升的水杯开始是盛满水的,y升的杯子是空的,问如何通过倒水和灌水操作,用最少的步数能在y升的杯子里量出z升水。YX水缸(足够的水,未满)X=20Y=15Z=10?Y—>10【引例5】:倒水问题开始:200step1:515step2:015step3:150step4:1515step5:2010XY算法:广度优先搜索数据结构:队列【引例6】:解n元一次方程组N<=100,给定系数aij和常数bi,求出方程组的解得情况。第一讲Pascal语言基础一程序的基本结构
程序的上机调试和运行语言基础一例1:要将一张100元的大钞票,换成等值的10元、5元、2元、1元一张的小钞票,每次换成40张小钞票,每种至少1张。如,有一种换法:10元:9张5元:1张2元:2张1元:1张问:一共有多少种换法。程序的上机调试和运行program
ex1;varx1,x2,x3,x4,n:integer;beginn:=0;forx1:=1to10doforx2:=1to20doforx3:=1to50doforx4:=1to100doif(10*x1+5*x2+2*x3+x4=100)and(x1+x2+x3+x4=40)then
n:=n+1;writeln(n);end.例2
、已知:
s=1+1/2+1/3+…+1/n求:使s的值大于10时最小的n。vars:real;n:integer;begins:=0;n:=0;whiles<=10dobeginn:=n+1;s:=s+1/n;end;writeln(n);end.例3、编一个程序,从键盘输入一个真分数的分子和分母,输出它的小数形式,精确到小数点后1000位。varn,m,r,q,i:integer;beginread(n,m);r:=n;write('0.');i:=1;whilei<=1000dobeginq:=10*rdivm;r:=10*rmodm;write(q);i:=i+1;end;end.上机调试运行步骤:1、运行:FreePascal2、filenew:新建文件3、compilemake:编译,找错误。4、run—〉run:运行5、debugoutput(Alt+F5):察看结果program程序名;{可以省略}
var变量说明;
begin
语句;
语句;
……
语句;
end.Pascal程序的基本结构
vars:real;n:integer;begins:=0;n:=0;whiles<=10dobeginn:=n+1;s:=s+1/n;end;writeln(n);end.示例:程序的基本结构
一、变量的定义说明:二、Pascal数据类型(整型、实型)三、基本语句(赋值语句、输入语句read、输出语句write)四、算术运算符和算术表达式五、标准函数(数值型函数)语言基础一一、变量的定义说明:在程序中用到的所有变量必须事先定义。格式:Var<变量表>
:
<变量类型>;
┆
<变量表>
:
<变量类型>;如:输入3个整数,求这3个数的平均值。Vara,b,c:integer;aver:real;说明:1)、同一类型的变量可以放在一起,也可分开写,不同类型的不能放在一起。2)、变量名:可以是一个字母,也可以是多个字母和数字的组合,但字母开头。3)、不能重复定义变量。二、Pascal数据类型Vara,b,c:integer;Beginreadln(a);readln(b);c:=a+b;writeln(c):End.12020010000200002000030000试以下3组数据:输入整数a和b,输出a+b的值。整型、实型、(字符型和布尔型)1、整型
类型数值范围占字节数
Byte0..2551Word0..655352Shortint-128..1271
Integer-32768..32767;2
Longint-2147483648..21474836474Longword0..42949672954
Int64-9223372036854775808..
92233720368547758078QWord0..1844674407370955161582、实数
类型范围有效位数占用字节
Real2.9e-39..1.7e38
11..126
Single1.5E-45..3.4E387-84Double5.0E-324..1.7E30815-168Extended1.9E-4951..1.1E493219-2010Comp-2E64+1..2E63-119-208Varbeginread(a,b);c:=a*b;d:=a/b;writeln(c);writeln(d);End.?例:输入:两个整数a、b(<=3000),输出它们的乘积c,商d。实数的定点型格式输出:实数表达式:域宽:小数位数T=63.123write(t);6.312300000000E+01write(t:6:2);63.12write(t:6:5);63.12300如果要求小数点后精确2位小数.Writeln(x:0:2);a,b:integer;C:longint;d:real;Writeln(d:0:2);字符类型Char类型用单引号括起来一个单个字符。字母作为字符型时,大小写是不等价的,并且字符型只允许单引号中有一个字符,否则就是字符串。Vars:char;s:=‘B’布尔类型Boolean类型一个布尔型数据用来存放逻辑值(布尔值)。
只有两个真和假,分别用标准常量true和False来表示。布尔类型的运算符有:not(非)、and(与)、or(或)vara,b:boolean;A:=4>3;b:=2>3;1、赋值语句
赋值语句是最简单的语句.
1)、赋值语句的格式变量名:=表达式;其中“:=”称为赋值号。
2)、执行过程计算机先计算赋值号右边表达式的值,然后将表达式的值赋给变量名代表的变量。如:A:=(9*8)-(2-1);
A:=A+1
三、基本语句2、输入语句read和readln功能:从键盘读入数据项,并把它存到变量中去,使该数据能在以后的计算中使用。输入语句的一般形式为:
read(v1,v2,…,vn);
readln(v1,v2,…,vn);从键盘逐次读入数据,分别赋给变量v1,v2,…,vn,一行输入多个变量值时,要求数据之间用空格分隔,readln语句要求输入数据后必须回车,使得后继操作从下一行的头上开始。read语句与readln语句区别是:
1)read语句是一个接一个地读数据,在执行完本Read语句(读完本语句中变量所需的数据)后,下一个读语句接着从该数据输入行中继续读数据,也就是说,不换行。如:
Read(a,b);Read(c,d);Read(e);
如果输入数据行如下:1□2□3←┘4□5□6□←┘则a,b,c,d,e的值分别为1,2,3,4,5,如果后面无读语句则数据6是多余的,这是允许的。
Readln则不同,在读完本Readln语句中变量所需的数据后,该数据行中剩余的数据多余无用,或者说,在读完本Readln语句中变量所需数据后,一定要读到一个回车,否则多余的数据无用。设有下列语句:read(a,b,c);readln(d,e);readln;readln(f,g);其中,所有变量均为整型。设输入的数据如下:
1□2←┘3□4□5□6□7□8←┘9□10←┘11□12□13←┘
Vara,b,c,d,e,f,g:integer;beginread(a,b,c);readln(d,e);readln;readln(f,g);writeln(a,‘',b,‘',c,‘',d,‘',e,‘',f,‘',g);end.2)readln语句与read语句的第二个区别是:read后一定要有参数表,readln可以不带参数表,即可以没有任何输入项,只是等待读入一个换行符(回车)。经常用于暂停程序的运行,直到输入一个回车3输出语句write和writeln功能:把程序计算的结果,按适当的形式输出到屏幕。1)、write语句格式Write(表达式1,表达式2,……);如:write(x,5,a+b);write(‘MynameisLiping’);2)、writeln语句格式:Write(表达式1,表达式2,……)或writelnWrite语句与writeln语句格式上都相似,但它们在功能上有所不同,两个语句的区别在于:write语句将其后括号中的表达式一个接一个输出后,没有换行。而writeln语句则在输出各个表达式的值后换行。例如以下两个程序段的输出分别为:write(1,2,3,4);write(5,6);输出为:123456writeln(1,2,3,4);write(5,6);输出为:1234564实数的输出格式实数(real)以浮点型格式输出。例如805.67对应的浮点数为8.056700000000E+02。这种实数表达方式很不方便。我们可以通过下述形式强迫实数以定点型格式输出:实数表达式:域宽:小数位数例如,t的值设为63.123。下面三条输出语句分别有它们右边所示的输出格式:
write(t);6.312300000000E+01write(t:6:2);63.12write(t:6:5);63.12300write(t:0:0);var
a,b,t:integer;
begin
read(a,b);
t:=a;
a:=b;
b:=t;
writeln('a=',a,'b=',b)
end.例:输入两个整数a,b,交换他们的值,并输出.如:输入:3034
输出:3430四、算术运算符和算术表达式
1.算术运算符
运算符运算运算对象结果类型
+加整型、实型只要有一个运算对象是实型,结果就
-减整型、实型是实型,如果全部的运算对象都是整
*乘整型、实型型并且运算不是除法,则结果为整型
/除整型、实型若运算是除法,则结果是实型。
div整除整型整型
mod取余整型整型2、表达式是通过运算符把常量、变量、函数调用结合起来组成的。
3+x1+b除法运算1、整除运算:运算符为“div”
结果为两个整型数除法的整数商。例如:10Div4=22、求余数运算:运算符为“mod”
结果为两个整型数除法的余数。例如:10mod3=13、普通除法:运算符为“/”
结果为两个任意数值相除的商(含小数)。例如:10/4=2.5整数的运算符有:DIV(整除)、mod(取余)。15Div6=2
(-15)div6=-2
15Div(-6)=-2
(-15)div(-6)=215mod6=3
(-15)mod6=-3
15mod(-6)=3
(-15)mod(-6)=-3Programex1_5;Consta=128;Varb,d:integer;c:real;Beginb:=adiv16;c:=a/b;d:=a;write(a:4,b:4,c:4,d:4);end.是通过运算符把常量、变量、函数调用结合起来组成的。
3+x1+bPASCAL表达式有以下计算优先顺序规则:
1.括号内的表达式首先计算;
2.运算符的优先级有四级,按其优先顺序从高到低排列为:
not;*,/,div,mod,and;
+,-,or;
=,<>,>,<,<=,>=,IN;不同优先级的两运算符之间的操作数先与具有较高优先级的运算符进行运算;
3.同级的运算从左到右进行;另外,有一点需要指出的是,因为关系运算符的优先级最低,当用关系式构造复杂的布尔表达式时,这些关系式作为初等条件必须放在括号里。如:(x<y)and(z=y)or(x=0)若不加括号,就是一个错误的表达式。表达式上机练习题目:输入一个3位的正整数,输出他们的各位数字之和与乘积。如:输入:436输出:1372varn,a,b,c,x,y:integer;beginreadln(n);a:=ndiv100;b:=(ndiv10)mod10;c:=nmod10;x:=a+b+c;y:=a*b*c;writeln(x);writeln(y);end.展示实力1、写出下列表达式的值。
12*3+6/4= 45div4= 98mod10=2、写出下列程序段的运行结果。
Varmy:real;Beginmy:=18/4-3;Writeln(my:10:2)End.Varn,v:integer;Beginread(n);v:=nmod5;writeln(‘VP=’,v)End.{运行时输入34}Varw1,w2:integer;Beginwriteln(‘Enter’);Read(w1,w2);W1:=0;W1:=w1+w2;Writeln(w1)End.{运行时输入15,36}Vark1,k2,fn:integer;BeginRead(k1,k2);fn:=k1+2*k2;Iffn<7thenwriteln(fn)End.{运行时输入1,2,3}展示实力3、从键盘输入一个字符,然后显示一个由该字符组成的图案。输入样例 输出样例K k kkk kkkkk4、输入两个整数,让计算机来求它们的和、差、积、商、整数商和余数。输入样例 输出样例5 18+5=23 18-5=13 18*5=90 18/5=3.60 18div5=3 18mod5=3展示实力3、从键盘输入一个字符,然后显示一个由该字符组成的图案。输入样例 输出样例K k kkk kkkkk4、输入两个整数,让计算机来求它们的和、差、积、商、整数商和余数。输入
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《光电子学》课程教学大纲
- 《社会保障学》课程教学大纲
- 2024年低价别墅出卖合同范本
- 2024年出售安建回迁房合同范本
- 2024年承接墙安装工程合同范本
- 光学镜片加工培训
- 统编版五年级语文上册第三次月考综合测试卷(含答案)
- 冠脉支架术及护理
- 做幸福的教师培训
- 2024标准正规借款合同范文
- 铁道运输职业生涯规划书
- 天津美术馆分析报告
- 《PLC技术基础、PLC技术及应用》期末考试B卷
- 大肠杆菌耐药机制探究
- 跨境电商方案的可行性报告
- 职业生涯规划大赛公务员
- 【企业应收账款管理探究文献综述2600字】
- 生产工艺中的工艺参数优化与调整
- 《人文地理学》课件
- 2023银行业经营战略报告-存量时代的用户洞察与增长机会-2023.11
- 隧道劈裂施工方案
评论
0/150
提交评论