第1讲_Pascal语言基础知识一_第1页
第1讲_Pascal语言基础知识一_第2页
第1讲_Pascal语言基础知识一_第3页
第1讲_Pascal语言基础知识一_第4页
第1讲_Pascal语言基础知识一_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Pascal语言程序设计语言程序设计信息学奥赛的内容:信息学奥赛的内容: 程序程序=计算机语言计算机语言+数据结构数据结构+算法算法Free Pascal C/C+ 1、观察和分析问题的能力;、观察和分析问题的能力;2、将实际问题转化为、将实际问题转化为数学模型数学模型的能力;的能力;3、灵活地运用各种算法的能力;、灵活地运用各种算法的能力;4、熟练编写程序并将其调试通过的能力;、熟练编写程序并将其调试通过的能力;5、根据题目的要求,自己设计测试数据,检查自己的解法是否正确、根据题目的要求,自己设计测试数据,检查自己的解法是否正确、是否完备的能力是否完备的能力 6、 具有具有很很强的自学能力,

2、需要学习有关强的自学能力,需要学习有关组合数学、图论、基本算法、组合数学、图论、基本算法、数据结构、人工智能搜索算法及数学建模等知识数据结构、人工智能搜索算法及数学建模等知识,还要学会高级语言和,还要学会高级语言和编程技巧,要具备编程技巧,要具备很很强的上机操作能力强的上机操作能力考察的能力:考察的能力:选手应具备的条件:选手应具备的条件:前提:综合成绩突出前提:综合成绩突出1、扎实的数学基础。、扎实的数学基础。2、很强很强的自学能力。的自学能力。3、与同学之间的密切友好的合作与交流。、与同学之间的密切友好的合作与交流。4、持之以恒,坚持不懈的学习。、持之以恒,坚持不懈的学习。5、耐得住枯燥与

3、寂寞。、耐得住枯燥与寂寞。6、不能以参加竞赛为理由而耽误了其他课程的学习。、不能以参加竞赛为理由而耽误了其他课程的学习。7、坚决抵制玩游戏、上网聊天。、坚决抵制玩游戏、上网聊天。 要将一张要将一张100元的大钞票,换成等值的元的大钞票,换成等值的10元、元、5元、元、2元、元、1元一张的小钞票,每次换成元一张的小钞票,每次换成40张小张小钞票,每种至少钞票,每种至少1张。张。如,有一种换法:如,有一种换法: 10元:元: 1 张张 5元:元: 5 张张 2元:元: 31 张张 1元:元: 3 张张问:一共有多少种换法。问:一共有多少种换法。问题举例:问题举例:【引例1】:换钱问题已知:已知:

4、s=1+1/2+1/3+1/n求:使求:使s的值大于的值大于10时最小的时最小的n。【引例2】:求最小的n枚举枚举 已知正整数已知正整数a和和b,a10【引例5】:倒水问题开始开始: 20 0step 1: 5 15step 2: 0 15step 3: 15 0step 4: 15 15step 5: 20 10X Y算法:广度优先搜索算法:广度优先搜索数据结构:队列数据结构:队列nnnnnnnnnnbxaxaxabxaxaxabxaxaxa22112222212111212111【引例6】:解n元一次方程组N=100,给定系数给定系数aij和常数和常数bi,求出方程,求出方程组的解得情况。

5、组的解得情况。第一讲第一讲 Pascal语言基础一语言基础一程序的基本结构程序的基本结构 程序的上机调试和运行程序的上机调试和运行 语言基础一语言基础一例例1: 要将一张要将一张100元的大钞票,换成等值的元的大钞票,换成等值的10元、元、5元、元、2元、元、1元一张的小钞票,每次换成元一张的小钞票,每次换成40张小张小钞票,每种至少钞票,每种至少1张。张。如,有一种换法:如,有一种换法:10元:元: 9 张张5元:元: 1 张张2元:元: 2 张张1元:元: 1 张张问:一共有多少种换法。问:一共有多少种换法。程序的上机调试和运行程序的上机调试和运行 program ex1;var x1,x

6、2,x3,x4,n:integer;begin n:=0; for x1:=1 to 10 do for x2:=1 to 20 do for x3:=1 to 50 do for x4:=1 to 100 do if (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。var s : real; n : integer;begin s:=0; n:=0; while s=10 do begin

7、n:=n+1; s:=s+1/n; end; writeln(n);end.例例3、编一个程序,从键盘输入一个真分、编一个程序,从键盘输入一个真分数的分子和分母,输出它的小数形式,精数的分子和分母,输出它的小数形式,精确到小数点后确到小数点后1000位。位。 var n,m,r,q,i:integer;begin read(n,m); r:=n; write(0.); i:=1; while i=1000 do begin q:=10*r div m; r:=10*r mod m; write(q); i:=i+1; end;end.上机调试运行步骤:上机调试运行步骤:1、运行、运行: Fre

8、e Pascal2、filenew :新建文件新建文件3、compilemake :编译,找错误。编译,找错误。4、run run:运行:运行5、debugoutput(Alt+F5):察看结果察看结果program 程序名;程序名;可以省略可以省略var 变量说明;变量说明;begin语句;语句;语句;语句;语句语句;end.Pascal程序的基本结构程序的基本结构var s : real; n : integer;begin s:=0; n:=0; while s=10 do begin n:=n+1; s:=s+1/n; end; writeln(n);end.示例示例:程序的基本结构程

9、序的基本结构 一、变量的定义说明:一、变量的定义说明:二、二、Pascal数据类型(整型、实型)数据类型(整型、实型)三、基本语句三、基本语句(赋值语句、输入语句赋值语句、输入语句read、输出语句、输出语句write)四、算术运算符和算术表达式四、算术运算符和算术表达式五、标准函数(数值型函数)五、标准函数(数值型函数)语言基础一语言基础一一、变量的定义说明:一、变量的定义说明:在程序中用到的所有变量必须事先定义。在程序中用到的所有变量必须事先定义。格式:格式:Var :; :; 如:输入如:输入3个整数,求这个整数,求这3个数的平均值。个数的平均值。Var a,b,c:integer; a

10、ver:real;说明:说明:1)、同一类型的变量可以放在一起,也可分开写,不同类型的不能放在一起。)、同一类型的变量可以放在一起,也可分开写,不同类型的不能放在一起。2)、变量名:可以是一个字母,也可以是多个字母和数字的组合,但字母开头。)、变量名:可以是一个字母,也可以是多个字母和数字的组合,但字母开头。3)、不能重复定义变量。)、不能重复定义变量。二、二、Pascal数据类型数据类型 Var a,b,c:integer;Begin readln(a); readln(b); c:=a+b; writeln(c):End.120 20010000 2000020000 30000试以下试以

11、下3组数据:组数据:输入整数输入整数a和和b,输出,输出a+b的值。的值。整型、实型整型、实型、(字符型和布尔型)、(字符型和布尔型)1、整型整型 类型数值范围 占字节数 Byte 0 . 255 1 Word 0.65535 2 Shortint -128 . 127 1 Integer -32768.32767; 2 Longint -2147483648 . 2147483647 4 Longword 0.4294967295 4 Int64 -9223372036854775808 . 9223372036854775807 8 QWord 0 . 184467440737095516

12、15 82、实数、实数 类型类型 范围范围 有效位数有效位数 占用字节占用字节 Real 2.9e-39.1.7e3811.12 6 Single 1.5E-45 . 3.4E38 7-8 4 Double 5.0E-324 . 1.7E308 15-16 8 Extended 1.9E-4951 . 1.1E4932 19-20 10 Comp -2E64+1 . 2E63-1 19-20 8Var begin read(a,b); c:=a*b; d:=a/b; writeln(c); writeln(d);End.?例例:输入输入:两个整数两个整数a、b(3; b:=23;A:=43;

13、b:=23;1、赋值语句、赋值语句赋值语句是最简单的语句赋值语句是最简单的语句. 1)、赋值语句的格式、赋值语句的格式 变量名变量名:=表达式;表达式; 其中其中“:=”称为赋值号。称为赋值号。 2)、执行过程、执行过程 计算机先计算赋值号计算机先计算赋值号右边表达式的值右边表达式的值,然后将表达式的值,然后将表达式的值赋给变量名代表的变量。赋给变量名代表的变量。如:如:A:=(9*8)-(2-1); A:=A+1 三、基本语句三、基本语句、输入语句、输入语句read和和readln功能:功能:从键盘读入数据项,并把它存到变量中去,使该数据能在从键盘读入数据项,并把它存到变量中去,使该数据能在

14、以后的计算中使用。以后的计算中使用。输入语句的一般形式为:输入语句的一般形式为: read(v1,v2,vn); readln(v1,v2,vn);从键盘逐次读入数据,分别赋给变量从键盘逐次读入数据,分别赋给变量v1,v2,vn,一行输入多个变量值时,要求数据之间用一行输入多个变量值时,要求数据之间用空格分隔空格分隔,readln语句要求输入数据后必须回车,使得后继操作从下语句要求输入数据后必须回车,使得后继操作从下一行的头上开始。一行的头上开始。 read语句与语句与readln语句区别是:语句区别是: 1) read语句是一个接一个地读数据,在执行完本语句是一个接一个地读数据,在执行完本R

15、ead语句语句( 读完本语句中变量所需的数据读完本语句中变量所需的数据)后后,下一个读语句接着下一个读语句接着从该数据输入行中继续读数据,也就是说,不换行。如:从该数据输入行中继续读数据,也就是说,不换行。如:Read(a,b); Read(c,d); Read(e); 如果输入数据行如下如果输入数据行如下: 123 456则则a,b,c,d,e的值分别为的值分别为1,2,3,4,5,如果后面无读语句则数据如果后面无读语句则数据6是多余的,这是允许的。是多余的,这是允许的。 Readln则不同,在读完本则不同,在读完本Readln语句中变量语句中变量所需的数据后所需的数据后, 该数据行中剩余的

16、数据多余无用,该数据行中剩余的数据多余无用,或者说,在读完本或者说,在读完本Readln语句中变量所需数据后,语句中变量所需数据后,一定要读到一个回车,否则多余的数据无用。一定要读到一个回车,否则多余的数据无用。设有下列语句设有下列语句: read(a,b,c); readln(d,e); readln; readln(f,g);其中其中,所有变量均为整型。设输入的数据如下:所有变量均为整型。设输入的数据如下: 12 345678 910 11 12 13 Var a,b,c,d,e,f,g:integer;begin read(a,b,c); readln(d,e); readln; rea

17、dln(f,g); writeln(a, ,b, ,c, ,d, ,e, ,f, ,g);end.2)readln语句与语句与read语句的第二个区别是语句的第二个区别是:read 后一定要有参数表后一定要有参数表,readln可以不带参数表可以不带参数表,即可以没有任何输入项即可以没有任何输入项, 只是等待读入一个换行符只是等待读入一个换行符(回车回车)。经常用于暂停。经常用于暂停程序的运行,直到输入一个回车程序的运行,直到输入一个回车输出语句输出语句write和和writeln功能:功能:把程序计算的结果,按适当的形式输出到屏幕。把程序计算的结果,按适当的形式输出到屏幕。1)、write语

18、句语句格式格式Write(表达式表达式1,表达式,表达式2,);如如:write(x,5,a+b);write(My name is Liping);2)、writeln语句语句格式格式:Write(表达式表达式1,表达式,表达式2,)或或writelnWrite语句与语句与writeln语句格式上都相似,但它们在功能语句格式上都相似,但它们在功能上有所不同,两个语句的区别在于上有所不同,两个语句的区别在于: write语句将其后括号中的表达式一个接一个输出后,语句将其后括号中的表达式一个接一个输出后,没有换行。没有换行。 而而writeln语句则在输出各个表达式的值后换行。语句则在输出各个表

19、达式的值后换行。例如以下两个程序段的输出分别为:例如以下两个程序段的输出分别为:write(1,2,3,4);write(5,6);输出为:输出为:123456writeln(1,2,3,4);write(5,6);输出为:输出为:123456实数的输出格式实数的输出格式实数(实数(real)以浮点型格式输出。例如)以浮点型格式输出。例如805.67对应的浮点对应的浮点数为数为8.056700000000E+02。这种实数表达方式很不方便。这种实数表达方式很不方便。我们可以通过下述形式强迫实数以定点型格式输出:我们可以通过下述形式强迫实数以定点型格式输出: 实数表达式:域宽:小数位数实数表达式

20、:域宽:小数位数例如,例如,t的值设为的值设为63.123。下面三条输出语句分别有它们。下面三条输出语句分别有它们右边所示的输出格式:右边所示的输出格式: write(t); 6.312300000000E+01 write(t:6:2); 63.12 write(t:6:5); 63.12300 write(t:0:0);vara,b,t:integer;begin read(a,b); t:=a; a:=b; b:=t; writeln(a=,a,b=,b)end.例:输入两个整数例:输入两个整数a,b,交换他们的值,并输出,交换他们的值,并输出.如:输入:如:输入:30 34 输出:输出

21、:34 30四、算术运算符和算术表达式四、算术运算符和算术表达式1.算术运算符算术运算符运算符运算运算对象结果类型运算符运算运算对象结果类型+ 加整型、实型只要有一个运算对象是实型,结果就加整型、实型只要有一个运算对象是实型,结果就-减减 整型、实型是实型,如果全部的运算对象都是整整型、实型是实型,如果全部的运算对象都是整*乘乘 整型、实型型并且运算不是除法,则结果为整型整型、实型型并且运算不是除法,则结果为整型/除除 整型、实型若运算是除法,则结果是实型。整型、实型若运算是除法,则结果是实型。 div 整除整型整型整除整型整型mod取余整型整型取余整型整型2、表达式、表达式是通过运算符把常量

22、、变量、函数调用结合起来组成的。是通过运算符把常量、变量、函数调用结合起来组成的。 3+x1+b除法运算1、整除运算:运算符为 “div” 结果为两个整 型数除法的整数商。 例如:10 Div4=22、求余数运算:运算符为 “mod” 结果为两个整型数除法的余数。 例如:10 mod 3=13、普通除法:运算符为 “/” 结果为两个任意数值相除的商(含小数)。 例如:10 /4=2.5整数的运算符有:整数的运算符有:DIVDIV(整除)、(整除)、modmod(取余)。取余)。15 Div 6 = 2 15 Div 6 = 2 (-15) div 6=-2(-15) div 6=-215 Di

23、v (-6)=-215 Div (-6)=-2(-15) div(-6)=2(-15) div(-6)=215 mod 6 = 315 mod 6 = 3(-15) mod 6=-3(-15) mod 6=-315 mod(-6)=315 mod(-6)=3(-15) mod (-6)=-3(-15) mod (-6)=-3Program ex1_5;Program ex1_5;Const a=128;Const a=128;Var b,d:integer; c:real;Var b,d:integer; c:real;BeginBegin b:=a div 16; b:=a div 16;

24、c:=a/b; c:=a/b; d:=a; d:=a; write(a:4,b:4,c:4,d:4); write(a:4,b:4,c:4,d:4);end.end.是通过运算符把常量、变量、函数调用结合起来组成的。是通过运算符把常量、变量、函数调用结合起来组成的。 3+x1+bPASCAL表达式有以下计算优先顺序规则:表达式有以下计算优先顺序规则:1.括号内的表达式首先计算;括号内的表达式首先计算;2.运算符的优先级有四级,按其优先顺序从高到低排列为:运算符的优先级有四级,按其优先顺序从高到低排列为:not; *,/,div,mod,and; +,-,or; =,=,IN;不同优先级的两运算

25、符之间的操作数先与具有较高优先级的运算符进行运算;不同优先级的两运算符之间的操作数先与具有较高优先级的运算符进行运算;3.同级的运算从左到右进行;同级的运算从左到右进行;另外,有一点需要指出的是,因为关系运算符的优先级最低,当用关系另外,有一点需要指出的是,因为关系运算符的优先级最低,当用关系式构造复杂的布尔表达式时,这些关系式作为初等条件必须放在括号里。式构造复杂的布尔表达式时,这些关系式作为初等条件必须放在括号里。如如: (xy) and (z=y) or (x=0)若不加括号,就是一个错误的表达式。若不加括号,就是一个错误的表达式。 表达式表达式上机练习题目:上机练习题目:输入一个输入一

26、个3位的正整数,输出他们的各位数字之和与乘积。位的正整数,输出他们的各位数字之和与乘积。如:如:输入:输入:436输出:输出:1372var n,a,b,c,x,y:integer;begin readln(n); a:=n div 100; b:=(n div 10) mod 10; c:=n mod 10; x:=a+b+c; y:=a*b*c; writeln(x); writeln(y);end.展示实力1 1、写出下列表达式的值。、写出下列表达式的值。 1212* *3+6/4=3+6/4=45 div 4=45 div 4=98 mod 10 =98 mod 10 =2 2、写出下列程序段的运行结果。、写出下列程序段的运行结果。 Var my:rea

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论