第3讲 C++程序控制结构 3.1 顺序结构 3.2 分支结构 3.3 循环结构 3.4 转向控制 3.5 综合案例分析.

Slides:



Advertisements
Similar presentations
第4章 條件判斷與迴圈 Java 2 程式設計入門與應用.
Advertisements

第一章 C语言概述 计算机公共教学部.
第4章 数组 数组是由一定数目的同类元素顺序排列而成的结构类型数据 一个数组在内存占有一片连续的存储区域 数组名是存储空间的首地址
第三章 控制结构.
第4章 选择结构程序设计 在现实生活中,需要进行判断和选择的情况是很多的 如果你在家,我去拜访你 如果考试不及格,要补考
資料大樓 --談指標與陣列 綠園.
函數(一) 自訂函數、遞迴函數 綠園.
C++程序设计 第二讲 清华大学软件学院.
第4章 函数与预处理 4.1 概述 4.2 定义函数的一般形式 4.3 函数参数和函数的值 4.4 函数的调用 *4.5 内置函数
教材 《C++程序设计》.谭浩强. 清华大学出版社 王雪晶
C程序设计.
C++语言程序设计 C++语言程序设计 第六章 指针和引用 第十一组 C++语言程序设计.
第一章 程序的基本结构. 第一章 程序的基本结构 教材及授课结构 本章目标 基本内容 扩展阅读 上机指导 应用举例 习题.
QQ: 李祥 QQ: 欢迎多种方式的学习交流,祝大家学有所成.
C++语言程序设计 C++语言程序设计 第四章 数组及自定义数据类型 C++语言程序设计.
授课老师:龚涛 信息科学与技术学院 2018年3月 教材: 《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
Object-Oriented Programming in C++ 第一章 C++的初步知识
第三章 C++中的C 面向对象程序设计(C++).
2 C++ 的基本語法和使用環境 親自撰寫和執行程式是學好程式語言的不二法門。本章藉由兩個簡單的程式,介紹C++ 程式的基本結構和開發環境,讓初學者能逐漸建立使用C++ 的信心。
程式撰寫流程.
C语言 程序设计基础与试验 刘新国、2012年秋.
第3章 程序设计初步 第4章 函数与预处理 第5章 数组 第6章 指针 第7章 自定义数据类型
C++语言程序设计 第二章 C++简单程序设计.
程序的三种基本结构 if条件分支语句 switch多路开关语句 循环语句 循环嵌套 break,continue和goto语句
谭浩强 编著 中国高等院校计算机基础教育课程体系规划教材 C++程序设计.
計數式重複敘述 for 迴圈 P
C++语言程序设计 C++语言程序设计 第六章 指针和引用 第十一组 C++语言程序设计.
切換Dev c++顯示語言 工具->環境選項(V)->介面->language (Chinese TW)
2.1 C语言的数据类型 2.2 常量与变量 2.3 变量赋初值 2.4 各类数值型数据间的混合运算 2.5 C语言的运算符和表达式
授课老师:龚涛 信息科学与技术学院 2016年3月 教材:《Visual C++程序员成长攻略》 《C++ Builder程序员成长攻略》
第2章 C++流程控制语句 if 语句 switch语句 for语句 while语句 do - while语句 break语句
第0章作业: 教材P12-练习与实践 1.写出用符号’*’输出描绘汉字”大”的流程图。
第1章 概述 本章要点: C语言程序结构和特点 C语言程序的基本符号与关键字 C语言程序的编辑及运行 学习方法建议:
第4讲 C++程序控制结构(二) 4.1 循环结构 4.2 转向控制 4.3 综合案例分析.
C++大学基础教程 第5章 数组 北京科技大学 信息基础科学系.
C++ 程式設計 基礎篇 張啟中 Chang Chi-Chung.
C++大学基础教程 第3章 C++控制语句 北京科技大学 信息基础科学系.
第二章 基本数据类型及运算 C数据类型概述 基本数据类型 运算符和表达式 混合运算与类型转换 数据的输入输出 顺序程序设计举例.
C语言概述 第一章.
第1讲 C语言基础 要求: (1) C程序的组成 (2) C语言的标识符是如何定义的。 (3) C语言有哪些基本数据类型?各种基本数
C++语言程序设计 C++语言程序设计 第五章 函数 第十一组 C++语言程序设计.
程式結構&語法.
4 條件選擇 4.1 程式基本結構 循序式結構 選擇式結構 重複式結構 4-3
第三章 C++的语句和简单的程序设计 主要内容:
第 二 章 数据类型、运算符与表达式.
C++语言程序设计 C++语言程序设计 第三章 控制语句 第十一组 C++语言程序设计.
C 语言程序设计 程序的循环结构 电大崇信县工作站 梁海亮.
第2章 算法与C语言程序 程序 (1)数据的描述:数据的类型和组织形式(数据结构) (2)操作的描述:操作步骤(算法) 沃思指出:
物件導向程式設計 CH2.
浙江长征职业技术学院—计算机与信息技术系—相方莉制作
Chap 5 函数 5.1 计算圆柱体积 5.2 使用函数编写程序 5.3 变量与函数.
7.1 C程序的结构 7.2 作用域和作用域规则 7.3 存储属性和生存期 7.4 变量的初始化
C++语言程序设计 C++语言程序设计 第二章 基本数据类型与表达式 第十一组 C++语言程序设计.
C++语言程序设计教程 第2章 数据类型与表达式 第2章 数据类型与表达式 制作人:杨进才 沈显君.
<编程达人入门课程> 本节内容 为什么要使用变量? 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ:
C++程式設計入門 變數與運算子 作者:黃建庭.
第三章 程序的控制结构 第一节 概述 第二节 if选择结构 第三节 switch语句.
第2章 基本数据及其运算 本章学习的目标: 1、掌握基本数据的各种表示,基本数据常数的书写方法;
第二章 类型、对象、运算符和表达式.
C/C++基礎程式設計班 C++: 物件的使用、參考、重載函式 講師:林業峻 CSIE, NTU 3/28, 2015.
挑戰C++程式語言 ──第9章 函數.
#include <iostream.h>
C++语言程序设计 C++语言程序设计 第二章 基本数据类型与表达式 第十一组 C++语言程序设计.
第五章 逻辑运算和判断选取控制 §5.1 关系运算符和关系表达式
C++语言程序设计 C++语言程序设计 第十章 多态 第十一组 C++语言程序设计.
《数据结构与算法设计》第一部分 面向对象的C++程序设计基础.
基本資料型態 變數與常數 運算子 基本的資料處理 授課:ANT 日期:2014/03/03.
變數與資料型態  綠園.
第三章 流程控制 程序的运行流程 选择结构语句 循环结构语句 主讲:李祥 时间:2015年10月.
C++语言程序设计 C++语言程序设计 第二章 基本数据类型与表达式 第十一组 C++语言程序设计.
Presentation transcript:

第3讲 C++程序控制结构 3.1 顺序结构 3.2 分支结构 3.3 循环结构 3.4 转向控制 3.5 综合案例分析

目标 掌握顺序结构的使用; 掌握分支结构的if和switch语句的使用; 掌握循环结构语句while、do-while和for的使用; 掌握break、continue以及goto语句的使用;

内容 3.1 顺序结构 3.2 分支结构 3.3 循环结构 3.4 转向控制 3.5 综合案例分析

3.1 顺序结构 顺序结构——程序运行时按照语句出现的顺 序依次执行。 数据的输入和输出 表达式语句 空语句 复合语句 顺序结构——程序运行时按照语句出现的顺 序依次执行。 最基本的顺序结构语句: 数据的输入和输出 表达式语句 空语句 复合语句 语句组1 语句组2

3.1 顺序结构 3.1.1 数据的输入和输出 1、键盘输入 cin >> 变量1 >> 变量2 … >> 变量n ; >> —— 提取运算符 输入数据之间用空格或回车换行符分隔。 作用—读取用户键入的数据,按相应变量的类型 转换成二进制代码写入内存。

3.1 顺序结构 变量名=getchar(); 3.1.1 数据的输入和输出 1、键盘输入 3.1.1 数据的输入和输出 1、键盘输入 若需输入空格或回车换行符,则可使用 getchar函数。 格式: char 变量名 变量名=getchar();

例 #include "stdafx.h" #include "iostream.h" #include "stdio.h“ int main(int argc, char* argv[]) { char Ent; int b; Ent=getchar(); b=Ent; cout<<Ent<<endl; cout<<b<<endl; return 0; } b=10; 回车,ASCII码13,"\r" 换行,ASCII码10,"\n"

顺序结构 3.1.1 数据的输入和输出 2、屏幕输出 作用:从内存读取数据项的值,转换成相应的字符 串显示到屏幕上。 3.1.1 数据的输入和输出 2、屏幕输出 作用:从内存读取数据项的值,转换成相应的字符 串显示到屏幕上。 cout << 表达式1 << 表达式2 … << 表达式n ; << —— 流插入运算符 输出信息顺序:从左到右 各输出项的计算顺序:从右向左

3.1 顺序结构 2、屏幕输出 其他语句: putchar(字符型) 其他输出控制符: 控制符 功能 endl 输出一个新行符,并清空流 setw ( int n ) 设置输出宽度 setfill ( char c ) 设置填充符c setprecision ( int n ) 设置浮点数输出精度(包括小数点)

P48 例3.2 #include "stdafx.h" #include <iostream> #include <iomanip> using namespace std; int main(int argc, char* argv[]) { int a=8123,b=32,c=123; double pi=3.141593; cout<<"123456789012345"<<endl; cout<<setw(3)<<a<<setw(4)<<b<<setw(5)<<c<<endl; cout<<setfill('#'); cout<<setw(10)<<setprecision(8)<<pi<<endl; return 0; }

3.1 顺序结构 3.1.2 表达式语句 任何表达式加上一个分号成表达式语句。 例如 a = 10 ; i ++ ; z=x – y ; 3.1.2 表达式语句 任何表达式加上一个分号成表达式语句。 例如 a = 10 ; i ++ ; z=x – y ; { t = a ; a = b ; b = t ; } ……

3.1 顺序结构 3.1.3 空语句 表达式为空的语句。 格式: ;

3.1 顺序结构 3.1.4 复合语句 用一对花括号“{ }”将多条语句括起来而构成 的一个逻辑语句。 例如: { int a=5; 3.1.4 复合语句 用一对花括号“{ }”将多条语句括起来而构成 的一个逻辑语句。 例如: { int a=5; cout<<a<<endl; int b=10; cout<<a+b<<endl; }

内容 3.1 顺序结构 3.2 分支结构 3.3 循环结构 3.4 转向控制 3.5 综合案例分析

钢球自动分拣系统 钢球仓 目标钢球 分拣仓 A 摄像头 反射坪 B 计算机 C

分支结构的实现语句 单分支 双分支 多分支 分支结构的两种实现语句 if switch

单分支结构 if( 表达式 ) { 语句组 } 若语句组中只有1条语句,可省略“{ }” if语句实现 真(非0) 假 (0) 表达式

例: #include "stdafx.h" #include <iostream> #include <iomanip> using namespace std; void main() { char ch1,ch2; cin>>ch1; if(ch1>='A'&&ch1<='Z') ch2=ch1-'A'+'a'; cout<<setw(4)<<ch1<<setw(4)<<ch2<<endl; } 输入字符 单分支选择 将输入的大写字母转换成小写字母。 输出间隔 输出字符

双分支结构 若语句组中只有1条语句,可省略“{ }” if语句实现 真(非0) 假(0) if( 表达式 ) { 表达式 语句组1 } else 语句组2 假(0) 语句组1 语句组2 若语句组中只有1条语句,可省略“{ }”

例:判断闰年 输入一个年份,判断它是否是闰年,给出相应的提示 int main(int argc, char* argv[]) { int year; cout<<"Input the year:"; cin>>year; if(year%4==0&&year%100!=0||year%400==0) cout<<year<<" is a leap year"<<endl; else cout<<year<<" is not a leap year!"<<endl; return 0; } 闰年是可以被4整除而不能被100整除,或者能被400整除的年份。 闰年的判断

多分支结构—第一种实现方式 if语句的第一种实现方式 if( 表达式1 ) { if( 表达式2 ) if( 表达式3 ) { 语句组1; } { 语句组3; } else { 语句组2; } { 语句组4; } } 注意:else的配对方式—“就近原则” 表达式2 真(非0) 假(0) 语句组1 语句组2 语句组3 语句组4 表达式3 表达式1

例: #include "stdafx.h" #include"stdio.h" #include<iostream> using namespace std; int main(int argc, char* argv[]) { int x,y; cout<<"Input two integrals:"; cin>>x>>y; cout<<"x="<<x<<"y="<<y<<endl; if(x!=y) { if(x>y) cout<<"x>y"<<endl; else cout<<"x<y"<<endl; } else cout<<"x=y"<<endl; return 0; 当x和y不相等时 当x>y时 当x<y时 当x和y相等时 输入两个整数

多分支结构—第二种实现方式 if语句的第二种实现方式 if(表达式1) { 语句组3 } { 语句组1 } …… { 语句组3 } { 语句组1 } …… else if (表达式2) else if (表达式n) { 语句组2 } { 语句组n } else if (表达式3) else 语句n+1 if语句的第二种实现方式 语句组2 语句组4 表达式2 表达式1 真(非0) 假(0) 表达式3 语句组3 语句组1

例: int main(int argc, char* argv[]) { int score; cout<<"Input scores:"; cin>>score; if(score>=90) cout<<"A"<<endl; else if (score>=80) cout<<"B"<<endl; else if (score>=70) cout<<"C"<<endl; else if (score>=60) cout<<"D"<<endl; else cout<<“E"<<endl; return 0; } 要求:对学生的成绩进行评定。 90以上 输出 A 89 — 80 输出 B 79 — 70 输出 C 69 — 60 输出 D 59以下 输出 E 多分支选择

Switch语句 switch case default break switch语句用于实现多分支结构,程序更加简 后跟表达式 后跟数值选择路径 默认路径 跳出机制 case2 default switch case3 case1

Switch语句 switch ( 表达式 ) { case 常量1: 语句组1; case 常量2: 语句组2; …… break; case 常量n: 语句组n; default : 语句组n+1; } break; break; break;

例: void main(void ) { int i=10; switch(i) { case 9: i++; case 10: i++; default: i++; } cout<<“i=”<<i<<endl; i=11 i=12 i=13 i=13

思考题: 如何利用C++的分支结构模拟物流自动分拣系统? 网络课程平台http://course.cn/G2S/Template/View.aspx?action=view&courseType=0&courseId=2272

内容 3.1 顺序结构 3.2 分支结构 3.3 循环结构 3.4 转向控制 3.5 综合案例分析

这幅地图上有几种颜色? 地图四色猜想 地图四色定理 1852年,英国伦敦大学学生格斯里提出 1976年,美国伊利诺伊斯大学通过计算机进行了100亿次循环, 耗时1200个小时,证明成立 地图四色定理

循环结构的作用 循环结构的作用就是让程序重复地执行某些语句。 采用循环结构可以降低程序书写的长度。 采用循环结构可使复杂问题简单化。 采用循环结构可以提高程序的可读性和执行速度。

循环结构的实现方式 while循环 循环结构 do-while循环 for循环

while循环 while( 表达式 ) { 循环体语句; } 若循环体中只有1条语句,可省略“{ }” while语句实现 假(0) 真(非0) 循环体语句 若循环体中只有1条语句,可省略“{ }”

例: 输出:21 循环条件 int k=2; while(k!=0) cout<<k, k--; cout<<endl; 循环语句为单语句,无需括号。 k 循环条件 输出 2 1 真 真 假 输出:21 2 1 回车

例: 1 2 3 void main(void) 循环条件 循环语句为多重语句,需要括号。 { int num=0; while(num<=2) { num++; cout<<num<<endl; } cout<<endl; 循环条件 循环语句为多重语句,需要括号。 1 2 3 num 循环条件 输出 1 2 3 真 真 真 假 1 2 3 回车

do-while循环结构 do { 循环体语句; } while (表达式); 若循环体语句只有1条语句,可省略“{ }” 真(非0) 假(0) do-while语句实现 do { 循环体语句; } while (表达式); 若循环体语句只有1条语句,可省略“{ }”

例: 编程计算sum=1+1/2+1/3+…+1/100的值 int main(int argc, char* argv[]) { int i=1; double sum=0.0; while (i<=100) sum+=1.0/i; i++; } cout<<"sum="<<sum<<endl; return 0; int main(int argc, char* argv[]) { int i=1; double sum=0.0; do sum+=1.0/i; i++; } while(i<=100); cout<<"sum="<<sum<<endl; return 0; 循环条件 先执行再判断 先判断再执行 循环条件 分号不可少

例:用while循环求解圆周率 π=C/d=3.1415926…. 祖冲之的割圆法 如何用编程的方法计算圆周率? 日期 计算者 纪录 前3世纪 阿基米德 π=3.1418 公元前20年 维特鲁威 π= 3.125 130年 张衡 π=3.162277... 150年 托勒密 π=3.141666... 250年 王蕃 π=3.155555... 263年 刘徽 π=3.14159 480年 祖冲之 3.1415926 <π< 3.1415927 1400年 Madhava π=3.14159265359 如何用编程的方法计算圆周率?

例:求解圆周率 算法分析 分子都是1 分母是奇数 分母从1开始 偶数项符号为负 奇数项符号为正 Leibniz定理: 高斯积分: 欧拉公式: 斯特林公式: 偶数项符号为负 欧拉公式: 奇数项符号为正

例:求解圆周率 用while循环实现程序: 计算结果 如何用do-while循环实现程序? #include <iostream.h> void main() { int i=1, d=1; float s=0; while((float)i<=1e06) s+=(float)d/(i*2-1); d=-d; i++; } cout<<“PI=”<<s*4; 用while循环实现程序: 计算结果 控制循环次数 分母的计算 控制符号 如何用do-while循环实现程序?

作业题: 利用循环结构编写程序验证? 哥德巴赫猜想: 一个不小于6的偶数可以表示为两个素数之和。 例如:6=3+3, 8=3+5, 10=3+7… 利用循环结构编写程序验证? 网络课程平台http://course.cn/G2S/Template/View.aspx?action=view&courseType=0&courseId=2272