第一讲 Pascal语言基础知识.ppt_第1页
已阅读1页,还剩80页未读 继续免费阅读

下载本文档

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

文档简介

1、第一讲 Pascal语言基础,信息学奥赛的内容: 程序=计算机语言+数据结构+算法,Free Pascal或delphi C+等,信息学奥林匹克竞赛属于智力与应用计算机解题能力的比赛,题目有相当的难度,解好这类题目,需要具备很强的综合能力 1、观察和分析问题的能力; 2、将实际问题转化为数学模型的能力; 3、灵活地运用各种算法的能力; 4、熟练编写程序并将其调试通过的能力; 5、根据题目的要求,自己设计测试数据,检查自己的解法是否正确、是否完备的能力 能够参加信息学竞赛的选手应该具有很强的自学能力,需要学习有关组合数学、图论、基本算法、数据结构、人工智能搜索算法及数学建模等知识,还要学会高级语

2、言和编程技巧,要具备很强的上机操作能力,考察的能力:,选手应具备的条件: 前提:综合成绩突出 1、扎实的数学基础。 2、很强的自学能力。 3、与同学之间的密切友好的合作与交流。 4、持之以恒,坚持不懈的学习。 5、耐得住枯燥与寂寞。 6、不能以参加竞赛为理由而耽误了其他文化课的学习。,程序的基本结构,程序的上机调试和运行,语言基础一,例1: 要将一张100元的大钞票,换成等值的10元、5元、2元、1元一张的小钞票,每次换成40张小钞票,每种至少1张。 如,有一种换法: 10元: 9 张 5元: 1 张 2元: 2 张 1元: 1 张 问:一共有多少种换法。,程序的上机调试和运行,program

3、 ex1; var x1,x2,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

4、begin 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、运行: Free Pascal 2、filenew :新建文件 3、compilemake :编译,

5、找错误。 4、run run:运行 5、debugoutput:察看结果,program 程序名;可以省略var 变量说明;begin语句;语句;语句;end.,Pascal程序的基本结构,程序的基本结构,从这个简单的程序可以看到: 一个PASCAL程序分为两个部分:程序首部和程序体。 程序首部 程序首部是程序的开头部分,有保留字program后接程序名及程序参数表组成,由分号结束。程序名是用户自己定义的标识符,参数表一般是文件变量名,用于该程序与外界的数据交流。最常用的参数为input和output。在turbo pascal语言中,首部中的参数表可以省略,首部也可省略。 程序体 程序体是程

6、序的主体部分,由说明部分和执行部分两部分组成。 说明部分: 用来描述程序中用到的变量、常量、类型、过程与函数等。本程序中第二行是变量说明,用来定义变量的名称、类型。PASCAL规定,凡程序中用到所有变量、符号常量、数组、标号、过程与函数、记录、文件等数据都必须在说明部分进行定义(或称说明)。也就是说,不允许未说明先使用。 执行部分: 以begin开始,以end结束,其间有若干个语句,语句之间以分号隔开。一条语句执行一定的功能,所有语句完成程序设计的任务。允许一行写多个语句,也允许一个语句写几行,最后一行的end后加一.号表示结束。,2、完整的pascal程序框架:,program 程序名(程序

7、参数表); label 标号说明; const 常量说明; type 类型说明; var 变量说明; function 函数说明; procedure 过程说明; begin 程序语句1; ; 程序语句n; end.,程序首部,程 序 体,说 明 部 分,执 行 部 分,知识预备 基本符号、保留字、标识符 一、变量的定义说明: 二、Pascal数据类型(整型、实型) 三、基本语句(赋值语句、输入语句read、输出语句write) 四、算术运算符和算术表达式 五、标准函数(数值型函数),语言基础一,基本符号、保留字、标识符,1基本符号: 是ASCII字符集,主要有: 26个英文字母(不分大小写,

8、字符串中的字母例外。 十个数字符号。 特殊符号 + - * / = = ( ) := . , ; : .,2保留字: 保留字是指pascal语言中一些有特殊含义的英文单词,它们已被pascal语言自己使用,都有专门的用途。 Pascal 语言中保留字有36个,可分为以下六种类型: 程序、函数、过程的符号: program,function,procedure 说明部分的专用定义符号: array,const,file,label,packed,var,record,set,type,of 语句专用符号: case,do,downto,else,for,goto,if,repeat,then,t

9、o,until,while,with,forward 运算符号: and,div,in,mod,not,or 分隔符号: begin,end 空指针常量: Nil 7. PROTECTED, PUBLIC, PUBLISHED, TRY, FINALLY, EXCEPT, RAISE (fp新增保留字),3. 标识符: 标识符是以字母开头的字母数字序列(大小写等效,可跟下划线_),用来标识常量、变量、程序、函数等。Pascal中允许的标识符的有效长度为63。 标识符分为两大类: 标准标识符: 标准常量:false,true,maxint(32767) 标准类型:integer,real,cha

10、r,boolean,text 标准文件:input,output 标准函数:abs,arctan,chr,cos,eof,eoln,exp,ln,odd, ord,pred,round,sin,sqr,sqrt,succ,trunc 标准过程:get,new,pack,page,put,read,readln,reset,rewrite,unpack,write,writeln 自定义标识符 由用户自己在程序首部或说明部分进行定义,但要注意以下几点:不能与保留字同名;避免与标准标识符同名;最好有一定的含义,增加程序的可读性。 例如:在程序中如用到数学中的,则在定义该常量时可用PI表示。,一、变

11、量的定义说明: 在程序中用到的所有变量必须事先定义。 格式: Var :; :;,如:输入3个整数,求这3个数的平均值。 Var a,b,c:integer; aver:real;,说明: 1)、同一类型的变量可以放在一起,也可分开写,不同类型的不能放在一起。 2)、变量名:可以是一个字母,也可以是多个字母和数字的组合,但字母开头。 3)、不能重复定义变量。,二、Pascal数据类型,整型、实型、(字符型和布尔型),1、整型,类型数值范围 占字节数 Byte 0 . 255 1 Word 0.65535 2 Shortint -128 . 127 1 Integer -32768.32767;

12、 2 Longint -2147483648 . 2147483647 4 Longword 0.4294967295 4 Int64 -9223372036854775808 . 9223372036854775807 8 QWord 0 . 18446744073709551615 8,2、实数 类型 范围 有效位数 占用字节 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 Com

13、p -2E64+1 . 2E63-1 19-20 8,Var begin read(a,b); c:=a*b; d:=a/b; writeln(c); writeln(d); End.,?,例: 输入:两个整数a、b(=3000),输出它们的乘积c,商d。,实数的定点型格式输出: 实数表达式:域宽:小数位数 T=63.123 write(t); 6.312300000000E+01 write(t:6:2); 63.12 write(t:6:5); 63.12300 如果要求小数点后精确2位小数. Writeln(x:0:2);,a,b:integer; c:longint; d:real;,

14、1、赋值语句赋值语句是最简单的语句. 1)、赋值语句的格式 变量名:=表达式; 其中“:=”称为赋值号。 2)、执行过程 计算机先计算赋值号右边表达式的值,然后将表达式的值赋给变量名代表的变量。 如:A:=(9*8)-(2-1); A:=A+1,三、基本语句,、输入语句read和readln 功能: 从键盘读入数据项,并把它存到变量中去,使该数据能在以后的计算中使用。 输入语句的一般形式为: read(v1,v2,vn); readln(v1,v2,vn); 从键盘逐次读入数据,分别赋给变量v1,v2,vn,一行输入多个变量值时,要求数据之间用空格分隔,readln语句要求输入数据后必须回车,

15、使得后继操作从下一行的头上开始。,read语句与readln语句区别是: 1) read语句是一个接一个地读数据,在执行完本Read语句( 读完本语句中变量所需的数据)后,下一个读语句接着从该数据输入行中继续读数据,也就是说,不换行。如: Read(a,b); Read(c,d); Read(e); 如果输入数据行如下: 123 456 则a,b,c,d,e的值分别为1,2,3,4,5,如果后面无读语句则数据6是多余的,这是允许的。,Readln则不同,在读完本Readln语句中变量所需的数据后, 该数据行中剩余的数据多余无用,或者说,在读完本Readln语句中变量所需数据后,一定要读到一个回

16、车,否则多余的数据无用。 设有下列语句: 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; readln(f,g); writeln(a, ,b, ,c, ,d, ,e, ,f, ,g); end.,2)readln语句与read语句的第二个区别是: read 后一定要有参数表, readln可以不带参数表,即可以没有任何输入项,

17、 只是等待读入一个换行符(回车)。经常用于暂停程序的运行,直到输入一个回车,输出语句write和writeln 功能: 把程序计算的结果,按适当的形式输出到屏幕。 1)、write语句 格式Write(表达式1,表达式2,); 如: write(x,5,a+b); write(My name is Liping); 2)、writeln语句 格式: Write(表达式1,表达式2,) 或writeln,Write语句与writeln语句格式上都相似,但它们在功能上有所不同,两个语句的区别在于: write语句将其后括号中的表达式一个接一个输出后,没有换行。 而writeln语句则在输出各个表达

18、式的值后换行。 例如以下两个程序段的输出分别为: write(1,2,3,4); write(5,6); 输出为:123456 writeln(1,2,3,4); write(5,6); 输出为:1234 56,实数的输出格式 实数(real)以浮点型格式输出。例如805.67对应的浮点数为8.056700000000E+02。这种实数表达方式很不方便。我们可以通过下述形式强迫实数以定点型格式输出: 实数表达式:域宽:小数位数 例如,t的值设为63.123。下面三条输出语句分别有它们右边所示的输出格式: write(t); 6.312300000000E+01 write(t:6:2); 63

19、.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 输出:34 30,四、算术运算符和算术表达式,1.算术运算符运算符运算运算对象结果类型+ 加 整型、实型只要有一个运算对象是实型,结果就-减 整型、实型是实型,如果全部的运算对象都是整*乘 整型、实型型并且运算不是除法,则结果为整型/除 整型、实型若运算是除法,则结果是实型。 div 整除整型整

20、型mod取余整型整型,2、表达式 是通过运算符把常量、变量、函数调用结合起来组成的。 3+x1+b,上机练习题目: 输入一个3位的正整数,输出他们的各位数字之和与乘积。 如: 输入: 436 输出: 13 72,五、标准函数,+ a-b ,算术函数函数标识符 自变量类型 意 义结果类型abs整型、实型绝对值同自变量sqrt 整型、实型平方根实型 int 整型、实型整数部分实型 exp整型、实型指数实型 ln 整型、实型自然对数实型 sqr 整型、实型平方同自变量 cos 整型、实型余弦实型 sin 整型、实型正弦实型 arctan 整型、实型反正切实型 frac 整型、实型小数部分实型,abs

21、(-4)=4 abs(-7.49)=7.49 int(-3.71)=-3.0 sqrt(4)=2 Sqr(2)=4,正确的书写表达式: 1)、,2)、xy 3)、,2,上机练习 1、输入三角形的三条边a,b,c,输出三角形的面积。(a,b,c是正整数100,满足三角形条件),上机练习2,vara,b,t:integer;begin read(a,b); t:=a; a:=b; b:=t; writeln(a=,a,b=,b)end.,例:输入两个整数a,b,交换他们的值,并输出. 如:输入:30 34 输出:34 30,上机练习3,输入一个3位的正整数,输出他们的各位数字之和与乘积。 如: 输

22、入: 436 输出: 13 72,程序的三种基本结构,一、顺序结构,二、选择结构 (if 、case),三、循环结构(for、while、repeat),例:输入三角形的三条边a,b,c,输出三角形的面积。(a,b,c是正整数100,满足三角形条件),一、顺序结构,var a,b,c:integer; p,s:real; begin readln(a,b,c); p:=(a+b+c)/2; s:=sqrt(p*(p-a)*(p-b)*(p-c); writeln(s:0:2); end.,程序从第一句开始,依次顺序执行语句直到结束,中间无分支和循环,这种程序结构称为顺序结构,Readln(a,

23、b,c) 读入边长,求p,求s,输出面积s,流程图,改进: 输入三角形的三条边a,b,c, 如果能构成三角形则输出三角形的面积; 如果不能构成三角形则输出”No answer”.,readln(a,b,c) 读入边长,a,b,c能否 构成三角形?,求p,s, 输出面积,输出: No answer,YES,NO,var a,b,c:integer; p,s:real; begin readln(a,b,c); if (a+bc)and(a+cb)and(b+ca) then begin p:=(a+b+c)/2; s:=sqrt(p*(p-a)*(p-b)*(p-c); writeln(s:0:

24、2); end else writeln(No answer); end.,无“;”,二、 选择结构 1if 语句: 功能:执行过程 说明:1)该语句为一个语句; 2)条件是一个布尔表达式或一个布尔变量,then 和else后的语句可以是单个语句,当需要多条语句时,用begin和end括起来构成复合语句。 3)当布尔表达式的值为真,则执行then后面的语句,值为假时有两种情况:要么什么也不做,要么执行else后面的语句。 注意:else前面没有分号.,格式一: if then ;,格式二: if then else ;,逻辑、算术、关系运算符的运算次序: 函数、not 括号 *、/、div、m

25、od、and +、-、or 、=、,补充,例1:输入一个整数,判断他的奇偶性。 (是偶数输出“”,奇数输出“”)。,方法一: Var a:integer; Begin readln(a); If a mod 2 =0 then writeln(yes) ; if a mod 2 0 then writeln(no); End.,方法二: Var a:integer; Begin readln(a); If a mod 2 =0 then writeln(yes) else writeln(no); End.,无“;”,例2:已知方程: ax2+bx+c=0 输入系数a,b,c,a0,输出方程的

26、解(考虑各种情况)。 保留两位小数。 (1):如果无实数解输出:no answer; (2):相同的实数解:输出一个即可。 (3):两个不同的实数解:分别输出。 如:,输入: 1 3 2 输出: X1=-1.00 X2=-2.00,输入: 2 1 输出: X=-1.00,var a,b,c:integer; d,x1,x2:real; begin readln(a,b,c); d:=b*b-4*a*c; if d0 then begin x1:=(-b+sqrt(d)/(2*a); x2:=(-b-sqrt(d)/(2*a); writeln(x1=,x1:0:2); writeln(x2=,

27、x2:0:2); end; end.,程序代码: program ex2(input,output): var a,b,c:integer; begin write(a,b,c(0):); readln(a,b,c); if (a+bc) and (a+cb) and (b+ca) then if (a*a+b*b=c*c) or (a*a+c*c=b*b) or (b*b+c*c=a*a) then writeln(a=,a,b=:5,b,c= :5,c, is rt triangle.) else writeln(a=,a,b=:5,b,c= :5,c, is not rt triangl

28、e.) else writeln(a=,a,b= :5,b,c= :5,c, is not triangle.) end.,【例3】:输入三角形的三边,判断它是否是直角三角形。,3case 语句:分情况语句(多分支语句) 格式:case 表达式 of 常数表1:语句1; 常数表2:语句2; 常数表n:语句n; else 语句n+1 end; 功能:执行过程 说明:1)end 与case 对应 2)表达式的类型通常是整型、字符型 3)常量表是常量,其类型与表达式的类型要一致。常量表中的常量不能重复。,【例4】:输入两个数(均不为零)及一个算术运算符,输出其运算的结果 程序代码: program

29、ex3(input,output); var x,y,s:real; ch:char; begin writeln(input x writeln(x,ch,y,=,s) end.,三、 循环结构,循环结构的三种形式: 循环结构程序通常由三种的循环语句来实现。它们分别为 FOR循环、当循环while、直到repeat循环。 通常将一组重复执行的语句称为循环体,而控制重复执行或终止执行由重复终止条件决定。 因此,重复语句是由循环体及重复终止条件两部分组成。,1for语句,1for语句:(“计数循环”):就是将规定循环体重复执行的次数。 格式:for 控制变量:=初值 to 终值 do 循环体语句

30、; for 控制变量:=初值 downto 终值 do 循环体语句; 2、for语句执行过程 先将初值赋给左边的变量(称为循环控制变量); 判断循环控制变量的值是否已“超过”终值,如已超过,则跳到步骤; 如果末超过终值,则执行do后面的那个语句(称为循环体); 循环变量递增(对to)或递减(对downt o); 返回步骤; 循环结束,执行for循环下面的一个语句。 3、说明: 1) 初值和终值可以是表达式,控制变量和初值、终值的类型相同,且必须是整型、布尔型和字符型等顺序类型,不能为实型。 2)递增按succ函数规律变化,递减按pred函数规律变化,整型按数值大小变化,如果为字符型量,按ASC

31、II码表的顺序计算。 3)初值和终值在循环之前计算,重复过程中,其值不受影响;不得在循环语句中对控制变量进行赋值。 4)当初值超过终值,不执行循环,循环次数为零。,【例1】:计算1+2+3+4+100之和。 算法分析: 对于求和,我们使用的是累加的办法。 程序代码: program ex1(input,output); var i,sum:integer; begin sum:=0; for i:=1 to 100 do sum:=sum+I; writeln(sum=,sum) end. 补充说明:类似sum迭加变量这样的功能称为“累加器”;类似i这样的变量称为“计数器”;“计数器”和“累加

32、器”是在程序中经常使用的基本操作语句。,【例3】:键入一个自然数,输出其所有约数,计算出这些约数之和并输出。 算法分析:解决这一问题的关键是找出约数,也就是判定一数能否被另一数整除。可以用x mod y=0,来找出所有约数。 程序代码: program ex3(input,output); var i,x,y,sum:integer; begin write(x=);read(x); sum:=0;i:=0; for y:=1 to x do if x mod y=0 then begin write(y:8); i:=i+1; if i mod 5=0 then writeln; sum:=

33、sum+y end; writeln(sum=,sum) end.,If 语 句,For语句,If语句作为For语句的循环体,【例4】:编程找出四位整数abcd中满足下述关系的数。 (ab+cd)(ab+cd)=abcd 算法分析:这道题属于搜索问题,因为是四位整数,其范围从10009999,所求的数究竟在哪里,无法确定,只有在这个范围内从小到大一个一个进行搜索,对每一个数,看它的高两位数与低两位数和的平方是否为该数。 高两位数:abcd div 100=ab 低两位数:abcd mod 100=cd 程序代码: program ex4(input,output); var i,m,n,k:i

34、nteger; begin for i:=1000 to 9999 do begin m:=i div 100; n:=i mod 100; k:=(m+n)*(m+N); If k=i then write(I:8) end end. 补充说明: 以上用的方法也叫“枚举法”,又称“穷举法”。它是用计算机解题的一种常用的办法。它的基本思路是:一一枚举各种可能的情况,并判断哪一种可能是符合要求的解。方法虽然很笨,然而与计算机高速的处理能力相结合,也不失为一种较有用的方法,2while语句: 对于for循环有时也称为计数循环。适合用于事先知道循环次数. 当循环次数未知,只能根据某一条件来决定是否进

35、行循环时,用while 语句实现循环要更方便。 (“当型循环”):当条件满足时反复执行循环体。 格式:while 布尔表达式 do 语句; 执行过程: while语句的执行过程为: 判断布尔表达式的值,如果其值为真,执行步骤2,否则执行步骤4; 执行循环体语句(do后面的语句); 返回步骤1; 结束循环,执行while的下一个语句。 说明: 1)为了是while循环能正常终止,布尔表达式中的变量必须在循环体中的某语句中有所改变,即有可能是布尔表达式的值为假,使循环结束,否则将出现死循环。 2)循环体中的语句一般是多条语句,用begin和end使其成为一条复合语句。,【例5】:输出1100之间的

36、奇数。 程序代码: program ex5(input,output); var x:integer; begin x:=1; while x100 do begin write(x:5); x:=x+2 end end.,【例6】:输入若干个字符,它的终止符是#,计算输入的字符中a(A)出现的次数。 算法分析: 设计数器i,置初值为0; 出入字符; 当字符不为#时循环:如果字符为a或A,则计数器加1;读入下一个字符; 输出计数器的值,程序结束。 程序代码: program ex6(input,output); var ch:char; i:integer; begin i:=0; read(

37、ch); while ch# do begin if (ch=a) or (ch=A) then i:=i+1; read(ch) end; writeln(i=,i) end.,repeat语句:(“直到型循环”):反复执行循环体直到条件满足为止。 格式:repeat 语句1; 语句2; 语句3; 语句n until 布尔表达式; 功能:执行过程:先执行指定的语句序列,然后判别表达式。,3 repeat语句:(“直到型循环”),说明:while语句和repeat语句都可以实现循环结构,但它们有四点不同:,【例7】:将例题6的程序用repeat语句改写。 program ex7(input,o

38、utput); var ch:char; i:integer; begin i:=0; repeat read(ch); if (ch=a) or (ch=A) then i:=i+1; until ch=#; writeln(i=,i) end.,【例8】:从n个数中挑出最大的数。 算法分析: 读入n值; 读入第1个数,赋值给变量max; 依次读入后n-1个数,与max比较,若数值大于max,则将此数值赋给max; 输出最大数。 程序代码: program ex8(input,output); var n,m,max,x:integer; begin writeln(input n:); r

39、ead(n); writeln(input n nums:); read(max); m:=0; repeat read(x); if xmax then max:=x; m:=m+1 until m=n-1; writeln(the max num is:,max) end.,三、多重循环 【例9】:求100999中的水仙花数。(若三位数abc,abc=a3+b3+c3,则称为水仙花数。如:153,13+53+33=1+125+27=153) 算法设计:采用三重循环求解,用for循环。 程序代码: program ex9(input,output); var a,b,c:integer; b

40、egin for a:=1 to 9 do for b:=0 to 9 do for c:=0 to 9 do if a*a*a+b*b*b+c*c*c=a*100+b*10+c then write(a*100+b*10+c:6); writeln end.,【例10】:试编写能打印如下输出图形的程序。 程序代码: program ex10(input,output); var i,j,k:integer; begin for i:=6 downto 1 do begin for j:=1 to 6-i do write( ); for k:=2*i-1 downto 1 do write(

41、#); writeln end end.,本讲要点,Pascal的程序结构 基本符号、保留字、标识符 数据类型、常量、变量及说明方法 函数与表达式 三种基本的程序结构 顺序结构 分支结构 循环结构,请讲例题上机练习,二、循环结构的综合练习,1、陶陶摘苹果(NOIP2009p) (apple.pas/c/cpp) 【问题描述】 陶陶家的院子里有一棵苹果树,每到秋天树上就会结出10个苹果。苹果成熟的时候,陶陶就会跑去摘苹果。陶陶有个30厘米高的板凳,当她不能直接用手摘到苹果的时候,就会踩到板凳上再试试。 现在已知10个苹果到地面的高度,以及陶陶把手伸直的时候能够达到的最大高度,请帮陶陶算一下她能够

42、摘到的苹果的数目。假设她碰到苹果,苹果就会掉下来。,【输入】 第1行只包括一个100到120之间(包含100和120)的整数(以厘米为单位),表示陶陶把手伸直的时候能够达到的最大高度。 第2行包含10个100到200之间(包括100和200)的整数(以厘米为单位)分别表示10个苹果到地面的高度,两个相邻的整数之间用一个空格隔开。 【输出】 输出包括一行,这一行只包含一个整数,表示陶陶能够摘到的苹果的数目。 【样例输入】 110 100 200 150 140 129 134 167 198 200 111 【样例输出】 5,var h,x,sum,i:integer; begin sum:=0; readln(h); h:=h+30; for i:=1 to 10 do begin read(x); if x=h then inc(sum); end; writeln(sum); end.,2、灯的开关状态 有N个灯放成一排,从1到N依次顺序编号,开始时全部打开。有N个人也从1到N依次编号。1号人将灯全部关闭,2号人将凡是编号为2的倍数的灯打开;3号人将凡是编号为3的倍数的灯作相反处理(该灯如为打开的, 则将它关闭;如关闭的,则将它打开)。以后的人都和3号人一样,将凡是自己编号倍数的灯作相反处理。 编程实现:第N个人操作后,按顺序输出灯的状态。(1-表

温馨提示

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

评论

0/150

提交评论