重庆警院《计算机基础》课件第9章 程序设计初步

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第9章程序设计初步教学目的了解计算机解决问题的基本思路熟悉VC++6.0上机环境,掌握简单程序的编写掌握常用的算法具有初步的程序设计能力,会读、会编、会调试如何学习C/C++语言重在编程思路、编程构思模仿、改写、编写,重视上机实践通过不断的编程实践,逐步领会和掌握程序设计的基本思想和方法C/C++发展简史C++:Bell实验室的BjarneStroustrupCSimula67带类的C类基础1979年Cpre预处理器C++1.01985年《C++程序设计语言》C++2.01989年C++3.01993年C语言:Bell实验室的D.M.Ritchie1972年,为了编写UNIX设计的。两个重要的标准:老标准:1978年,《TheCProgrammingLanguage》B.W.Kernighan和D.M.Ritchie合著新标准;1983年,ANSI制定,称为ANSIC引例要求:已知一元二次方程的三个系数a、b、c,求两个实根x1、x2。分析:输入a,b,c系数;根据判别式:问题求解的过程-问题分析与算法设计1.输入a、b、c三个系数2.判别b*b-4*a*c是否0?•0时,输出两个实根•=0时,输出两个重根•0时,输出实根那如何通过C/C++语言实现这一过程?程序设计语言的功能N.Wirth提出:程序=数据结构+算法o用数据类型来描述数据结构•C/C++语言提供的数据类型:如整型、实型(浮点型)、字符型、数组、结构、文件、指针等o用语句来描述算法•结构化程序设计方法:任何由顺序、选择和循环三种控制结构组成;单入口、单出口问题求解的过程-编写源程序C程序由函数组成有且只有一个主函数main2C/C++语言程序结构C/C++程序的结构主要包含三部分:①头文件:包含以#include开头的预编译命令。o如:iostream.h为“cin”、“cout”输入输出函数;math.h为数学函数。o包含函数说明、常量定义o作用:将头文件的内容插入到源文件(.CPP)文件中。o注意:一条文件包含命令只能包含一个文件②C/C++语言程序必须包含这个main()主函数。③函数体:为实现程序功能所编写的语句函数体函数体内的语句序列一般都包括如下成份:o变量和数据类型:用于存放数据;o运算符和表达式:对数据进行处理;o输入和输出:输入欲处理的数据,显示处理后的结果;o控制结构:在处理过程中考虑各种情况或处理的方法。3编码和书写规则①C/C++代码严格区分字母的大小写,一般用小写字母。②每句语句由“;”分号结束,一行可以书写多句语句,一句语句可以分在多行书写。注意:头文件包含是编译预处理命令,不是C语言语句,结束不要加“;”分号。③通过注释语句增加可读性单行注释,用“//”作为注释引导符多行注释,从“/*”开始到“*/”结束5VisualC++6.0简介代码窗口项目工作区输出窗口C/C++程序的编写、运行过程1.创建一个空工程(扩展名为.dsw);Win32ConsoleApplication2.创建一个C++源文件,输入源程序;C++SourceFile(.cpp)3.进行编译、连接、运行。组建|编译TEST.cppCTRL+F7组建|组建TEST.exeF7组建|执行TEST.exeCTRL+F5开始结果语法错误源程序.c/.cpp目标程序.obj可执行程序.exe编辑编译连接运行连接错误运行错误程序的调试、运行步骤问题求解的过程-运行与调试俗话说,“三分编程七分调试”o语法错误o逻辑错误:语义错误(逻辑错误)调试:在程序中查找错误并修改错误的过程。o设置断点:Insert/RemoveBreakpointF9o运行到断点:组建|开始调试|去F5Restart终止当前调试,重新运行,停在第一条语句StopDebuggingShift+F5结束当前调试和运行StepOverF10单步运行,不进入函数体内StepOutShift+F11从函数体运行到外面Watch窗口Variables窗口9.2C/C++语言基础1.常量、变量和数据类型2.运算符和表达式3.内部函数4.计算与类型5.输入和输出1常量、变量和数据类型数据在程序中以常量或变量的形式出现。o常量:在程序运行过程中,其值不能被改变,o变量:在程序运行过程中,其值可以被改变常量、变量有不同的数据类型o规定了存储不同种类的数据o可以对它进行的操作。如:inta,b,c;//变量声明变量的三要素变量名:变量的标识符。如同宾馆房间号。o变量名的命名规则:字母或下划线开头,后跟字母、数字、下划线组成;不要使用规定的保留字。o在C/C++中大小写区分,变量名一般用小写字母。数据类型:指明变量存放的数据类型。不同类型,占用空间不同。如房间类型(套、单人、双人、多人)变量值:可以存放相应数据类型的数据。如宾馆房间住的人。例如:intx=0;基本数据类型为什么要规定类型?o占用空间、取值范围、可以进行的运算变量声明指程序运行过程中其值可变的量定义方式:变量名代表内存中的一个存储单元存放该变量的值该存储单元的大小由变量的数据类型决定例如:inti,sum;定义整型变量floatmin,max;定义单精度浮点型变量doublearea,length;定义双精度浮点型变量数据类型变量名表;变量名:小写字母;见名知义变量的初始化C/C++规定:程序中所有变量必须先定义后使用必须先有确定的值才能参与各种相应的操作,有三种途径:通过输入方法输入(如:cina;)通过赋值语句赋值(如:a=3;)通过初始化方式赋初值(如:intk=3;)初始化是指在定义变量的同时指定变量的初值,有两种方式例如:intk=3,m=3,n(3);chara='A',b='b';()intk=m=n=3;//不允许为多个变量同时初始化数据类型变量名=表达式;数据类型变量名(表达式);符号常量在程序运行过程中其值不能改变的量是以标识符形式出现的常量,作用是便于程序阅读和修改。习惯上符号常量名用大写,而变量名用小写,以示区分。#define标识符常量值const数据类型标识符=常量值;符号常量示例#definePI3.14//constdoublePI=3.14;#includeiostream.hvoidmain(){floatr=3.0,s,l;l=2*PI*r;s=PI*r*r;coutl=l,s=sendl;}l=18.8496s=28.27432运算符和表达式运算符具有三个属性:优先级、目数和结合性(用圆括号简化)1.运算符双目算术运算+-*/%注意:/整数除整数,得整数如:1/2=0,9/4=2,1.0/2=0.51/4*4、1*4/4是否等价?floatx=10/3;x=?%针对整型数据:(求余运算)要求两个操作数都是整型,结果为整除后余下的整余数。如:5%6=5,9%4=1,100%4=0前者为0,后者为13单目算术运算++--++a(或--a)运算符在前即前置,操作数的值先加1(或减1),然后被引用。a++(或a--)运算符在后即后置,操作数的值先被引用,再进行加1(或减1)。例如:inta=3,y;y=a++;//后置,先赋值后自增;y的值为3,a的值为4;y=++a;//前置,先自增后赋值;y的值为4,a的值为4注意:自增、自减不能用于常量和表达式。如:()5++、(a+b)++赋值运算赋值运算符=赋值表达式:用=将一个变量和一个表达式连接起来的式子:变量=表达式例如:d=b*b-4*a*c;x1=(-b+sqrt(d))/(2.0*a);o计算赋值运算符右侧表达式的值o将赋值运算符右侧表达式的值赋给左侧的变量=的左边必须是一个变量x+y=z()sqrt(x)=2()复合赋值运算符+=-=*=/=%=如:sum+=i等价于sum=sum+i如:a*=a+2等价于a=a*(a+2)初始情况下a=3,则执行上述运算后a=?左端只能是变量(或数组元素),不能为表达式或常量,如:a+2*=b()a=b+2=c+5()以“+=”为例:变量+=表达式等价变量=变量+表达式15运算符示例输入秒数,以小时、分、秒形式显示。利用取余、整数相除或整除运算符方便地实现。#includeiostream.hvoidmain(){inth,m,s,x;cinx;h=x/3600;//整数相除得整数s=x%60;//取余数m=(x%3600)/60;couth:m:sendl;}关系运算符(小于)、=(小于等于)、(大于)==(等于)、=(大于等于)、!=(不等于)优先级:(从高到低)(、=、、=)(==、!=)关系运算描述的是一种“判断关系”,其结果有“真(true)”和“假(false)”两种。用“1”代表“真”,用“0”代表“假”例如:53的结果为1,aA的结果为0区分=和==用关系运算符将2个表达式连接起来的式子。表示比较的数学式C/C++关系表达式ox≤10ox≥10ox≠10ox=10思考:x为0到100之间的数能否表示为:0=x=100?x=10x=10x!=10x==10x=0&&x=100条件运算符e1?e2:e3o求e1的值,当e1为true时,计算e2的值,将e2的值作为整个表达式的值,不再计算e3的值;否则取e3的值作为整个表达式的结果,而不计算e2的值。如:max=(xy?x:y);//将x和y中较大的一个数赋值给变量max如:x==0?a++:b++若已知a=4,b=3,x=5则a、b=?a=4b=4思考题对n(0)个人进行分班,每班k(0)个人,最后不足k人也编一班,问要编几个班?(试用条件运算符表达)intn,k,x;x=n%k0?n/k+1:n/k逗号运算符e1,e2,e3,……e1、e2、e3均为表达式,从左向右依次计算各个表达式的值,而将最后一个表达式的值作为整个表达式的值,如:j=3,k=j+2,m=k+2;逗号运算符的优先级别最低常用于循环语句的表达式中结果:j=3k=5m=72.表达式表达式由常量、变量、运算符、函数和圆括号按一定规则组成的式子。如:x1=(-b+sqrt(d))/(2.0*a);注意事项:(1)乘号不能省略。例如,x乘以y应写成:x*y。(2)简化记忆运算符的优先级问题,增加圆括号可以改变表达式中运算符的优先级和增加可读性,圆括号必须成对出现。3.内部函数C/C++中提供了多种内部函数供用户编程序时直接调用,只需把包含内部函数的头文件,通过#include预处理命令装入到程序中。如:程序中要使用平方根函数sqrt,应该在程序加入:#includemath.h常用的内部函数如:pow(1.2,2)的值为1.44(即1.12)log10(123.45)的值为2.091491Sin(45*3.1415/180)+(exp(7)+log(10))/(x+y)4.计算与类型参与计算的数据都有类型,计算过程中就自然会出现数据类型转换问题。(1)不同类型隐式转换(自动)char→int→long→float→double例如:若两端类型不同,则系统自动将右端类型转换为左端类型。整数运算得整数。floaty=3/2;//y的结果是1,而不是1.5floaty=3.0/2;//y的结果是1.5(2)强制转换:(类型)表达式intx=3;floaty=(float)x/2;//y的结果是1.55.输入和输出输入/输出分为两大类:o一类是人—机交互,把人们可以识别的形式(字符串、数)按一定格式输入到程序的变量中,输出相反,按用户要求的格式将变量或常量的值显示;o另一类是程序之间以文件形式数据传送。cin和cout需要在程序前面加头文件:#includeiostream.h#includeiostream.hcin变量1变量

1 / 88
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功