




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
主讲:严冬梅第1章绪论(
Introduction)程序设计基础(TheFoundationofProgramming)第1章绪论教学要求使学生了解程序设计的有关概念,了解C语言的发展历程和基本特点,在掌握C语言程序的格式和结构特点的基础上,熟悉C语言程序的开发过程和集成开发环境。重点C语言的结构特点;C语言程序的格式;C语言程序开发的基本步骤。难点C程序开发步骤、集成开发环境。第1章绪论1.1程序设计概述1.2C语言的发展简史及基本特点1.3C语言程序的格式和结构特点1.4C语言程序的开发过程与开发环境1.1程序设计概述1.1.1
计算机硬件与软件1.1.2
计算机语言与人类语言1.1.3
程序与程序设计1.1.4
程序设计语言及其发展1.1.5
程序语言分类(功能)1.1.1计算机硬件与软件计算机是用来延伸人的能力的工具,需要人来驾驭我们的职责是让非计算机专业的人更容易驾驭它完成这一目标的主要手段之一就是
“编程(Programming)”计算机系统(ComputerSystem)=硬件+软件1.1.1计算机硬件与软件计算机硬件(Hardware)计算机系统中所有实体部件和设备的统称相对于计算机软件,是指计算机的物理实体,能接受信息的输入,是以二进制的形式按照规定好的运算法则进行计算的电路,能够将计算结果输出。计算机五大部件控制器运算器存储器(内存)输入设备输出设备电路的通或断、电位的高或低,它是由机器指令控制1.1.1计算机硬件与软件硬件(Hardware)是什么样子?1.1.1计算机硬件与软件硬件(Hardware)抽象示意图1.1.1计算机硬件与软件计算机软件(Software)人驾驭计算机的手段之一就是编写软件相对于计算机硬件,是指为了完成某种计算(功能),使用某种编程语言编写的一套规定好的运算法则,以及由该法则转化成的程序,还有该程序的文档及数据。
软件=程序+数据+文档完成某种计算需要执行的确定的运算过程及其转化出的机器指令1.1.1计算机硬件与软件计算机软件(Software)是什么样子?1.1.1计算机硬件与软件计算机软件都有哪些?1.1.1计算机硬件与软件计算机软件都有哪些?系统软件操作系统数据库管理系统工具软件(IDE)应用软件办公软件财务软件图像处理软件……程序在计算机内部是如何运行的?输入/输出设备存储器运算器控制器程序和输入数据输出结果取出数据存入数据操作命令存取命令取出程序指令输入输出命令计算结果CPU大脑记忆装置(Memory)眼睛和耳朵1.1.1计算机硬件与软件计算机硬件相当于人的身体和躯壳计算机软件相当于人的灵魂和思维计算机软件包括程序、数据、文档某特定软件系统是由程序、数据、文档和人组成的烹饪领域计算机领域编写菜谱的人编写算法、程序的人编写菜谱编写算法、程序菜谱文档(说明书)食材输入数据成品输出数据烹饪过程执行程序烹饪者用户烹饪工具硬件设备1.1.2计算机语言与人类语言人类语言自然语言(NaturalLanguage)汉语、英语、法语等人工语言(ArtificialLanguage)专门需要旗语、哑语等程序设计语言(ProgrammingLanguage)专门与计算机打交道的交流工具语言的层次关系篇、章句子或段落词或词组字(word)程序构造单元基本构造单元基本元素自然语言的层次关系程序设计语言的层次关系1.1.3程序与程序设计
程序完成某任务的一种既定方式和过程(日常生活)计算机程序应用于计算机能完成特定功能的有限的指令序列程序设计编制计算机程序的工作机器语言汇编语言高级语言1.1.3程序与程序设计
计算机求解问题步骤
明确问题精确表达问题设计解决方案(模型或算法)把解决方案用计算机程序实现(程序设计)计算机运行、求解1.1.4程序设计语言及其发展计算机能读懂的语言?——机器语言(MachineLanguage)由一系列二进制0和1组成机器语言编写的1+1程序低级语言计算机的母语101110000000000100000000000001010000000100000000像不像天书?1.1.4程序设计语言及其发展汇编语言(AssemblyLanguage)使用助记符表示指令
汇编语言编写的a=3a-2b+1程序汇编程序需要翻译(汇编)成机器语言汇编语言是低级语言,编程与硬件关系密切moveax,DWORDPTRa_$[ebp]leaeax,DWORDPTR[eax+eax*2]movecx,DWORDPTRb_$[ebp]addecx,ecxsubeax,ecxinceaxmovDWORDPTRa_$[ebp],eax稍微简单了些!10001011010010011111110010001101000001000100000010001011010011011111100000000011110010010010101111000001010000001000100101000101111111001.1.4程序设计语言及其发展高级语言使用数学符号表示指令
C语言编写的a=3a-2b+1程序高级语言计算机不认识需要翻译成机器语言,按照程序翻译执行过程分为:解释型语言:边解释边执行BASIC语言同声传译编译型语言:编译成目标代码一起执行C语言将目标程序(高级语言)编译成目标代码(机器语言)易学、易用、易读、易懂、强大、可移植2500多种,影响最大、寿命最长的是C语言a=3*a+2*b+1;太简单了!1.1.4程序设计语言及其发展高级语言的魅力易学、易用、易读、易懂、强大、可移植百家争鸣,据不完全统计2500种,绝大多数是高级语言可看到其列表和简介影响最大、寿命最长的是C语言1.1.4程序设计语言及其发展第一次飞跃
1946~1956基于二进制的语言发展到可以编译的高级语言第二次飞跃
20世纪70年代结构化程序设计例如:Ada、C、Pascal、Smalltalk第三次飞跃
20世纪80年代面向对象的编程例如:C++、ML、Perl、Postscript第四次飞跃
20世纪90年代Java的出现标志者单机语言向网络语言的跨越1.1.5程序语言分类(功能)
基于数学计算的语言军事用途FORTRAN
商业语言开发商业应用的程序语言COBOL
人工智能语言
LISP、PROLOG
系统语言
C语言高级语言发展历程1.2C语言的发展简史及基本特点19601963196719701972ALGOLCPLBCPLBC1.2.1
C语言的发展简史ALGOL
国际委员会面向过程的高级语言与计算机硬件相去甚远,不适宜编软件(系统软件)CPL(CombinedProgrammingLanguage)组合式程序设计语言剑桥大学、伦敦大学比ALGOL接近硬件,但规模大,难于控制BCPL(Basic)基本CPL剑桥
马丁·理查德(MartinRichards)B语言
贝尔实验室过于简单功能有限肯·汤普逊(KemThompson)编写第一个UNIXOSC语言
贝尔实验室里奇(Ritchie)对B语言进行充实和完善,只能用于UNIX,1978年后才移植到多种机型。C语言从何而来?一切从一个叫“SpaceTravel”的电子游戏开始……为了让他的游戏能在PDP-7上运行,KenThompson用汇编语言给PDP-7写了一个操作系统——UNIX汇编太不好用了,Thompson需要高级语言试验使用一些高级语言,包括Fortran,都不理想Thompson在BCPL基础上,自己设计了一个B语言UNIX开始发展,B也不够用了DennisRitchie加入,把B语言改造成C语言开始用C重写UNIXRitchie和Thompson在开发UNIX1.2C语言的发展简史及基本特点1.2.1
C语言的发展简史1978年里奇(Ritchie)卡尼汉(Kernighan)合著《TheCProgrammingLanguage》“标准C”
1983年美国国家标准化协会(AmericanNationalStandardInstitude)ANSIC
1989年发布第一个完整的C语言标准,成为ANSIC新标准,同年国际标准化组织ISO发布C891999年,国际标准化组织ISO发布C99目前,大多数编译器已支持C99Ritchie和Unix的设计者KenThompson
接受美国国家技术勋章C语言的设计者Ritchie漫画像各种语言应用对比
C语言的应用领域C程序设计语言以往的擅长:与操作系统和基础工具有关的编程任务操作系统核心,设备驱动程序,系统工具,网络应用,编辑器,字处理工具,编译器,某些图形和GUI应用,以及数据库应用未来的发展:高性能、实时中间件,嵌入式领域,并发程序设计等1.2C语言的发展简史及基本特点1.2.2C语言的基本特点C语言是处于汇编语言和高级语言之间的一种记述性语言。兼有汇编语言和高级语言的特点。它既有面向硬件和系统,可以直接访问硬件的功能,又具有高级语言面向用户、易于理解、便于书写和阅读的优点。中级语言C语言是一种结构化程序设计语言,程序的逻辑结构可以用顺序、选择和循环三种基本结构组成。C语言便于模块化结构设计。程序由函数组成集体开发C语言具有与内存地址对应的指针处理方式。C语言运算符丰富,新颖。eg.i++,--i,+=,(X>Y)?X:YC语言数据类型丰富。数组,结构体,联合体,指针C语言提供更方便的编译预处理方法C语言可移植性好。I/O不依赖于硬件,通过调用函数实现1.3C语言程序的格式和结构特点1.3.1C语言程序格式及规定【实例1.1
】第一个程序——Helloworld#include<stdio.h>intmain(){printf("Helloworld!\n");
return0;}
1.3C语言程序的格式和结构特点1.3.1C语言程序格式及规定【实例1.2
】计算10与20的和并输出#include<stdio.h>intmain(){inta,b,sum;/*说明a,b,sum为整数变量*/a=10;b=20;
sum=a+b;//求和printf("%d+%d=%d\n",a,b,sum);return0;}
1.3C语言程序的格式和结构特点1.3.1C语言程序格式及规定【实例1.3
】计算两数和并输出#include<stdio.h>intmain(){
inta,b,sum;/*说明a,b,sum为整数变量*/printf("Entertwointegers:");//提示输入scanf("%d%d",&a,&b);//输入2个整数sum=a+b;/*求和*/printf("%d+%d=%d\n",a,b,sum);return0;}
1.3C语言程序的格式和结构特点1.3.1C语言程序格式及规定【实例1.4
】求两数的最大值#include<stdio.h>intmax(inti,intj)//用户自定义函数max求最大值{ if(i>=j)returni;elsereturnj;}intmain()
//主函数{inti,j;//说明变量printf("输入i,j:");//显示提示信息scanf("%d%d",&i,&j);//从键盘输入变量值printf("maxnumberis:%d\n",max(i,j)); return0;}1.3C语言程序的格式和结构特点1.3.1C语言程序格式及规定必须有且仅有一个主函数,名必为main,执行从main的{开始,到main的}的结束每个语句后加分号;表示结束不允许在函数中定义函数以小写英文字母为主的语言,字母大小写敏感C语言无行号,需要时可加语句标号,备用于转移语句goto,结构化程设应尽量少用goto,以免破坏程序结构C语言是自由格式语言,程序中不同部分之间可加空行,语句中不同成分间要加空格,一个语句可分多行写,多个语句也可写在一行采用标准书写格式左-右上-下采用缩进格式indent体现程序的层次,但格式不能代替语法;/**/
之间的内容为注释,//行注释,注释不是C语句。1.3C语言程序的格式和结构特点1.3.2
C语言程序的结构层次程序函数语句基本构词C语言的层次关系程序设计语言的层次关系程序构造单元基本构造单元基本元素1.3C语言程序的格式和结构特点1.3.3
函数C程序的基本结构是函数,是完成某个功能的最小单位。[函数类型]函数名([形式参数说明]){
数据说明部分;执行语句部分;}函数体函数头1.3C语言程序的格式和结构特点1.3.3函数简单C程序的框架
main(){}#include<stdio.h>intmain(void){
return0;}1.3C语言程序的格式和结构特点1.3.4
语句一个函数由若干条语句组成表达式语句
函数调用语句
流程控制语句
空语句
复合语句1.3C语言程序的格式和结构特点1.3.5
基本构词语句是由基本构词组成的常数(可以直接表示的数据)
103.26’a’“Helloworld!“
PI1.3C语言程序的格式和结构特点1.3.5
基本构词关键字(保留字)具有特定意义和用途、不得作它用的字符序列charintlongshortfloatdoubleunsignedsignedautoregisterstaticexternconstvoidifelseswitchcasedefaultdowhileforgotobreakcontinuereturnenumstructuniontypedefsizeofvolatile1.3C语言程序的格式和结构特点1.3.5
基本构词标识符--字符序列,用来标识变量,常量,数据类型,函数等1)以英文字母(大,小写)或下划线(_)开头2)由英文字母、数字和下划线(_)组成3)不允许为关键字4)长度<=32nl,nw,nc,inword,_file,fiel,is_long,_54321,define,include,Int√char,4sp,v/s,goodbye,$12,-a,xy+abc.,[abc×1.3C语言程序的格式和结构特点1.3.5
基本构词标识符大小写有区别直观,见名知意,便于记忆和阅读最好使用英文单词或其组合切忌使用汉语拼音下划线和大小写通常用来增强可读性variableName某些功能的变量采用习惯命名如:for语句所采用的循环变量习惯用i,j,k1.3C语言程序的格式和结构特点1.3.5
基本构词运算符
+-*/&^%分割符——分割其它部分的符号空格、回车换行、制表符、换页符1.3C语言程序的格式和结构特点
1.3.6
库函数和标题文件库函数不是C语言本身的组成部分,而是C编译系统提供的一些非常有用的功能函数。而这些功能函数的说明、类型定义和宏定义都保存在相应的标题文件(头文件)中,因此要使用某个功能函数,就要包含相应的头文件。格式:
#include<标题文件>在所有的功能函数中,只有printf()和scanf()不需要包含头文件,为了便于移植最好包含头文件任何函数都可以自行编制,只是使用库函数更方便1.3C语言程序的格式和结构特点
1.3.7简单C程序的结构预处理语句intmain(){return0;}执行语句全局数据、函数声明局部数据、函数声明1.4C程序开发过程与开发环境1.4.1
C程序的开发过程编辑(Edit)C源程序的录入与修改,扩展名为.c编译(Compile)把C源程序翻译成机器可识别的目标文件,具有语法、语义分析能力,扩展名为.obj连接(Link)将目标文件和库函数连接装配在一起,形成可执行文件,扩展名为.exe运行(Run)IDE(集成开发环境)、直接执行NY源文件的编辑出错?开始编辑程序编译程序连接程序编译连接运行出错?结束库函数其它目标文件源文件fa.c目标文件fa.obj可执行文件fa.exeYNC语言程序的开发过程如何让计算机读懂程序设计语言?编译程序(编译器,Compiler)的功能读入高级语言编写的程序源代码,将其翻译成在逻辑上与之等价的目标程序,即转换成机器代码(可执行程序)每个程序都由对应的编译器编译成目标代码C语言可执行程序编译器1.4C程序开发过程与开发环境C程序的几种集成开发环境Code::Blocks(简称CB)Dev-C++(gcc编译器)VisualC++TurboC2.0(或WIN-TC)1.4C程序开发过程与开发环境CodeBlocks(CB)
是近年出现并获得关注的C/C++开发环境CB的功能远远优于TC,也优于VC6.0CB只是一个IDE(集成开发环境),没有内置的编译器和调试器但可以支持多种编译器(不包括TC),例如GCC编译器和GDB调试器1.4C程序开发过程与开发环境CodeBlocks(CB)
跨越平台的C/C++IDE,支持Windows和GNU/Linux提供了许多工程模板,这包括:控制台应用、DirectX应用、动态连接库、FLTK应用等具有灵活而强大的配置功能,除支持自身的工程文件、C/C++文件外,还支持MASM汇编文件、Matlab文件、Python文件、Windows资源文件等。识别Dev-C++工程、MSVS6.0-7.0工程文件,工作空间、解决方案文件。基于wxWidgets开发,正体现了wxWidgets的强大。CodeBlocks安装CodeBlocks初始界面CodeBlocks汉化包安装找到Codeblocks安装目录,依次进入share文件夹=》CodeBlocks文件夹,进去之后,新建一个locale文件夹,进入locale文件夹,再新建一个zh_CN文件夹;解压汉化包,把解压的文件codeblocks.mo放到zh_CN文件夹下。CodeBlocks汉化包安装打开CodeBlocks应用程序,点击菜单“Settings”的“Evironment”菜单项,弹出对话框,然后在左边列表选择View,右边划红框的地方改成Chinese(Simplified),再重启CodeBlocks。CodeBlocks汉化包安装汉化后的CodeBlocks1.4C程序开发过程与开发环境Dev-C++(GCC)是近年出现并获得关注的C/C++开发环境编译器是GCC,用于Unix,Unix-like系统的编译器。
1.4C程序开发过程与开发环境Dev-C++(CB)1.4C程序开发过程与开发环境VisualC++Windows平台上最流行的C/C++集成开发环境之一。从1993年发行1.0版本开始,历经多年锤炼,于2005年推出最新的VisualC++2005但VisualC++2003及以后的版本过于庞大,安装过程缓慢且烦琐,不适合初学者在VisuallC++6.0(以下简称VC)下开发和调试C程序附录:volatile关键字的作用(1)volatile关键字是一种类型修饰符,用它声明的类型变量表示可以被某些编译器未知的因素更改,比如:操作系统、硬件或者其它线程等。遇到这个关键字声明的变量,编译器对访问该变量的代码就不再进行优化,从而可以提供对特殊地址的稳定访问。使用该关键字的例子如下:
volatile
intnVint;当要求使用volatile声明的变量的值的时候,系统总是重新从它所在的内存读取数据,即使它前面的指令刚刚从该处读取过数据。而且读取的数据立刻被
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 呼和浩特市新城区公益性岗位招聘笔试真题2024
- 江苏苏州工业园区教育系统招聘教育人才笔试真题2024
- 历史城市文化传承规划基础知识点归纳
- 极地地区教学设计
- 绿色金融产融合作中面临的主要问题及挑战
- 高效行政工作总结
- 高中生物跨学科教学中探究式学习的实施策略
- 发心理学论文
- 2025至2030年中国滤波器用铁氧体磁芯行业投资前景及策略咨询报告
- 2025至2030年中国涤棉全线卡行业投资前景及策略咨询报告
- 营维一体化SOP手册(装维、销售、维系)
- FZ/T 93056-1999变形丝用筒管技术条件
- 第六章神经系统
- 医疗不良事件报告表
- SA8000-2014社会责任绩效委员会SPT组织架构、职责和定期检讨及评审会议记录
- 材料加工新技术与新工艺112课件
- 国开作业科研人员TRIZ技术创新方法应用培训-单元测验1(确定项目+描述项目)76参考(含答案)
- 企业安全生产网格化管理体系图空白
- 焊接热处理工艺卡
- 百日咳临床研究进展PPT医学课件
- 大型钢网架整体提升施工工法
评论
0/150
提交评论