C语言逻辑思维与计算机解题..ppt
上节课练习题 设计一个程序,验证 j=a+++b 如何运算 设计一个程序,验证 x=a%b 运算中正负数的影响 编程计算下面算式的值(当x=8和0.5时) 输入语句说明 int scanf (格式控制字符串,地址1,地址2,…); 如:int x;float y; scanf(“%d%f”,&x,&y); 语句中的格式符说明的类型与数目应与变量类型及数目一致 输入时数据的分割符:空格、回车、制表符 强制分割符: scanf(“%d,%f,%d”,&a,&b,&c) 输入前的必要说明 例Z1_4.c 第2部分 逻辑思维与计算机解题 2.1 程序的概念 程序是可以被计算机处理的指令序列。通常,程序是为完成一项任务、由汇编语言或高级语言编写的代码的集合。程序设计是根据所提出的任务,用某种程序设计语言编制一个能正确完成该任务的计算机程序。 2.1.1 程序的特性 著名的计算机科学家沃思(Nikiklaus Wirth)提出一个公式:程序=数据结构+算法。 现在又有很多专家对这个公式加以扩充:程序=算法+数据结构+程序设计方法+语言工具和环境。 所有程序(包括计算机程序)都有一些共同的性质,这些性质主要包括: (1)指令是顺序执行的。 (2)程序的执行都有一个结果。 (3)程序总是要对某些对象进行操作。 (4)有时指令要求执行者做出判断。 (5)一条或一组指令可能需要执行多次。 2.2 算 法 程序设计离不开算法,算法指导程序设计,算法是程序的灵魂。因此程序设计的大致步骤如下。 (1)问题定义 (2)算法设计 (3)算法表示 (4)程序编制 (5)程序调试、测试及资料编制 算法特性: (1)有穷性。 有穷性指算法所规定的操作序列必须在允许的时间内结束。 (2)确定性。 一是:所描述的操作应当具有明确的意义,不应当有歧义性。 一是: 操作序列只有一个初始动作,序列中每一动作仅有一个后继动作; (3)有效性。 有效性指算法所规定的操作都应当是能够有效执行的。 (4)有零个或多个输入。 (5)有一个或多个输出。 2.2.2 算法的表示 1.流程图表示法 常用的图例主要有以下所示的几种。 2.N-S图描述 灵活的流线是程序中隐藏错误的祸根。针对这一弊病,1973年美国学者I. Nassi和B. Shneiderman提出了一种无流线的流程图,称为N-S图。 N-S图表示法 3伪码表示法 伪码是用介于自然语言和计算机语言之间的文字和符号来描述算法,类似一篇短文,它把算法的思想表达清楚。 2.3 计算机解题初步——问题的提出 班里有四位同学中的一位做了好事,不留名,表扬信来了之后,校长问这四位是谁做的好事。 A说:不是我。 B说:是C。 C说:是D。 D说:他胡说。 已知三个人说的是真话,一个人说的是假话。现在要根据这些信息,找出做了好事的人。 主要学习内容 目标:了解什么是程序设计,如何把一个问题用计算机程序实现,即如何编程序,计算机如何进行逻辑判断;学习相关语句: 关系运算符与关系表达式 穷举法解题思路 循环结构 分支结构 一种解题的方法 一、关系运算符和关系表达式 关系运算:两个相同类型的量进行比较,得到真或假的结果。 C中的关系运算符: >大于 =大于等于 <= 小于等于 == 等于 !=不等于 关系表达式 关系运算符 例 b>c,测试b>c这种关系是否成立,成立为真,不成立为假。 成 立 —— 关系表达式的值为1; 不成立 —— 关系表达式的值为0。 C中逻辑值的表示:整数“1”表示“真”,“0”表示“假” // 程序S2_1.c #include void main( ) { int b,c;// 整型变量 b=3;c=2;// 对变量赋值 printf(“b> c 是 %d\n”,(b>c)); // 输出逻辑值 printf(“b>=c 是 %d\n”,(b>=c)); printf(“b==c 是 %d\n”,(b==c)); printf(“b< c 是 %d\n”,(b