项目2-1与火星对话
火星距离地球的最近点大约有34000000英里。假设我们想与火星上的某个人进行交谈,那么从无线电信号离开地球到信号到底火星的时间延迟是多少了?该项目就是创建一个程序来回答该问题。无线电信号是以光速传播的,大约为186000英里/秒钟。因此为了计算时间延迟,我们需要用距离除以光速。程序分别以秒和分钟为单位输出时间延迟。
步骤:
1. 创建一个新的文件叫做Mars.cpp。
2. 在计算时延的过程中,我们需要使用浮点数。为什么了?因为时间差可能是含有小数的。下面是程序中使用的变量:
double distance;
double lightspeed;
double delay;
double delay_in_min;
3. 按照如下的代码初始化变量distance和lightspeed:
distance = 34000000.0; // 34,000,000英里
lightspeed = 186000.0; // 186,000英里每秒钟
4. 计算时延时用距离除以光速。这样得到的结果是以秒钟为单位的。把得到的结果赋值给变量delay并显示之。这步如下所示:
delay = distance / lightspeed;
cout << "Time delay when talking to Mars: " << delay << " second . /n"
5. 时延的秒数除以60得到以分钟为单位的时延。使用下面的代码显示出结果。
delay_in_min = dely / 60.0;
cout << "This is " << delay_in_min << " minutes.";
6. 整个程序如下:
/*
Project 2-1 Talking to Mars
*/
#include <iostream>
using namespace std;
int main()
{
double distance;
double lightspeed;
double delay;
double delay_in_min;
distance = 34000000.0; // 34,000,000 miles
lightspeed = 186000.0; // 186,000 per second
delay = distance / lightspeed;
cout << "Time delay when talking to Mars: " << delay << " seconds./n";
delay_in_min = delay / 60.0;
cout << "This is " << delay_in_min << " minutes.";
return 0;
}
7. 编译并运行这个程序。输出结果如下:
Time delay when talking to Mars: 182.796 seconds.
This is 3.04659 minutes.
8. 也可以自己写程序计算与火星双向对话时的时间延迟。