花絮
一个客户呼叫服务中心的对话如下:
客户:我的计算机发出古怪的气味。
服务人员:请您检查计算机的后面,好吗?
从电话中,服务人员可以听到,客户走到它的计算机旁,然后就发出剧烈的尖叫声。
客户(愤怒地):计算机“咬”我!
服务人员不得不亲自去看个究竟,于是他安排了一次出访。当抵达客户家后,他发现计算机机箱和调制解调器之间的扁平电缆已经熔化了。所有的绝缘层都没有了,除了裸露的电缆外没有任何保护层。
服务人员拿出自己可靠的伏特欧姆表测试电缆。天啊!电缆的电压居然有110伏(5伏是正常的)。几分钟后,他跟踪问题到墙壁的电源插座上。插入电源插座的电工颠倒了一组电源插座的地线和电源线。这样不适当的配线致使调制解调器地线的电压达到110伏。当调制解调器与计算机进行连接时,就有大量的电流通过它们之间的细窄的线路,从而导致电缆的绝缘层熔化。而当客户触到这个电缆时,110伏的电流就会引起计算机“咬”他。
3.8 程序24:过于简单的除法
下面的程序对两个整数进行相除。尽管它很简单,但还是失败了。
1 /************************************************
2 * Simple divide program. ?? *
3 ************************************************/
4 #include <iostream>
5
6 int main()
7 {
8 int n1, n2; // Two integers
9
10 std::cout << "Enter two integers: ";
11 std::cin >> n1 >> n2;
12
13 if (n2 =! 0)
14 std::cout << "Result is: " <<
15 (n1/n2) << '\n';
16 else
17 std::cout << "Can not divide by zero\n";
18
19 return (0);
20 }
(请参见“提示70”和“答案25”)
花絮
真正的用户总是担心他们的计算机会被中断—— 却从来都不介意给那些导致计算机问题的编程人员一点颜色看看。
真正的用户会发现一组奇异的输入值经常关闭自己的计算机。
真正的用户痛恨真正的程序员
真正的程序员并不讨厌真正的用户,他们只是将真正的用户看作是完全不相干的因素。
真正的用户知道所使用程序的开发人员家的电话号码。
真正的用户从不知道自己想干什么,但是他们始终知道您的程序何时何处没有实现他们的想法。
真正的用户从不使用帮助键。
3.9 程序25:最大值的惊奇
下文程序中的循环设计用于打印一个问候语10次。但是,该程序却得到另外一个结果,究竟发生了什么事情呢?
注:
这个程序不能在GNU编译器和没有将预处理器指令作为标准调用来实现的其他系统上编译(它们执行更多的工作,但遗憾地是却破坏了这个程序的运行)
1 /************************************************
2 * Print a bunch of greetings. ?? *
3 ************************************************/
4 #include <iostream>
5
6 #define MAX =10
7
8 int main()
9 {
10 int counter; // Current greeting
11
12 for (counter =MAX; counter > 0; --counter)
13 std::cout <<"Hi there\n";
14
15 return (0);
16 }
(请参见“提示194”和“答案112”)
花絮
一所大学的计算机中心位于一幢较为陈旧的建筑内,工作人员们有一个非常恼火的问题。某天晚上,当操作员离开房间时,计算机重新启动了。
计算机服务技术支持人员被叫来后,很快就发现,系统只在那个操作员走进盥洗室时才重新启动。当他离开机房去喝水时,计算机并没有重新启动。
多个技术支持人员被叫来查找问题,并在出现问题计算机上设置了一大堆诊断设备,以查找问题。
最后,他们发现了引起问题的原因。那幢建筑的地板与水管相连。而那个操作员重达300磅,当他站在盥洗室中时,使地板向下弯曲几英寸,刚好致使水管分离出来,中断了与地板的连接,从而引起重新启动计算机的小故障。
3.10 程序26:问题区域
下面这个程序的目的是确保长方形的长和宽都不会太小。该程序在长度方面可正常运行,但是在处理宽度时却出现了问题。
1 /************************************************
2 * Test the logic to limit the width and height ? *
3 * of a rectangle. ?*
4 ************************************************/
5 #include <iostream>
6
7 int main()
8 {
9 // The smallest legal value
10 // of width and height
11 const int MIN = 10;
12
13 int width = 5; // Current width
14 int height = 50; // Current height
15
16 if (width < MIN) {
17 std::cout << "Width is too small\n";
18 width = MIN;
19
20 if (height < MIN)
21 std::cout << "Height is too small\n";
22 height = MIN;
23 }
24
25 std::cout << "area(" << width <<
", " <<
26 height << ")=" <<
27 (width * height) << '\n';
28 return (0);
29 }
(请参见“提示290”和“答案13”)
|