(45)-第1章程序设计概述初识C语言_第1页
(45)-第1章程序设计概述初识C语言_第2页
(45)-第1章程序设计概述初识C语言_第3页
(45)-第1章程序设计概述初识C语言_第4页
(45)-第1章程序设计概述初识C语言_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第1章程序设计概述

第1章程序设计概述1.1程序设计语言1.2算法1.3程序设计与实现1.4C语言程序的基本结构C语言程序设计(第4版)ISBN9787302496014清华大学出版社张磊编著1.1程序设计语言程序设计语言用于编写程序的计算机语言,它按照特定的规则组织计算机指令,使计算机能够自动进行各种操作处理。机器语言汇编语言高级语言C语言程序示例:计算1~100自然数和#include<stdio.h>intmain(void){inti=1,s=0;while(i<=100)/*循环控制*/{s=s+i;/*数据累加*/i=i+1;/*生成下一个要累加的数*/

}printf("sum=%d\n",s);/*输出结果*/

return0;}计算机程序按照程序设计语言规则组织起来的一组计算机指令Pascal语言C语言C#语言Java语言C++语言PHP语言Python语言1.2算法1.2.1算法概念与算法描述1.2.2算法的逻辑结构1.2.4算法的特性1.2.4算法评价1.2.1算法概念与算法描述算法重要性:程序=数据结构+算法1.算法的概念算法是为计算机处理问题所设计的具体步骤。算法的最终实现是计算机程序。2.算法的描述方法自然语言流程图N-S图PAD图伪代码等。1.2.1算法概念与算法描述⑴用自然语言描述算法计算1到100的所有自然数的和步骤①

i和s赋初值,使i=1,s=0;步骤②判断i的值,若i≤100则执行步骤③;否则,转步骤⑤;步骤③

s加上i;步骤④

i加上1,转步骤②;步骤⑤显示s的值,结束。流程图符号符号功能开始/结束框数据处理(例如计算)框数据输入/输出框判断选择框流程方向线1.2.1算法概念与算法描述⑵用流程图描述算法1.2.1算法概念与算法描述“计算1~100自然数和”的算法步骤①i=1,s=0;步骤②若i≤100则执行步骤③;否则,转步骤⑤;步骤③s加上i;步骤④i加上1,转步骤②;步骤⑤显示s的值,结束1.2.2算法的逻辑结构算法的三种结构顺序结构分支结构循环结构三种结构互相结合,可以实现任何逻辑控制1.2.2算法的逻辑结构1、顺序结构特点:各个步骤由前到后依次执行,每个步骤都执行一次。ABAB1.2.2算法的逻辑结构1、顺序结构举例:输入一个学生的两门课程的成绩,计算并输出平均成绩。1.2.2算法的逻辑结构2、选择结构特点:某些步骤是否能够执行,要视当前的条件而定,在同一次处理中,有的步骤可能执行不到。真假1.2.2算法的逻辑结构2、选择结构开始输入s1、s2(s1+s2)/2→aveave≥90输出:优等生输出:加油!结束真假真开始输入s1、s2(s1+s2)/2→aveave≥90输出:优等生结束开始输入s1、s2(s1+s2)/2→aveave≥90输出:优等生输出:加油!结束真假真举例:输入一个学生两门课程的成绩,若平均成绩不低于90,则输出“优等生”;否则,输出“加油!”。ave≥90开始输入s1、s2(s1+s2)/2→aveave≥90输出:优等生输出:加油!结束真1.2.2算法的逻辑结构3、循环结构特点:有些步骤会被有条件地重复执行(被重复执行的步骤每次处理的数据也可能发生变化)。1.2.2算法的逻辑结构3、循环结构举例:计算1~100自然数和。1.2.3算法的特性一个算法必须经过有限步骤后结束。“有限步骤”既是指步骤量有限,同时也要求步骤量合理。每一个步骤所规定的操作不能有二义性。例如“转步骤②”是确定的,而“转其他步骤”则不确定。每一个步骤描述的操作必须能够通过已经实现的基本运算有效地执行,并且得到确定的结果。每个有意义的算法有零个或多个输入,并且有一个或多个输出。算法可以没有输入,但必须有输出。有穷性确定性有效性输入&输出1.2.3算法评价算法执行时间与问题规模的关系,是算法执行效率指标算法对计算机内存资源的需求程度,应是需求越少越好算法可供人们阅读的容易程度,好的算法应具有良好的可读性时间复杂性算法对不合理的输入数据的反应能力和处理能力算法应适应一类问题,而不只是某个特定问题。算法的执行结果满足预先规定的功能要求和性能要求。通用性正确性空间复杂性可读性健壮性(容错性)1.3程序设计与实现1.3.1程序设计的基本过程1.3.2编辑运行C语言程序1.3.1程序设计的基本过程问题分析算法设计编写程序调试运行程序分析要处理的问题涉及的各种概念、数据特点、已知条件、所求结果,以及已知条件与所求结果之间的关系等各方面的信息。明确:要做什么?确定具体的算法,并选择合适的算法表达工具对算法进行描述。用程序设计语言的语句和命令实现算法的每一个步骤。1.3.2编辑运行C语言程序建立源程序编译源程序构建可执行文件运行可执行文件启动VC++6.0系统使用“File”→“New”命令,打开VC++6.0的程序编辑窗口录入编辑源程序,保存文件使用“Build”→“Compile”命令对源程序进行编译,生成二进制目标代码文件。程序通过编译之后,使用“Build”→“Build”命令将编译阶段生成的目标文件和系统的库函数文件等连接起来,生成扩展名是“.exe”的可执行文件。使用“Build”→“!Execute”命令运行程序,获得执行结果。SUCCESS1.3.2编辑运行C语言程序例1-1

使用VC++编辑运行自然数累加程序。⑴建立源程序文件。①启动VC++6.0,使用“File”→“New”命令,打开“new”窗口,选用“Files”选项卡,在主窗口中选择“C++SourceFile”项,在“File”对话框中输入文件名,在“Location”对话框中指定文件的存储位置。1.3.2编辑运行C语言程序⑴建立源程序文件②单击“OK”按钮,打开程序编辑窗口录入编辑源程序,并及时存盘。1.3.2编辑运行C语言程序⑴建立源程序文件。⑵编译源程序程序编辑完成后,使用“Build”→“Compile”命令编译执行“Build”→“Compile”命令后的提示信息编译结果显示在编译报告窗口1.3.2编辑运行C语言程序⑴建立源程序文件。⑵编译源程序。⑶构建可执行文件。程序编译完成后,使用“Build”→“Build”构建可执行文件。⑷运行可执行文件。成功构建可执行文件之后,使用“Build”→“!Execute”命令即可运行程序。

1.4C语言程序的基本结构1.4.1程序的函数化结构

1.4.2标识符与保留字1.4.3程序风格1.4.1程序的函数化结构任何一个C语言程序,main()函数都是不可缺少的,当一个C语言程序只有一个函数模块时,这个函数必然是main()函数。C语言程序是由函数构成的,任何一个C语言程序都有一个称为主函数的main()函数。例1-2简单的C程序简单程序结构main简单的C语言程序可只有一个函数,该函数只能是main()函数。main()函数的一般结构intmain(){

函数体}特别强调!#include<stdio.h>intmain(){printf("Hello!\n");return0;}1.4.1程序的函数化结构一个源程序不论由多少个函数组成,有且只能有一个main()函数,而且main()函数可以位于程序的任何位置。一个源程序无论由多少个函数构成,总是从main()函数开始执行程序,与main()函数在程序中的位置无关。C语言程序由函数构成,而且每个程序可以有多个函数。(多函数程序在函数一章介绍)1程序由函数构成特点2有一个main函数特点3从main函数执行特点1.4.2标识符与保留字两个标识符中的字母相同而大小写形式不同时,是两个不同的标识符。标识符命名应尽量有相应的意义,以便阅读理解。建议初学者尽量使用较短而有意义的标识符,既便于上机训练,也会使程序更清晰。由C语言规定的用于定义变量类型、命令字等具有特定意义的标识符。概念:在程序中使用的变量名、函数名、命令字等。构成:任何一个标识符只能是由字母(A~Z,a~z)、数字(0~9)和下划线“_”构成的字符串,其他符号不能出现在标识符中,并且标识符的第一个字符必须是字母或下划线。合法标识符:a、BOOK1、max、

_add、num_1非法标识符:3sum(不允许以数字开头)ab#cd(使用了非法字符#)book-1(使用了非法字符-)1标识符2保留字3注意事项1.4.3程序风格01如果一行能够容下一个语句,那么就让这个语句独占一行02用{}括起来的部分,通常表示了程序的某一层次结构。“{”和“}”一般与该结构语句的第一个字母对齐,并单独占一行03低一层次的语句应比高一层次的语句缩进若干列后书写,以便看起来更加清晰04要在程序的开始或者在程序的关键位置使用注释,以提高程序的可读性小结(1)(1)算法是逐步求解问题的方法,是计算机处理问题所需要的具体步骤。流程图、伪代码是常用的描述算法方法。(2)顺序结构、分支结构和循环结构是算法的三种基本结构。(3)结构化程序设计步骤:问题分析、算法设计、编写程序、调试运行程序。(4)实现C语言程序步骤

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论