教程文档下载地址:
http://pan.baidu.com/s/1qWpWDg4
grub4dos下载地址:
http://pan.baidu.com/s/1hqhyLI8
在安装AUTOCAD2007简体中文免激活版时,其中的一个可执行文件dfst.dll被杀毒软件误删,安装不能正常进行.
其实就是一个类似路由器的接入设备+最后100米的星形连接而已。点开标题看全图

上图是接入设备控制器在 3楼和2楼楼道间,可见取中间位置安放,上下省线的思想

12根网线到了2楼,其中2根往1楼,10根为2-6楼

2楼得到了2根

3楼为10

3-6楼的 8根图,因为一个楼层2户人家。

4楼的图,白色的管为走线管,通过楼梯与楼梯传上去的,估计建楼时还没10M的概念。

4-6楼的6根图


5楼的走线图

6楼的走线图

到了6楼只剩下可怜的2根了。

3楼的2根引到两户的接线图


控制接线盒处往外引

引导了楼外的墙上

从楼外拍摄

从楼外拍摄引线

线下来后,瞬间塑料管,进入了冬青里

冬青啊,冬青,你可知道你脚下的传输速度到了了如此之快。

其他一单元的引线图。
寻址方式有直接寻址和间接寻址。
直接寻址有绝对地址和符号寻址。
间接寻址分为存储器间接寻址和寄存器间接寻址。间接寻址的指针分为16位指针和32位指针,而32位指针又分为内部区域寻址和交叉区域寻址。
1.存储器间接寻址
1.1 16位指针:16位指针用于定时器、计数器、程序库(DB、FC、FB)的寻址,16位指针被看作一个无符号整数(0-65535),它表示定时器(T)、计数器(C)、数据库(DB、DI)或程序块(FB、FC)的号。
寻址格式表示为:区域标识符[16位地址指针]
//用于定时器
L 1
T MW0 //将1传送到MW0
A I0.0//如果I0.0 = True
L S5T#10S
SD T[MW0] //T1开始计时
// 上述指令可等同于:
A I0.0
L S5T#10S
SD T1
//用于打开DB块
L 20
T LW20
OPN DB[LW20] //打开DB20
//程序调用
L 2
T LW20
UC FC[LW20] //调用FC2
L 41
T DBW30
UC FB[DBW30] //调用FB41
1.2 32位指针:32位地址指针用于I、Q、M、L、数据块DB等存储器中位、字节、字及双字的寻址,32位指针可以使用一个双字表示,第0位-第2位作为寻址操作的位地址,第3位-第18为作为寻址操作的字节地址,第19位-第31为没有定义。
寻址格式为:地址存储器标识符[32位地址指针]
例如写入一个M的双字表示为:
T MD[LD0] ‘MD为区域标识符及访问宽度,而LD0为一个32位指针’。
32位内部区域指针也可用常数标识,表示为P#字节.位。
P#10.3 为指向第10个字节第3位的指针常数
以下语句表的功能是间接寻址 将DB1.DBW20的数据传送到MW8
L 20 //装载常数20
T MD 4 //传送到MD4
L MD 4 //装载MD4的值
SLD 3 //左移3位
T MD 4 //又传送到MD4
OPN DB 1 //打开数据块DB1
L DBW [MD 4] //装载DB1.DBW20
T MW 8 //传送到MW8
2.寄存器间接寻址
通过CPU的地址寄存器AR1和AR2寻址方式称为寄存器间接寻址,分为内部区域间接寻址和交叉区域寻址。
指令,地址标识符,地址寄存器标识符,偏移量
AR1,AR2均为32位寄存器,寄存器间接寻址只使用32位指针。、
指令有以下: LAR1,LAR2,TAR1,TAR2,+AR1,+AR2,LAR1 AR2,CAR等。
2.1内部区域寄存器间接寻址
格式为:存储器标识符[ARx,地址偏移量]
第0位-第2位为寻址操作的为位地址,第3位-第18位为寻址操作的字节地址。第19位-第31为没有定义。
//DB块寄存器内部寻址
OPN DB 1 //打开DB1
LAR1 P#10.0 //将指针P#10.0装载到地址寄存器1中
L DBW [AR1, P#12.0] //将DBW22装载到累加器1中
LAR1 MD 20
L DBW [AR1, P#0.0] //原来DBW偏移MD20装载到累加器1中
+I
LAR2 P#40.0 //将指针P#40.0装载到地址寄存器2中
T DBW [AR2, P#0.0] //运算结果传送到DBW40中
2.2交叉区域寄存器间接寻址
包含有存储器区域信息的指针,称为交叉区域指针。
同样,交叉区域指针为32位,寄存器间接寻址要使用地址寄存器AR1或AR2.
32位交叉区域指针,左起0-18位格式与32位内部区域指针相同,19-23位,27-30位未定义,31位为交叉区域指针标识符。
24-26位是存储区域地址标识,8种组合表示8种存储器区域:
001 表示输入地址区I,例如P#I12.0;
010 表示输出地址区Q,例如P#Q12.0;
011 表示标志位地址区M,例如P#M12.0;
100 表示数据块(DB)中的数据,例如P#DB
101 表示数据块(DI)中的数据,例如P#DI1.DIX12.0
110 表示区域地址区L,例如P#L12.0;
111 表示调用程序块的区域地址区V,例如P#V12.0
交叉区域指针常数表达为:P#存储器字节.位
交叉区域寻址表示为:访问宽度[ARx,偏移量]
//M存储区
L P#M20.0
LAR1
L 1234
T W[AR1, P#2.0]
//I存储区
L P#I0.0
LAR2
L W[AR2, P#0.0 ]
T MW0
下载地址:http://pan.baidu.com/s/1zMmAW
根据我昨日证明公式13+23+33+…+n3=n2(n+1)2/4的方法,我重新排列了正方形的位置,终于成功证明了公式12+22+32+…+n2=n(n+1)(2n+1)/6。证明图如下:

图中有n个正方形(我只画出5个),都置于图中最大的矩形中。
矩形的宽即n
矩形的长:1+2+3+…+n=n(n+1)/2=(n2+n)/2
矩形面积:n(n2+n)/2=(n3+n2)/2
左下部空余部分(矩形与全部正方形的差)可以分为n-1条。
每条宽度均为1。从上向下数第i条长度=1+2+3+…+i=i(i+1)/2=(i2+i)/2
则第i条面积也为(i2+i)/2。
所有n-1条的总面积:
(12+1)/2+(22+2)/2+(32+3)/2+…+[(n-1)2+(n-1)]/2
={[12+22+32+…+(n-1)2]+[1+2+3+…+(n-1)]}/2
=[(12+22+32+…+n2)-n2+n(n-1)/2]/2
=[(12+22+32+…+n2)-2n2/2+(n2-n)/2]/2
=[(12+22+32+…+n2)-(n2+n)/2]/2
为便于书写,记12+22+32+…+n2=t2
显然,大矩形面积=全部正方形面积+空余部分面积,则
(n3+n2)/2=t+[t-(n2+n)/2]/2
n3+n2=2t+t-(n2+n)/2
2n3+2n2=6t-n2-n
6t=2n3+3n2+n
t=n(n+1)(2n+1)/6
即:
12+22+32+…+n2=n(n+1)(2n+1)/6
为证明12+22+32+…+n2=n(n+1)(2n+1)/6,我决定借助于几何图形。如图:

图中有n个小正方形(我只画了5个)连接,边长分别为1、2、3、…、n。这些小正方形都置于一个大正方形中,则
大正方形边长=1+2+3+…+n=n(n+1)/2
大正方形面积=[n(n+1)/2]2=(n4+2n3+n2)/4
将空余部分分条。
先看左下部分,共有n-1条。设某条按从左到右顺序为第i条,则:
该条宽度即为i。
该条长度=(i+1)+(i+2)+(i+3)+…+n=(n-i)(n+i+1)/2=(n2+n-i2-i)/2
则该条面积=i(n2+n-i2-i)/2=(in2+in-i3-i2)/2
则左下半侧n-1条总面积为:
(1*n2+1*n-13-12)/2+(2*n2+2*n-23-22)/2+(3*n2+3*n-33-32)/2+…+[(n-1)*n2+(n-1)*n-(n-1)3-(n-1)2]/2
={[1*n2+2*n2+3*n2+…+(n-1)n2]+[1n+2n+3n+…+(n-1)n]-[13+23+33+…+(n-1)3]-[12+22+32+…+(n-1)2]}/2
={[1+2+3+…+(n-1)]n2+[1+2+3+…+(n-1)]n-[13+23+33+…+(n-1)3]-[12+22+32+…+(n-1)2]}/2
=[n(n-1)/2*n2+n(n-1)/2*n-(13+23+33+…+n3)+n3-(12+22+32+…+n2)+n2]/2
=[n3(n-1)/2+n2(n-1)/2-(13+23+33+…+n3)-(12+22+32+…+n2)+n3+n2]/2
为方便书写,记13+23+33+…+n3=t2,12+22+32+…+n2=t3
两侧全部空余部分面积为:
n3(n-1)/2+n2(n-1)/2-t2-t3+n3+n2
=(n4-n3)/2+(n3-n2)/2+2n3/2+2n2/2-t2-t3
=(n4-n3+n3-n2+2n3+2n2)/2-t2-t3
=(n4+2n3+n2)/2-t2-t3
根据:空余部分面积+小正方形面积=大正方形面积,得:
(n4+2n3+n2)/2-t2-t3+t3=(n4+2n3+n2)/4
t2=(n4+2n3+n2)/2-(n4+2n3+n2)/4
t2=(2n4+4n3+2n2)/4-(n4+2n3+n2)/4
t2=(n4+2n3+n2)/4=n2(n+1)2/4
即:
13+23+33+…+n3=n2(n+1)2/4
本来要证12+22+32+…+n2=n(n+1)(2n+1)/6,却证出了13+23+33+…+n3=n2(n+1)2/4,可谓“有心栽花花不成,无心插柳柳成荫。”
12+22+32+…+n2=1/6*n(n+1)(2n+1)是在竞赛中较常用的公式。但一般的竞赛参考书只给出公式,不给予证明。在和同学探讨证明方法时,许多同学想到了用数学归纳法。
方法一:数学归纳法
当n=1,左边=12=1,右边=1/6*1*(1+1)*(2*1+1)=1
左边=右边,∴n=1时,原式成立.
假设n=k时, 12+22+32+…+k2=[k(k+1)(2k+1)]/6成立,
则n=k+1时,
左边=12+22+32+…+k2+(k+1)2
=1/6*k(k+1)(2k+1)+(k+1)2
=(k+1)(1/3*k2+7/6*k+1)
=1/6*(k+1)(2k2+7k+6)
=1/6*(k+1)(k+2)(2k+3)
=1/6*(k+1)[(k+1)+1][2(k+1)+1]
右边=1/6*(k+1)[(k+1)+1][2(k+1)+1]
左边=右边,
∴n=k+1时,原式成立.
又∵n=1时,原式成立,
∴对任意n∈Z+,12+22+32+…+n2=1/6*n(n+1)(2n+1)都成立.
数学归纳法步骤简单、计算方便。但是,我们对此不太满足。归纳法只适用于知道了这个公式”长什么样”后进行理论证明.当初第一个推导出这个公式的人,肯定不是用归纳法,而是通过等式左边的12+22+32+…+n2,一步步把右边的1/6*n(n+1)(2n+1)”从无到有”地推算出来的.
我们几个同学也决定试试.
一位同学表示:”可不可以从以前学过的一个简单的公式1+2+3+…+n=1/2*n(n+1)中得到点启发? 1+2+3+…+n=1/2*n(n+1)的左边是连续正整数的一次方相加,右边的化简式却是个二次整式.现在我们看到的12+22+32+…+n2是连续正整数的平方相加,应该可以大胆猜测,它的化简式是个三次整式.”
大家表示赞同:”有那么多平方的式子,从立方的角度去研究,就有种’居高临下’的感觉,应该有助于解决问题.可以从有关立方的几个公式出发,把它往12+22+32+…+n2上面转化.”
经过我们的努力,找到了一种不错的方法如下:
方法二:代数推导法
由公式(a+b)3=a3+3a2b+3ab2+b3=a3+3ab(a+b)+b3,得
13=(0+1)3=03+3*0*1*(0+1)+13=03+3*0*1+1
23=(1+1)3=13+3*1*1*(1+1)+13=13+3*1*2+1
33=(2+1)3=23+3*2*1*(2+1)+13=23+3*2*3+1
……
n3=(n-1+1)3=(n-1)3+3*(n-1)*1*(n-1+1)+13=(n-1)3+3n(n-1)+1
将以上所有连等式的最左边和最右边分别加起来,得,
13+23+33+…+n3=03+13+23+…+(n-1)3+3*[0*1+1*2+2*3+…+(n-1)*n]+n
将左右两边相同的项消去,得
n3=3*[0*1+1*2+2*3+…+(n-1)*n]+n,整理得
0*1+1*2+2*3+…+(n-1)*n=1/3*(n3-n)
而0*1+1*2+2*3+…+(n-1)*n
=12+22+32+…+n2-(1+2+3+…+n)
= 12+22+32+…+n2-1/2*n(n+1)
所以12+22+32+…+n2-1/2*n(n+1)=1/3*(n3-n)
即12+22+32+…+n2
=1/2*n(n+1)+1/3*(n3-n)
=1/6*n(n+1)(2n+1)
完成了代数推导法后,大家都觉得刚才那位同学说的,”从1+2+3+…+n=1/2*n(n+1)中得到启发”体现了一种类比思想,非常好.那么,这个公式能不能从其他角度启发我们呢?
“我们以前学1+2+3+…+n=1/2*n(n+1),是怎么证明它的?”又一位同学问.
大家说了许多方法,但是好像都难以推广到12+22+32+…+n2上来.
“我倒听说过一种几何方法”,我说,”如图1,每个小正方形边长为1,一共有n行小正方形,第一行有1个,第二行有2个,第三行有3个……第n行有n个.所有小正方形的面积之和就是(1+2+3+…+n),而所有小正方形的面积之和又等于一个直角边为(n+1)的等腰直角三角形的面积减去阴影部分的面积.阴影部分由(n+1)个直角边为1的等腰直角三角形组成.所以1+2+3+…n=1/2*(n+1)^2-1/2*(n+1)=1/2*n*(n+1).

图1
大家纷纷表示这个方法有意思:”既然用’面积思想’可以来证1+2+3+…n=1/2*n*(n+1),那么12+22+32+…+n2应该能用’体积思想’化简.”我们探讨之后,得到了第三种方法:
方法三:立体几何法
如图2,这堆”积木”是由1*1*1的小立方体搭起来的.从上往下数,它的第一层有1块小立方体,第二层有2^2块,第三曾有3^2块……第n层有n^2块.

图2
因此它的体积可以用12+22+32+…+n2来表示.
这堆积木的形状不规则,体积不便计算.但通过添加一些”边角料”,可以让它变成一个规则的四棱锥,如图3.

图3
四棱锥的体积减去的”边角料”的体积,就得到所有小立方体的总体积.
四棱锥的
在Ubuntu 12.10中使用root进行登录方法类似。
注意:新装系统可能没有启用root,在终端其他管理员用户登陆下可以用sudo passwd root来为root用户设定一个密码
1、切换到root用户.su root
2、备份一下lightgdm
cp -p /etc/lightdm/lightdm.conf /etc/lightdm/lightdm.conf.bak
3、编辑lightdm.conf
gedit /etc/lightdm/lightdm.conf
5、最后加:
greeter-show-manual-login=true
修改后为:
[SeatDefaults]
greeter-session=unity-greeter
user-session=ubuntu
greeter-show-manual-login=true
重启登陆即可。已经可以输入root了。
注意:如果root登陆后还没声音,又查了查,如下方法:
Ubuntu root登录没有声音这个问题的根本原因是使用root登录后pulseaudio没有启动。
login as root ,then :
将root加到pulse-access组:
usermod -a -G pulse-access root
启动pulseaudio
pulseaudio --start --log-target=syslog
这本书的主旨也很拉风----本书是地球上最有名、最受推崇、最多人使用的程序设计用书。
在讲到第四章--输出文字这一章节的开头,值得细细的明白。
大多数Windows 程式在WinMain 中进入讯息回调之前的初始化期间都要呼叫函式UpdateWindow。Windows 利用这个机会给视窗讯息处理程式发送第一个WM_PAINT 讯息。这个讯息通知视窗讯息处理程式:必须绘制显示区域。此后,视窗讯息处理程式应在任何时刻都准备好处理其他WM_PAINT 讯息,必要的话,甚至重新绘制视窗的整个显示区域。在发生下面几种事件之一时,视窗讯息处理程式会接收到一个WM_PAINT 讯息:
1.在使用者移动视窗或显示视窗时,视窗中先前被隐藏的区域重新可见。
2.使用者改变视窗的大小(如果视窗类别样式有著CS_HREDRAW 和CS_VREDRAW位元旗标的设定)。
3.程式使用ScrollWindow 或ScrollDC 函式滚动显示区域的一部分。
4.程式使用InvalidateRect或InvalidateRgn函式刻意产生WM_PAINT讯息。
5.在某些情况下,显示区域的一部分被临时覆盖,Windows 试图保存一个显示区域,并在以后恢复它,但这不一定能成功。在以下情况下,Windows 可能发送WM_PAINT 讯息:
Windows 擦除覆盖了部分视窗的对话方块或讯息方块。
功能表下拉出来,然後被释放。
显示工具提示讯息。
在某些情况下,Windows 总是保存它所覆盖的显示区域,然後恢复它。这些情况是:
滑鼠游标穿越显示区域。
图示拖过显示区域。
处理WM_PAINT 讯息要求程式写作者改变自己向显示器输出的思维方式。程式应该组织成可以保留绘制显示区域需要的所有资讯,并且仅当「回应要求」——即Windows 给视窗讯息处理程式发送WM_PAINT 讯息时才进行绘制。如果程式在其他时间需要更新其显示区域,它可以强制Windows 产生一个WM_PAINT 讯息。这看来似乎是在萤幕上显示内容的一种舍近求远的方法。但您的程式结构可以从中受益。
有效矩形和无效矩形
尽管视窗讯息处理程式一旦接收到WM_PAINT 讯息之後,就准备更新整个显示区域,但它经常只需要更新一个较小的区域(最常见的是显示区域中的矩形区域)。显然,当对话方块覆盖了部分显示区域时,情况即是如此。在擦除对话方块之後,需要重画的只是先前被对话方块遮住的矩形区域。这个区域称为「无效区域」或「更新区域」。正是显示区域内无效区域的存在,才会让Windows 将一个WM_PAINT 讯息放在应用程式的讯息伫列中。只有在显示区域的某一部分失效时,视窗才会接受WM_PAINT 讯息。Windows内部为每个视窗保存一个「绘图资讯结构」,这个结构包含了包围无效区域的最小矩形的座标以及其他资讯,这个矩形就叫做「无效矩形」,有时也称为「无效区域」。如果在视窗讯息处理程式处理WM_PAINT讯息之前显示区域中的另一个区域变为无效,则Windows 计算出一个包围两个区域的新的无效区域(以及一个新的无效矩形),并将这种变化後的资讯放在绘制资讯结构中。Windows 不会将多个WM_PAINT 讯息都放在讯息伫列中。视窗讯息处理程式可以通过呼叫InvalidateRect 使显示区域内的矩形无效。如果讯息伫列中已经包含一个WM_PAINT 讯息,Windows 将计算出新的无效矩形。否则,它将一个新的WM_PAINT讯息放入讯息伫列中。在接收到WM_PAINT讯息时,视窗讯息处理程式可以取得无效矩形的座标(我们马上就会看到这一点)。通过呼叫GetUpdateRect,可以在任何时候取得这些座标。在处理WM_PAINT 讯息处理期间,视窗讯息处理程式在呼叫了BeginPaint之後,整个显示区域即变为有效。程式也可以通过呼叫ValidateRect 函式使显示区域内的任意矩形区域变为有效。如果这呼叫具有令整个无效区域变为有效的效果,则目前伫列中的任何WM_PAINT 讯息都将被删除。
GDI简介
要在视窗的显示区域绘图,可以使用Windows的图形装置介面(GDI)函式。Windows提供了几个GDI 函式,用於将字串输出到视窗的显示区域内。我们已经在上一章看过DrawText 函式,但是目前使用最为普遍的文字输出函式是
TextOut。该函式的格式如下:
TextOut (hdc, x, y, psText, iLength) ;
TextOut 向视窗的显示区域写入字串。psText 参数是指向字串的指标,iLength是字串的长度。x 和y 参数定义了字串在显示区域的开始位置(不久会讲述关於它们的详细情况)。hdc 参数是「装置内容代号」,它是GDI 的重要部分。实际上,每个GDI 函式都需要将这个代号作为函式的第一个参数。