Page 54 of 60« First...«5253545556»...Last »

摘自网络:

英文常见后缀

1、名词后缀

(1) 具有某种职业或动作的人
1)-an, -ain, 表示“……地方的人,精通……的人”American, historian。
2)-al, 表示”具有……职务的人“ principal。
3)-ant,-ent, 表示”……者” merchant, agent, servant, student。
4)-ar, 表示“……的人” scholar, liar, peddler
5)-ard, -art, 表示”做……的人”coward, laggard, braggart(夸张者)
6)-arian, 表示“……派别的人, ……主义的人”humanitarian, vegetarian
7)-ary, 表示”从事……的人“ secretary, missionary
8)-ant, 表示”具有……职责的人“ candidate, graduate
9)-ator, 表示”做……的人“ educator, speculator(投机者)
10)-crat, 表示”某种政体,主义的支持者“ democrat, bureaucrat
11)-ee, 表示”动作承受者“ employee, examinee
12)-eer, 表示”从事于……人“ engineer, volunteer
13)-er, 表示”从事某种职业的人, 某地区,地方的banker, observer, Londoner, villager。
14)-ese, 表示” ……国人,…。。地方的人”Japanese, Cantonese
15)-ess, 表示“阴性人称名词, actress, hostess, manageress
16)-eur, 表示”……家” amateur, littérateur
17)-ian, 表示“……地方人,信仰……。教的人,从事……职业的人”Christian, physician(内科医生),musician
18)-ician, 表示”精通者, ……家,”electrician, magician, technician
19)-icist, 表示“……家, ……。者, ……。能手”physicist, phoneticist, technicist
20)-ic, 表示”……者,……师“ mechanic, critic
21)-ie, 表示”爱,指小“ dearie, auntie, lassie(小姑娘)
22)-ier, 表示”从事……职业” cavalier, clothier, brazier(黄铜匠)
23)-ine, ian, 表示“阴性人称” heroine, ballerina
24)-ist, 表示“从事……研究者,信仰……主义者” pianist, communist, dentist, artist, chemist
25)-ive, 表示“动作者,行为者” native, captive
26)-logist, 表示”……学家,研究者“ biologist, geologist(地质学家)
27)-or, 表示”……者“ author, doctor, operator。
28)-ster, 表示”做……。事情的人”youngster, gamester(赌徒),songster
29)-yer, 表示“ 从事……职业者” lawyer

(2)构成,具有抽象名词的含义
1)-acy, 表示”性质,状态,境遇“ accuracy, diplomacy
2)-age, 表示”状态,行为,身份及其结果,总称“ courage, storage, marriage
3)-al, a) 表示”事物的动作,过程”refusal, arrival, survival, denial, approval
b) 表示具体的事物manual, signal, editorial, journal
4)-ance, -ence表示“性质,状况,行为,过程,总量,程度” endurance, importance, diligence, difference, obedience
5)-ancy, -ency, 表示”性质,状态,行为,过程“ frequency, urgency, efficiency。
6)-bility, 表示”动作,性质,状态“ possibility, feasibility。
7)-craft, 表示”工艺,技巧” woodcraft, handicraft, statecraft(治国策)
8)-cracy, 表示“统治,支配” bureaucracy, democracy
9)-cy, 表示“性质,状态,职位,级别” bankruptcy(破产),supremacy
10)-dom, 表示“等级,领域,状态” freedom, kingdom, wisdom
11)-ery, -ry, 表示“行为,状态,习性” bravery, bribery, rivalry
12)-ety, 表示“性质,状态” variety, dubiety(怀疑)
13)-faction, -facture, 表示”作成,……化,作用“ satisfaction, manufacture
14)-hood, 表示”资格,身份, 年纪,状态“ childhood, manhood, falsehood
15)-ice, 表示”行为,性质,状态“ notice, justice, service
16)-ine, 表示”带有抽象概念“ medicine, discipline, famine
17)-ing, 表示”动作的过程,结果“ building, writing, learning
18)-ion, -sion, -tion, -ation, -ition, 表示”行为的过程,结果,状况“ action, solution, conclusion, destruction, expression, correction
19)-ise, 表示”性质,状态” exercise, merchandise(商业)
20)-ism, 表示“制度,主义,学说,信仰,行为” socialism, criticism, colloquialism, heroism
21)-ity, 表示“性质,状态,程度” purity, reality, ability, calamity
22)-ment, 表示”行为,状态,过程,手段及其结果 treatment, movement, judgment, punishment, argument
23)-mony, 表示“动作的结果,状态” ceremony, testimony
24)-ness, 表示“性质,状态,程度” goodness, kindness, tiredness, friendliness
25)-or, -our, 表示“动作,性质,状态” favor, error。
26)-osity, 表示“动作,状态” curiosity
27)-ship, 表示”情况,性质,技巧,技能及身份,职业” hardship, membership, friendship
28)-th, 表示“动作,性质,过程,状态” depth, wealth, truth, length, growth
29)-tude, 表示“性质,状态,程度” latitude, altitude(海拔)
30)-ure, 表示“行为,结果” exposure, pressure, failure, procedure(手续)
31)-y, 表示“行为的结果,状态,性质” glory, history, victory, inquiry

(3) 带有场所,地方的含义
1)-age, 表示”住所,地点“ village, cottage
2)-ary, 表示”住所,场地“ library, granary (谷仓)
3)-ery, ry, 表示”工作场所,饲养所,地点“ laundry, nursery, surgery(手术室)
4)-ory, 表示”工作场所,住处“ factory, dormitory, laboratory, observatory

(4) 带有学术,科技含义
1)-grapy, 表示”……学,写法” biography, calligraphy, geography
2)-ic, ics, 表示“……学……法” logic, mechanics, optics, electronics
3)-ology, 表示“……学……论”biology, zoology, technology(工艺学)
4)-nomy, 表示”……学……术“ astronomy, economy, bionomy(生态学)
5)-ery, 表示”学科,技术“ chemistry, cookery, machinery
6)-y, 表示”……学,术,法” photography, philosophy

(5) 表示人和事物的总和,集合含义
1)-age, baggage, tonnage
2)-dom, newspaperdom(新闻界)
3)-hood, neighbourhood, womanhood
4)-ery, cavalry, ministry(内阁)
5)-ure, legislature, judicature

(6) 表示物品和物质名称的含义
1)-ant, ent, solvent, constant
2)-al, signal, pictorial(画报)
3)ar, collar, pillar(石柱)
4)- er, boiler, computer, washer, cooker
5)-ery, drapery(绸缎)
6)-ing, clothing, matting
7)-ment, instrument, equipment, attachment

(7) 表示“细小”的含义
1)-cle, particle
2)-cule, molecule(分子)
3)-el, parcel
4)-en, chicken, maiden
5)-et, pocket, ticket
6)-etta, -ette, etto, cigarette, essayette(短文)
7)-kin, napkin
8)-ling, duckling
9)-let, booklet
10)-y, baby, doggy

2、 形容词后缀

(1)带有“属性,倾向,相关”的含义
1)-able, -ible, movable, comfortable, applicable, visible, responsible
2)-al, natural, additional, educational
3)-an, ane, urban, suburban, republican
4)-ant, -ent, distant, important, excellent
5)-ar, similar, popular, regular
6)-ary, military, voluntary
7)-ice, -atie, ical, politic, systematic, historic, physical
8)-ine, masculine, feminine, marine
9)-ing, moving, touching, daring
10)-ish, foolish, bookish, selfish
11)-ive, active, impressive, decisive
12)-ory, satisfactory, compulsory
13)-il, -ile, -eel, fragile, genteel(文雅的)

(2) 表示“相象,类似”的含义
1)-ish, boyish, childish
2)-esque, picturesque
3)-like, manlike, childlike
4)-ly, manly, fatherly, scholarly, motherly
5)-some, troublesome, handsome
6)-y, milky, pasty

(3) 表示“充分的”含义
1)-ful, beautiful, wonderful, helpful, truthful
2)-ous, dangerous, generous, courageous, various
3)-ent, violent

(4) 表示由某种物质形成,制成或生产的含义
1)-en, wooden, golden, woolen
2)-ous, gaseous
3)-fic, scientific

(5) 表示方向的含义
1)-ern, eastern, western
2)-ward, downward, forward

(6) 表示“倍数”的含义
1)-ble, double, treble
2)ple, triple
3)-fold, twofold, tenfold

(7) 表示“数量关系”的含义
1)-teen, thirteen
2)-ty, fifty
3)-th, fourth, fiftieth

(8) 表示国籍,语种,宗教的含义
1)-an, Roman, European
2)-ese, Chinese
3)-ish, English, Spanish

(9) 表示“比较程度”的含义
1)-er, greater
2)-ish, reddish, yellowish
3)-est, highest
4)-most, foremost, topmost

(10)其他的含义
-less, 表示否定,countless, stainless, wireless

3、动词后缀
1)-ize, ise, 表示“做成,变成,……化“ modernize, mechanize, democratize, organize
2)-en, 表示”使成为,引起,使有” quicken, weaken, soften, harden
3)-fy, 表示“使……化, 使成”beautify, purify, intensify, signify, simplify
4)-ish, 表示”使,令” finish, abolish, diminish, establish
5)-ate, 表示“成为……,处理,作用” separate, operate, indicate

4、副词后缀
1)-ly, possibly,ftly, simply
2)-ward, -wards, downward, inwards, upward
3)-ways, always, sideways
4)-wise, otherwise, clockwise

摘自沪江博客
英文单词后缀:表示“各类人”的英语词缀

一、从社会层次、地位、工作职务上来看:

1、加“-er ”可表示“人”,这类词多数情况下表示的人物社会地位较低,或从历史上看较低。
例:beginner, driver,teacher,labourer,runner,skier,swimmer,observer, murdererpassenger, traveller,learner, lover,worker, researcher,printer,gardener, owner ,wrestler,etc.

2、加“-or ”可表示“人”,这类词多数情况下表示的人物社会地位较高,或从历史上看较高。
例:doctor, tutor,director
compositor,collector, instructor

3、加“-ist ”/ “-an”可表示“人”,这类词多数情况下表示事业有成就或较为特殊的人,
例: artist, scientist, physicist , journalist
dentist , instrumentalist, meteorologist
historian , technician,vegetarian
except: cyclist, motorcyclist

二、从性别上来看:
通常加“-er / -or ” 多为“男性”, 加“-ess”多为女性
waiter waitress
steward, stewardess
actor actress instructor instructress
lawyer lawyeress

三、从主动、被动上来看, 加“-er \- or”为主动,加“-ee ”为被动
examiner examinee
employer employee
interviewer interviewee.
四、有时会直接用表示人的词构词,象-boy , -girl, -man, -woman,
cowboy, playboy, salesgirl,salesperson,
workman, postman,workwomen



我想在java中,关于public class 和 class 的问题,应该是每个java初学者都会问的问题吧。我也不例外。自己总结了下,主要有2点不一样。

1. class只是定义了一个类,保存时文件名可以用和类名不同的文件名保存。但编译后,执行的时候必须用的是类名,并不是文件名。否则javac会提示找不 到类。public classs也是定义了一个类,但是这个类具有public公用接口,所以保存的文件名必须和类名一样。每个java文件里面,可以定义很多个类,编译后 会产生多个*.class。但是public类只能有一个,而且必须和文件名一样。

2.class类,编译后,如果你指定构造器的话,系统 会自动给加上一个class name()的构造器,如class a,那么系统就自动加上一个a()。public class类,系统会自动给加上一个public class name()的构造器。如public class a,— public a()。

今天在编译java的时候,想到每次编译文件都要这么麻烦。输入javac,要编译的文件路径,然后还要输入-d 和指定的放置class文件目录,为何不做个bat批处理解决呢。问题应该很简单的。于是,上网查了下资料。做了个make.bat,然后在系统path 里面设置了make文件的存放位置,在classpath里面添上准备存放class文件的路径。现在可在任意一个dos目录下,只需输入make和要编 译的文件路径就可以了。make.bat代码只有2句,如下:

@echo off
◎javac %1 -d C:\je\class

第一行:echo off 表示在此语句后所有运行的命令都不显示命令行本身。第二行:调用javac命令编译文件,用%1来获取make后面跟着的要编译的文件路径,-d C:\je\class实际上就是javac的命令行参数,作用就是指定javac将所编译生成的class文件存放在C:\je\class文件夹中。

非常简单吧。却可以省很多输入。bat文件制作好后,一定要在系统path里面设置了make文件的存放位置,这样你就可以在dos的任意目录下运行该批处理文件了。

附上一篇网络上找的,”教你制作批处理文件”,转自http://www.yuese.com

批 处理文件有时很有用,在咱们论坛最常用的可能是这个修复IE的批处理文件(不管IE问题多大,只要运行这个文件,一般都会有效果):其次,解决2000、 XP默认共享也有一种方法是作一个批处理文件加到“启动”中。 扩展名是bat(在nt/2000/xp/2003下也可以是cmd)的文件就是批处理文件。
首先批处理文件是一个文本文件,这个文件的每一行都是一条DOS命令(大部分时候就好象我们在DOS提示符下执行的命令行一样),你可以使用DOS下的Edit或者Windows的记事本(notepad)等任何文本文件编辑工具创建和修改批处理文件。

其 次,批处理文件是一种简单的程序,可以通过条件语句(if)和流程控制语句(goto)来控制命令运行的流程,在批处理中也可以使用循环语句(for)来 循环执行一条命令。当然,批处理文件的编程能力与C语言等编程语句比起来是十分有限的,也是十分不规范的。批处理的程序语句就是一条条的DOS命令(包括 内部命令和外部命令),而批处理的能力主要取决于你所使用的命令。

第三,每个编写好的批处理文件都相当于一个DOS的外部命令,你可以把它 所在的目录放到你的DOS搜索路径(path)中来使得它可以在任意位置运行。一个良好的习惯是在硬盘上建立一个bat或者batch目录(例如C:\ BATCH),然后将所有你编写的批处理文件放到该目录中,这样只要在path中设置上c:\batch,你就可以在任意位置运行所有你编写的批处理程 序。

第四,在DOS和Win9x/Me系统下,C:盘根目录下的AUTOEXEC.BAT批处理文件是自动运行批处理文件,每次系统启动时 会自动运行该文件,你可以将系统每次启动时都要运行的命令放入该文件中,例如设置搜索路径,调入鼠标驱动和磁盘缓存,设置系统环境变量等。下面是一个运行 于Windows 98下的autoexec.bat的示例:
@ECHO OFF
PATH C:\WINDOWS;C:\WINDOWS\COMMAND;C:\UCDOS;C:\DOSTools;C:\SYSTOOLS;C:\WINTOOLS;C:\BATCH
LH SMARTDRV.EXE /X
LH DOSKEY.COM /INSERT
LH CTMOUSE.EXE
SET TEMP=D:\TEMP
SET TMP=D:\TEMP
批处理的作用
简单的说,批处理的作用就是自动的连续执行多条命令。

这里先讲一个最简单的应用:在启动wps软件时,每次都必须执行(>前面内容表示DOS提示符):
C:\>cd wps
C:\WPS>spdos
C:\WPS>py
C:\WPS>wbx
C:\WPS>wps
如果每次用WPS之前都这样执行一遍,您是不是觉得很麻烦呢?

好了,用批处理,就可以实现将这些麻烦的操作简单化,首先我们编写一个runwps.bat批处理文件,内容如下:
@echo off
c:
cd\wps
spdos
py
wbx
wps
cd\

以后,我们每次进入wps,只需要运行runwps这个批处理文件即可。

常用命令

echo、@、call、pause、rem(小技巧:用::代替rem)是批处理文件最常用的几个命令,我们就从他们开始学起。
echo 表示显示此命令后的字符
echo off 表示在此语句后所有运行的命令都不显示命令行本身
@与echo off相象,但它是加在每个命令行的最前面,表示运行时不显示这一行的命令行(只能影响当前行)。
call 调用另一个批处理文件(如果不用call而直接调用别的批处理文件,那么执行完那个批处理文件后将无法返回当前文件并执行当前文件的后续命令)。
pause 运行此句会暂停批处理的执行并在屏幕上显示Press any key to continue…的提示,等待用户按任意键后继续
rem 表示此命令后的字符为解释行(注释),不执行,只是给自己今后参考用的(相当于程序中的注释)。

例1:用edit编辑a.bat文件,输入下列内容后存盘为c:\a.bat,执行该批处理文件后可实现:将根目录中所有文件写入 a.txt中,启动UCDOS,进入WPS等功能。

批处理文件的内容为:         命令注释:

@echo off           不显示后续命令行及当前命令行
dir c:\*.* >a.txt       将c盘文件列表写入a.txt
call c:\ucdos\ucdos.bat    调用ucdos
echo 你好            显示”你好”
pause              暂停,等待按键继续
rem 准备运行wps         注释:准备运行wps
cd ucdos            进入ucdos目录
wps               运行wps

批处理文件的参数

批处理文件还可以像C语言的函数一样使用参数(相当于DOS命令的命令行参数),这需要用到一个参数表示符“%”。

%[1-9]表示参数,参数是指在运行批处理文件时在文件名后加的以空格(或者Tab)分隔的字符串。变量可以从%0到%9,%0表示批处理命令本身,其它参数字符串用%1到%9顺序表示。

例2:C:根目录下有一批处理文件名为f.bat,内容为:
@echo off
format %1

如果执行C:\>f a:
那么在执行f.bat时,%1就表示a:,这样format %1就相当于format a:,于是上面的命令运行时实际执行的是format a:

例3:C:根目录下一批处理文件名为t.bat,内容为:
@echo off
type %1
type %2

那么运行C:\>t a.txt b.txt
%1 : 表示a.txt
%2 : 表示b.txt
于是上面的命令将顺序地显示a.txt和b.txt文件的内容。
特殊命令

if goto choice for是批处理文件中比较高级的命令,如果这几个你用得很熟练,你就是批处理文件的专家啦。

一、if 是条件语句,用来判断是否符合规定的条件,从而决定执行不同的命令。 有三种格式:

1、if [not] “参数” == “字符串” 待执行的命令

参数如果等于(not表示不等,下同)指定的字符串,则条件成立,运行命令,否则运行下一句。

例:if “%1″==”a” format a:

2、if [not] exist [路径\]文件名 待执行的命令
如果有指定的文件,则条件成立,运行命令,否则运行下一句。

如: if exist c:\config.sys type c:\config.sys
表示如果存在c:\config.sys文件,则显示它的内容。

3、if errorlevel <数字> 待执行的命令

很 多DOS程序在运行结束后会返回一个数字值用来表示程序运行的结果(或者状态),通过if errorlevel命令可以判断程序的返回值,根据不同的返回值来决定执行不同的命令(返回值必须按照从大到小的顺序排列)。如果返回值等于指定的数 字,则条件成立,运行命令,否则运行下一句。

如if errorlevel 2 goto x2

二、goto 批处理文件运行到这里将跳到goto所指定的标号(标号即label,标号用:后跟标准字符串来定义)处,goto语句一般与if配合使用,根据不同的条件来执行不同的命令组。

如:

goto end

:end
echo this is the end

标号用“:字符串”来定义,标号所在行不被执行。

三、choice 使用此命令可以让用户输入一个字符(用于选择),从而根据用户的选择返回不同的errorlevel,然后于if errorlevel配合,根据用户的选择运行不同的命令。

注意:choice命令为DOS或者Windows系统提供的外部命令,不同版本的choice命令语法会稍有不同,请用choice /?查看用法。

choice的命令语法(该语法为Windows 2003中choice命令的语法,其它版本的choice的命令语法与此大同小异):

CHOICE [/C choices] [/N] [/CS] [/T timeout /D choice] [/M text]

描述:
该工具允许用户从选择列表选择一个项目并返回所选项目的索引。

参数列表:
/C choices 指定要创建的选项列表。默认列表是 “YN”。

/N 在提示符中隐藏选项列表。提示前面的消息得到显示,
选项依旧处于启用状态。

/CS 允许选择分大小写的选项。在默认情况下,这个工具
是不分大小写的。

/T timeout 做出默认选择之前,暂停的秒数。可接受的值是从 0
到 9999。如果指定了 0,就不会有暂停,默认选项
会得到选择。

/D choice 在 nnnn 秒之后指定默认选项。字符必须在用 /C 选
项指定的一组选择中; 同时,必须用 /T 指定 nnnn。

/M text 指定提示之前要显示的消息。如果没有指定,工具只
显示提示。

/? 显示帮助消息。

注意:
ERRORLEVEL 环境变量被设置为从选择集选择的键索引。列出的第一个选
择返回 1,第二个选择返回 2,等等。如果用户按的键不是有效的选择,
该工具会发出警告响声。如果该工具检测到错误状态,它会返回 255 的
ERRORLEVEL 值。如果用户按 Ctrl+Break 或 Ctrl+C 键,该工具会返回 0
的 ERRORLEVEL 值。在一个批程序中使用 ERRORLEVEL 参数时,将参数降
序排列。

示例:
CHOICE /?
CHOICE /C YNC /M “确认请按 Y,否请按 N,或者取消请按 C。”
CHOICE /T 10 /C ync /CS /D y
CHOICE /C ab /M “选项 1 请选择 a,选项 2 请选择 b。”
CHOICE /C ab /N /M “选项 1 请选择 a,选项 2 请选择 b。”

如果我运行命令:CHOICE /C YNC /M “确认请按 Y,否请按 N,或者取消请按 C。”
屏幕上会显示:
确认请按 Y,否请按 N,或者取消请按 C。 [Y,N,C]?

例:test.bat的内容如下(注意,用if errorlevel判断返回值时,要按返回值从高到低排列):
@echo off
choice /C dme /M “defrag,mem,end”
if errorlevel 3 goto end
if errorlevel 2 goto mem
if errotlevel 1 goto defrag

:defrag
c:\dos\defrag
goto end

:mem
mem
goto end

:end
echo good bye

此 批处理运行后,将显示“defrag,mem,end[D,M,E]?” ,用户可选择d m e ,然后if语句根据用户的选择作出判断,d表示执行标号为defrag的程序段,m表示执行标号为mem的程序段,e表示执行标号为end的程序段,每个 程序段最后都以goto end将程序跳到end标号处,然后程序将显示good bye,批处理运行结束。

四、for 循环命令,只要条件符合,它将多次执行同一命令。

语法:
对一组文件中的每一个文件执行某个特定命令。

FOR %%variable IN (set) DO command [command-parameters]

%%variable 指定一个单一字母可替换的参数。
(set) 指定一个或一组文件。可以使用通配符。
command 指定对每个文件执行的命令。
command-parameters
为特定命令指定参数或命令行开关。

例如一个批处理文件中有一行:
for %%c in (*.bat *.txt) do type %%c

则该命令行会显示当前目录下所有以bat和txt为扩展名的文件的内容。
批处理示例

1. IF-EXIST

1)

首先用记事本在C:\建立一个test1.bat批处理文件,文件内容如下:
@echo off
IF EXIST \AUTOEXEC.BAT TYPE \AUTOEXEC.BAT
IF NOT EXIST \AUTOEXEC.BAT ECHO \AUTOEXEC.BAT does not exist

然后运行它:
C:\>TEST1.BAT

如果C:\存在AUTOEXEC.BAT文件,那么它的内容就会被显示出来,如果不存在,批处理就会提示你该文件不存在。

2)

接着再建立一个test2.bat文件,内容如下:
@ECHO OFF
IF EXIST \%1 TYPE \%1
IF NOT EXIST \%1 ECHO \%1 does not exist

执行:
C:\>TEST2 AUTOEXEC.BAT
该命令运行结果同上。

说明:
(1) IF EXIST 是用来测试文件是否存在的,格式为
IF EXIST [路径+文件名] 命令
(2) test2.bat文件中的%1是参数,DOS允许传递9个批参数信息给批处理文件,分别为%1~%9(%0表示test2命令本身) ,这有点象编程中的实参和形参的关系,%1是形参,AUTOEXEC.BAT是实参。

3) 更进一步的,建立一个名为TEST3.BAT的文件,内容如下:
@echo off
IF “%1″ == “A” ECHO XIAO
IF “%2″ == “B” ECHO TIAN
IF “%3″ == “C” ECHO XIN

如果运行:
C:\>TEST3 A B C
屏幕上会显示:
XIAO
TIAN
XIN

如果运行:
C:\>TEST3 A B
屏幕上会显示
XIAO
TIAN

在这个命令执行过程中,DOS会将一个空字符串指定给参数%3。

2、IF-ERRORLEVEL

建立TEST4.BAT,内容如下:
@ECHO OFF
XCOPY C:\AUTOEXEC.BAT D:IF ERRORLEVEL 1 ECHO 文件拷贝失败
IF ERRORLEVEL 0 ECHO 成功拷贝文件

然后执行文件:
C:\>TEST4

如果文件拷贝成功,屏幕就会显示“成功拷贝文件”,否则就会显示“文件拷贝失败”。

IF ERRORLEVEL 是用来测试它的上一个DOS命令的返回值的,注意只是上一个命令的返回值,而且返回值必须依照从大到小次序顺序判断。
因此下面的批处理文件是错误的:
@ECHO OFF
XCOPY C:\AUTOEXEC.BAT D:\
IF ERRORLEVEL 0 ECHO 成功拷贝文件
IF ERRORLEVEL 1 ECHO 未找到拷贝文件
IF ERRORLEVEL 2 ECHO 用户通过ctrl-c中止拷贝操作
IF ERRORLEVEL 3 ECHO 预置错误阻止文件拷贝操作
IF ERRORLEVEL 4 ECHO 拷贝过程中写盘错误

无论拷贝是否成功,后面的:

未找到拷贝文件
用户通过ctrl-c中止拷贝操作
预置错误阻止文件拷贝操作
拷贝过程中写盘错误

都将显示出来。

以下就是几个常用命令的返回值及其代表的意义:
backup
0 备份成功
1 未找到备份文件
2 文件共享冲突阻止备份完成
3 用户用ctrl-c中止备份
4 由于致命的错误使备份操作中止

diskcomp
0 盘比较相同
1 盘比较不同
2 用户通过ctrl-c中止比较操作
3 由于致命的错误使比较操作中止
4 预置错误中止比较

diskcopy
0 盘拷贝操作成功
1 非致命盘读/写错
2 用户通过ctrl-c结束拷贝操作
3 因致命的处理错误使盘拷贝中止
4 预置错误阻止拷贝操作

format
0 格式化成功
3 用户通过ctrl-c中止格式化处理
4 因致命的处理错误使格式化中止
5 在提示“proceed with format(y/n)?”下用户键入n结束

xcopy
0 成功拷贝文件
1 未找到拷贝文件
2 用户通过ctrl-c中止拷贝操作
4 预置错误阻止文件拷贝操作
5 拷贝过程中写盘错误

3、IF STRING1 == STRING2

建立TEST5.BAT,文件内容如下:
@echo off
IF “%1″ == “A” FORMAT A:

执行:
C:\>TEST5 A
屏幕上就出现是否将A:盘格式化的内容。

注意:为了防止参数为空的情况,一般会将字符串用双引号(或者其它符号,注意不能使用保留符号)括起来。
如:if [%1]==[A] 或者 if %1*==A*

5、GOTO

建立TEST6.BAT,文件内容如下:
@ECHO OFF
IF EXIST C:\AUTOEXEC.BAT GOTO _COPY
GOTO _DONE
:_COPY
COPY C:\AUTOEXEC.BAT D:\
:_DONE

注意:
(1) 标号前是ASCII字符的冒号”:”,冒号与标号之间不能有空格。
(2) 标号的命名规则与文件名的命名规则相同。
(3) DOS支持最长八位字符的标号,当无法区别两个标号时,将跳转至最近的一个标号。

6、FOR

建立C:\TEST7.BAT,文件内容如下:
@ECHO OFF
FOR %%C IN (*.BAT *.TXT *.SYS) DO TYPE %%C

运行:
C:>TEST7

执行以后,屏幕上会将C:盘根目录下所有以BAT、TXT、SYS为扩展名的文件内容显示出来(不包括隐藏文件)。

今天在用VB编矩阵计算的时候。编写了个子程序,不过调用的时候老是出现BeRef参数类型不符的错误提示。后来才找到了原因,其实原来很简单。如下面这2段程序,运行起来第二段代码就会出现BeRef参数类型不符的错误提示。Function sum(a As Integer, b As Integer)
sum = a + b
End Function
Private Sub Command1_Click()
Dim m As Integer
Dim n As Integer
m = Val(Text1.Text)
n = Val(Text2.Text)
MsgBox (sum(m, n))
End Sub

Private Sub Command1_Click()
Dim m, n As Integer
m = Val(Text1.Text)
n = Val(Text2.Text)
MsgBox (sum(m, n))
End Sub

原因就在于:在第一段代码里面,我们分别定义了m和n的类型都为integer。但在第二段代码里面,虽然写了Dim m, n As Integer,但实际上我们只定义了n为integer,而没有定义m的类型,而对于未指定类型的变量,VB自动将它定义为Variant类型了,这就 导致了引用sum函数的时候BeRef参数类型不符合了。我以前一直认为Dim m, n As Integer,就是将m和n同时定义为integer类型了,而且像这种小错误,很容易犯,却又很不容易找出,因为很容易被忽略。看来编程过程中,语法 的小错误就必须靠多写代码来避免了。

顺便带下,VB有两种传递参数值的方法:ByRef表示传递的是参数的地址,ByVal表示传递的是 参数的值。ByRef是VB默认的参数传递方式,如果指定传递的是参数的值要使用关键字ByVal。而如果传递的是参数的值,VB在大多数情况下会自动转 换,及时参数声明的类型和实际参数的类型不同也问题不大。但是,如果采用ByRef,则要求参数声明的类型和实际参数的类型完全相同,否则VB就会报告错 误。

C、传统 C++

#include     //设定插入点
#include      //字符处理
#include      //定义错误码
#include      //浮点数处理
#include     //文件输入/输出
#include     //参数化输入/输出
#include    //数据流输入/输出
#include     //定义各种数据类型最值常量
#include     //定义本地化函数
#include      //定义数学函数
#include      //定义输入/输出函数
#include     //定义杂项函数及内存分配函数
#include     //字符串处理
#include    //基于数组的输入/输出
#include      //定义关于时间的函数
#include      //宽字符处理及输入/输出
#include     //宽字符分类

//////////////////////////////////////////////////////////////////////////

标准 C++ (同上的不再注释)

#include     //STL 通用算法
#include      //STL 位集容器
#include
#include
#include
#include
#include      //复数类
#include
#include
#include
#include
#include       //STL 双端队列容器
#include     //异常处理类
#include
#include    //STL 定义运算函数(代替运算符)
#include

#include       //STL 线性列表容器
#include
       //STL 映射容器
#include
#include        //基本输入/输出支持
#include      //输入/输出系统使用的前置声明
#include
#include      //基本输入流
#include      //基本输出流
#include       //STL 队列容器
#include        //STL 集合容器
#include      //基于字符串的流
#include       //STL 堆栈容器
#include     //标准异常类
#include     //底层输入/输出支持
#include      //字符串类
#include      //STL 通用模板类
#include      //STL 动态数组容器
#include
#include
using namespace std;

//////////////////////////////////////////////////////////////////////////

C99 增加

#include    //复数处理
#include     //浮点环境
#include   //整数格式转换
#include    //布尔环境
#include    //整型环境
#include    //通用类型数学宏

前几天帮研究室内的先辈编了一个VB程序。先辈的研究课题有一个工作台、员工的一个组合方案。要求输入初始值后能自动生成组合结果,也就是工作台和 员工的具体安排方法。也是属于最优化管理里面一个内容吧。自己以后也有可能用上,并且自己目前为止还没实际运用过VB的数组运算还有排列组合,通过这个编 程,对数组操作也实际运用了下。还想有时间作个矩阵的加减乘除算法吧。行列数相等的矩阵算法应该是很简单的,运用2个循环就可以解决了。现在问题是如 m*n和n*k之类的行列数目不相等矩阵的算法还不明白,过几天有空看下矩阵运算的书后再编吧。这东西我想以后自己的研究肯定会用的上的。其实对于编程, 我觉得关键是掌握算法,对于具体用什么语言来编,这都无所谓。因为语言只是算法的一个表现而已了。各个语言的区别只是在于语法的不同,他们实现的功能都是 一样的(就是你的目的)。具体内容就是一个2维数组的排列组合问题。
有这个一个2×5数组,如
1 1 1 1 0
1 0 0 1 1,初始值可任意输入,元素全部由0和1组成。上下行中可允许存在1和1,但不允许同时有0和0存在。求这个数组的排列组合。
条件,
a.上下2个元素的和必须为1,即上行为1,下行必须为0,或下行为1,上行必须为0。
b.初始值为0的列,不能变化,如初始值为
1 1 1 1 0
1 0 0 1 1,意味,第2,3,5列的位置不能变化,该数组的有效组合有4个。分别为:
1 1 1 1 0
0 0 0 0 1

1 1 1 0 0
0 0 0 1 1

0 1 1 1 0
1 0 0 0 1

0 1 1 0 0
1 0 0 1 1
换句话说,初始值中0的位置,决定了可产生有效组合的数量,有效组合数量=2^(5-0的个数)。如,初始值中有2个0,则可产生排列数组有8个,1个0的话,可产生16个,如果没有0的话,产生32个。

目的是就是求给定一个初始值,能产生多少个数组。
如给定初始值为:
11011
01111或
01111
10111之类的,求能产生多少个类似
11011
00100的组合,条件就是
a.上下2个元素的和必须为1,即上行为1,下行必须为0,或下行为1,上行必须为0。
b.初始值为0的列,不能变化,如初始值为
1 1 1 1 0
1 0 0 1 1,意味,第2,3,5列的位置不能变化,该数组的有效组合有4个。

虽然还是自己弄出来了。但是觉得算法不是很好。个人感觉这个不是计算机在算,是自己算好后,强加上去的。没法了,先凑合吧。
思路是,先判断列中1的位置,然后用几个变量记住。并获得总数。然后将原始数据(可能包括非法数据),格式成上1,下0,用一个数组存放。接着判断1的总数,然后在这个数组基础上输出可变组合。判断可变列的总数;
如果是0,无可变列,代表输入初始值有问题,
如果是1,代表有2个可变组合。用一个循环获得含1的列号,然后输出1,0和0,1,2个组合变化。
如果是2,代表有4个可变组合。用2个循环来解决,第一循环找第一个可变列1的列号,然后在此基础上进行第二个循环找第二个可变列1的列号,分别变化,输出可变数组。
如果是3,代表有8个可变组合。如果用循环,判断就太罗嗦复杂了。于是简单点,设置n1,n2,n3分别代表3个可变列的列号,然后设置一个循环从1-5,分别设置3个判断,当循环到n1,n2,n3的时候分别设置变化,输出可变数组。
如果是4,代表有16个可变组合。用上面的方法解决。
如果是5,则是全变化,32个可变组合。由于不存在不可变列。就分别对元素进行变化,输出。

具体代码:

Option Explicit
Dim Oarray(1, 4) As Integer ‘original array value
Dim Sarray() As String ‘set of combined array
Dim n As Integer ‘number of combinability array
Dim x As Integer ‘number of original array value 0
Dim z(4) As Integer ‘set of position of 0 in original array, use as hand

Private Sub cmdinput_Click()
Dim i As Integer
Dim j As Integer

For i = 0 To 4 ‘get original value
Oarray(0, i) = Val(Text1(i).Text)
Oarray(1, i) = Val(Text2(i).Text)
Next i

For i = 0 To 4 ‘set z()=1
z(i) = 1
Next i

x = 0
For i = 0 To 1
For j = 0 To 4
If Oarray(i, j) = 0 Then
z(j) = Oarray(i, j)
x = x + 1
End If
Next j
Next i

If x < 5 Then
n = 2 ^ (5 – x)
Label3.Caption = n ‘calculate number of combinability arrays
Else
n = 0
Label3.Caption = n
MsgBox (“no combinability arrays, input error. Please check data.”)
Exit Sub
End If

ReDim Sarray(n – 1) ‘redim Sarray
For i = 0 To n – 1
Sarray(i) = “”
Next i

End Sub

Private Sub cmdcalculate_Click()
Dim one As Integer
Dim i As Integer
Dim j As Integer
Dim m As Integer ‘Sarray(m)
Dim n1 As Integer
Dim n2 As Integer
Dim n3 As Integer
Dim n4 As Integer
Dim T1(1, 4) As Integer
Dim T2(1, 4) As Integer
Dim tz(4) As Integer

one = 5 – x

Call value2(z(), tz(), 4)
Call value1(Oarray(), T1(), 1, 4)
For i = 0 To 4
If tz(i) = 1 Then
T1(0, i) = 1
T1(1, i) = 0
End If
Next i
Call value1(T1(), T2(), 1, 4)
‘MsgBox (output1(1, 4, T2()))

Select Case one
Case 0
MsgBox (“no combinability arrays, input error. Please check data.”)

Case 1
For i = 0 To 4
If tz(i) = 1 Then
Sarray(0) = output1(1, 4, T2())
T2(0, i) = 0
T2(1, i) = 1
Sarray(1) = output1(1, 4, T2())
‘MsgBox (output3(1, Sarray()))
End If
Next i

Case 2
‘MsgBox (output2(4, tz()))
m = 0
Sarray(m) = output1(1, 4, T2())
m = m + 1
For i = 0 To 4
If tz(i) = 1 Then
n1 = i
For j = n1 + 1 To 4
If tz(j) = 1 Then
T2(0, j) = 0
T2(1, j) = 1
Sarray(m) = output1(1, 4, T2())
‘MsgBox (m & vbCrLf & output1(1, 4, T2()))
Call value1(T1(), T2(), 1, 4)
m = m + 1
End If
Next j

T2(0, i) = 0
T2(1, i) = 1
Sarray(m) = output1(1, 4, T2())
‘MsgBox (m & vbCrLf & output1(1, 4, T2()))
m = m + 1
End If
Next i

Case 3
n1 = 0
n2 = 0
n3 = 0

For i = 0 To 4
If tz(i) = 1 Then
If n1 = 0 Then
n1 = i + 1
Else
If n2 = 0 Then
n2 = i + 1
Else
n3 = i + 1
End If
End If
End If
Next i
n1 = n1 – 1
n2 = n2 – 1
n3 = n3 – 1

m = 0
Sarray(m) = output1(1, 4, T2())
m = m + 1

For i = 0 To 4
If i = n1 Then
Call value1(T1(), T2(), 1, 4)
T2(0, i) = 0
T2(1, i) = 1
Sarray(m) = output1(1, 4, T2())
m = m + 1

T2(0, n2) = 0
T2(1, n2) = 1
Sarray(m) = output1(1, 4, T2())
m = m + 1

T2(0, n3) = 0
T2(1, n3) = 1
Sarray(m) = output1(1, 4, T2())
m = m + 1

T2(0, n2) = 1
T2(1, n2) = 0
Sarray(m) = output1(1, 4, T2())
m = m + 1
End If

If i = n2 Then
Call value1(T1(), T2(), 1, 4)
T2(0, i) = 0
T2(1, i) = 1
Sarray(m) = output1(1, 4, T2())
m = m + 1

T2(0, n3) = 0
T2(1, n3) = 1
Sarray(m) = output1(1, 4, T2())
m = m + 1
End If

If i = n3 Then
Call value1(T1(), T2(), 1, 4)
T2(0, i) = 0
T2(1, i) = 1
Sarray(m) = output1(1, 4, T2())
End If
Next i

Case 4
n1 = 0
n2 = 0
n3 = 0
n4 = 0

For i = 0 To 4
If tz(i) = 1 Then
If n1 = 0 Then
n1 = i + 1
Else
If n2 = 0 Then
n2 = i + 1
Else
If n3 = 0 Then
n3 = i + 1
Else
n4 = i + 1
End If
End If
End If
End If
Next i
n1 = n1 – 1
n2 = n2 – 1
n3 = n3 – 1
n4 = n4 – 1
m = 0
Sarray(m) = output1(1, 4, T2())
m = m + 1

For i = 0 To 4
If i = n1 Then
Call value1(T1(), T2(), 1, 4)
T2(0, i) = 0
T2(1, i) = 1
Sarray(m) = output1(1, 4, T2())
m = m + 1

T2(0, n2) = 0
T2(1, n2) = 1
Sarray(m) = output1(1, 4, T2())
m = m + 1

T2(0, n3) = 0
T2(1, n3) = 1
Sarray(m) = output1(1, 4, T2())
m = m + 1

T2(0, n4) = 0
T2(1, n4) = 1
Sarray(m) = output1(1, 4, T2())
m = m + 1

T2(0, n3) = 1
T2(1, n3) = 0
Sarray(m) = output1(1, 4, T2())
m = m + 1

T2(0, n2) = 1
T2(1, n2) = 0
T2(0, n3) = 0
T2(1, n3) = 1
T2(0, n4) = 1
T2(1, n4) = 0
Sarray(m) = output1(1, 4, T2())
m = m + 1

T2(0, n4) = 0
T2(1, n4) = 1
Sarray(m) = output1(1, 4, T2())
m = m + 1

T2(0, n3) = 1
T2(1, n3) = 0
Sarray(m) = output1(1, 4, T2())
m = m + 1
End If

If i = n2 Then
Call value1(T1(), T2(), 1, 4)
T2(0, i) = 0
T2(1, i) = 1
Sarray(m) = output1(1, 4, T2())
m = m + 1

T2(0, n3) = 0
T2(1, n3) = 1
Sarray(m) = output1(1, 4, T2())
m = m + 1

T2(0, n4) = 0
T2(1, n4) = 1
Sarray(m) = output1(1, 4, T2())
m = m + 1

T2(0, n3) = 1
T2(1, n3) = 0
Sarray(m) = output1(1, 4, T2())
m = m + 1
End If

If i = n3 Then
Call value1(T1(), T2(), 1, 4)
T2(0, i) = 0
T2(0, i) = 1
Sarray(m) = output1(1, 4, T2())
m = m + 1

T2(0, n4) = 0
T2(1, n4) = 1
Sarray(m) = output1(1, 4, T2())
m = m + 1
End If

If i = n4 Then
Call value1(T1(), T2(), 1, 4)
T2(0, i) = 0
T2(1, i) = 1
Sarray(m) = output1(1, 4, T2())
End If
Next i
Case 5
Sarray(0) = “1,1,1,1,1″ & vbCrLf & “0,0,0,0,0″
Sarray(1) = “0,1,1,1,1″ & vbCrLf & “1,0,0,0,0″
Sarray(2) = “0,0,1,1,1″ & vbCrLf & “1,1,0,0,0″
Sarray(3) = “0,0,0,1,1″ & vbCrLf & “1,1,1,0,0″
Sarray(4) = “0,0,0,0,1″ & vbCrLf & “1,1,1,1,0″
Sarray(5) = “0,0,0,0,0″ & vbCrLf & “1,1,1,1,1″
Sarray(6) = “0,0,0,1,0″ & vbCrLf & “1,1,1,0,1″
Sarray(7) = “0,0,1,0,1″ & vbCrLf & “1,1,0,1,0″
Sarray(8) = “0,0,1,1,0″ & vbCrLf & “1,1,0,0,1″
Sarray(9) = “0,0,1,0,0″ & vbCrLf & “1,1,0,1,1″
Sarray(10) = “0,1,0,1,1″ & vbCrLf & “1,0,1,0,0″
Sarray(11) = “0,1,0,0,1″ & vbCrLf & “1,0,1,1,0″
Sarray(12) = “0,1,0,0,0″ & vbCrLf & “1,0,1,1,1″
Sarray(13) = “0,1,0,1,0″ & vbCrLf & “1,0,1,0,1″
Sarray(14) = “0,1,0,1,1″ & vbCrLf & “1,0,1,0,0″

Sarray(15) = “0,1,1,1,0″ & vbCrLf & “1,0,0,0,1″
Sarray(16) = “0,1,1,0,1″ & vbCrLf & “1,0,0,1,0″

Sarray(17) = “1,0,1,1,1″ & vbCrLf & “0,1,0,0,0″
Sarray(18) = “1,0,0,1,1″ & vbCrLf & “0,1,1,0,0″
Sarray(19) = “1,0,0,0,1″ & vbCrLf & “0,1,1,1,0″
Sarray(20) = “1,0,0,0,0″ & vbCrLf & “0,1,1,1,1″
Sarray(21) = “1,0,0,1,0″ & vbCrLf & “0,1,1,0,1″
Sarray(22) = “1,0,1,0,1″ & vbCrLf & “0,1,0,1,0″
Sarray(23) = “1,0,1,0,0″ & vbCrLf & “0,1,0,1,1″
Sarray(24) = “1,0,1,1,0″ & vbCrLf & “0,1,0,0,1″

Sarray(25) = “1,1,0,1,1″ & vbCrLf & “0,0,1,0,0″
Sarray(26) = “1,1,0,0,1″ & vbCrLf & “0,0,1,1,0″
Sarray(27) = “1,1,0,0,0″ & vbCrLf & “0,0,1,1,1″
Sarray(28) = “1,1,0,1,0″ & vbCrLf & “0,0,1,0,1″

Sarray(29) = “1,1,1,0,1″ & vbCrLf & “0,0,0,1,0″
Sarray(30) = “1,1,1,0,0″ & vbCrLf & “0,0,0,1,1″

Sarray(31) = “1,1,1,1,0″ & vbCrLf & “0,0,0,0,1″

End Select
End Sub
Private Sub cmddisplay_Click()
Dim b As String
b = output3(n – 1, Sarray())
MsgBox (b)
End Sub

Private Sub cmdtofile_Click()
Dim i As Integer
Dim a, b
Open App.Path & “\output.txt” For Output As 1#
For i = 0 To n – 1 Step 1
a = “No.” & i + 1 & vbCrLf & Sarray(i) & vbCrLf
Print #1, a
Next i
b = “Total output ” & n & ” arrays”
MsgBox b
Close #1
End Sub

Private Sub Text1_KeyPress(Index As Integer, KeyAscii As Integer)
If KeyAscii < 48 Or KeyAscii > 49 Then
MsgBox (“input 0 or 1″)
KeyAscii = 0
End If
End Sub

Private Sub Text2_KeyPress(Index As Integer, KeyAscii As Integer)
If KeyAscii < 48 Or KeyAscii > 49 Then
MsgBox (“input 0 or 1″)
KeyAscii = 0
End If
End Sub

Private Function output1(i As Integer, j As Integer, a() As Integer) As String
Dim b As String ‘ output i*j matric to string
Dim m, n As Integer
For m = 0 To i
For n = 0 To j
If m > 0 And n = 0 Then
b = b & vbCrLf & a(m, n)
Else
If b = “” Then
b = a(m, n)
Else
b = b & “,” & a(m, n)
End If
End If
Next n
Next m
output1 = b
End Function
Private Function output2(i As Integer, a() As Integer) As String
Dim b As String ‘output array(i) to string
Dim m As Integer
For m = 0 To i
If m = 0 Then
b = a(m)
Else
b = b & “,” & a(m)
End If
Next m
output2 = b
End Function

Private Function output3(i As Integer, a() As String) As String
Dim b As String ‘output array(i) to string
Dim m As Integer
For m = 0 To i
If m = 0 Then
b = a(m)
Else
b = b & vbCrLf & vbCrLf & a(m)
End If
Next m
output3 = b
End Function

Private Function value1(a() As Integer, b() As Integer, i As Integer, j As Integer) As Integer
Dim m, n As Integer
For m = 0 To i
For n = 0 To j
b(m, n) = a(m, n)
Next n
Next m
End Function

Private Function value2(a() As Integer, b() As Integer, i As Integer) As Integer
Dim m As Integer
For m = 0 To i
b(m) = a(m)
Next m
End Function

Page 54 of 60« First...«5253545556»...Last »