230 likes | 377 Views
课程地位. SPR: Computer Base. STB. SQL Server Base. OOP&Java Base. HTML&JavaScript. C. SQL Server. .Net & C#. JSP /Servlet. Testing&SQA. WinForms. Oracle. XML. EJB&WebService. Linux. ASP.NET & WebService. Struts&JSF. UML. 课程目标. 理解算法、流程图以及程序的概念 理解程序逻辑 掌握用 C 语言进行程序设计的基本方法。
E N D
课程地位 SPR: Computer Base STB SQL Server Base OOP&Java Base HTML&JavaScript C SQL Server .Net & C# JSP/Servlet Testing&SQA WinForms Oracle XML EJB&WebService Linux ASP.NET & WebService Struts&JSF UML
课程目标 • 理解算法、流程图以及程序的概念 • 理解程序逻辑 • 掌握用C语言进行程序设计的基本方法。 • 掌握C语言的基础知识,包括基本数据类型、表达式、控制结构等 • 掌握C语言的高级知识,包括数组、指针、函数、字符串、结构等
本次课目标 • 了解程序、算法和流程图的概念 • 熟练掌握 C 程序的基本结构 • 掌握 C 程序的编译和运行过程 • 使用开发环境创建 C程序
1. 什么是程序 • 程序一词来自生活,通常指完成某些事务的一种既定方式和过程 • 在日常生活中,可以将程序看成对一系列动作的执行过程的描述
日常生活中的程序 银行 3. 将存折和取款单递给银行职员 4.银行职员办理取款事宜 5. 拿到钱并离开银行 2.填写取款单并到相应窗口排队 • 带上存折去银行
计算机中的程序 • ______________ • ________________ • __________ • _____________ • 做口述笔记…… • 键入信函的内容…… • 发送传真…… 程序 • 口述 2.信函 要执行的一组指令 3.传真 什么是指令? 指令被逐条执行 老板 程序员 秘书 程序:为了让计算机执行某些操作或解决某个问题而编写的一系列有序指令的集合
2.算法 (Algorithm) • 算法 • 解决问题的方法 • 算法是程序的灵魂 • 程序 (Program) • 对算法的具体实现 • 程序的效率不可能超过算法的限制 • Nikiklaus Wirth • 程序 = 数据结构 + 算法
2.1 算法举例 计算长方形的面积 问题: 1.接收用户输入的长方形长度和宽度两个值; 2.判断长度和宽度的值是否大于零; 3.如果大于零,将长度和宽度两个值相乘得到面积,否则显示输入错误; 4.显示面积。 算法 算法:解决问题的具体方法和步骤
2. 2 算法的特性 • 有穷性,解题算法是一有穷动作序列 • 确定性,每个步骤应当是确定的,没有歧义 • 有零个或多个输入 • 有一个或多个输出 • 有效性
3.算法的表示 算法的表示方法: 1) 自然语言 2) 传统流程图 3) N-S结构化流程图 4) 伪代码 等 结构化程序设计的三种基本结构: 1) 顺序结构 2) 选择结构 3) 循环结构
3.1 用伪代码表示算法 用自然语言和计算机语言之间的文字和符号来描述算法。 伪代码: begin 1 => t 2=> i while I<=10 { t*I=>t I+1=>I } print t end C语言: void main() { int I=2,t=1; while (I<=10) { t=t*I; I=I+1; } printf(“%d\n”,t); }
3.2 流程图2-1 流程图是算法的一种图形化表示方式。 流程图直观、清晰,更有利于人们设计与理解算法。 它使用一组预定义的符号来说明如何执行特定任务。 开始/结束 判断/分支 处理 连接符 输入/输出 流程线
开始 接受 num1和 num2 num1和num2 > 0? 否 是 Result=num1×num2 显示“输入错误” 显示Result 结束 流程图2-2
N-S图 • 美国I.Nassi and B.Shneiderman提出的一种无流线的流程图 P A P T F B A B A C
传统流程图与N-S流程图的区别 传统流程图——流程线可向前或向后随意转移; N-S流程图——从画法上取消了流程线,杜绝了 基本结构之间的转移,提高了算法的可靠性。
3.3 结构化程序设计的三种基本结构 1) 顺序结构 传统流程图 N-S流程图 开始 A B 结束 其中:A、B为操作框,可由一条或多条语句实现。
2) 选择结构(分支结构) 传统流程图 N-S流程图 入口 出口 T F P T F B A 其中:P为分支判断条件; A、B必有一个且只有一个被执行; A、B之一可是空操作,用 表示。
例:用N-S流程图描述:找出x、y中的较大者 x>y? T F xmax ymax 例:对学生成绩s进行判断,及格则输出PASS字样 s>=60? T F 输出"PASS" s<60? T F 输出"PASS"
3) 循环结构 当型循环——先判断后循环,有可能一次也不循环。 入口 F T 当P为真 A P A 出口 其中:P为循环判断条件; A为要重复执行的操作,称为循环体;
直到型循环——先循环后判断,至少循环一次。直到型循环——先循环后判断,至少循环一次。 入口 F T A 直到P为真 A P 出口 其中:P为循环判断条件; A为要重复执行的操作,称为循环体;
算法举例 例:计算5! (1×2×3×4×5) 当型循环 直到型循环
4. 结构化程序设计方法 • 结构化算法 • 由基本结构顺序组成的算法结构 • 结构化程序设计方法 • 自顶向下 • 逐步细化 • 模块化设计 • 结构化编码