版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C语言程序设计1教材、参考书与课时安排教材丁海军等编著,程序设计基础(C语言),北京航空航天大学出版社参考书谭浩强,C语言程序设计教程,高等教育出版社吴文虎,计算机语言与程序设计,清华大学出版社2课程要求课前请做好预习保持课堂安静,头脑清醒,思维活跃认真、独立、按时完成并提交作业重视上机实践,有效利用宝贵的上机时间实践!实践!再实践!!!3本节课的重点:1.了解程序设计语言的发展史2.了解简单的程序3.理解算法的概念4.熟练用文字法描述一个数学问题的解题步骤5程序设计语言的发展机器语言汇编语言高级语言面向过程面向对象CPU指令系统,由0、1序列构成的指令码组成如:10000000加10010000减用助记符号描述的指令系统如ADDA,B面向机器的语言程序设计是数据被加工的过程客观世界可以分类,对象是类的实例对象是数据和方法的封装对象间通过发送和接受消息发生联系程序设计关键是定义类,并由类派生对象由于汇编语言依赖于硬件体系,且助记符量大难记,于是人们又发明了更加易用的所谓高级语言。在这种语言下,其语法和结构更类似普通英文,它有更强的表达能力,可方便地表示数据的运算和程序的控制结构,能更好的描述各种算法,而且容易学习掌握。但高级语言编译生成的程序代码一般比用汇编程序语言设计的程序代码要长,执行的速度也慢。所以汇编语言适合编写一些对速度和代码长度要求高的程序和直接控制硬件的程序。6第四代语言:第四代语言(Fourth-GenerationLanguage,以下简称4GL)的出现是出于商业需要,由于商业应用中需要处理大量的数据,如何提高使用的速度?4GL这个词最早是在80年代初期出现在软件厂商的广告和产品介绍中的。这一类语言由于具有“面向问题”(用户只需告知系统做什么,而无需说明怎么做)、“非过程化程度高”等特点,可以成数量级地提高软件生产率,缩短软件开发周期,因此赢得了很多用户。目前4GL主要面向基于数据库应用的商务领域,不宜于科学计算、高速的实时系统和系统软件开发。例如:SQL,FOXPRO,PowerBuilder程序设计语言的发展7表
1.1.
一个语句的三种表示8高级语言种类:从1954年,第一个完全脱离机器硬件的高级语言—FORTRAN问世以来,,共有几百种高级语言出现,有重要意义的有几十种,影响较大、使用较普遍的有FORTRAN、ALGOL、COBOL、BASIC、LISP、SNOBOL、PL/1、Pascal、C、PROLOG、C++、VC、VB、Delphi、JAVA等。高级语言的发展高级语言发展高级语言的发展也经历了从早期语言到结构化程序设计语言,从面向过程语言到面向对象程序语言的过程。相应地,软件的开发也由最初的个体手工作坊式的封闭式生产,发展为产业化、流水线式的工业化生产。101.程序设计的基本目标是用算法对问题的原始数据进行处理,从而获得所期望的效果。2.要全面提高程序的质量,提高编程效率,使程序具有良好的可读性、可靠性、可维护性以及良好的结构,编制出好的程序来,应当是每位程序设计工作者追求的目标。3.必须掌握正确的程序设计方法和技术。程序设计工作者追求的目标12<>
C语言程序设计
第一章C语言概述C语言的用途:科学计算、编写系统软件、控制软件、图形、图象处理软件、数据库软件、游戏软件等14语言简洁、紧凑、灵活运算符和数据类型丰富程序设计结构化、模块化生成目标代码质量高可移植性好<>>>>>中级语言
C语言程序设计
第一章C语言概述NextC语言特点1532个关键字:(由系统定义,不能重作其它定义)autobreakcasecharconstcontinuedefaultdodoubleelseenumexternfloatforgotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunsignedunionvoidvolatilewhile<
C语言程序设计
第一章C语言概述169种控制语句:if()~else~switchfor()~while()~do~while()continuebreakgotoreturn<
C语言程序设计
第一章C语言概述1734种运算符:算术运算符:+-*/%++--关系运算符:<<===>>=!=逻辑运算符:!&&||位运算符:<<>>~|^&赋值运算符:=及其扩展条件运算符:?:逗号运算符:,指针运算符:*&求字节数:sizeof强制类型转换:(类型)分量运算符:.->下标运算符:[]其它:()-还有很多常用数学函数等<
C语言程序设计
第一章C语言概述使用运算符构成各种表达式:pow(x,3)+sin(78.96/6)+y%4181.1C程序概念例1-1第一个程序Hello,World!//example1.1ThefirstCProgram#include<stdio.h>main(){printf(“Hello,World!\n”);}注释编译预处理函数语句输出:Hello,World!第一章C语言程序设计概念20//例1.1-2:求三个数的平方根的和#include<stdio.h>#include<math.h>doublesqrtsum(inta,intb,intc);voidmain(){inta,b,c;floatsumn;printf("请输入三个整数:");scanf("%d%d%d",&a,&b,&c);sumn=sqrtsum(a,b,c);printf("三个数的平方根和=%f\n",sumn);}doublesqrtsum(intx,inty,intz){doublet;t=sqrt(x)+sqrt(y)+sqrt(z);returnt;}例1-2预处理命令函数原型说明21结构特点函数与主函数程序由一个或多个函数组成必须有且只能有一个主函数main()程序执行从main开始,在main中结束,其它函数通过嵌套调用得以执行。程序语句C程序由语句组成用“;”作为语句终止符注释/**/为注释,不能嵌套,多行注释//单行注释不产生编译代码编译预处理命令23//例1.1-2:求三个数的平方根的和#include<stdio.h>#include<math.h>doublesqrtsum(inta,intb,intc);voidmain(){inta,b,c;floatsumn;printf("请输入三个整数:");scanf("%d%d%d",&a,&b,&c);sumn=sqrtsum(a,b,c);printf("三个数的平方根和=%f\n",sumn);}doublesqrtsum(intx,inty,intz){doublet;t=sqrt(x)+sqrt(y)+sqrt(z);returnt;}组成要素组成要素程序主要目的是处理数据数据的输入数据处理数据输出数据必须先定义后使用对数据的处理是通过流程控制语句进行的241.2.1算法与程序例1-3:(求三个数的最大值)设计一个算法对任意给定的三个整数x,y,z,求出其最大值。①定义三个变量x,y,z存放三个整数,变量max存放最大值②输入变量x,y,z的值;③比较x和y,如果x>y,则max=x;否则max=y④比较max与z,如果max<z,则max=z⑤输出结果max26【例1.2-2】:计算91和52的最大公约数原始方法:定义三个变量x,y,z分别表示91,52和最大公约数给变量赋值:x=91,y=52,z=52;判断x和y能否同时整除z。能:跳到⑥。否:执行下一步z=z-1;回到③。输出z27【例1.2-2】:计算91和52的最大公约数设r1=mod(a,b),再设r2=mod(b,r1),r3=mod(r1,r2),一直计算下去,直到mod(rn-1,rn)=0,这时rn就是a和b的最大公约数。(1)mod(91,52)=39(2)mod(52,39)=13(3)mod(39,13)=0辗转相除法欧几里德算法13就是91和52的最大公约数28结构化算法的流程控制结构顺序结构:选择结构:循环(重复结构):算法的表示方法流程图表示伪代码表示程序设计语言表示30【例1.2-3】(闰年的判定)根据有关的研究结果,判断闰年的条件(给定一个年号k)可以表示为:(1)能被4整除,但是不能被100整除的年份是闰年(2)能同时被100和400整除的年份是闰年 第1种描述(伪代码表示方法): input(k))//输入k,k表示当前年份if((kmod4=0)and(kmod100≠0))or((kmod100=0)and(kmod400=0))thenoutput(“是闰年”)elseoutput(”不是闰年”)endif31第2种描述:输入(k)//k表示当前年份if(k能被4整除andk不能被100整除)or(k能被100整除andk能被400整除)then输出(“是闰年”)else输出(“不是闰年”)endif321.2.2算法设计的原则和步骤原则:自顶向下,逐步求精一般步骤明确算法的输入、输出数据自顶向下,逐步求精模块结构331.2.3算法设计基本方法与策略算法设计主要有以下的一些策略和方法和策略:穷举策略;递推与递归策略;分而治之策略;回溯策略;贪心策略;动态规划策略。34算法设计的要求1、正确性2、可读性3、健壮性:4、效率与低存储量需求算法类型:数值算法、非数值算法。351.2.4编程解决问题的一般步骤1.分析问题2.概要设计3.详细设计--提供算法描述4.算法实现、调试与测试5.整理、编写文档36例:求一元二次方程ax2+bx+c=0的实根求根公式输入数据是什么?方程系数:a,b,c输出数据是什么?如果有实根:x1,x2如果没有实根:提示信息a,b,cx1,x2输入处理输出1.问题分析371.输入a,b,c2.数据变换3.输出x1,x22-1.计算判别式d2-2.根据d的值进行不同处理2-2-1:ifd>0x1=…x2=…2-2-2:ifd=0x1=x2=…2-2-3:ifd<0….2.概要设计3.详细设计38输入a,b,c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度智慧农业用地承包管理合同
- 2025年度豪华别墅装修工程合同书
- 2025年度房屋装修贷款合同样本
- 二零二五年度河北省房屋租赁合同租赁期限变更合同范本
- 2025年度科技研发中心私人土地租赁合同
- 二零二五年度房地产开发公司物业服务质量提升合同
- 2025年度火锅底料加盟生产销售合同
- 二零二五年度设备搬运与运输途中货物保险合同
- 二零二五年度私人商铺租赁与品牌形象升级合同
- 二零二五年度股权激励虚拟分红权员工股权激励咨询合同
- 2025民政局离婚协议书范本(民政局官方)4篇
- 2024年03月四川农村商业联合银行信息科技部2024年校园招考300名工作人员笔试历年参考题库附带答案详解
- 小学一年级数学上册口算练习题总汇
- 润滑油知识-液压油
- 盘锦市重点中学2024年中考英语全真模拟试卷含答案
- 平安产险湖南省商业性鸡蛋价格指数保险条款
- 提高卧床患者踝泵运动的执行率
- 广东省普通高中学生档案
- 初中公寓主任述职报告
- 九年级下册沪教版上海化学5.2酸和碱的性质研究 课件
- ISO17025经典培训教材
评论
0/150
提交评论