第一次课概念结构.ppt

上传人:石*** 文档编号:77687498 上传时间:2023-03-16 格式:PPT 页数:35 大小:1.74MB
返回 下载 相关 举报
第一次课概念结构.ppt_第1页
第1页 / 共35页
第一次课概念结构.ppt_第2页
第2页 / 共35页
点击查看更多>>
资源描述

《第一次课概念结构.ppt》由会员分享,可在线阅读,更多相关《第一次课概念结构.ppt(35页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第一次课概念结构第一次课概念结构现在学习的是第1页,共35页开篇开篇n本课程讲述如何使用本课程讲述如何使用 C语言进行真正的编程语言进行真正的编程授课重点授课重点n侧重学习一个具体问题的算法化的过程侧重学习一个具体问题的算法化的过程n学习应该掌握的基本编程技巧以及学习应该掌握的基本编程技巧以及C编程的风格和艺术编程的风格和艺术n讨论讨论怎样编写出一个好的程序?怎样编写出一个好的程序?简单、实用的原则简单、实用的原则现在学习的是第2页,共35页开篇开篇n本课程的组织本课程的组织第一部分第一部分基基 础础第二部分第二部分简单程序设计简单程序设计第三部分第三部分高级程序设计高级程序设计算法概念、编程

2、原理、编程风格、算法概念、编程原理、编程风格、基本数据类型定义、算术运算符及基本数据类型定义、算术运算符及表达式表达式顺序结构、选择结构、循环结构、顺序结构、选择结构、循环结构、函数函数、程序设计过程程序设计过程数组的定义及应用、数组的定义及应用、变量的存储变量的存储类别、指针、结构体与共用体、文件类别、指针、结构体与共用体、文件现在学习的是第3页,共35页1.程序与程序设计语言程序与程序设计语言n什么是程序?什么是程序?什么是计算机?什么是计算机?n计算机是一种具有内部存储能力的自动、高效的电计算机是一种具有内部存储能力的自动、高效的电子设备子设备计算机怎样完成工作?计算机怎样完成工作?n执

3、行存放在计算机的内部存储器中的指令执行存放在计算机的内部存储器中的指令程序是计算机指令的序列程序是计算机指令的序列n可以被连续执行的一条条指令的集合称为计算机的可以被连续执行的一条条指令的集合称为计算机的程序程序现在学习的是第4页,共35页1.程序与程序设计语言程序与程序设计语言n什么是计算机语言?什么是计算机语言?是与计算机交流的工具是与计算机交流的工具n人和人交流用的是双方都能听懂和读懂的自然语言人和人交流用的是双方都能听懂和读懂的自然语言n人和计算机交流也要用人和计算机都容易接受和理人和计算机交流也要用人和计算机都容易接受和理解的语言解的语言计算机语言是根据计算机的特点而编制的计算机语言

4、是根据计算机的特点而编制的n有限规则的集合有限规则的集合n什么是程序设计语言?什么是程序设计语言?计算机语言又称为计算机语言又称为“程序语言程序语言“n一个计算机程序总是用某种程序语言来编写一个计算机程序总是用某种程序语言来编写现在学习的是第5页,共35页1.程序与程序设计语言程序与程序设计语言n程序设计语言的发展程序设计语言的发展问题?问题?Machine LanguagesAssembly LanguagesHigh-Level Languages+1300042774+1400593419+1200274027LOAD AADD BSTORE CC=A+B现在学习的是第6页,共35页1.

5、程序与程序设计语言程序与程序设计语言n程序设计语言的发展程序设计语言的发展问题?问题?n怎样从功能和使用方式上来划分程序设计语言?他怎样从功能和使用方式上来划分程序设计语言?他们各有什么特点?举例。们各有什么特点?举例。现在学习的是第7页,共35页2.程序设计程序设计n什么是程序设计?什么是程序设计?使用某种程序语言编写程序的过程使用某种程序语言编写程序的过程 n是用计算机语言对所要解决的问题中的数据以及是用计算机语言对所要解决的问题中的数据以及处理问题的方法和步骤所做的完整而准确的描述处理问题的方法和步骤所做的完整而准确的描述的过程的过程n怎样进行程序设计?怎样进行程序设计?分析问题分析问题

6、确定算法确定算法编制程序编制程序调试程序调试程序现在学习的是第8页,共35页2.程序设计程序设计n一个完整的程序一个完整的程序n数据结构、算法、编程语言和程序设计方法数据结构、算法、编程语言和程序设计方法对数据的描述(数据流)对数据的描述(数据流)指定数据的类型和数据的结构指定数据的类型和数据的结构对操作的描述(控制流)对操作的描述(控制流)指定操作的步骤,既算法指定操作的步骤,既算法程序程序=数据结构数据结构+算法算法现在学习的是第9页,共35页3.算法算法n什么是算法(什么是算法(Algorithm)?)?就是为了解决一个特定的问题而采取的就是为了解决一个特定的问题而采取的确定的确定的、有

7、限的有限的、按照一定按照一定次序次序进行的、缺一不可的执行步骤进行的、缺一不可的执行步骤注意注意n为了有效地利用计算机解决实际问题,在设计算法时不仅要保证计算为了有效地利用计算机解决实际问题,在设计算法时不仅要保证计算机执行算法的正确性,还要考虑算法的质量,选择适合于具体问题的机执行算法的正确性,还要考虑算法的质量,选择适合于具体问题的算法算法通常计算机算法分为两大类通常计算机算法分为两大类n数值运算算法和非数值运算算法数值运算算法和非数值运算算法数值运算是指对问题求数值解数值运算是指对问题求数值解有确定的数学模型有确定的数学模型非数值运算是指事务处理过程非数值运算是指事务处理过程种类繁多,很

8、难提供统一规范的算法种类繁多,很难提供统一规范的算法更多的是需要用户设计其算法的更多的是需要用户设计其算法的现在学习的是第10页,共35页3.算法算法n输入三个数,然后输出最大的数输入三个数,然后输出最大的数n算法的两个要素算法的两个要素基本功能操作基本功能操作n数据运算和传输数据运算和传输控制结构控制结构n顺序、选择和循环三种基本控制流程顺序、选择和循环三种基本控制流程 算法可以写成:算法可以写成:(1)输入)输入A,B,C;(2)若)若AB,则,则A-MAX;若;若AMAX。(3)若)若CMAX,则,则C-MAX。(4)输出)输出MAX,MAX既是最大数。既是最大数。现在学习的是第11页,

9、共35页3.算法算法n例例 猴子吃桃问题。有一堆桃子不知数目,猴子第一天吃掉一半并多吃了一个,猴子吃桃问题。有一堆桃子不知数目,猴子第一天吃掉一半并多吃了一个,第二天照此方法,吃掉剩下桃子的一半加一个,天天如此,到第十天早上,第二天照此方法,吃掉剩下桃子的一半加一个,天天如此,到第十天早上,猴子发现只剩一只桃子了,问这堆桃子原来有多少个?猴子发现只剩一只桃子了,问这堆桃子原来有多少个?数学模型:数学模型:a ai i=2*=2*(a ai+1i+1+1+1)i=9,8,7,i=9,8,7,1 1;算法写成:算法写成:(1)a1=1第第10天的桃子数,天的桃子数,A1的初始值;的初始值;i=9计

10、数器的初值为计数器的初值为9;(2)a0=2*(A1+1)计算当天的桃子数;)计算当天的桃子数;(3)a1=a0;将当天的桃子数作为下一次计算的初值;将当天的桃子数作为下一次计算的初值;(4)i=i-1;(5)若)若i=1,继续循环执行(,继续循环执行(2););(6)输出)输出A0的值。的值。其中(其中(2)()(5)是反复的循环执行。)是反复的循环执行。现在学习的是第12页,共35页3.算法算法n算法的特性算法的特性有穷性有穷性n应含有有限的操作步骤,不能是无限的。有穷性指在应含有有限的操作步骤,不能是无限的。有穷性指在“合理的限合理的限度之内度之内”唯一性唯一性n每一个步骤都是确定的,只

11、有一个涵义,不可以为二义性每一个步骤都是确定的,只有一个涵义,不可以为二义性有零个或多个输入有零个或多个输入n在执行算法时需要从外界获取必要的信息在执行算法时需要从外界获取必要的信息有一个或多个输出有一个或多个输出n算法执行的目的就是为了求解,算法执行的目的就是为了求解,“解解”就是输出的信息就是输出的信息n没有输出的算法是没有意义的没有输出的算法是没有意义的正确性正确性n每一个步骤应当被有效的执行,并得到确定的结果每一个步骤应当被有效的执行,并得到确定的结果现在学习的是第13页,共35页3.算法算法n算法的表示算法的表示流程图流程图端点:表示程序的转向,常用来表示端点:表示程序的转向,常用来

12、表示程序的开始和结束。程序的开始和结束。处理:操作的功能处理:操作的功能判断:单入口判断:单入口多出口,表明判断的条件多出口,表明判断的条件流线:表示程序流线:表示程序的执行方向和顺序。的执行方向和顺序。输入输入/输出:表示数据的名称、类型和用途等。输出:表示数据的名称、类型和用途等。现在学习的是第14页,共35页3.算法算法n算法的表示算法的表示流程图流程图开始开始输入输入A,B,CAB?TNMAX=AMAX=BCMAX?NTMAX=C输出输出A,B,C结束结束现在学习的是第15页,共35页3.算法算法n算法的表示算法的表示N-S图图n是适合结构化程序设是适合结构化程序设计方法的图形工具计方

13、法的图形工具nN-S流程图无法表示流程图无法表示非结构化的程序非结构化的程序T TN N当当条件条件满足满足A1=1A1=1i=9i=9当当i=1i=1时,循环时,循环a0=2*a0=2*(a1+1a1+1)a1=a0a1=a0i=i-1i=i-1输出输出a0a0现在学习的是第16页,共35页3.算法算法n算法的表示算法的表示伪代码伪代码n典型算法典型算法现在学习的是第17页,共35页4.结构化的程序设计方法结构化的程序设计方法n程序的三种基本结构程序的三种基本结构 问题的提出问题的提出结构化程序设计必须采用的结构结构化程序设计必须采用的结构n顺序结构、选择结构和循环结构顺序结构、选择结构和循

14、环结构被称为程序设计的三种基本结构被称为程序设计的三种基本结构n算法的实现过程是由一系列操作组成的,这些操作算法的实现过程是由一系列操作组成的,这些操作之间的执行次序就是程序的控制结构之间的执行次序就是程序的控制结构n总体结构流程都是自上而下顺序执行的。总体结构流程都是自上而下顺序执行的。现在学习的是第18页,共35页4.结构化的程序设计方法结构化的程序设计方法n程序的三种基本结构程序的三种基本结构顺序结构顺序结构 n顺序结构表示程序中的各操作是顺序结构表示程序中的各操作是按照它们出现的先后顺序执行的按照它们出现的先后顺序执行的 选择结构选择结构 n表示程序的处理出现了分支,它表示程序的处理出

15、现了分支,它需要根据某一特定的条件选择其需要根据某一特定的条件选择其中的一个分支执行中的一个分支执行 循环结构循环结构 n程序反复执行某个或某些操作,程序反复执行某个或某些操作,直到某条件为假(或为真)时才直到某条件为假(或为真)时才可终止循环可终止循环 现在学习的是第19页,共35页4.1顺序结构顺序结构n顺序结构是一组按书写顺序执行的语句顺序结构是一组按书写顺序执行的语句是是C语言中最简单、最基本的一种结构语言中最简单、最基本的一种结构是进行复杂程序设计的基础是进行复杂程序设计的基础C语言组成顺序结构的主要语句语言组成顺序结构的主要语句n赋值语句赋值语句n声明语句声明语句n输入输入/输出函

16、数输出函数现在学习的是第20页,共35页【例例】编写程序:输入两个整数编写程序:输入两个整数a a和和b(b(设设a=100,b=17)a=100,b=17)求求a a除以除以b b的商和余数。的商和余数。#include“stdio.h”#include“stdio.h”main()main()int a,b,x,y;int a,b,x,y;scanf(“%d,%d”,&a,&b);scanf(“%d,%d”,&a,&b);x=a/b;/*x=a/b;/*求求a/ba/b的商的商*/y=a%b;/*y=a%b;/*求求a/ba/b的余数的余数*/printf(“a=%3d,b=%3d,a/b

17、=%4d,a%b=%4dn”,a,b,x,y);printf(“a=%3d,b=%3d,a/b=%4d,a%b=%4dn”,a,b,x,y);4.1顺序结构顺序结构现在学习的是第21页,共35页二者二者择一择一4.2选择结构选择结构现在学习的是第22页,共35页周而复始,称周而复始,称循环循环4.3循环结构循环结构现在学习的是第23页,共35页5.什么是什么是C语言?语言?n1973年由美国贝尔实验室设计发布的年由美国贝尔实验室设计发布的 目前是计算机程序设计语言的主流语种目前是计算机程序设计语言的主流语种是世界上最为广泛使用的语言之一是世界上最为广泛使用的语言之一nC语言的流行归功于两个主要

18、因素语言的流行归功于两个主要因素使用正确的使用正确的C语言指令几乎可以完成任何任务语言指令几乎可以完成任何任务是可移植的是可移植的C编译系统的广泛采用编译系统的广泛采用nC语言是一种能够让软件工程师与计算机进行有效对话的介于汇语言是一种能够让软件工程师与计算机进行有效对话的介于汇编语言和高级语言之间的编程语言编语言和高级语言之间的编程语言nC语言标准语言标准1978年,正式出版的年,正式出版的The C Programming Language书中介绍的书中介绍的c语语言,称为标准言,称为标准c语言语言1983年,美国国家标准化协会(年,美国国家标准化协会(ANSI)根据各种)根据各种c语言版

19、本对语言版本对c的扩充和发展,的扩充和发展,颁布了颁布了c语言的新标准语言的新标准ANSI cnANSI c比标准比标准c有了很大的扩充和发展有了很大的扩充和发展1987年,美国国家标准化协会又颁布新标准,称为年,美国国家标准化协会又颁布新标准,称为87 ANSI C1990年,国际标准化组织年,国际标准化组织ISO接受了接受了87 ANSI C作为作为ISO C的标准的标准n目前功能最完善、性能最优良的新版本目前功能最完善、性能最优良的新版本n目前流行的目前流行的C编译系统都是以它为基础的编译系统都是以它为基础的现在学习的是第24页,共35页5.什么是什么是C语言?语言?nC语言的特点语言的

20、特点适合开发系统软件适合开发系统软件结构化的程序设计语言结构化的程序设计语言丰富的数据类型和数据结构丰富的数据类型和数据结构运算符多样化运算符多样化可移植性好可移植性好语句简洁紧凑语句简洁紧凑编程风格灵活,语法限制少,使用灵活编程风格灵活,语法限制少,使用灵活具有预处理功能具有预处理功能面向对象程序设计的基础面向对象程序设计的基础现在学习的是第25页,共35页编写一个加法运算程序编写一个加法运算程序#include#includestdio.hstdio.hmainmain()()int a int a,b b;/*/*定义两个整形变量定义两个整形变量*/a=1 a=1;b=5b=5;/*/*

21、给两个变量赋值给两个变量赋值*/printf printf(“%d+%d=%dn%d+%d=%dn”,a,b,a+b,a,b,a+b);/*/*打印打印a a和和b b之和之和*/C C语言严格区分大、小写语言严格区分大、小写 英文字母。英文字母。C C语言程序习惯上使用小写英文字母,语言程序习惯上使用小写英文字母,而大写英文字母通常作为常量的宏定而大写英文字母通常作为常量的宏定义和其他特殊的用途。义和其他特殊的用途。五、什么是五、什么是C C语言?语言?现在学习的是第26页,共35页#include#includestdio.hstdio.hmainmain()()int a int a,b

22、 b;/*/*定义两个整形变量定义两个整形变量*/a=1 a=1;b=5b=5;/*/*给两个变量赋值给两个变量赋值*/printf printf(“%d+%d=%dn%d+%d=%dn”,a,b,a+b,a,b,a+b);/*/*打印打印a a和和b b之和之和*/C C语言严格区分大、小写语言严格区分大、小写 英文字母。英文字母。例:例:编写一个加法运算程序如下:编写一个加法运算程序如下:五、什么是五、什么是C C语言?语言?C C语言程序是由一个个的语言程序是由一个个的 语句组成。语句组成。每个语句都具有规定的语法格式和特每个语句都具有规定的语法格式和特定的功能。定的功能。编写一个加法运

23、算程序编写一个加法运算程序现在学习的是第27页,共35页#include#includestdio.hstdio.hmainmain()()int a int a,b b;/*/*定义两个整形变量定义两个整形变量*/a=1 a=1;b=5b=5;/*/*给两个变量赋值给两个变量赋值*/printf printf(“%d+%d=%dn%d+%d=%dn”,a,b,a+b,a,b,a+b);/*/*打印打印a a和和b b之和之和*/C C语言严格区分大、小写语言严格区分大、小写 英文字母。英文字母。例:例:编写一个加法运算程序如下:编写一个加法运算程序如下:五、什么是五、什么是C C语言?语言?

24、C C语言程序是由一个个的语言程序是由一个个的 语句组成。语句组成。C C语言程序使用语言程序使用“;”作为作为 语句的终止符和分隔符。语句的终止符和分隔符。可以任意书写,即一行中可以书写多个可以任意书写,即一行中可以书写多个语句,一个语句也可以占用任意多行,语句,一个语句也可以占用任意多行,语句之间必须用语句之间必须用“;”分隔。初学时建议在分隔。初学时建议在一行内书写一条语句。一行内书写一条语句。编写一个加法运算程序编写一个加法运算程序现在学习的是第28页,共35页#include#includestdio.hstdio.hmainmain()()int a int a,b b;/*/*定

25、义两个整形变量定义两个整形变量*/a=1 a=1;b=5b=5;/*/*给两个变量赋值给两个变量赋值*/printf printf(“%d+%d=%dn%d+%d=%dn”,a,b,a+b,a,b,a+b);/*/*打印打印a a和和b b之和之和*/C C语言严格区分大、小写语言严格区分大、小写 英文字母。英文字母。例:例:编写一个加法运算程序如下:编写一个加法运算程序如下:五、什么是五、什么是C C语言?语言?C C语言程序是由一个个的语言程序是由一个个的 语句组成。语句组成。C C语言程序使用语言程序使用“;”作为作为 语句的终止符和分隔符。语句的终止符和分隔符。C C语言程序中用大括号

26、对语言程序中用大括号对 “”表示程序的结构层表示程序的结构层 次范围。次范围。一个完整的程序模块要用一对花括号括起来,一个完整的程序模块要用一对花括号括起来,用以表示模块的范围。为了清晰地表现出程用以表示模块的范围。为了清晰地表现出程序的结构,建议使用右缩进锯齿型程序书写序的结构,建议使用右缩进锯齿型程序书写格式。格式。编写一个加法运算程序编写一个加法运算程序现在学习的是第29页,共35页#include#includestdio.hstdio.hmainmain()()int a int a,b b;/*/*定义两个整形变量定义两个整形变量*/a=1 a=1;b=5b=5;/*/*给两个变量

27、赋值给两个变量赋值*/printf printf(“%d+%d=%dn%d+%d=%dn”,a,b,a+b,a,b,a+b);/*/*打印打印a a和和b b之和之和*/C C语言严格区分大、小写语言严格区分大、小写 英文字母。英文字母。例:例:编写一个加法运算程序如下:编写一个加法运算程序如下:五、什么是五、什么是C C语言?语言?C C语言程序是由一个个的语言程序是由一个个的 语句组成。语句组成。C C语言程序使用语言程序使用“;”作为作为 语句的终止符和分隔符。语句的终止符和分隔符。C C语言程序中用大括号对语言程序中用大括号对 “”表示程序的结构层表示程序的结构层 次范围。次范围。语言

28、程序可以使用注释。语言程序可以使用注释。注释部分的格式是:注释部分的格式是:注释内容注释部分不参与程序注释内容注释部分不参与程序的执行,对程序的运行结果没有影响,的执行,对程序的运行结果没有影响,只是用来提示或助记。只是用来提示或助记。编写一个加法运算程序编写一个加法运算程序现在学习的是第30页,共35页5.什么是什么是C语言?语言?n nC程序结构组成程序结构组成C程序为函数模块结构,整个程序程序为函数模块结构,整个程序都是由一个或多个函数组成都是由一个或多个函数组成函数是由函数说明和函数体两部分函数是由函数说明和函数体两部分组成组成一个一个C程序总是从程序总是从main()函数开始函数开始

29、执行执行被调用的函数可以是系统提供的库函被调用的函数可以是系统提供的库函数,也可以是用户根据需要自己编制数,也可以是用户根据需要自己编制设计的函数(用户自定义函数)设计的函数(用户自定义函数)一个一个C 程序可以由一个文件组成,也可程序可以由一个文件组成,也可以由以由若干个文件若干个文件组成组成分析下面程序:分析下面程序:#include#include main main()()int a=1,b=5,c;int a=1,b=5,c;c=add(a,b);c=add(a,b);printf(printf(“c=%dnc=%dn”,c);,c);int add(int x int add(in

30、t x,int y)int y)return(x+y);return(x+y);现在学习的是第31页,共35页 C C程序程序源程序文件源程序文件1 1源程序文件源程序文件i i源程序文件源程序文件n n预编译命令预编译命令函数函数1 1函数函数n n函数体函数体函数首部函数首部n nC C程序结构组成程序结构组成程序结构组成程序结构组成五、什么是五、什么是C C语言?语言?注意注意注意注意 一个函数名后面必须跟一对(),函数参数可以没有,一个函数名后面必须跟一对(),函数参数可以没有,但这但这 一对()不能省略,如一对()不能省略,如mainmain()()在函数定义中第一行的函数名后没有分

31、号在函数定义中第一行的函数名后没有分号“;”现在学习的是第32页,共35页6.C语言的开发与运行n开发一个开发一个C程序程序hello.ocompilehellohello.cC libarayLinkSource File(High-Level Languages)Object File(Machine Languages)Tc2.0 hello.cEditnedit hello.c现在学习的是第33页,共35页6.C语言的开发与运行n开发一个开发一个C程序程序编辑:使用一个文本编辑器将编写好的编辑:使用一个文本编辑器将编写好的C C程序输入计算机,并以程序输入计算机,并以 文本文件的形式保

32、存文本文件的形式保存C C语言源程序,其文件扩展名为语言源程序,其文件扩展名为“.C.C”编译:使用一个编译:使用一个C C语言编译系统(如语言编译系统(如TurboC 2.0TurboC 2.0)对)对C C语言源程序语言源程序 进行语法检查和翻译,生成同名的进行语法检查和翻译,生成同名的“.OBJ.OBJ”目标文件目标文件链接:将目标文件和系统提供的标准库函数等连接在一起,生成链接:将目标文件和系统提供的标准库函数等连接在一起,生成 一个同名的一个同名的“.EXE.EXE”可执行文件可执行文件 执行:脱离执行:脱离C C语言编译系统,可在操作系统下键入文件名直接运行语言编译系统,可在操作系统下键入文件名直接运行现在学习的是第34页,共35页6.C语言的开发与运行n安装安装vc6.0下载下载Cdn思考题思考题C语言程序执行过程是如何进行的?应注意什么问题?语言程序执行过程是如何进行的?应注意什么问题?现在学习的是第35页,共35页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁