例41 建立一个命令文件将变量a,b的值互换,然后运行该命令

例41 建立一个命令文件将变量a,b的值互换,然后运行该命令
例41 建立一个命令文件将变量a,b的值互换,然后运行该命令

例4.1 建立一个命令文件将变量a,b 的值互换,然后运行该命令文件。

程序1:

首先建立命令文件并以文件名exch.m 存盘:

clear;

a=1:10;

b=[11,12,13,14;15,16,17,18];

c=a;a=b;b=c;

a

b

然后在MA TLAB 的命令窗口中输入exch ,将会执行该命令文件。

程序2:

首先建立函数文件fexch.m :

function [a,b]=exch(a,b)

c=a;a=b;b=c;

然后在MA TLAB 的命令窗口调用该函数文件:

clear;

x=1:10;

y=[11,12,13,14;15,16,17,18];

[x,y]=fexch(x,y)

例4.2 求一元二次方程ax 2+bx+c=0的根。

a=input('a=?');

b=input('b=?');

c=input('c=?');

d=b*b-4*a*c;

x=[(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a)];

disp(['x1=',num2str(x(1)),',x2=',num2str(x(2))]);

例4.3 计算分段函数:

cos(1)1010x x y x ?++=?=??≠?

x=input('请输入x 的值:');

if x==10

y=cos(x+1)+sqrt(x*x+1);

else

y=x*sqrt(x+sqrt(x));

end

y

也可以用单分支if 语句来实现:

x=input('请输入x 的值:');

y=cos(x+1)+sqrt(x*x+1);

if x~=10

y=x*sqrt(x+sqrt(x));

end

y

或用以下程序:

x=input('请输入x 的值:');

if x==10

y=cos(x+1)+sqrt(x*x+1);

end

if x~=10

y=x*sqrt(x+sqrt(x));

end

y

例4.4输入一个字符,若为大写字母,则输出其对应的小写字母;若为小写字母,则输出其对应的大写字母;若为数字字符则输出其对应的数值,若为其他字符则原样输出。

c=input('请输入一个字符','s');

if c>='A' & c<='Z'

disp(setstr(abs(c)+abs('a')-abs('A')));

elseif c>='a'& c<='z'

disp(setstr(abs(c)- abs('a')+abs('A')));

elseif c>='0'& c<='9'

disp(abs(c)-abs('0'));

else

disp(c);

end

例4.5某商场对顾客所购买的商品实行打折销售,标准如下(商品价格用price来表示):

price<200 没有折扣

200≤price<500 3%折扣

500≤price<1000 5%折扣

1000≤price<2500 8%折扣

2500≤price<5000 10%折扣

5000≤price 14%折扣

输入所售商品的价格,求其实际销售价格。

price=input('请输入商品价格');

switch fix(price/100)

case {0,1} %价格小于200

rate=0;

case {2,3,4} %价格大于等于200但小于500

rate=3/100;

case num2cell(5:9) %价格大于等于500但小于1000

rate=5/100;

case num2cell(10:24) %价格大于等于1000但小于2500

rate=8/100;

case num2cell(25:49) %价格大于等于2500但小于5000

rate=10/100;

otherwise %价格大于等于5000

rate=14/100;

end

price=price*(1-rate) %输出商品实际销售价格

例4.6矩阵乘法运算要求两矩阵的维数相容,否则会出错。先求两矩阵的乘积,若出错,则自动转去求两矩阵的点乘。

A=[1,2,3;4,5,6];

B=[7,8,9;10,11,12];

try

C=A*B;

catch

C=A.*B;

end

C

lasterr %显示出错原因

例4.7一个三位整数各位数字的立方和等于该数本身则称该数为水仙花数。输出全部水仙花数。

for m=100:999

m1=fix(m/100); %求m的百位数字

m2=rem(fix(m/10),10); %求m的十位数字

m3=rem(m,10); %求m的个位数字

if m==m1*m1*m1+m2*m2*m2+m3*m3*m3

disp(m)

end

end

例4.8 已知 22221312111n

y ++++= ,当n=100时,求y 的值。 y=0;n=100;

for i=1:n

y=y+1/i/i;

end

y

在实际MATLAB 编程中,为提高程序的执行速度,常用向量运算来代替循环操作,所以上述程序通常由下面的程序来代替:

n=100;

i=1:n;

f=1./i.^2;

y=sum(f)

例4.9 设)6sin()(5.0π

+=-x e x f x ,求s=?π

dx x f 30)(。

a=0;b=3*pi;

n=1000; h=(b-a)/n;

x=a; s=0;

f0=exp(-0.5*x)*sin(x+pi/6);

for i=1:n

x=x+h;

f1=exp(-0.5*x)*sin(x+pi/6);

s=s+(f0+f1)*h/2;

f0=f1;

end

s

上述程序来源于传统的编程思想。也可以利用向量运算,从而使得程序更加简洁,更赋有MA TLAB 的特点。程序如下:

a=0;b=3*pi;

n=1000; h=(b-a)/n;

x=a:h:b;

f=exp(-0.5*x).*sin(x+pi/6);

for i=1:n

s(i)= (f(i)+f(i+1))*h/2;

end

s=sum(s)

例4.10 写出下列程序的执行结果。

s=0;

a=[12,13,14;15,16,17;18,19,20;21,22,23];

for k=a

s=s+k;

end

disp(s');

例4.11 从键盘输入若干个数,当输入0时结束输入,求这些数的平均值和它们之和。

sum=0;

n=0;

x=input('Enter a number (end in 0):');

while (x~=0)

sum=sum+x;

n=n+1;

x=input('Enter a number (end in 0):');

end

if (n>0)

sum

mean=sum/n

end

例4.12 根据矩阵指数的幂级数展开式求矩阵指数。

++++++I =!!3!232n X X X X e n

X

X=input('Enter X:');

E=zeros(size(X));

F=eye(size(X));

n=1;

while norm(F,1)>0

E=E+F;

F=F*X/n;

n=n+1;

end

E

expm(X) %调用MATLAB 矩阵指数函数求矩阵指数

例4.13 求[100,200]之间第一个能被21整除的整数。

for n=100:200

if rem(n,21)~=0

continue

end

break

end

n

例4.14 若一个数等于它的各个真因子之和,则称该数为完数,如6=1+2+3,所以6是完数。求[1,500]之间的全部完数。

例4.15 用筛选法求某自然数范围内的全部素数。

m=input('m=');

p=1:m; p(1)=0;

for i=2:sqrt(m)

for j=2*i:i:m

p(j)=0;

end

end

n=find(p~=0);

p(n)

关于在p 中划去i 的倍数(不包括i),可利用矩阵运算一步完成,从而得到更为简洁的程序:

m=input('m=');

p=2:m;

for i=2:sqrt(m)

n=find(rem(p,i)==0&p~=i);

p(n)=[];

end

p

例4.16 编写函数文件求半径为r 的圆的面积和周长。

函数文件如下:

function [s,p]=fcircle(r)

%CIRCLE calculate the area and perimeter of a circle of radii r

%r 圆半径

%s 圆面积

%p 圆周长

%2006年2月30日编

s=pi*r*r;

p=2*pi*r;

将以上函数文件以文件名fcircle.m存盘,然后在MA TLAB命令窗口调用该函数:

[s,p]=fcircle(10)

例4.17利用函数文件,实现直角坐标(x,y)与极坐标(ρ,θ)之间的转换。

函数文件tran.m:

function [rho,theta]=tran(x,y)

rho=sqrt(x*x+y*y);

theta=atan(y/x);

调用tran.m的命令文件main1.m:

x=input('Please input x=:');

y=input('Please input y=:');

[rho,the]=tran(x,y);

rho

the

例4.18利用函数的递归调用,求n!。

function f=factor(n)

if n<=1

f=1;

else

f=factor(n-1)*n; %递归调用求(n-1)!

end

在命令文件main2.m中调用函数文件factor.m求s=1!+2!+3!+4!+5!。

s=0;

for i=1:5

s=s+factor(i);

end

s

例4.19 任意排列问题。MATLAB提供的函数randperm(n),可以产生一个从整数1到整数n的任意排列。编写一个函数来实现randperm(n)函数的功能,即给出一个由任意数组成的行向量,然后产生这个行向量元素的任意排列。

function Y=rndprm1(X)

%RNDPRM1 用for循环产生一个行向量的任意排列

%RNDPRM1(X)产生行向量X的任意排列

[m,n]=size(X);

if m>1

error('RNDPRM1 accepts as inputs only vectors');

end

Y=[]; %从一个空矩阵开始

l=n; %X的元素个数

for i=1:n

k=1+fix(l*rand); %随机选择Y的下一个元素的位置

x=X(k); %被选择的元素

Y=[Y,x]; %将X添加到Y中

X(k)=[]; %从X中删除x元素

l=l-1 ; %更新X的元素个数

end

第二个程序用函数的递归调用:

function Y=rndprm2(X)

%RNDPRM2 用递归调用产生一个行向量的任意排列

%RNDPRM2(X)产生一个X的任意排列

[m,n]=size(X);

l=n;

if m>1

error('RNDPRM2 accepts as inputs only vectors') end

if n<=1

Y=X;

else

k=1+fix(l*rand); %随机选择Y的下一个元素的位置

x=X(k); %被选择的元素

X(k)=[]; %从X中删除x元素 Z=rndprm2(X); %将剩下的元素随机排列

Y=[Z,x]; %构造输出向量

l=l-1;

end

例4.20nargin用法示例。

函数文件examp.m:

function fout=charray(a,b,c)

if nargin==1

fout=a;

elseif nargin==2

fout=a+b;

elseif nargin==3

fout=(a*b*c)/2;

end

命令文件mydemo.m:

x=[1:3];

y=[1;2;3];

examp(x)

examp(x,y')

examp(x,y,3)

例4.21全局变量应用示例。

先建立函数文件wadd.m,该函数将输入的参数加权相加。

function f=wadd(x,y)

global ALPHA BETA

f=ALPHA*x+BETA*y;

在命令窗口中输入:

global ALPHA BETA

ALPHA=1;

BETA=2;

s=wadd(1,2)

交换机基本命令

1、Switch> 用户模式 2、Switch>enable 进入特权模式 Switch# 3、Switch#config terminal 进入全局模式 Switch(config)# 4、Switch(config)#interface f0/1 进入接口模式 Switch(config-if)# 5、Switch(config)#line console 0 进入line模式 Switch(config-line)# exit 退回上层 end 结束所有操作 6、Switch(config)#hostname aaa 配置主机名 7、switch#show running-config 查看配置情况 8、Switch(config)#enable password 111 设置使能密码(明文) 9、Switch(config)#enable secret 111 设置使能密码(密文) Switch(config)#line console 0 设置console密码 Switch(config-line)#password 333 Switch(config-line)#login 10、Switch(config)#interface vlan1

Switch(config-if)#ip address 192.168.1.1 255.255.255.0 设置IP地址Switch(config-if)#no shutdown 11、Switch(config)#ip default-gateway 192.168.1.10 设置网关 12、Switch#show mac-address-table 查看MAC地址表 13、Switch#show cdp cdp全局配置信息 14、Switch#show cdp interface f0/1 cdp接口配置信息 15、Switch#show cdp traffic cdp包的配置信息 16、Switch#show cdp neighbors cdp邻居基本信息 17、Switch#show cdp neighbors detail cdp邻居详细信息 Switch#show cdp neighbors entry 18、Switch#copy running-config startup-config Switch#write 保存交换机配置信息 19、Switch#erase startup-config 恢复出厂信息 Switch#reload 重新加载 20、交换机密码恢复 *断开电源 *按住MODE键,加电(等待数秒) *switch:出现此符号 *switch:flash_init 初始化flash *switch:dir flash: (查看文件,可省去) *switch:rename config.text config.old 改名

linux 基本操作命令行

linux的命令操作 1、日常操作命令 **查看当前所在的工作目录 pwd **查看当前系统的时间 date **查看有谁在线(哪些人登陆到了服务器) who 查看当前在线 last 查看最近的登陆历史记录 2、文件系统操作 ** ls / 查看根目录下的子节点(文件夹和文件)信息 ls -al -a是显示隐藏文件 -l是以更详细的列表形式显示 **切换目录 cd /home **创建文件夹 mkdir aaa 这是相对路径的写法 mkdir -p aaa/bbb/ccc mkdir /data 这是绝对路径的写法 **删除文件夹 rmdir 可以删除空目录 rm -r aaa 可以把aaa整个文件夹及其中的所有子节点全部删除 rm -rf aaa 强制删除aaa **修改文件夹名称 mv aaa angelababy **创建文件 touch somefile.1 创建一个空文件 echo "i miss you,my baby" > somefile.2 利用重定向“>”的功能,将一条指令的输出结果写入到一个文件中,会覆盖原文件内容 echo "huangxiaoming ,gun dan" >> somefile.2 将一条指令的输出结果追加到一个文件中,不会覆盖原文件内容 用vi文本编辑器来编辑生成文件 ******最基本用法 vi somefile.4

1、首先会进入“一般模式”,此模式只接受各种快捷键,不能编辑文件内容 2、按i键,就会从一般模式进入编辑模式,此模式下,敲入的都是文件内容 3、编辑完成之后,按Esc键退出编辑模式,回到一般模式; 4、再按:,进入“底行命令模式”,输入wq命令,回车即可 ******一些常用快捷键 一些有用的快捷键(在一般模式下使用): a 在光标后一位开始插入 A 在该行的最后插入 I 在该行的最前面插入 gg 直接跳到文件的首行 G 直接跳到文件的末行 dd 删除行,如果 5dd ,则一次性删除光标后的5行 yy 复制当前行, 复制多行,则 3yy,则复制当前行附近的3行 p 粘贴 v 进入字符选择模式,选择完成后,按y复制,按p粘贴 ctrl+v 进入块选择模式,选择完成后,按y复制,按p粘贴 shift+v 进入行选择模式,选择完成后,按y复制,按p粘贴 查找并替换(在底行命令模式中输入) %s/sad/88888888888888 效果:查找文件中所有sad,替换为88888888888888 /you 效果:查找文件中出现的you,并定位到第一个找到的地方,按n可以定位到下一个匹配位置(按N定位到上一个) 3、文件权限的操作 ****linux文件权限的描述格式解读 drwxr-xr-x (也可以用二进制表示 111 101 101 --> 755) d:标识节点类型(d:文件夹 -:文件 l:链接) r:可读 w:可写 x:可执行 第一组rwx:表示这个文件的拥有者对它的权限:可读可写可执行 第二组r-x:表示这个文件的所属组对它的权限:可读,不可写,可执行 第三组r-x:表示这个文件的其他用户(相对于上面两类用户)对它的权限:可读,不可写,可执行 ****修改文件权限 chmod g-rw haha.dat 表示将haha.dat对所属组的rw权限取消 chmod o-rw haha.dat 表示将haha.dat对其他人的rw权限取消 chmod u+x haha.dat 表示将haha.dat对所属用户的权限增加x 也可以用数字的方式来修改权限 chmod 664 haha.dat 就会修改成 rw-rw-r--

实验二 交换机配置方式及基本命令的熟悉

实验二交换机的配置方式及基本命令的熟悉 【实验目的】 通过对交换机设备的几种配置手段、配置模式和基本配置命令的认识,获得交换机的基本使用能力。 【实验任务】 1、认识交换机的的配置方式; 2、按照给出的参考拓扑图构建逻辑拓扑图; 3、按照给出的配置参数表配置各个设备; 4、练习交换机的一些基本命令。 【实验背景】 在前面的实验中我们已经接触了Cisco的路由器运行的Cisco互联网络操作系统(ISO,Internetwork Operating System),熟悉了Cisco ISO软件内置的命令行界面(CLI,command-line interface )。同样,交换机可以通过一个菜单驱动程序的界面,或者通过命令行界面〔CLI〕,或者在交换机配置了IP地址后通过Telnet远程登录、web登录的方式对交换机来进行配置。 交换机除了可以通过Console端口与计算机直接连接外还可以通过交换机的普通端口进行连接。如果是堆叠型的,也可以把几台交换机一起进行配置,因为实际上这个时候它们是一个整体,这时通过普通端口对交换机进行管理时,就不再使用超级终端了,而是以Telnet 虚拟终端或Web浏览器的方式实现与被管理交换机的通信。前提是在本地配置方式中已为交换机配置好了IP地址,我们可通过IP地址与交换机进行通信,不过要注意,只有是网管型的交换机才具有这种管理功能。实际上最常用的Catalyst交换机OS被称为Catalyst OS、Catos,其最大的特点是基于set命令。但我们常用的是与路由器的IOS相类似的基于IOS的Catalyst OS。下面简单介绍交换机的各种命今模式以及各种常用的命令。 表3.1 交换机的各种命令模式的访问方式、提示符、退出方法及其描述

数据库文件操作命令

数据库文件及记录命令 ADD TABLE 在当前数据库中添加一个自由表 APPEND 在表的末尾添加一个或多个新记录 APPEND FROM ARRAY 由数组添加记录到表中 APPEND FROM 从一个文件中读入记录,追加到当前表的尾部 APPEND GENERAL 从文件中导入OLE对象并将其放入通用字段中 APPEND MEMO 将文本文件的内容复制到备注字段中 APPEND PROCEDURES 将文本文件中的存储过程追加到当前数据库中 A VERAGE 计算数值表达式或字段的算术平均值 BLANK 清除当前记录中所有字段的数据 BROWSE 打开浏览窗口,显示当前或选定表的记录 CALCULATE 对表中的字段或包含字段的表达式进行财务和统计操作CHANGE 显示要编辑的字段 CLOSE 关闭各种类型的文件 CLOSE MEMO 关闭一个或多个备注编辑窗口 COMPILE DATABASE 编译数据库中的存储过程 CONTINUE 继续执行先前的LOCATE命令 COPY MEMO 复制当前记录中的指定备注字段的内容到文本文件 COPY PROCEDURES 将当前数据库中’的存储过程复制到文本文件 COPY STRUCTURE 用当前选择的表结构创建一个新的空自由表 COPY STRUCTURE EXTENDED 创建新表,它的字段包含当前选定表的结构信息COPY TO ARRAY 将当前选定表中的数据复制到数组

COPY TO 用当前选定表的内容创建新文件 COUNT 统计表中记录数目 CREATE 生成一个新的VisualFoxPro表 CREATE CONNECTION 创建一个命名连接并把它存储在当前数据库中 CREATE DATABASE 创建并打开一个数据库 CREATE TRIGGER 创建表的删除、插入或更新触发器 CREATE VIEW 从VisualFoxPro环境创建视图文件 DELETE 给要删除的记录做标记 DELETE CONNECTION 从当前数据库中删除一个命名连接 DELETE DATABASE 从磁盘上删除数据库 DELETE TRIGGER 从当前数据库的表中删除“删除”、“插入”或“更新”触发器│ DELETE VIEW 从当前数据库中删除一个SQL视图 DISPLAY 在VisualFoxPro主窗口或用户自定义窗口中显示与当前表有关的信息DISPLAY CONNECTIONS 显示当前数据库中与命名连接有关的信息 DISPLAY DATABASE 显示有关当前数据库的信息,或当前数据库中的字段、命名连接、表或视图的信息 DISPLAY MEMORY 显示内存变量和数组的当前内容 DISPLAY PROCEDURES 显示当前数据库中存储过程的名称 DISPLAY STRUCTURE 显示一个表文件的结构 DISPLAY TABLES 显示包含在当前数据库中所有的表和表的信息 DISPLAY VIEWS 显示当前数据库中关于SQL视图的信息以及SQL视图是否基于本地或远程表的信息 DROP TABLE 把一个表从数据库中移出,并从磁盘中删除它 DROP VIEW 从当前数据库中删除指定的SQL视图

交换机常用命令

交换机 1、恢复出厂设置 #set default 2、给vlan添加端口 #vlan 100 (创建一个vlan100) #switchport interface ethernet 1/1 (将E1/1接口加入vlan100中) #switchport interface ethernet 1/2-5 (将E1/2-5 范围内加入到vlan100中) 3、设置Trunk端口允许通过vlan #interface ethernet 1/5 #switchport mode trunk (将E1/5设置为trunk模式) #switchport trunk allowed vlan 1;3;5-20 (允许通过的vlan段) #switchport forbidden vlan add vlan 10 (防止E1/5加入到vlan10中) 4、光口,电口的转换 #interface ethernet 1/1 #media-type copper(电口)/fiber(光口) 5、端口粘连 #switchport port-security mac-address sticky (将自动学习到得mac地址粘连到接口上)6、端口过滤 #mac-address-table blackhole address {mac-address} vlan 1 7、端口聚合 #port-group 1 (创建一个port-group组) #interface ethernet 1/1-2 #port-group 1 mode on(强制)、passive(被动)、active(主动) [两个不能是passive ,active 和passive 要一起使用] 8、端口镜像 #monitor session 1 source interface ethernet 1/0/1 both (将源E1/0/1的流量镜像到E1/0/2) #monitor session 1 destination interface ethernet 1/0/2 (将源session 1发送至E1/0/2中) 9、设置用户自动退出特权模式的超时时间 #exec timeout 10、关闭端口的vlan入口规则 #vlan ingress disable 11、设定引入路由的缺省路由权值 #default-metric 12、设置MD5认证,采用MD5认证 #ip ospf message-digest-key 1 MD5 password #ip ospf authentication message-digest 13、绑定MAC地址 ①在端口安全中绑定 #switchport port-security mac-address ……. ②AM中启动 #am mac-ip-pool ……. ③全局配置模式下 #mac-address-table static address {mac-address} vlan 1 interface e1/1

交换机和路由器的基本配置

实验一交换机和路由器的基本配置 交换机的基本配置 【实验名称】 交换机的基本配置。 【实验目的】 掌握交换机命令行各种操作模式的区别,能够使用各种帮助信息,以及用命令进行基本的配置。 【背景描述】 你是某公司新进的网管,公司要求你熟悉网络产品,公司采用全系列锐捷网络产品,首先要求你登录交换机,了解、掌握交换机的命令行操作技巧,以及如何使用一些基本命令进行配置。 【需求分析】 需要在交换机上熟悉各种不同的配置模式以及如何在配置模式间切换,使用命令进行基本的配置,并熟悉命令行界面的操作技巧。 【实验拓扑】 图1-1 实验拓扑图 【实验设备】 三层交换机1台 【预备知识】 交换机的命令行界面和基本操作 【实验原理】 交换机的管理方式基本分为两种:带内管理和带外管理。通过交换机的Console口管理交换机属于带外管理,不占用交换机的网络接口,其特点是需要使用配置线缆,近距离配置。第一次配置交换机时必须利用Console端口进行配置。 交换机的命令行操作模式,主要包括:用户模式、特权模式、全局配置模式、端口模式等几种。 ???用户模式进入交换机后得到的第一个操作模式,该模式下可以简单查看交换机的软、硬件版本信息,并进行简单的测试。用户模式提示符为switch> ???特权模式由用户模式进入的下一级模式,该模式下可以对交换机的配置文件进行管理,查看交换机的配置信息,进行网络的测试和调试等。特权模式提示符为switch# ???全局配置模式属于特权模式的下一级模式,该模式下可以配置交换机的全局性参数(如主机名、登录信息等)。在该模式下可以进入下一级的配置模式,对交换机具体的功能进行配置。全局模式提示符为switch(config)# ???端口模式属于全局模式的下一级模式,该模式下可以对交换机的端口进行参数配置。端口模式提示符为switch(config-if)# 交换机的基本操作命令包括:

(完整版)华为交换机常用命令大全

华为交换机常用配置大全 2010-02-27

目录 一、基础配置举例 (3) 1.1配置文件处理 (3) 1.2配置交换机远程管理 (3) 二、以太网配置举例 (5) 2.1配置端口属性 (5) 2.2配置链路聚合 (7) 2.3配置VLAN (8) 9.配置MSTP (15) 三、可靠性 (22) 3.1配置基于主备份VRRP (22) 3.2配置基于负载分担VRRP (23) 四、IP路由 (25) 4.1配置静态路由 (25) 4.2配置动态路由 (26) 五、IP业务 (28) 5.1配置虚接口IP地址 (28) 5.2DHCP设置 (29) 5.3 ACL 举例 (32) 六、IGMP (33)

七、QOS (34) 八、安全性 (35) 8.1接口安全 (35) 九、网络管理 (36) 9.1简单网络管理协议配置 (36) 十、设备管理 (38) 10.1测试命令 (38) 一、基础配置举例 1.1配置文件处理 导入配置文件 tftp x.x.x.x get vrpcfg.zip vrpcfg.zip 导出配置文件 tftp x.x.x.x put vrpcfg.zip vrpcfg.zip 1.2配置交换机远程管理 aaa 方式 system-view aaa local-user huawei password simple huawei local-user huawei service-type telnet

local-user huawei priority level 3 quit user-interface vty 0 4 authentication-mode aaa quit 没有密码和使用密码认证同上

两个变量交换值

不使用第三方变量交换两个变量的值(c#)2009-07-22 16:47这需要进行位操作,必较麻烦的, 在学习程序语言和进行程序设计的时候,交换两个变量的值是经常要使用的。通常我们的做法是(尤其是在学习阶段):定义一个新的变量,借助它完成交换。代码如下: int a,b; a=10; b=15; int t; t=a; a=b; b=t; 这种算法易于理解,特别适合帮助初学者了解计算机程序的特点,是赋值语句的经典应用。在实际软件开发当中,此算法简单明了,不会产生歧义,便于程序员之间的交流,一般情况下碰到交换变量值的问题,都应采用此算法(以下称为标准算法)。 上面的算法最大的缺点就是需要借助一个临时变量。那么不借助临时变量可以实现交换吗?答案是肯定的!这里我们可以用三种算法来实现:1)算术运算;2)指针地址操作;3)位运算。 1)算术运算 简单来说,就是通过普通的+和-运算来实现。代码如下: int a,b; a=10;b=12; a=b-a; //a=2;b=12 b=b-a; //a=2;b=10 a=b+a; //a=10;b=10 通过以上运算,a和b中的值就进行了交换。表面上看起来很简单,但是不容易想到,尤其是在习惯标准算法之后。 它的原理是:把a、b看做数轴上的点,围绕两点间的距离来进行计算。 具体过程:第一句“a=b-a”求出ab两点的距离,并且将其保存在a中;第二句“b=b-a”求出a到原点的距离(b到原点的距离与ab两点距离之差),并且将其保存在b中;第三句“a=b+a”求出b到原点的距离(a到原点距离与ab两点距离之和),并且将其保存在a中。完成交换。此算法与标准算法相比,多了三个计算的过程,但是没有借助临时变量。(以下称为算术算法) 2)指针地址操作 因为对地址的操作实际上进行的是整数运算,比如:两个地址相减得到一个整数,表示两个变量在内存中的储存位置隔了多少个字节;地址和一个整数相加即“a+10”表示以a为基地址的在a后10个a类数据单元的地址。所以理论上可以通过和算术算法类似的运算来完成地址的交换,从而达到交换变量的目的。即: int *a,*b; //假设 *a=new int(10); *b=new int(20); //&a=0x00001000h,&b=0x00001200h a=(int*)(b-a); //&a=0x00000200h,&b=0x00001200h b=(int*)(b-a); //&a=0x00000200h,&b=0x00001000h a=(int*)(b+int(a)); //&a=0x00001200h,&b=0x00001000h 通过以上运算a、b的地址真的已经完成了交换,且a指向了原先b指向的值,b指向原先a 指向的值了吗?上面的代码可以通过编译,但是执行结果却令人匪夷所思!原因何在? 首先必须了解,操作系统把内存分为几个区域:系统代码/数据区、应用程序代码/数据区、

锐捷交换机常用配置基础命令

一、交换机基本配置 1、交换机命名: 在项目实施的时候,建议为处于不同位置的交换机命名,便于记忆,可提高后期管理效率。 switch(config)#hostname ruijie //ruijie为该交换机的名字 2、交换机配置管理密码: 配置密码可以提高交换机的安全性,另外,telnet登录交换机的时候,必须要求有telnet管理密码。 switch (config)#enable secret level 1 0 rg //配置telnet管理密码为rg,其中1表示telnet密码,0表示密码不加密 switch (config)#enable secret level 15 0 rg //配置特权模式下的管理密码rg,其中15表示为特权密码3、交换机配置管理IP switch (config)#interface vlan 1 //假设管理VLAN为VLAN 1 switch (config-if)#ip address 192.168.1.1 255.255.255.0 //给管理VLAN配置管理IP地址 switch (config-if)#no shutdown //激活管理IP,养成习惯,无论配置什么设备,都使用一下这个命令 4、交换机配置网关: switch(config)#ip default-gateway 192.168.1.254 //假设网关地址为192.168.1.254,此命令用户二层设备。通过以上几个命令的配置,设备便可以实现远程管理,在项目实施时(尤其是设备位置比较分散)特别能提高效率。 二、接口介质类型配置 锐捷为了降低SME客户的总体拥有成本,推出灵活选择的端口形式:电口和光口复用接口,方便用户根据网络环境选择对应的介质类型。 但光口和电口同时只能用其一,如图1,如使用了光口1F,则电口1不能使用。 1、接口介质类型的转换: Switch(config)#interface gigabitethernet 0/25-28

华为交换机常用命令

华为交换机常用命令: 1、display current-configuration 显示当前配置 2、display interface GigabitEthernet 1/1/4 显示接口信息 3、display packet-filter interface GigabitEthernet 1/1/4 显示接口acl应用信息 4、display acl all 显示所有acl设置3900系列交换机 5、display acl config all 显示所有acl设置6500系列交换机 6、display arp 10.78.4.1 显示该ip地址的mac地址,所接交换机的端口位置 7、display cpu显示cpu信息 8、system-view 进入系统图(配置交换机),等于config t 命令 9、acl number 5000 在system-view命令后使用,进入acl配置状态 10、rule 0 deny 0806 ffff 24 0a4e0401 f 40 在上面的命令后使用,,acl 配置例子 11、rule 1 permit 0806 ffff 24 000fe218ded7 f 34 //在上面的命令后使用,acl配置例子 12、interface GigabitEthernet 1/0/9 //在system-view命令后使用,进入接口配置状态 13、[86ZX-S6503-GigabitEthernet1/0/9]qos //在上面的命令后使用,进入接口qos配置 14、[86ZX-S6503-qosb-GigabitEthernet1/0/9]packet-filter inbound user-group 5000 //在上面的命令后使用,在接口上应用进站的acl 15、[Build4-2_S3928TP-GigabitEthernet1/1/4]packet-filter outbound user-group 5001 //在接口上应用出站的acl 16、undo acl number 5000 //取消acl number 5000 的设置 17、ip route-static 0.0.0.0 0.0.0.0 10.78.1.1 preference 60 //设置路由 18、reset counters interface Ethernet 1/0/14 //重置接口信息 19、save //保存设置 20、quit //退出(此信息仅为分享之用,我们不排除对您并不适用的可能。另,如此信息侵犯您的权益,请告知我们,我们会及时删除) 华为路由器交换机配置命令:交换机命令 [Quidway]discur;显示当前配置 [Quidway]displaycurrent-configuration;显示当前配置 [Quidway]displayinterfaces;显示接口信息 [Quidway]displayvlanall;显示路由信息 [Quidway]displayversion;显示版本信息 [Quidway]superpassword;修改特权用户密码 [Quidway]sysname;交换机命名

变量交换的几种常见方法

变量交换的几种常见方法 前几天发现了一个问题:有人告诉我,要进行变量交换,就必须引入第三变量! 假设我们要交换a和b变量的值,如果写成 int a=5,b=10; a=b; b=a; 那么结果就是两个都是10,理由不言而喻。 所以就应该引入第三变量,在a的值被覆盖之前就把a的值保留好。int a=5,b=10,tmp; tmp=a; a=b; b=tmp; 这样,就要引入了第三个变量,然而,我们能不能不引入第三变量来实现变量交换呢? 答案自然是肯定的,首先我们可以这样设想,如果a的值被覆盖了,那么就没法知道b应该放什么值了, 所以,我们要保留a的值,因此我们可以把a和b的值合起来,放在a里,再把合起来的值分开,分别放到b和a中:

int a=5,b=10; a=a+b; //a=15,b=10 b=a-b; //a=15,b=5 a=a-b; //a=10,b=5 但是这样做有一个缺陷,假设它运行在vc6环境中,那么int的大小是4 Bytes,所以int变量所存放的最大值是2^31-1即2147483647,如果我们令a的值为2147483000,b的值为1000000000,那么a和b 相加就越界了。 事实上,从实际的运行统计上看,我们发现要交换的两个变量,是同号的概率很大,而且,他们之间相减,越界的情况也很少,因此我们可以把上面的加减法互换,这样使得程序出错的概率减少: int a=5,b=10; a-=b; //a=-5,b=10 b+=a; //a=15,b=5 a+=b; //a=10,b=5 通过以上运算,a和b中的值就进行了交换。表面上看起来很简单,但是不容易想到,尤其是在习惯引入第三变量的算法之后。 它的原理是:把a、b看做数轴上的点,围绕两点间的距离来进行计算。 具体过程:第一句“a-=b”求出ab两点的距离,并且将其保存在a 中;第二句“b+=a”求出a到原点的距离(b到原点的距离与ab两点距离之差),并且将其保存在b中;第三句“a+=b”求出b到原点

华为交换机常用命令配置介绍

华为交换机配置命令 华为QuidWay交换机配置命令手册: 1、开始 建立本地配置环境,将主机的串口通过配置电缆与以太网交换机的Console口连接。 在主机上运行终端仿真程序(如Windows的超级终端等),设置终端通信参数为:波特率为9600bit/s、8位数据位、1位停止位、无校验和无流控,并选择终端类型为VT100。 以太网交换机上电,终端上显示以太网交换机自检信息,自检结束后提示用户键入回车,之后将出现命令行提示符(如)。 键入命令,配置以太网交换机或查看以太网交换机运行状态。需要帮助可以随时键入"?" 2、命令视图 (1)用户视图(查看交换机的简单运行状态和统计信息):与交换机建立连接即进入 (2)系统视图(配置系统参数)[Quidway]:在用户视图下键入system-view (3)以太网端口视图(配置以太网端口参数)[Quidway-Ethernet0/1]:在系统视图下键入interface ethernet 0/1 (4)VLAN视图(配置VLAN参数)[Quidway-Vlan1]:在系统视图下键入vlan 1 (5)VLAN接口视图(配置VLAN和VLAN汇聚对应的IP接口参数)[Quidway-Vlan-interface1]:在系统视图下键入interface vlan-interface 1 (6)本地用户视图(配置本地用户参数)[Quidway-luser-user1]:在系统视图下键入local-user user1 (7)用户界面视图(配置用户界面参数)[Quidway-ui0]:在系统视图下键入user-interface 3、其他命令 设置系统时间和时区clock time Beijing add 8 clock datetime 12:00:00 2005/01/23 设置交换机的名称[Quidway]sysname TRAIN-3026-1[TRAIN-3026-1] 配置用户登录[Quidway]user-interface vty 0 4 [Quidway-ui-vty0]authentication-mode scheme 创建本地用户[Quidway]local-user huawei [Quidway-luser-huawei]password simple huawei [Quidway-luser-huawei] service-type telnet level 3 4、VLAN配置方法 『配置环境参数』 SwitchA端口E0/1属于VLAN2,E0/2属于VLAN3 『组网需求』 把交换机端口E0/1加入到VLAN2 ,E0/2加入到VLAN3 数据配置步骤 『VLAN配置流程』 (1)缺省情况下所有端口都属于VLAN 1,并且端口是access端口,一个access端口只能属于一个vlan; (2)如果端口是access端口,则把端口加入到另外一个vlan的同时,系统自动把该端口从原来的vlan中删除掉; (3)除了VLAN1,如果VLAN XX不存在,在系统视图下键入VLAN XX,则创建VLAN XX并进入VLAN视图;如果VLAN XX已经存在,则进入VLAN视图。

DOS磁盘文件操作命令

DOS磁盘文件操作命令 一、实验目的 本章主要通过常用的DOS命令的练习,了解DOS的基本功能及其基本组成和DOS常用命令的使用方法。 二、实验条件要求 1.硬件:计算机 2.软件环境:Windows XP 三、实验基本知识点 1. DIR(Dir ectory) 功能:显示指定路径上所有文件或目录的信息 格式:dir [盘符:][路径][文件名] [参数] 参数: /w:宽屏显示,一排显示5个文件名,而不会显示修改时间,文件大小等信息;/p:分页显示,当屏幕无法将信息完全显示时,可使用其进行分页显示; /a:显示当前目录下的所有文件和文件夹; /s:显示当前目录及其子目录下所有的文件。 2. MD(M ake D irectory) 功能:创建新的子目录 格式:md <盘符:><路径名> <子目录名> 3. CD(C hange D irectory) 功能:改变当前目录 格式:cd <盘符:> <路径名> <子目录名> 注意: 根目录是驱动器的目录树状结构的顶层,要返回到根目录,在命令行输入:cd \ 如果想返回到上一层目录,在当前命令提示符下输入:cd.. 如果想进入下一层目录,在当前命令提示符下输入:cd 目录名 4. 全屏幕编辑命令:EDIT 格式:EDIT <文件名>

说明: (1)仅可编辑纯文本格式的文件 (2)指定文件存在时编辑该文件,不存在时新建该文件 5. 显示文件内容命令:TYPE 格式:TYPE <文件名> 说明: (1)可以正常显示纯文本格式文件的内容,而.COM、.EXE等显示出来是乱码。(2)一次只能显示一个文件内容,所以文件名不能使用通配符。 6. 文件复制命令:COPY 格式:COPY <源文件> [目标文件] 说明: (1)源文件指定想要复制的文件来自哪里——[盘符1:][路径1][文件名1] (2)目标文件指定文件拷贝到何方——[盘符2:][路径2][文件名2] (3)如缺省盘符则为当前盘符;路径若为当前目录可缺省路径。 (4)源文件名不能缺省,目标文件名缺省时表示拷贝后不改变文件名。 7. Tree 功能:显示指定驱动器上所有目录路径和这些目录下的所有文件名 格式:tree <盘符:> 8. 文件改名命令:REN 格式:REN <旧文件名> <新文件名> 说明: (1)改名后的文件仍在原目录中,不能对新文件名指定盘符和路径。 (2)可以使用通配符来实现批量改名。 9. 显示和修改文件属性命令:ATTRIB 格式:[盘符][路径] A TTRIB [文件名][+S/-S][+H/-H][+R/-R][+A/-A] 说明: (1)盘符和路径指出ATTRIB.EXE位置 (2)参数+S/-S:对指定文件设置或取消系统属性 (3)参数+H/-H:对指定文件设置或取消隐含属性 (4)参数+R/-R:对指定文件设置或取消只读属性 (5)参数+A/-A:对指定文件设置或取消归档属性

交换两个变量值

//【习3.1】交换两个变量值问题讨论。 public class Swap { // ①不能实现交换两个变量值的方法 public static void swap(int x, int y) { int temp = x; x = y; y = temp; } public static void swap(Object x, Object y) //不行 { Object temp = x; //两个对象之间的赋值是引用赋值,传递的是引用,即变量的地址 x = y; //改变形式参数x的引用,而未能改变实际参数的值, y = temp; //相当于改变了指针的值,而未改变通过指针指向的变量值 } //交换了,但改变的值没有带回 // ②能够交换两个数组元素值 public static void swap(int[] table, int i, int j) // 交换数组中下标为i、j的元素 { if (table != null && i >= 0 && i < table.length && j >= 0 && j < table.length && i != j) // 判断i、j是否越界 { int temp = table[j]; table[j] = table[i]; table[i] = temp; } } public static void swap(Object[] table, int i, int j) //交换数组中下标为i、j的元素 { if (table != null && i >= 0 && i < table.length && j >= 0 && j < table.length && i != j) //判断i、j是否越界 {

交换机配置和设备常用命令

常用命令等 1、连接交换机并设置软件连接交换机/路由器等: 如果设备管理器里边没有端口选项则说明USB-COM驱动未安装好;到这里记录下COM口的端口号,我这里是COM4。 打开securecrt软件:打开crt解压到的目录点软件启动

在弹出的窗口中点击下图中的按钮 按照下图中选择选项:

选择完成后点击确定按钮后敲击回车,如窗口中显示XXXXX>则说明设备连接成功。 2、配置5750交换机步骤 A、第一步删除5750交换机现有配置,复制下边命令并粘贴到crt命令行内: en ruijie delete config.text y reload y B、重新配置5750交换机: en

conf t hos btjx-zhl-25750-2 vlan 101 exit int vlan 101 ip add 192.168.101.252 255.255.255.0 exit ip route 0.0.0.0 0.0.0.0 192.168.101.254 enable sec ruijie lin vty 0 4 pass ruijie exit rldp enable int r g0/1 – 22 sw mo acc sw acc vlan 101 rldp port loo shutdown-port exit int r g0/23 – 24 me fi sw mo tr int g0/24

des btjx-zhl-25750-1 exit err re int 1800 end wr wr 此配置是11日没有拆下来的交换机的配置: 此配置是11日拆除下来的5750交换机的配置(需要增加部分配置) 上边配置的5750交换机23口24口都是级联口5750-1-24口接86,5750-1-23连接5750-2-24口 3、2952交换机配置,修改级联口部分: en ruijie conf t int g0/49 sw mo tr int g0/51 sw mo tr

文件与目录操作命令

CentOS 丛书目录 — 系统管理 — 网络服务 — 应用部署 文件与目录操作命令 内容提要 1. 掌握常用的文件操作命令 2. 掌握常用的目录操作命令 目录操作命令 ls 功能说明: 显示文件和目录列表 命令格式: ls [参数] [<文件或目录> …] 常用参数: -a : 不隐藏任何以 . 字符开始的条目 -b : 用八进制形式显示非打印字符 -R : 递归列出所有子目录 -d : 当遇到目录时列出目录本身而非目录内的文件,并且不跟随符号链接 -F : 在条目后加上文件类型的指示符号 (*/=@| 其中一个) -l : 使用较长格式列出信息 -L : 当显示符号链接的文件信息时,显示符号链接所指示的对象而并非符号链接本身的信息-x : 逐行列出项目而不是逐栏列出 -1 : 每行只列出一个文件 -r : 依相反次序排列 -S : 根据文件大小排序 -X : 根据扩展名排序 -c : 根据状态改变时间(ctim e)排序 -t : 根据最后修改时间(m tim e)排序 -u : 根据最后访问时间(atim e)排序 使用举例: $ ls $ ls -a $ ls -F $ ls -l $ ls -R $ ls -Sl $ ls -rl $ ls -cl $ ls -tl $ ls -ul $ ls some/dir/file $ ls some/dir/ $ ls -d some/dir/

tree 功能说明: 显示文件和目录树 命令格式: tree [参数] [<目录>] 常用参数: -a : 不隐藏任何以 . 字符开始的条目 -d : 只显示目录不显示文件 -f : 每个文件都显示路径 -F : 在条目后加上文件类型的指示符号 (*/=@| 其中一个) -r : 依相反次序排列 -t : 根据最后修改时间(m tim e)排序 -L n : 只显示 n 层目录(n为数字) ––dirsfirst : 目录显示在前文件显示在后 使用举例: $ tree $ tree -d $ tree -F $ tree -L 3 $ tree /some/dir/ pwd 功能说明: 显示当前工作目录 命令格式: pwd [参数] 常用参数: -P : 若目录是一个符号链接,显示的是物理路径而不是符号链接使用举例: $ pwd $ pwd -P cd 功能说明: 切换目录 命令格式: cd [参数] [<目录>] 常用参数: -P : 若目录是一个符号链接,显示的是物理路径而不是符号链接使用举例: $ cd /some/dir/ $ cd -P Examples $ cd $ cd ~

交换两个变量的值,不使用第三个变量的方法及实现

交换两个变量的值,不使用第三个变量的方法及实现: 附录中有C/C++代码: 通常我们的做法是(尤其是在学习阶段):定义一个新的变量,借助它完成交换。代码如下: int a,b; a=10; b=15; int t; t=a; a=b; b=t; 这种算法易于理解,特别适合帮助初学者了解计算机程序的特点,是赋值语句的经典应用。在实际软件开发当中,此算法简单明了,不会产生歧义,便于程序员之间的交流,一般情况下碰到交换变量值的问题,都应采用此算法(以下称为标准算法)。 上面的算法最大的缺点就是需要借助一个临时变量。那么不借助临时变量可以实现交换吗?答案是肯定的!这里我们可以用以下几种算法来实现:1)算术运算;2)指针地址操作;3)位运算;4)栈实现。 1)算术运算 int a,b; a=10;b=12; a=b-a; //a=2;b=12 b=b-a; //a=2;b=10 a=b+a; //a=12;b=10 它的原理是:把a、b看做数轴上的点,围绕两点间的距离来进行计算。 具体过程:第一句“a=b-a”求出ab两点的距离,并且将其保存在a中;第二句“b=b-a”求出a到原点的距离(b到原点的距离与ab两点距离之差),并且将其保存在b中;第三句“a=b+a”求出b到原点的距离(a 到原点距离与ab两点距离之和),并且将其保存在a中。完成交换。 此算法与标准算法相比,多了三个计算的过程,但是没有借助临时变量。(以下称为算术算法)除了使用加、减法外,还可以使用乘、除法实现,实现代码如下: //if a=10;b=12; a=a*b; //a=120;b=12 b=a/b; //a=120;b=10 a=a/b; //a=12;b=10 缺点:是只能用于数字类型,字符串之类的就不可以了。a+b有可能溢出(超出int的范围),溢出是相对的,+了溢出了,-回来不就好了,所以溢出不溢出没关系,就是不安全。 2)指针地址操作 因为对地址的操作实际上进行的是整数运算,比如:两个地址相减得到一个整数,表示两个变量在内存中的储存位置隔了多少个字节;地址和一个整数相加即“a+10”表示以a为基地址的在a后10个a类数据单 元的地址。所以理论上可以通过和算术算法类似的运算来完成地址的交换,从而达到交换变量的目的。即:int *a,*b; //假设 *a=new int(10); *b=new int(20); //&a=0x00001000h,&b=0x00001200h a=(int*)(b-a); //&a=0x00000200h,&b=0x00001200h

相关文档
最新文档