信息奥赛入门培训笔记.docx
- 文档编号:18209879
- 上传时间:2023-08-13
- 格式:DOCX
- 页数:35
- 大小:39.01KB
信息奥赛入门培训笔记.docx
《信息奥赛入门培训笔记.docx》由会员分享,可在线阅读,更多相关《信息奥赛入门培训笔记.docx(35页珍藏版)》请在冰点文库上搜索。
信息奥赛入门培训笔记
第一章:
计算机与程序设计简介
一、计算机的三大功能
1.计算功能;
2.记忆功能;
3.判断功能。
二、计算机的发展
世界上第一台计算机,1946年,美国,ENIAC
三、计算机的组成结构
由硬件和软件两部分组成。
硬件结构的五个部分:
1.输入设备:
键盘、鼠标。
2.输出设备:
显示器、打印机。
3.
CPU中央处理器
运算器
4.控制器
5.存储器:
内存、外存
四、计算机的语言
1.
低级语言
机器语言:
(0、1、代码)
2.汇编语言:
(符号指令)
3.高级语言:
(英文指令)(Pascal语言)
五、Pascal程序的基本结构:
例:
小明每月存5元。
问:
四年他共存了多少元?
首部——PROGRAMEX;
说明部分——VARA,B:
INTEGER;
执BEGIN
行A:
=5;
部B:
=A*12*4;
分WRITELN(B);
END.
六、键盘指法:
七、上机操作:
1、开机:
显示器、主机
2、进入:
TP环境(蓝白)
①在Windows界面上,双击MSDOS图标
②打TP
3、输入程序
4、执行程序:
按CTRL+F9
5、看结果(切换到输出屏幕(黑白))按ALT+F5
6、新开一页(窗口)
1按ALT+F
2选NEW命令
7、切换当前工作页面(窗口)
按ALT+页号
8、关闭当前窗口
按ALT+F3
9、退出TP环境
1按ALT+E
2打X(选EXIT命令)
10、回Windows界面
打EXIT
11、关机
1点击 开始→关闭系统→关机→Y
2关显示器
上机程序:
求自己两科的平均成绩
PROGRAMEX2;
VARX,Y,S,P:
INTEGER;
BEGIN
X:
=;Y:
=;
S:
=X+Y;
P:
=SDIV2;
WRITELN(‘P=’,P);
END.
第二章顺序结构设计
编程的“三步曲”:
输入——处理——输出
一、赋值语句
(一)它能给变量一个数据
如:
A:
=5;
其中“:
=”是赋值号
1、变量——是可存放各种不同数据的“小盒子”(存储单元),在程序执行中,可改变它的值。
2、变量命名规则
①必须以字母开头,是字母、数字的组合
如:
Box √DA √A12 √
5A× A+B×
②Pascal系统的“关键字”不能用
如:
BeginEnd
练习:
命名:
长——
宽——
平均——
最大——
最小——
例句:
A:
=3;
B:
=-1;
A:
=5; 重新赋值,则原值被冲掉
B:
=A; 把A给B,A不变,B与A同值
Pascal规定:
变量在用之前,必须说明它的类型。
3、四种简单标准类型:
1整数类型:
INTEGER –32768~32767(MAXINT)
(有序)用于:
人数,物品个数……
②实数类型:
REAL即:
带有小数的娄
(无序)用于:
金额、高度、重量……
实数有两种表示法:
《1》十进制 如:
123.45
《2》科学记数法:
如:
1234567890000→1.2345678900E+12
0.000012345→1.2345000000E-5
③字符类型:
CHAR
(有序)如:
’A’、’B’、’6’、’2’
序号范围:
0~255
用于:
文本信息处理
④布尔类型:
(有序)BOOLEAN只有2个值:
TRUE(真) FALSE(假)
序号:
FALSE——0
TRUE——1
如:
3<5为TRUE
3>5为FALSE
用于:
判断
4、变量说明的格式:
VAR 变量表:
类型;
如:
VAR R:
INTEGER;
P:
REAL;
B:
BOOLEAN;
W:
CHAR;
BEGIN
R:
=22;
P:
=86.5;
B:
=(P>80);W:
=’N’;
B:
=FALSE;
END.
练习:
改正下列语句中的错误
VAR A,B:
INTEGER
S:
REAL;
BEGIN
A:
=10:
B:
=A*12*3;
S:
=1.40;
END.
(二)赋值语句有计算功能
如:
B:
=A*12*4;
表达式——用计算机的运算符、圆括号连接数和变量的算式。
(A+B)÷2 → (A+B)/2
→ (A-3)/(5*B)
[(A+1)×B+1]×B→ ((A+1)*B+1)*B
→ 1/A+1/B
Pascal运算符:
+、-、*、/
整除:
DIV
求余:
MOD
练习:
定义四种变量,写8个赋值语句
(三)赋值语句的格式
变量:
=表达式;
功能:
将表达式的值赋给“:
=”左边的变量。
(四)应用举例
例一:
给A、B、C赋值1万。
①直接赋值
A:
=10000;B:
=10000;
C:
=10000;
②辗转赋值
A:
=10000;B:
=A;C:
=B;
例二:
累加与计数
①累加 ②计数
A:
=0;A:
=0;
A:
=A+5;A:
=A+1;
A:
=A+10;A:
=A+1;
A:
=A+30;A:
=A+1;
……
例三:
求A、B、C三科的平均成绩。
已知:
A——98,B——100,C——97
PROGRAMEX1;
VARA,B,C:
INTEGER;
P:
REAL;
BEGIN
A:
=98;B:
=100;C:
=97;
P:
=(A+B+C)/3;
WRITELN(P:
0:
2);
END.
例四:
把55给A,把16给B,然后交换A与B的值:
用“冒泡法”
PROGRAMEX2;
VARA,B,C:
INTEGER;
BEGIN
A:
=55;B:
=16;
C:
=A;A:
=B;B:
=C;
WRITELN(A,B:
10);
END.
二、读语句:
(一)它有三种类型
1READ(A,B);
2READLN(A,B);
3READLN;
(二)功能:
当执行到READ语句时,计算机会暂停下来,等待我们由键盘上输入数据。
如:
①READLN(A,B);
输入:
3 5 6
结果:
3→A5→B6作废
②READ(A,B);
输入:
356
结果:
3→A5→B
(三)READ与READLN的区别:
1、READLN后面可以无输入项,表示只需要一个“ ”。
2、READLN(……)读完所需的数据之后,会寻找“ ”符,
而READ(……)读完所需的数据之后,不会寻找“ ”符。
如:
READLN(A);
READLN(B,C);
输入:
3 5 6
结果:
3→A 5、6作废 B和C待输入
如:
READ(A);
READLN(B,C);
输入:
3 5 6
结果;3→A 5→B 6→C
(四)应用举例:
例一:
某水果店,水果每斤1.5元。
编程
输入:
斤数输出:
应付款(元)
PROGRAMFRUIT;
VARJ,Y:
REAL;
BEGIN
READLN(J);
Y:
=J*1.5;
WRITELN(Y:
0:
2);
END.
执行:
输入:
输出:
再执行:
输入:
输出:
例二:
为某个同学计算三门学科的平均成绩。
PROGRAMAVERAGE;
VARA,B,C:
INTEGER;
P:
REAL;
BEGIN
READLN(A,B,C);
P:
=(A+B+C)/3;
WRITELN(P:
0:
1);
END.
执行:
输入:
输出:
再执行:
输入:
输出:
三、写语句(又称:
输出语句)
(一)它有三种句型:
1WRITE(A,B,C);
2WRITELN(A,B,C);
3WRITELN;
(二)功能:
它能计算并输出表达式的值
对字符串可以按原样照印
字符串——用一对单引号括起来的一串字符
如:
’ABC12’
例:
A:
=4;输出:
WRITELN(123); 123
WRITELN(A);4
WRITELN(A*12);48
WRITELN(‘HELLO!
’)HELLO!
(三)WRITE与WRITELN的区别
1、WRITELN后面可以无输出项,只是换行或空一行。
2、WRITELN(……)输出完之后,会自动换行。
而WRITE(……)输出完之后,不换行
如:
WRITE(12);输出:
1298
WRITELN(98);A
WRITELN(‘A’);
(四)输出格式用场宽控制
1、单场宽格式:
WRITELN(X:
n);
——X占n格宽,并靠右边对齐显示
如:
WRITELN(‘A’:
5,’B’:
5);
WRITELN(123:
5);
2、双场宽格式(只用于实数)
WRITELN(X:
n1:
n2);
其中:
n1——总场宽
n2——小数位
如:
WRITELN(98.766); 输出:
9.8766000000E+01
WRITELN(98.766:
10:
4);98.7660
WRITELN(98.766:
10:
2);98.77
WRITELN(98.766:
0:
2);98.77
注意:
如n2小于X的实际小数位数,则多出的位数按四舍五入处理。
练习:
编程:
输入两个整数,求它们的和、差、积、商
(五)应用举例:
例1:
输入两个正整数A、B,求A+B,并打印出计算的横式和竖式。
如:
输入:
A,B=123456
输出:
1234+56=1290
1234
+56
----------
1290
程序:
PROGRAMEX1;
VARA,B:
INTEGER;
BEGIN
WRITE('A,B=');
READLN(A,B);
WRITELN(A,'+',B,'=',A+B);
WRITELN(A:
20);
WRITELN(‘+’:
15,B:
5);
WRITELN(‘--------‘:
21);
WRITELN(A+B:
20);
END.
例2:
在屏中央打印图形
*
***
*****
程序:
PROGRAMEX2;
BEGIN
WRITELN(‘*’:
40);
WRITELN(‘***’:
41);
WRITELN(‘*****’:
42);
END.
例3:
输入“秒”数,换算出它是多少分钟,多少小时。
程序:
PROGRAMEX3;
VARM:
INTEGER;
F,S:
REAL;
BEGIN
WRITE(‘M=’);READLN(M);
F:
=M/60;S:
=F/60;
WRITELN(‘F=’,F:
0:
1);
WRITELN(‘S=’,S:
0:
2);
END.
练习:
编程:
1、输入两个正整数,A,B求A-B。
并打印计算的横竖式。
2、输入“小时”数,换算出它是多少天,多少星期。
3、在屏中央打印如下图形:
①
EDCBA
CBA
A
②
第三章 选择结构的程序设计
一、条件语句:
1、两种句型:
1IF 条件 THEN 语句;
2IF 条件 THEN 语句1 ELSE 语句2;
↓ ↓ ↓
如果 则 否则
功能:
如果条件成立,则做语句1,否则做语句2。
2、“条件”的描述
如:
A
条件表达式的值是布尔值:
TRUE(真)、FALSE(假)
布尔运算符
①关系比较符
><=>=<=<>
大于 小于 等于 大于等于 小于等于 不等于
如:
N不超过100 表达式为:
N<=100
②逻辑运算符:
AND(与)、OR(或)、NOT(非)
运算优先级顺序:
1NOT(非)
2AND(与)
3OR(或)
4>、<、=、>=、<=、<>
如:
①A值0~100之间
(A>0)AND(A<100)
②X和Y当中至少有一个正数
(X>0)OR(Y>0)
③A不大于B
NOT(A>B)
3、条件语句例句:
(设A、B为整数型)
①如果A和B都是正数,则打印它们的值。
IF(A>0)AND(B>0)THENWRITELN(A,B:
10);
②如果A,B之和不低于180,就在计数N当中加1。
IFA+B>=180THENN:
=N+1
③如果A小于B,则把A的值给B,否则把B的值给A
IFA =AELSEA: =B; ④如果A是偶数,则输出“YES! ”,否则输出“NO! ”。 IFAMOD2=0THENWRITELN(‘YES! ’)ELSEWRITELN(‘NO! ’); A是奇数: AMOD2=1 奇数函数ODD(X): 判定X是否奇数 如: ODD(A)=TRUE(当A是奇数) ODD(A)=FALSE(当A是偶数) ⑤如果A的两倍多于B的一半,就打印“DUO! ” IF(A*2)>(B/2)THENWRITELN(‘DUO! ’); ⑥如果A和B当中至少有一个是奇数,则打印A+B的值,否则打印A-B的值。 IF(AMOD2=1)OR(BMOD2=1)THENWRITELN(A+B)ELSEWRITELN(A-B); 4、应用: 例一: 输入一个整数,若它是7的倍数,则打印“YES! ”,否则打印“NO! ” PROGRAMEX1; VARA: INTEGER; BEGIN WRITE(‘A=’);READLN(A); IFAMOD7=0THENWRITELN(‘YES! ’)ELSEWRITE(‘NO! ’) END. 例二: 输入三个整数,将其中最小的选出来 PROGRAMEX2; VARA,B,C,X: INTEGER; BEGIN WRITE(‘A,B,C=’); READLN(A,B,C); X: =A; IFX>BTHENX: =B; IFX>CTHENX: =C; WRITELN(X); END. 例三: 买西瓜。 若买100斤以内,则每斤西瓜八角,否则超出100斤的那部分,每斤5角。 输入: 斤数 输出: 应付款(元) PROGRAMEX3; VARJ,Y: REAL; BEGIN WRITE(‘J=’);READLN(J); IFJ>100THENY: =100*0.8+(J-100)*0.5ELSEY: =J*0.8; WRITELN(Y: 0: 2); END. 练习: 1、输入一个整数,若它是奇数,则打“YES! ”,否则打“NO! ”。 2、输入三个整数,将其中最大的选出来。 二、复合语句: 格式: BEGIN 语句1;语句2;……语句N; END; 例1: 输入A、B(整数),若A大于B,则交换A与B。 PROGRAMEX1; VARA,B,C: INTEGER; BEGIN WRITE(‘A,B=’);READLN(A,B); IFA>BTHENBEGIN C: =A;A: =B;B: =C; END; WRITELN(A,B: 10); END. 三、情况语句: 1、格式: CASE表达式 OF 值情况表1: 语句1; … … 值情况表N: 语句N; ELSE 语句; END; 2、功能: 如果“表达式”的值出现在某个“值情况表”中,则做它后面的语句,否则做ELSE后的语句。 3、例一: 输入XX年X月,输出该月有多少天。 PROGRAMEX2; VARN,Y,T: INTEGER; BEGIN WRITE(‘N,Y=’);READLN(N,Y); CASEYOF 1,3,5,7,8,10,12: T: =31; 4,6,9,11: T: =30; 2: IF(NMOD400=0)OR (NMOD100<>0)AND (NMOD4=0) THENT: =29 ELSET: =28 ELSEBEGIN WRITE(‘NO! ’);HALT; END; END; WRITELN(T); END. 练习: 输入一个整数A,根据A值分如下情况处理。 若是1,4则打印“学数学”; 若是2,5则打印“学电脑”; 若是3,7则打印“学英语”; 若是6则打印“休息” 否则打印“NO! ” 第四章 循环结构的程序设计 循环——重复做一些事 Pascal中有三种循环 1计数型循环(FOR) 2当型循环(WHILE) 3直到型循环(REPEAT) 一、FOR循环有两种句型: 1、递增型 FOR I: =初值(小) TO 终值(大) DO 语句; ①如: FOR A: =1TO10DOWRITE(A: 4); 结果: 12345678910 ②如: FORI: =’A’TO‘F’DO WRITE(I: 2); 结果: ABCDEF 2、递减型 FOR I: =初值(大) DOWNTO 终值(小) DO 语句; ①如: FORA: =’Z’DOWNTO‘A’DO IFA>’W’THENWRITE(A: 2); 结果: ZYX ②如: FORA: =10DOWNTO5DO WRITE(A: 4); 结果: 1098765 二、注意: 1、控制变量必须是有序的数型。 2、控制变量取值按其序号以1递增或以1递减。 3、循环体只能是一个语句。 若有多个语句,就用复合语句。 4、若一开始“初值”就超过“终值”,则循环一次也不会做。 三、应用: 例1: 写结果: ①VARI: INTEGER; BEGIN FORI: =1TO10DO WRITE(I*(I-1): 4); WRITELN; END. 02612203042567290 ②VARK: INTEGER; BEGIN FORK: =10DOWNTO5DO WRITE(K+5: 4); WRITELN; END. 151413121110 ③VARC: CHAR; BEGIN FORC: =’A’TO‘Z’DO IF(C>’W’)OR(C<’D’)THEN WRITE(C: 2); WRITELN; END. ABCXYZ 例二: 计算1+2+3+……+100 PROGRAMEX2; VARA,H: INTEGER; BEGIN H: =0; FORA: =1TO100DO H: =H+A; WRITELN(H); END. 练习: 1、求5+6+7+……+65 VARA,H: INTEGER; BEGIN H: =0; FORA: =5TO65DO H: =H+A; WRITELN(H); END. 2、求(1×3)+(2×4)+(3×5)+……+(10×12) VARA,H: INTEGER; BEGIN H: =0; FORA: =1TO10DO H: =H+A*(A+2); WRITELN(H); END. 例三: 找出1—100中的奇数。 VARA: INTEGER; BEGIN FORA: =1TO99DO IFAMOD2=1THENWRITE(A: 4); WRITELN; END. 练习: 1、输入A,B(INTEGER),求A-B之间整数之和。 2、求(1×2)+(2×3)+……+(10×11) 3、找出1—1000之间的7的倍数。 例4: 鸡兔同笼,已知有16个头,40只脚,鸡兔各有多少只? 设: JI—鸡 TU—兔 循环: TU=1—10 JI=16-TU 条件: TU*4+JI*2=40 程序: PROGRAMEX4; VARJI,TU: INTEGER; BEGIN FORTU: =1TO10DOBEGIN JI: =16-TU; IFTU*4+JI*2=40THEN WRITELN(JI,TU: 10); END; END. 练习: 有一份试卷上共26题,对一题得8分,错一题扣5分,有同学全做了,但得0分。 做对、错各多少题? 四、当型循环(while)语句 使用for语句编写程序时需要事先知道循环次数,如果遇到不能确定循环次数的问题就无法使用了。 当型循环语句提供了解决此类问题的方法。 格式: while布尔表达式do语句; 例1求s=2+6+10+……+98的值。 程序: programex1; var s,x: integer; begin x: =2;s: =0; whilex<=98do begin s: =s+x; x: =x+4; end; writeln(‘s=’,s); end. 注意: 为使while循环正常终止,布尔表达式中所含变量的值在循环体中一定要有所更改(如在例1中,布尔表达式中的变量x: =x+4;),这样才能使布尔表达式的值发生变化,否则就会造成循环不能进行或者不能停止(也就是死循环)。 例2求两个自然数M、N的最小公倍数。 Programex2; Var n,m,i,s: longint; begin write(‘m,n=’); readln(m,n); i: =1; s: =m*i; whilesmodn<>0do begin i: =i+1; s: =m*i; end; writeln(s); end. 练习: 计算1+2+4+8……+128+256。 五、直到型循环(repeat)语句 格式: repeat 语句1; 语句2; …… 语句n; until布尔表达式; 当程序执行到repeat语句时,先执行repeat与until之间的语句序列,即语句1到语句n。 然后对布尔表达式进行判断,当布尔表达式值是假(条件不成立)时,重复执行语句1到语句n的语句序列,直到布尔表达式的值是真(条件成立)时,退出
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 信息 入门 培训 笔记