信息学奥赛--算法与编程(c++入门)校本教材

举报
资源描述
校本课程算法与编程(C+入 门)目 录C+语 言 入 门(平台安装介绍基本功能)3C+语言简介.4C+语言程序结构.6赋值语句.8运算符和表达式.1 0常量和变量.1 2标准数据类型.1 4数据输入输出.1 6顺序结构实例.1 8概述.2 0if选择结构.2 2switch 语句.24程序的控制结构练习与总结.2 6循环的控制结构.2 8for语句.3 0while 语句.3 2d o-while 语句.3 6c+小 结试题.3 8编程与算法工作室信息学奥赛校本教材(上)第 1 章 初识C+语言C+语言简介:信息学奥林匹克竞赛是一项益智性的竞赛活动,核心是考查选手的智力和使用计算机解题的能力,选手首先应针对竞赛题目的要求构建数学模型,进而构造出计算机可以接受的算法,之后编写出计算机能够执行的程序。程序设计是信息学竞赛的基本功,选手参与竞赛活动的第一步是熟练掌握一门程序设计语言,目前竞赛中允许使用的程序设计语言有C 语言、C+语言、PascaloC+语言概述C+由美国AT&T贝尔实验室的本贾尼斯特劳斯特卢普博士在20世纪80年代初期发明并实现(最初这种语言被称作“C with Classes”带类的C 卜开始,C+是作为C 语言的增强版出现的,从给C 语言增加类开始,不断的增加新特性。今天C+已成为世界主流编程语言之一。C+语言的特点:语言简洁紧凑,使用灵活方便C+语言一共只有3 2 个关键字和9 种控制语句,程序书写自由,主要用小写字母表示。运算符丰富C+语言的运算符包含的范围很广泛,共有34个运算符。数据结构丰富3C+语言的数据类型有:整型、实型、字符型、数组类型等等结构化语言结构化语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。生成的代码质高C+语言在代码效率方面可以和汇编语言相媲美。可移植性强C+语言编写的程序很容易进行移植,在一个环境下运行的程序不加修改或少许修改就可以在完全不同的环境下运行。C+程序结构:在介绍C+语言程序的结构之前,我们先来看一个简单的例子:例 1.1 在屏幕上输出“Hello Worlds#include 使用 cin.cout,须调用 iostream 库,否则编译出错#include/使用 system()调用 cstdlib 库using namespace std;在C 语言中要省略,例如在VC+和 TC+中int main()有的C 语言可用void main。,例如TC+和VC+(coutHello World!endl;/输出Hello World!”system(pause);暂停作用,使用 system(pause)调用 cstdlib 库return 0;结束整个程序编程与算法工作室)运行结果:Hello World!【说明】:1、以“”开头为注释行:/”后的内容用以对语句进行说明,输入程序时可以不输入。2、#include告诉编译器的预处理器将输入输出流的标准头文件(iostream)包括在本程序中。这个头文件包括了 C+中定义的基本标准输入输出程序库的声明。3、using namespace std使 用 std(标准)名字空间的意思。所谓的名字空间是标准C+中的一种机制,用来控制不同类库的冲突问题。使用它可以在不同的空间内使用相同名字的类或者函数。4、int main()这一行为主函数(main function)的起始声明。main。是 所 有 C+程序的运行的起始点。不管它是在代码的开头,结尾还是中间,此函数中的代码总是在程序开始运行时第5一个被执行。所有C+程序都必须有一b main(),int main。前 int在 Dev C+中可省略,在 TC+和 VC+中最好保留。main后面跟了一对圆括号(),表示它是一个函数。C+中所有函数都跟有一对圆括号(),括号中可以有一些输入参数。注 意,圆括号中即使什么都没有也不能省略。如例题中显示,主函数main。中的内容,由一对花括号 括起来。5、cout Hello World!endl这个语句在本程序中最重要。cout是一个输出语句,告诉计算机把引号之间的字符串送到标准的输出设备(屏幕)上。cout的声明在头文件iostream中,所以要想使用cout必须将头文件iostream包括在程序开始处。endl是 C+语言的换行控制符,表示内容输出后换行显示后续的内容。6、system(pause)在 4.99以前版本的Dev-C+环境下,为了查看程序运行结果,需要 在 main函数的return 0 语句前加上:system(pause);这样程序运行到该语句时,结果显示屏幕将会停留,让大家有时间看程序的输出结果,否则结果显示屏幕编程与算法工作室将会一闪而过。在 4.99之后的版本可不必加该语句,运行结束后结果显示屏幕将自动停留。7、return 0主 函 数 main()的返回语句,一般是函数的最后一条可执行语句。main。函数末尾使用return语句时 数 值 0 表示程序顺利结束,其他数表示有异常。在后面的例子中你会看到C+程序都以类似的语句结束。在 C+中,语句的分隔是以分号;”为分隔符的,分行写代码只是为了更方便人阅读。一.启动 Dev-C+1.鼠标点击任务栏中的“开始”按 钮,选“程序”菜单项,然后选“程序”下的子菜单项Bloodshed Dev-C+”项,显示该项下的子菜单。2.方法一:单击 Dev-C+”菜单项,即可启动Dev-C+集成开发工具。(如 图 1所 示)方法二:直接双击桌面上的Dev-C+的图标。如 果 大 家 看 到 界 面 上 的 字 是 英 文 的,则 可 以 点 击 主 菜 单“Tools Environment O ptions(如图3),在弹出的对话框中选择第二个标签页interface(如图4),在 Language下拉列表中选择Chinese即 可,将操作界面改为中文的。二、新建源程序1)从主菜单选择“文件”“新建”“源代码”即 可(如图2 所示卜2).此时屏幕右下侧出现一片白色区域,称为“源程序编辑区域”;可以在此7输入程序。如(图5)所示。注 意:1.必须在英文输入环境下编辑程序(如果你当前能在程序编辑区输入 中 文,说明你是在中文输入环境下。为了输入程序,你必须切换到英文输入环境下b2.在4.99以前的版本的Dev-C+环 境 下,为了查看程序运行结 果,需要在main函数的return语句前加上:system(pause)或getchar(),这样程序运行到该语句时,结果显示屏幕将会停留,让大家有时间看程序的输出结果。否则结果显示屏幕将会一闪而过。在4.99之后的版本可不必加该语句,运行结束后结果显示屏幕将自动停留。三、保存源程序到硬盘一个好的习惯是创建了一个新程序后,在还未输入代码之前先将该程序保存到硬盘某个目录下,然后在程序的编辑过程中经常性地保存程序,以防止机器突然断电或者死机。要保存程序,只需从主菜单选择“文件”一“保存”就可以将文件保存到指定的硬盘目录。如 图6所示。此时会弹出一个对话框。在此你需要指定文件要存放的磁盘目录(例如:D:temp),自定文件名称(例 如:ex1)以及保存类型。在点击右下角的保存按钮后,在D盘上的tem p目录下将会出现一个名为exl.cpp的源文件。四、编译、运行编 译:从主菜单选“运行 一”编译运行”或快捷键“F9”(图7卜如果程编程与算法工作室序中存在词法、语法等错误,则编译过程失败。编译器会在屏幕右下角的“Compile Log”标签页中显示错误信息,如(图8)所 示,并且将源程序相应的错误行标成红色底色。五、调试程序1 .设置程序断点通过预处理、编译和链接的程序仅仅是该程序中没有词法和语法等错误,而无法发现程序深层次的问题(譬如算法不对导致结果不正确卜当程序运行出错 时,需要找出错误原因。仔细读程序来寻找错误固然是一种方法,但是有时光靠读程序已经解决不了问题,此时需要借助于程序调试(Debug)手段。这是一种有效的排错手段,每一位同学都需要掌握。如果想让程序运行到某一行前能暂停下来,就需要将该行设成断点。具体方法是在代码所在行行首单击,该行将被加亮。默认的加亮颜色是红色。如果想取消不让某行代码成为断点,则在代码行首再次点击即可。2 .运行程序设置断点后,此时程序运行进入debug状态。要想运行程序,就不能使用主菜单“Execute-Run,而是需要用主菜单“Debug”一“Debug(或者按快捷键 F8),如 图 12所示。3 .单步执行程序要想运行蓝色底色的代码,可以使用图14所示的“Next Step(F7)、Step Into(Shift F7)Continue(Ctrl F7),Run to Cursor(Shift F4)等(具9体含义见下面的介绍卜在学习函数之前,一般用的是Next Step和Continue。学习函 数 后,还会用到Step IntOo4.设 置watch窗口在调试程序时,可能要看程序运行过程中变量 的 值,以检测程序对变量的处理是否正确,可以在调试时通过调试菜单下的添加 变 量(Add Watch)窗口来增加变量watch,新增的变量将会显示在最左边Explore的Debug页中。如果左边Explore中的当前页不是Debug页,则可以点击Debug标签使之成为当前页。无论做任何事情,都要有一定的方式方法与处理步骤,所谓“无规矩无以成方圆计算机程序设计比日常生活中的事务处理更具有严谨性、规范性和可行性。为了使计算机有效地解决实际问题,必须将处理步骤编排好,用计算机能理解的计算机语言编写成“序列”,让计算机自动识别并执行这个“序列”,达到解决实际问题的目的。将处理问题的步骤编排好,用计算机语言组成序列,就是常说的编写程序。在C+语言 中,执行每条语句都是由计算机完成相应的具体操作,编写程序是利用C+语句的功能来实现预定的处理要求。“千 里 之 行,始于足下”,我们从简单程序学起,逐步了解和掌握怎样编写程序。在学习C+语 言 之 前,让我们绕过那些繁琐的语法规则细节,通过一些简单的例题,来熟悉程序的基本组成和基本语句的用法,选手刚接触编程时,多动手模仿是一条捷径。例1.2在梯形中阴影部分面积是150平 方 厘 米,求梯形面积。【分析】已知梯形上、下底长为15和25。令梯形的高为h,则由已知三角形编程与算法工作室面 积 为150平 方 厘 米,有150=(15*h)/2,得h为20,然后根据梯形面积公式算出梯形面积。程 序 如 下:#include/printf和scanf调 用cstdio库,在C语言中可调用stdio.h库#include/使用 system()调用 cstdlib 库using namespace std;在C语言中要省略,例如在VC+和TC+中int main()有的C语 言 可 用void main。,例如TC+和 VC+/整个程序开始float s,h,up,down;/float定 义s,h,up,down为单精度实型变量up=15;已知上底down=25;已知下底h=2*150/up;根据上底求出梯形的高s=(up+down)*h/2;求出梯形的面积printf(ns=%0.2fnn,s);/n是换行控制符,0.2f按实际位数输出,保 留2位小数systemCpause);暂停作用,TC+和 VC+中使用 system()调用stdlib.h 库return 0;结束程序,在TC+和VC+中也要保留)11运行结果:s=400.00【说明】:所谓namespace,是指标识符的各种可见范围。C+标准程序库中的所有标识符都被定义于一-名为std的 namespace中。当使用 iostream.h 时,相当于在C 中调用库函数,使用的是全局命名空间,也就是早期的C+实 现;当使用 iostream 的时候,该头文件没有定义全局命名空间,必须使用namespace std;这样才能正确使用cout、cin和 endlo例 1
展开阅读全文
温馨提示:
金锄头文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
相关资源
正为您匹配相似的精品文档
相关搜索

当前位置:首页 > 商业/管理/HR > 营销创新


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