目录
3.1 程序设计的一般方法
- 程序就是按照某种算法,在有限的步骤内对一些经过整理的、按照一定形式组织起来的有关联的数据(即数据结构)进行分析研究,得到期望的结果,并且计算机可以执行的指令序列。
- 数据结构和算法是程序设计的主要因素。
- 程序设计的一般方法可以概括为以下四个步骤:
- 明确处理对象、选择算法
- 画流程图
- 编写程序
- 调试程序
- 已知三角形三条边,求三角形的面积
- 首先需要明确处理对象,选择适合的算法
- 根据数据特点和取值范围,浮点型的数据可以很好地表示三角形的边长和面积。
- 如果a、b、c符合两边之和大于第三边,则a、b、c可以组成三角形,其面积的算法可以使用海伦公式
- 第二步画流程图。
- 流程图用来表示各种操作的图框。
- 已知三角形三条边,求三角形的面积
- 第三步根据流程图编写程序。
- 选择一种计算机语言,按照流程图用该计算机语言提供的语句体编写源程序。
- 第四步调试程序。
- 对已经编写好的源程序进行上机调试,并验算结果。如果不正确,修改程序再调试,直到得到期望的结果。
3.2 结构化程序设计
- 结构化程序设计方法的基本思想是:
- 任何程序都可用三种基本结构的组合来实现。
- 这三种基本结构是:顺序结构、选择结构和循环结构。
- 这三种结构都具有一个入口和一个出口。
- 要求限制无条件转移语句(即goto语句)的使用
顺序结构:是按照书写顺序依次执行的。
选择结构:是对给定的条件进行判断,再根据判断的结果决定决定执行哪一个分支
循环结构:是在给定条件成立时反复执行某段程序。
3.3 C语言的顺序结构
顺序结构是结构化程序设计的三种基本结构中最简单的。它可以独立存在,也可以出现在选择结构或循环结构中,整个程序都存在顺序结构。在顺序结构中,函数、一段程序或者语句是按照出现的先后顺序执行的。
例 求ax2+bx+c=0方程的解。a、b、c由键盘输入,且b2-4ac>0。
算法表示:
定义a、b、c、p、x1、x2用于存放方程的系数、中间变量和结果;
输入a、b、c
p=sqrt (b*b-4*a*c)
计算x1、x2:
x1=(-b+p)/(2*a)
x2=(-b-p)/(2*a)
输出方程的根x1、x2
举一反三 :画出实现“输入三个数a、b、c,输出平均值aver”的程序的流程图和伪代码。
3.4 if 语句
- 选择结构是结构化程序的三种基本结构之一,用于根据给定条件的判断执行何种操作。C语言中的选择结构有两种:if语句和case语句。If语句主要提供两个分支的选择,case语句提供多分支的选择。下面我们先介绍最为常用的选择结构if语句。
if 语句的基本形式
if (条件)
语句1;
else
语句2;
- 判断方程ax2+bx+c=0是否有实数解,其中a、b、c由键盘输入
- 分析:用伪代码表示算法:
- 定义a、b、c、p用于存放
- 方程的系数、中间变量;
- 输入a、b、c
- 令p=b*b-4*a*c
- if (p>=0) 输出方程有实数解
- else 输出方程无实数解
由键盘输入系数a、b、c,判断方程ax2+bx+c=0是否有实数解,如果有则输出其解。
当语句2为空时,else可以省略,if语句形式变换为:
if (条件)
语句;
- 例 :由键盘输入x、y两个数,要求从大到小排序并输出。
- 分析 :
- 关键技术:两个变量互换算法是: t=x;x=y;y=t;
- 定义x、y、t用于存放输入的两个数和中间变量;
- 输入x、y
- if (x<y) {t=x;x=y;y=t;}
- 输出x、y
#include <stdio.h>
void main()
{
float x,y,t;
scanf (“%f,%f”,&x,&y);
if (x<y)
{t=x;x=y;y=t;}
printf(“%6.2f,%6.2f”,x,y);
}
当if语句中的语句1或语句2是一个含if语句的复合语句时,形成if语句的嵌套。
形式一:当语句2是if语句结构
if (条件1) 语句1
else if (条件2)
语句2
else 语句3
形式二:当语句1是if语句结构
if (条件1)
if (条件2) 语句1
else 语句2
else 语句3
例:编写程序,输入一个x,按照函数要求输出y值。
分析 :
采用形式一的算法:
定义变量x,y
输入x
if (x<0) y=-1;
else if (x= =0) y=0;
else y=1;
输出y值
采用形式二的算法:
定义变量x,y输入x
输入x if (x<=0)
if (x<0) y= -1;
else y=0;
else y=1;
输出y值
举一反三 :试判断下列选择结构是否可以表示上例函数。
if (x<0) y=-1;
if (x= =0) y=0;
else y=1;
- 在if语句嵌套中,特别注意else与if的配对问题
- C编译系统处理该问题的的原则是:else总是与同一语法层次中离它最近的尚未配对的if配对。为了避免出现else的配对错误,通常利用大括号将if-else语句结构括起来。
- 程序段一: 程序段二:
- if (a>=0) if (a>=0)
- {if (a>0) printf(“a>0\n”);} if (a>0) printf(“a>0\n”);
- else printf(“a<0\n”); else printf(“a= =0\n”);
3.4 if 语句
- 关系运算符
- < 小于
- <=小于或等于
- >大于
- >=大于或等于
- ==等于
- !=不等于
- 逻辑运算符
- &&逻辑与(相当于AND,并且)
- ||逻辑或(相当于OR,或者)
- !逻辑非(相当于NOT,非)
§3.5 switch语句
- switch语句
- 用于实现多重分支
- 格式为
switch(整型表达式)
{
case 数值1:语句1;break;
case 数值2:语句2;break;
… … … …
case 数值n:语句n;break;
default :语句n+1
}
注意:如果需要执行完本case语句后就跳出switch语句,则在对应的case语句后加上一个break语句
- switch语句
- 由键盘输入一个成绩,然后输出相应的等级“优”、“良”、“中”、“及格”、“不及格”。
#include <stdio.h>
void main()
{ int score;
printf(“请输入学生分数:”);
scanf (“%d”,&score);
switch (score)
{ case 10:
case 9: printf(“成绩优秀\n”); break;
case 8: printf(“成绩良好\n”); break;
case 7: printf(“成绩中等n”); break;
case 6: printf(“成绩及格\n”); break;
case 5:
case 4:
case 3:
case 2:
case 1:
case 0: printf(“成绩不及格\n”); break;
default : printf(“输入分数错误\n”);
}
return;
}
举一反三 :
由键盘输入等级A、B、C、D,输出成绩范围。其中“A”代表85~100分,“B”代表70~85分,“C”代表60~70分,“D”代表60分以下。
/*-----------------------------------------------------------------
程序L3_8.C : 从键盘输入0~6之间的数字,输出对应星期中的英文单词。
-----------------------------------------------------------------*/
#include <stdio.h>
main( )
{
char w;
scanf("%c",&w);
switch (w)
{ case '0': printf("Sunday\n"); break;
case '1': printf("Monday\n"); break;
case '2': printf("Tuesday\n"); break;
case '3': printf("Wednesday\n"); break;
case '4': printf("Thursday\n"); break;
case '5': printf("Friday\n"); break;
case '6': printf("Saturday\n"); break;
}
}
作业与上机练习
1.输入两个数,判断两个数的关系是“大于”、“等于”或“小于”,并输出结果。
2.从键盘任意输入三个整数,按从小到大顺序输出。
3. 判断ax2+bx+c=0方程的有几个解,如果有解则输出。系数a、b、c由键盘输入。
4. 要求输出如下菜单
主菜单
================================
-
- 输入功能
- 按学号查找
- 打印输出
0. 退出
================================
请选择 (0~3):
如果选择1,则显示“请输入”;选择2,则显示“请输入查找学生学号”;选择3,显示“正在输出”;选择0,显示“谢谢使用”;选择其它则显示“输入错误”。(用switch语句实现)。
上机题目:
- 思考题:
- 给一个不多于5位的正整数,要求:
- 1.求出它是几位数
- 2.分别打印出每一位数字
- 3.按逆序打印出各位数字,例如原数321,输出123
ps:此教程配套ppt下载地址如下,如果需要可以下一下,不过其实也无所谓,这篇文章就是全部文本。
03-控制结构-选择结构-自己使用的C语言教程PPT-适合备课或自学-C文档类资源-CSDN文库
全部课程的PPT已经整理好了,需要的童鞋可以点击下载
总-自己使用的C语言教程PPT-适合老师备课或者自学-15篇PPT合集.zip-C文档类资源-CSDN下载