学习目标

  1. 认识流程图
  2. 多种方式解决问题
  3. 取整方式和取整函数

1.解决编程问题的过程

1.理解题意,找出关键信息。

2.整理思路,用图或者文字写出算法。

3.将算法步骤翻译为C++代码。

4.编译运行,修改语法或逻辑错误。

不符合则需要回到上一步进行修改。
5 .输入测试用例与预期结果进行比照。

1.1描述算法的方式

【编程任务】输入两个整数,输出他们的和。

1.1.1自然语言描述算法

第1步 声明整型变量n1,n2,sum
第2步 输入n1,n2
第3步计算sum
第4步 输出sum
这种介于自然语言和计算机语言之间的描述语句叫伪代码
自然语言易于理解,但是描述复杂问题可能不准确

1.1.2思维导图描述算法

【编程任务】输入两个整数,输出他们的和

声明整型变量n1,n2,sum
输入n1,n2
加法计算 计算sum
输出sum

思维导图可以描述简单的算法,但是不能明确描述执行流程

1.1.3流程图描述算法

【编程任务】输入两个整数开始输出他们的和。

开始
声明整型变量n1,n2,sum
输入两个数给n1,n2
计算和sum
输出sum
结束

流程图.

  1. 对程序的运行过程表达更清晰
  2. 可以描述更复杂的算法流程
    在这里插入图片描述

顺序结构:

  1. 自上而下,依次执行
  2. 没有分支和回头路
    在这里插入图片描述

练习1

1、字符三角形

【编程挑战】编写一个程序,输入一个字符 (可显示字符)
输出用这个字符组成的,底边5个字符,高3个字符的等腰三角形。
【输入】输入一个字符
【输出】这个字符组成的三角形
【输入样例】#
【输出样例]
在这里插入图片描述

在这里插入图片描述

#include<iostream>
using namespace std;
int main()
{
	char c;
	cin>>c;
	cout<<"  "<<c<<endl;
	cout<<" "<<c<<c<<c<<endl;
	cout<<c<<c<<c<<c<<c<<endl; 
	return 0;
}

方法二:

#include<iostream>
using namespace std;
int main()
{
	char c;
	scanf("%c",&c);
	printf("  %c\n",c);
	printf(" %c%c%c\n",c,c,c);
	printf("%c%c%c%c%c",c,c,c,c,c);
	return 0;
}

2、 三位数逆序

【编程挑战】编写一个程序,输入一个三位整数,把各位上的
数字逆序,输出新的三位数。例如输入123,输出321。
【输入】输入1行,一个三位整数
【输出】输出1行,逆序后的三位整数
【输入样例】
123
【输出样例】
321

#include<iostream>
using namespace std;
int main()
{
	int x,y,z,w;
	cin>>x;
	y=x%10;
	z=(x/10)%10;
	w=x/100;
	cout<<y*100+z*10+w;
	return 0;
}

2.向下取整

  1. 数学中的向下取整
  2. 取小于或等于数据的最大整数
  3. 也称作地板取整
  4. 如3.1向下取整结果为3,-3.1向下取整结果为-4

3.四舍五八取整

数学中的四舍五入取整

  1. 小于5的舍去,大于或等于5的进1位
  2. 如, 3.1四舍五入结果为3,-3.1四舍五入结果为-3
  3. 3.6四舍五入结果为4,-3.6四舍五入结果为-4
  4. 3.5四舍五入结果为4,-3.5四舍五入结果为-4

4.C++的取整函数

取整方式 函数 返回值 示例
向下取整 floor(x) double类型 floor(2.5) = 2.0; floor(-2.5) = -3.0
向上取整 ceil(x) double类型 ceil(2.5) = 3.0; ceil(-2.5) = -2.0
四舍五入 round(x) double类型 round(3.4) = 3.0; round(3.5) = 4.0

要使用这些数学函数,必须在程序头包含cmath头文件:
#include
由于返回的数是double类型,需要输出整数时需要先强制转换成整数类型,再进行输出

int i = ceil(3.1);//赋值时进行自动转换round
printf("%d",i);
或者
printf("%d\n",int(ceil(3.1); /int()函数进行强制转换

例子

#include<iostream>
#include<cmath>	//ceil函数需要用到此文件头
using namespace std;
int main()
{
	printf("%d\n",int(ceil(3.1)));
	printf("%f\n",ceil(3.1));
	return 0;
 } 

1、成绩计算

学校开设了“人工智能入门"课程。这门课程的最终成绩计算方法是:
最终成绩=作业成绩x30%+小测成绩x20%+期末考试成绩x50%。
【编程挑战】编写一个程序,输入作业成绩、小测成绩和期末考试成绩,
输出向上取整和向下取整后的最终成绩。
【输入】一行,3个整数a、b、c(均大于0且小于100),即作业成绩、小测
成绩和期未考试成绩,3个数据用空格分隔
【输出】一行,向上取整和向下取整后的最终成绩 (逗号分隔)
【输入样例】89 80 93
【输出样例】90,89

#include<iostream>
#include<cmath>
using namespace std;
int main()
{
	int a,b,c;
	float d;
	scanf("%d%d%d",&a,&b,&c);
	d=a*0.3+b*0.2+c*0.5;
	printf("%d,%d",int(ceil(d)),int(floor(d)));
	
	return 0;
}

【注意】

  1. 用printf输出前,需要对取整函数返回的值进行强制类型转换
  2. 输出的两个数需要用逗号分隔

3.三位数逆序(另一种实现方式)

【编程挑战】编写一个程序,输入一个三位整数,把各位上的数字逆序
输出新的三位数。例如输入123,输出321。
【提示】把三位数当成三个字符读入,再进行逆序输出
【输入】输入1行,一个三位整数
【输出】输出1行,逆序后的三位整数
【输入样例】
123
【输出样例】
321

#include<iostream>
using namespace std;
int main()
{
	char bai,shi,ge;
	cin>>bai>>shi>>ge;
	cout<<ge<<shi<<bai;
	return 0;
}

课堂总结

本次课程的知识点
1.总结解决编程问题的一般过程
2.初步了解流程图
3.尝试用多种方式解决实际编程问题
4.学习三种不同的取整和取整函数的使用
C++编程小词典
V floor(向下取整函数
√ ceilO向上取整函数
Y round()四舍五入取整函数
g namespace std;
int main()
{
char bai,shi,ge;
cin>>bai>>shi>>ge;
cout<<ge<<shi<<bai;
return 0;
}


# 课堂总结

本次课程的知识点
1.总结解决编程问题的一般过程
2.初步了解流程图
3.尝试用多种方式解决实际编程问题
4.学习三种不同的取整和取整函数的使用
C++编程小词典
V floor(向下取整函数
√ ceilO向上取整函数
Y round()四舍五入取整函数
Y cmath数学函数头文件,取整函数需要用到此文件头
Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐