《c语言程序设计基础》第一章

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

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

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

资源描述

程序设计基础ProgrammingFundamentals授课教师:联系电话:Email:教学目标掌握程序设计的基本知识数值问题分析初步的程序设计能力学习方法自主学习公共邮箱:hautcyy@yahoo.cn密码:123456重视上机实践上机工具VisaulC++6.0(Windows平台)TurboC++3.0(命令行状态)《程序设计基础》为什么选择C语言?思维需要借助某种可视的工具进行表达C是一种传统的程序设计工具,1970s-Now!C-C++-VC++-JAVA、C#等C对于信息类专业后续课程学习十分重要面向对象程序设计数据结构操作系统通信协议单片机、ARM编程……教材和参考书教材何钦铭,颜晖.C语言程序设计.高等教育出版社,2008参考1.谭浩强.C程序设计(第三版).清华大学出版社,20052.钱能.C++程序设计教程.清华大学出版社,19993.百度贴吧:C语言吧4.网络资源C语言程序示例之《黑客帝国》数字雨Ch1引言§1.1一个C语言程序§1.2程序与程序设计语言§1.3C语言的发展历史与特点§1.4实现问题求解的过程本章要点什么是程序?程序设计语言包含哪些功能?程序设计语言在语法上包含哪些内容?结构化程序设计有哪些基本的控制结构?C语言有哪些特点?C语言程序的基本框架如何?形成一个可运行的C语言程序需要经过哪些步骤?如何用流程图描述简单的算法?1.1一个C语言程序例1-1求阶乘问题。输入一个正整数n,输出n!。问题分析:阶乘即给定一个数n,计算从1~n的连乘的乘积需要考虑:1.如何通知计算机要计算阶乘的这个数是多少?2.计算的结果怎么反馈出来?3.计算机是如何进行计算的?输入!scanf()输出!printf()编程!自定义函数1.1一个C语言程序#includestdio.h/*编译预处理命令*/intmain(void)/*主函数*/{intn;/*变量定义*/intfactorial(intn);/*函数声明*/scanf(%d,&n);/*输入一个整数*/printf(“%d\n”,factorial(n));/*调用函数计算阶乘*/return0;}intfactorial(intn)/*定义计算n!的函数*/{inti,fact=1;for(i=1;i=n;i++)/*循环*/fact=fact*i;returnfact;}结论:1.C程序由函数组成;2.有且只有一个主函数main3.变量需先定义后使用,占用一定内存空间1预处理命令行2主函数3自定义函数几个需了解的概念:变量、函数、控制结构,scanf(),printf()使用的基本方法1.2程序与程序设计语言程序NiklausWirth:Algorithm+DataStructures=Programs算法+数据结构=程序算法:处理问题的策略数据结构:问题的数学模型表现形式:采用某种程序设计语言所编写的一组代码程序设计语言提供一组编写程序的规范(语法)提供了一种表达数据与处理数据的功能1.2程序与程序设计语言程序与指令指令:计算机处理数据的基本单元完成一个数据处理的基本功能,如实现一次加法运算或实现一次大小的判别指令系统:计算机所能实现的指令的集合程序:计算机指令的有序组合计算机表示数据的基本单元:8位二进制位组成的字节约定——某计算机指令系统定义有如下7条指令:指令1:InputX将当前输入数据存储到内存的X单元指令2:OutputX将内存X单元的数据输出指令3:AddXYZ将内存X单元的数据与Y单元的数据相加并将结果存储到Z单元指令4:SubXYZ将内存X单元的数据与Y单元的数据相减并将结果存储到Z单元指令5:BranchEqXYP比较X与Y,若相等则程序跳转到P处执行,否则继续执行下一条指令指令6:JumpP程序跳转到P处执行指令7:SetXY将内存Y单元的值设为X1.2程序与程序设计语言程序与指令利用上述指令系统,输入3个数A,B和C,求A+B+C的结果InputA;InputB;InputC;AddABD;AddCDD;OutputD;1.2程序与程序设计语言程序与指令输入第1个数据到存储单元A中输入第2个数据到存储单元B中输入第3个数据到存储单元C中将A、B相加并将结果存在D中将C、D相加并将结果存在D中输出D的内容输入2个数A和B,求A*B的结果思考:指令系统中无乘法运算,怎么办?1.InputA;2.InputB;3.Set0X;4.Set0Z;5.BranchEqXB9;6.AddZAZ;7.Add1XX;8.Jump5;9.OutputZ;1.2程序与程序设计语言程序与指令输入2个数分别保存到存储单元A和B中将X设为0,X-统计A累加的次数将Z设为0,Z-存放A*B的结果X==B?相等则表明A已累加B次,程序跳到9,输出结果Z=Z+AX=X+1程序跳回5,循环执行第6、7条指令输出Z的值,该值等于A*B数据表达如何将数据表示成计算机可以理解的形式数据包括数值数据和非数值数据流程控制如何控制数据的处理1.2程序与程序设计语言程序设计语言的功能数据表达根据数据的特点将数据归类为若干类型数据类型具有共同特点的数据集合的总称包含两个方面的含义:定义域:表示数据的范围运算:针对该类型的数据可以执行哪些操作例如:整数类型包含的数据:{…,-2,-1,0,1,2,…}作用在整数上的运算:+、-、*、/等1.2程序与程序设计语言程序设计语言的功能——数据表达C语言提供的数据类型基本数据类型程序设计语言事先定义的,直接使用的,如整型(int)、实型(float)、字符型(char)等构造类型自定义的:数组、结构、文件、指针等常量与变量常量(Constant):数值常量(3.14)、符号常量(PI)变量(Variable):inti;floatA;charch;1.2程序与程序设计语言程序设计语言的功能——数据表达流程控制数据处理的过程控制,是对逻辑思维(思路)的一种表达结构化程序设计方法将复杂程序划分为若干个相互独立的模块模块:一条语句(Statement)、一段程序或一个函数(子程序)等单入口、单出口1.2程序与程序设计语言程序设计语言的功能——流程控制复杂问题模块n模块1程序块程序块程序块程序块基本控制结构顺序结构分支结构循环结构1.2程序与程序设计语言程序设计语言的功能——流程控制程序设计语言(ProgrammingLanguage)人与计算机之间进行交流的一种工具,讲什么?怎么讲?必须有一套严格的语法规则,规定可以使用哪些词,词怎么组成一条语句,多条语句怎么组成一段程序。通常包含:数据:如何描述交流的内容?(数据类型)运算:对这些数据可以进行哪些处理?(数据操作)控制:这些处理是怎么完成的?(控制结构)传输:人与计算机之间如何进行数据的传递?(输入输出)发展历程:机器语言-汇编语言-高级语言1.2程序与程序设计语言程序设计语言的语法C语言基本词元标识符由字母、数字以及下划线组成,且第一个字符必须是字母或下划线保留字(关键字)C语言规定的有特定含义和专门用途的标识符自定义标识符用户根据需要在程序中定义的变量名、数据类型名、函数名以及符号常量名。有意义的英文单词常量12312.34‘A’“abcde”运算符执行数据操作的符号,由系统预先定义。如,+(加)、-(减)、*(乘)、/(除)、%(求余)、(大于)1.2程序与程序设计语言程序设计语言的语法——C语言C语言的主要语法单位表达式:2+a*4a=b+3i++变量定义inticharch1,ch2floatf语句:表达式语句:a=b+3;i++;控制语句:if()…elsefor(;;)复合语句:{x=x+1;x++}函数:系统函数:printf(),scanf(),abs(),sqrt()…自定义函数:factorial()1.2程序与程序设计语言程序设计语言的语法——C语言编译(Compile)将源程序(SourceCodes)转换为计算机指令的过程编译器(Compiler)对源程序进行编译的软件,按高级语言所规定的语法对源程序进行词法分析、语法和语义分析,生成二进制表示的目标程序,可检查出源程序的语法错误编程环境提供程序的编程(Edit)、编译、调试(Debug)、执行(Run)等学习方法熟悉编程环境,按照语法完成数据的表达和处理,实现程序的控制1.2程序与程序设计语言程序的编译与编程环境C语言上机过程1.2程序与程序设计语言程序的编译与编程环境源程序(test.cpp)test.objtest.exe查看结果编译Compile连接Link执行Run有错返回1.3C语言的发展历史与特点历史1972年:贝尔实验室的DennisRitchie在B语言的基础上设计并实现了C语言1978年:B.W.Kernighan和D.Ritchie(简称K&R)合著的《TheCProgrammingLanguage》是各种C语言版本的基础,称之为旧标准C语言1983年:美国国家标准化协会(ANSI)制定了新的C语言标准,称ANSICC语言发展历史1973,Ritchie&Thompson重写UNIX,90%代码用C语言,二人获1983年图灵奖C语言是一种结构化语言C语言语句简洁、紧凑,使用方便、灵活32个关键字,9种控制语句,程序书写形式自由C语言程序易于移植C语言将与硬件有关的因素从语言主体中分离出来,通过库函数或其他实用程序实现它们C语言有强大的处理能力生成的目标代码质量高,运行效率高数据类型检查不严格,表达式出现二义性,不具备数据越界自动检查功能,大小写字母代表不同含义1.3C语言的发展历史与特点C语言的特点1.4实现问题求解的过程问题:求1~100间所有偶数的和1.问题分析与算法设计问题类型:求累加和求在一定范围内(1~100)、满足一定条件(偶数)的若干整数的和,求累加和算法:设置一个变量(sum),其初值为0,然后在1~100的数中(i)寻找偶数,将它们一个一个累加到sum中一次累加:sum=sum+i;重复累加,用循环语句实现,在循环过程中:(1)判别i是不是偶数:用分支控制语句来实现。(2)对循环次数进行控制:通过i值的变化思路确定算法算法:一组明确的解决问题的步骤,它产生结果并可在有限的时间内终止算法的描述:自然语言伪代码流程图:算法的图形表示法1.4实现问题求解的过程问题分析与算法设计sum=0i=1i=100?i是偶数?Ysum=sum+iYi=i+1N输出sumN算法描述——流程图1.4实现问题求解的过程#includestdio.hintmain(void){inti,sum=0;for(i=1;i=100;i++)if(i%2==0)sum=sum+i;printf(%d,sum);return0;}算法实现——源程序1.4实现问题求解的过程源程序(test.cpp)test.objtest.exe查看结果编译Compile连接Link执行Run有错返回程序编译、连接1.4实现问题求解的过程调试:在程序中查找错误并修改错误的过程如果程序运行所产生的结果不是你想要的结果,这是程序的语义错误(逻辑错误)调试的方法设置断点单步跟踪调试是一个需要耐心和经验的工作,也是程序设计最基本的技能之一程序调试1.4实现问题求解的过程

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

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

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

×
保存成功