博文

计算机原理(2006-07-24 13:42:00)

摘要: 计算机原理 3.1 电唱机、电话、电脑——谈谈模拟信号 3.2 数字信号 3.3 I/O设备,存储器、处理器 3.4 内存   3.4.1 内存地址   3.4.2 虚拟内存   “原理”一词,似乎总是代表艰深难度,另外还多少有些“太过理论,脱离实际”的意味。对于计算机,它的原理还偏向于硬件。基于这些,我们需要明白,在真正开始学习编程之前,我们有何必要学习一些计算机原理呢? 在大学里,计算机系有专门的一门《计算机原理》课,计算机原理的内容并不出现在计算机语言的课中。或许是这个原因,许多面向社会人员(非专业人士)的计算机编程书籍同样不讲计算机原理。这容易造成学习者也许上手很快,但学到一定程度后就难以有较深入的发展。我想,这是因为“底气不足”。 如上面提到的,计算机原理是完整的一门课,我们此处只用一章的时间阐述,所以我们必须讲最本质的原理。 3.1 电唱机、电话、电脑——谈谈模拟信号 要了解电脑的原理,不妨举一些我们早已熟悉的其它电器的例子,看看它们的原理。 假如你第一次看到一台会能说会唱的电脑,你可能会感到新奇,但事实上,别忘了,从CD机到带式的随机听,它们都没有生命却“记下”然后“说出”声音。事实上它们运行的原理,在本质和电脑完全一致,只不过由于我们太过熟悉,所以就认为它们没有什么了不起。其实,你能说出电唱机为什么能唱吗? 原始的电唱机会发唱的原理: 一张盘,表面涂一层石蜡。取一根针,针尖正好接触蜡面,针上顶一张薄膜。让帕瓦罗蒂在不远处冲着这张膜唱《我的太阳》。另有一人在老帕高歌时均速地旋转蜡盘。于是,歌声高低不同,薄膜向下压的幅度也不同,针在蜡上刻的深浅便不同,这样,就将人的声音最终以蜡上划痕的深浅记录下来。将蜡盘固化,在一套反方向的装置上:盘转,顶针上下高底不同地拉动一张膜,那张膜就会有模有样地唱《我的太阳》了。 再来看看电话的原理: 话筒内有一堆碳粉,碳粉内埋一导线,碳粉盖一张膜。同样,当你对话筒大喊大叫时,膜对碳粉造成忽紧忽松的压力,碳粉之间时紧时松,引起其电阻的大小变化,最终忽大忽小的电流传到对话的听筒。听筒内有一电磁铁随电脑大小而磁性不同,它对埋有金属丝薄膜时吸时放,薄膜便发出了你的声音。 你我都已经永远地失去了发明的电唱机或电话的机会了……伟大的先驱们是那么的聪明,懂得将一种不便于存储......

阅读全文(2701) | 评论:0

(转帖)二进制、八进制、十六进制(2006-07-24 13:32:00)

摘要:二进制、八进制、十六进制 6.1 为什么需要八进制和十六进制? 6.2 二、八、十六进制数转换到十进制数   6.2.1 二进制数转换为十进制数   6.2.2 八进制数转换为十进制数   6.2.3 八进制数的表达方法   6.2.4 八进制数在转义符中的使用   6.2.5 十六进制数转换成十进制数   6.2.6 十六进制数的表达方法   6.2.7 十六进制数在转义符中的使用 6.3 十进制数转换到二、八、十六进制数   6.3.1 10进制数转换为2进制数   6.3.2 10进制数转换为8、16进制数 6.4 二、十六进制数互相转换 6.5 原码、反码、补码 6.6 通过调试查看变量的值 6.7 本章小结
这是一节“前不着村后不着店”的课。不同进制之间的转换纯粹是数学上的计算。不过,你不必担心会有么复杂,无非是乘或除的计算。 生活中其实很多地方的计数方法都多少有点不同进制的影子。 比如我们最常用的10进制,其实起源于人有10个指头。如果我们的祖先始终没有摆脱手脚不分的境况,我想我们现在一定是在使用20进制。 至于二进制……没有袜子称为0只袜子,有一只袜子称为1只袜子,但若有两袜子,则我们常说的是:1双袜子。 生活中还有:七进制,比如星期。十六进制,比如小时或“一打”,六十进制,比如分钟或角度……   6.1 为什么需要八进制和十六进制?   编程中,我们常用的还是10进制……必竟C/C++是高级语言。 比如: int a = 100,b = 99; 不过,由于数据在计算机中的表示,最终以二进制的形式存在,所以有时候使用二进制,可以更直观地解决问题。 但,二进制数太长了。比如int 类型占用4个字节,32位。比如100,用int类型的二进制数表达将是: 0000 0000 0000 0000 0110 0100 面对这么长的数进行思考或操作,没有人会喜欢。因此,C,C++ 没有提供在代码直接写二进制数的方法。   用16进制或8进制可以解决这个问题。因为,进制越大,数的表达长度也就越短。不过,为什么偏偏是16或8进制,而不其它的,诸如9或20进制呢? 2、8、16,分别是2的1次方,......

阅读全文(1433) | 评论:0

05年联赛普及组选择题(2006-07-23 22:18:00)

摘要:第十一届全国青少年信息学奥林匹克联赛初赛试题
         (普及组 pascal 语言  二小时完成)
        ●●全部试题答案要求写在答题纸上,写在试卷纸上一律无效●●
一.选择一个正确的答案代码(A/B/C/D/E),填入括号内(每题1.5分,共30分)
1.在字符串“ababacbabcbdecced”中出现次数最多的字母出现了(B )次。
   A.6                        B.5                         C.4                         D.3                   E.2

2.设全集I={a,b,c,d,e,f,g,h},集合A={a,b,c,d,e,f},B={c,d,e},C={a,d},那么集合A∩B∩~C为(A )。
   A.{c,e}   &nb......

阅读全文(2345) | 评论:2

03年联赛提高组选择题(2006-07-23 21:43:00)

摘要:一.单项选择题  (共10题,每题1.5分,共计15分。每题有且仅有一个正确答案.)。
1.  图灵 (Alan Turing) 是 (     B )。
    A) 美国人    B) 英国人     C) 德国人      D) 匈牙利人      E) 法国人 2.  第一个给计算机写程序的人是(    B  )。
    A) Alan Mathison Turing    B) Ada Lovelace         C) John von Neumann
    D) John Mc-Carthy          E) Edsger Wybe Dijkstra 3.  十进制数2003等值于二进制数(  D    )。
    A) 0100000111   B) 10000011    C) 110000111  D) 11111010011  E) 1111010011 4.  假设A=true,B=false,C=ture,D=ture,逻辑运算表达式A∧B∨C∧D的值是( A  )。
    A) ture       B) false      C) 0   &nb......

阅读全文(1894) | 评论:0

04年联赛提高组选择题(2006-07-23 21:29:00)

摘要:一、 单项选择题 (共10题,每题1.5分,共计15分。每题有且仅有一个正确答案.)。   1.         设全集I = {a, b, c, d, e, f, g},集合A = {a, b, c},B = {b, d, e},C = {e, f, g},那么集合
为(  A)。 A. {a, b, c, d}   B. {a, b, d, e}   C. {b, d, e}   D. {b, c, d, e}   E. {d, f, g}   2.         由3个a,5个b和2个c构成的所有字符串中,包含子串“abc”的共有( D )个。 A. 40320   B. 39600   C. 840   D. 780   E. 60   3.         某个车站呈狭长形,宽度只能容下一台车,并且只有一个出入口。已知某时刻该车站状态为空,从这一时刻开始的出入记录为:“进,出,进,进,出,进,进,进,出,出,进,出”。假设车辆入站的顺序为1,2,3,……,则车辆出站的顺序为(E  )。 A. 1, 2, 3, 4, 5   B. 1, 2, 4, 5, 7   C. 1, 3, 5, 4, 6   D. 1, 3, 5, 6, 7   E. 1, 3, 6, 5, 7   4.         满二叉树的叶结点个数为N,则它的结点总数为(  C)。 A. N   B. 2 * N   C. 2 * N – 1   D. 2 * N + ......

阅读全文(1687) | 评论:0

局域网内禁止上QQ(2006-05-27 18:53:00)

摘要:在局域网中如何禁止上QQ, 我们学校用的是“TL-R480E增强型网吧专用宽带路由器”,在路由器的“安全设置”中“IP地址过滤”中添加新条目, 设置成如下: ———————————————————————— ———————————————————————— 说明: 1、生效时间为:早上7点到晚上11点50分 2、局域网ip:禁止局域网IP的范围 3、广域网ip:QQ的服务器地址 4、通过:禁止通过。......

阅读全文(4223) | 评论:1

计算机概论(2006-05-11 23:05:00)

摘要:1、计算机的发展、分类与展望 2、计算机的特点及应用 3、信息的表示及存储 4、计算机系统概述 5、计算机与信息社会  ———————————————————— 另外, 以下这篇关于“计算机概述”的文章也不错,图文结合的哦。 转自:http://www.xm818.com/noi/html/cjjccomputer.htm 具体内容如下: 一、计算机的定义
  1、计算机(Computer)是一种按程序自动进行信息处理的通用工具,俗称“电脑”。
  2、计算机的工作原理是“存储程序控制”,这也是计算机区别于其他计算设备的特点。即将要完成的工作用计算机程序描述出来并存入计算机中,然后利用这些程序控制计算机无限次自动进行相应操作。举个简单的例子:我们要完成2+3=?这个运算利用计算器,每次都要顺次按下 2 + 3 = 这几个键。利用计算机,只要将下列程序以文件A的形式存储在计算机中:     int n;     n=2+3;     printf(n);   输入A就能随时得到正确的结果。 二、计算机的发展(近代计算机发展阶段→现代计算机发展阶段→微机及网络发展阶段)
   1、近代计算机发展阶段(1822-1944):机械式或机电式计算机,代表人物是英国数学家查尔斯.巴贝奇。
   2、现代计算机发展阶段(1946-?):传统大型机阶段,主要采用电子技术;代表人物英国科学家图灵(建立理论模型、可计算性模型、机器智能测试)、美籍匈牙利科学家冯.诺依曼(建立计算机的基本结构,即冯.诺依曼结构)
   电子管时代(1946-1958):采用电子管作为逻辑开关元件,结构上以中央处理机为中心,使用机器语言,存储量小,主要用于数值计算;存储器使用水银迟线、静电存储管、磁鼓等;外部设备采用纸带、卡片、磁带等;使用机器语言,开始出现汇编语言,还没有操作系统;主要用于军事目的和科学研究,具有体积大、耗电多、可靠性差、速度慢、维护困难等特点。注:ENIAC埃尼亚克,1946年诞生于美国宾西法尼亚大学,是公认的第一台电子计算机;EDSAC埃德沙克,第一台存储程序计算机;UNIVAC尤尼瓦克,第一台商品化计算机。
   晶体管时代(1959-1964):采用半导体晶体管作为逻辑开关元件,结构上以存储器为中心......

阅读全文(2343) | 评论:0

C语言免费教学网站,没C课本的话,就用它吧。(2006-05-11 22:37:00)

摘要:....在线学习主要为同同学们创造了一个学习C语言的环境,提供了一套完整的网络版教材,在那您可以应用教材来实现现代技术带来的网络化的教学环境,足不出户地享受学习的乐趣!  ......

阅读全文(2268) | 评论:1

《C程序设计》第七章算法之排序算法(2006-04-30 21:45:00)

摘要:排序算法总结     在第七章《数组》中涉及到选择法排序以及冒泡法排序,排序算法在《C程序设计》中的位置还是挺重要的。今天我们来总结一下排序算法。   一、交换法。   在前段时间,我们已经学过了对两个数或者三个数进行排序。用的方法是交换法。 交换法的原理是:要交换a,b杯的水,要借助空杯cup,先把a杯的水倒入cup中,此时a空,再把b杯中的水倒入a中,此时b空,最后把cup中的水倒入b中,实现a,b杯水的交换。 例如,要使a,b两个数由小到大排列。 if(a>b){ cup=a;a=b;b=cup;}   要使a,b,c由小到大排列。 if(a>b){cup=a;a=b;b=cup;} if(a>c){cup=a;a=c;c=cup;} if(b>c){cup=b;b=c;c=cup;}   二、选择法排序。   其原理是:从数据中选择最小的同第一个值交换,在从省下的部分中 选择最小的与第二个交换,这样往复下去。   交换法 选择法 for(i=1;i<=9;i++)
for(j=i+1;j<=10;j++) if(a[i]>a[j]) 
{temp=a[i];
a[i]=a[j];
a[j]=temp;
} for(i=1;i<=9;i++) {  min=i; for(j=i;j<=10;j++)   if(a[min]>a[j])min=j;   temp=a[i];   a[i]=a[min]   a[min]=temp; }  

      三、冒泡法排序,也叫起泡法排序。   冒泡法排序的思路是:将相邻两个数比较,将小的调到前头(由小到大排)。 若有n个数,则有进行n-1......

阅读全文(4870) | 评论:1

《C程序设计》第五章第六章算法总结(2006-04-27 20:35:00)

摘要:第五章 选择结构 1. 求闰年    判别某一年year是否为闰年。条件是:    能被4整除,但不能被100整除;能被400整除。    if((year%4==0&year%100!=0)||(year%400)==0)
printf("%d is a leap year",year);
else
printf("%d is not a leap year",year);   2. 交换法    空杯原理:要交换a、b杯的水,要借助第三个杯cup,先把a杯的水倒入到cup中,此时a空,再把b杯的水倒入a中,此时b空,最后把cup中的水倒入b杯,这样就实现了a、b杯水的交换。 例1:按代数值由小到大次序输出两个数。 if(a>b) {cup=a;a=b;b=cup;}      例2:求三个数a,b,c由小到大顺序输出。    用交换法,算法是,使最小值赋值给a,第二小赋值给b,最大值赋值给c。    所以a 先与b 比较,如果a>b,就交换它们的值;然后a与c比较,如果a>c就互换。这两个步骤得到a最小。最后比较b和c,如果b>c,就交换它们的值。 if(a>b) {cup=a;a=b;b=cup;}
if(a>c) {cup=a;a=c;c=cup;}
if(b>c) {cup=b;b=c;c=cup;}   /* 这样,书本上的习题“输入四个整数,要求按由大小顺序输出。”就难不倒你了。 */     第六章 循环控制 1. 累加(循环应用一)    如书本上的例题:1+2+3+……+100    定义两个变量:sum存累加和;i为每一次循环的加数。    变量初始值:sum=0;i=1;    每次循环结束前,要计算下一次i的值。    While(i<=100)    { sum=sum+i; /*sum存累加和*......

阅读全文(2942) | 评论:0