(PAT2012_01)PAT入门基础

上传人:油条 文档编号:26698588 上传时间:2017-12-30 格式:PPT 页数:68 大小:650.50KB
返回 下载 相关 举报
(PAT2012_01)PAT入门基础_第1页
第1页 / 共68页
(PAT2012_01)PAT入门基础_第2页
第2页 / 共68页
(PAT2012_01)PAT入门基础_第3页
第3页 / 共68页
(PAT2012_01)PAT入门基础_第4页
第4页 / 共68页
(PAT2012_01)PAT入门基础_第5页
第5页 / 共68页
点击查看更多>>
资源描述

《(PAT2012_01)PAT入门基础》由会员分享,可在线阅读,更多相关《(PAT2012_01)PAT入门基础(68页珍藏版)》请在金锄头文库上搜索。

1、PAT培训教程,杭州电子科技大学 刘春英,2017/12/30,2,自我介绍;关于本次培训的举办;特别说明关于授课内容;关于课堂纪律:禁食,禁铃;,课前说明:,2017/12/30,3,WHAT: PAT-Programming Ability TestWHERE: Come from ACM/ICPCWHY: 客观、实践、实用、效率、快乐HOW: 7+1、入门培养、重在实践,关于PAT,2017/12/30,4,1、评测方式的区别 (单Case VS 多Case);2、评测结果的区别 (分数 VS 题数+罚时);3、考核内容的区别;4、考核规则的区别 (单人闭卷 VS 组队开卷);,PAT

2、VS ACM,2017/12/30,5,2017/12/30,6,就业统计信息:,共27人合影(含4位老师),其余:7位网易;4位百度;3位微软;1位谷歌;1位阿里;1位微策略;1位腾讯;1位南宁烟草局;4位在网新恒天、同花顺等;,2017/12/30,7,第一讲,PAT入门基础(Introduction to PAT),2017/12/30,8,第一部分,预备知识,2017/12/30,9,让PAT从ACM起步,ACM题目特点:由于ACM竞赛题目的输入数据和输出数据一般有多组(不定),并且格式多种多样,所以,如何处理题目的输入输出是对大家的一项最基本的要求。这也是困扰初学者的一大问题。下面,

3、分类介绍:,2017/12/30,10,先看一个超级简单的题目:,http:/ input:1 510 20Sample output:630,2017/12/30,11,初学者很常见的一种写法:,#includevoid main() int a,b; scanf(“%d %d”,2017/12/30,12,有什么问题呢?,这就是下面需要解决的问题,2017/12/30,13,基本输入输出汇总,2017/12/30,14,输入_第一类:,输入不说明有多少个Input Block,以EOF为结束标志。 参见:HDOJ_1089http:/ int main() int a,b; while(s

4、canf(%d %d, ,2017/12/30,16,本类输入解决方案:,C语法:while(scanf(%d %d,&a, &b) != EOF) . C+语法:while( cin a b ) . ,2017/12/30,17,说明(1):,Scanf函数返回值就是读出的变量个数,如:scanf( “%d %d”, 如果只有一个整数输入,返回值是1,如果有两个整数输入,返回值是2,如果一个都没有,则返回值是-1。EOF是一个预定义的常量,等于-1。,2017/12/30,18,输入_第二类:,输入一开始就会说有N个Input Block,下面接着是N个Input Block。 参见:HDO

5、J_1090 http:/ int main() int n,i,a,b; scanf(%d, ,2017/12/30,20,本类输入解决方案:,C语法:scanf(%d, i+ ) . ,2017/12/30,21,输入_第三类:,输入不说明有多少个Input Block,但以某个特殊输入为结束标志。参见:HDOJ_1091 http:/ int main() int a,b;while(scanf(%d %d, ,上面的程序有什么问题?,2017/12/30,23,本类输入解决方案:,C语法:while(scanf(%d,&n) & n!=0 ) . C+语法:while( cin n &

6、 n != 0 ) . ,2017/12/30,24,输入_第四类:,以上几种情况的组合 http:/ http:/ char buf20; gets(buf); C+语法:如果用string buf;来保存: getline( cin , buf ); 如果用char buf 255 ; 来保存: cin.getline( buf, 255 );,2017/12/30,27,说明(5_1):,scanf(“ %s%s”,str1,str2),在多个字符串之间用一个或多个空格分隔;若使用gets函数,应为gets(str1); gets(str2); 字符串之间用回车符作分隔。通常情况下,接受

7、短字符用scanf函数,接受长字符用gets函数。而getchar函数每次只接受一个字符,经常c=getchar()这样来使用。,2017/12/30,28,说明(5_2):cin.getline的用法:,getline 是一个函数,它可以接受用户的输入的字符,直到已达指定个数,或者用户输入了特定的字符。它的函数声明形式(函数原型)如下:istream不用管它的返回类型,来关心它的三个参数:char line: 就是一个字符数组,用户输入的内容将存入在该数组内。int size : 最多接受几个字符?用户超过size的输入都将不被接受。char endchar :当用户输入endchar指定的

8、字符时,自动结束。默认是回车符。,2017/12/30,29,说明(5_2)续,结合后两个参数,getline可以方便地实现: 用户最多输入指定个数的字符,如果超过,则仅指定个数的前面字符有效,如果没有超过,则用户可以通过回车来结束输入。char name4;cin.getline(name,4,n);由于 endchar 默认已经是 n,所以后面那行也可以写成:cin.getline(name,4);,2017/12/30,30,思考:,以下题目属于哪一类输入?http:/ Block对应一个Output Block,Output Block之间没有空行。 参见:HDOJ_1089http:

9、/ . printf(%dn,ans); C+语法: . cout ans endl; ,2017/12/30,33,输出_第二类:,一个Input Block对应一个Output Block,每个Output Block之后都有空行。参见:HDOJ_1095 http:/ int main() int a,b; while(scanf(%d %d, ,2017/12/30,35,解决办法:,C语法: . printf(%dnn,ans); C+语法: . cout ans endl endl; ,2017/12/30,36,输出_第三类:,一个Input Block对应一个Output Bl

10、ock,Output Block之间有空行。 参见:HDOJ_1096 http:/ int main() int icase,n,i,j,a,sum; scanf(%d, ,2017/12/30,38,解决办法:,C语法:for (k=0;kcount;k+) while () printf( %dn,result); if (k!=count-1) printf(n); C+语法:类似,输出语句换一下即可。,2017/12/30,39,思考:,以下题目属于哪一类输出?http:/ = 1 + 2 + 3 + . + nYou may assume the result will be in

11、 the range of 32-bit signed integer.Sample input:10Sample output:55http:/ main() int n, i, sum=0; scanf(%d,2017/12/30,43,其它方法?,SUM(n) = 1 + 2 + 3 + . + n = n * (n+1) / 2什么风险?如何处理?,2017/12/30,44,PAT评测原理,2017/12/30,45,有什么问题呢?,享受今天的慢车旅程吧,2017/12/30,46,HDOJ_1008: Elevator,2017/12/30,47,这是2004浙江省赛最简单的一题,当时训练水平相对较高的学校基本上10分钟之内解决该题,这是一个没有算法的简单模拟题目。 入门训练的好选择,题目评述:,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号