英语名词变复数的规则是什么?
可数名词的复数形式,是在该词末尾加上后辍-s。凡是以s、z、x、ch、sh结尾的词,在该词末尾加上后辍-es构成复数。以辅音字母+y结尾的名词,将y改变为i,再加-es。以-o结尾的名词,如果不是外来词或缩写,就加-es,否则加-s构成复数。以-f或-fe结尾的名词,多为将-f或-fe改变为-ves,但有例外。名词复数变化规则解释:1、只有复数形式,没有单数形式的名词,如:clothes,trousers等。2、形式上的复数,实际上是单数的名词,如:News,maths,physics等。3、形式上的单数,实际上是复数的名词,如:people,police等。4、单数与复数同形的名词,如:sheep,deer,Chinese,Japanese等。5、特殊变化的名词man→men,woman→women,foot→feet,child→children,tooth→teeth,mouse→mice等。
英语中单数变复数的规则是什么?
复数名词的规则分为规则变化和不规则变化。 本文将详细介绍这两种变化。
1通常,在单词末尾添加-s。如:desk---desks书桌;girl---girls女孩;boy---boys男孩;pen---pens钢笔
2对于以-s,-x,-ch,-sh结尾的单词,请在单词末尾添加--es。bus---buses巴士;box--boxes盒子;brush--brushes刷子;watch--watches手表
3对于以辅音加y结尾的单词,请将y更改为i并添加-es。baby-babies婴儿;family--families家庭;
对于以元音后跟y结尾的单词,请直接添加s。boy---boys男孩
4以-f或-fe结尾的单词,将f或fe更改为v,并添加-es。knife---knives刀;leaf---leaves树叶
5为有生命的人添加es,为无生命的人添加s,这是以o结尾的。
radio---radios收音机;photo---photos相片;piano---pianos钢琴;zoo---zoos动物园
口诀加es:
英雄喜欢土豆和西红柿
hero---heroes英雄;potato---potatoes土豆;tomato---tomatoes西红柿;
在什么情况下用video的复数形式
在表示一个或一个以上,video就用复数。以o结尾的名词的复数形式,除了下面四个单词加es外,其他的都加s。Negro—Negroes (黑人) hero—heroes (英雄) tomato—tomatoes (西红柿)potato—potatoes (土豆)所以,video的复数形式是videos。如下面单词加es Negro—Negroes (黑人) hero—heroes (英雄) tomato—tomatoes (西红柿) potato—potatoes (土豆)1、读音:[英]['vɪdɪəʊ][美][ˈvɪdiˌo]2、词性:n.磁带录像;录像磁带;录像机,电视;(指方法)录像;adj.电视的;视频的;影像的;用录像磁带[录像带]的;vt.录像;制作…的录像;3、例句:1.Highqualityvideowithwideselection.选择面广而且视频质量高。扩展资料:元音字母和大多数除s,z,x,sh,ch之外的辅音字母(或字母组合)直接加-s,清辅音后的s读作/s/ ,元音和浊辅音后的s读作/z/。如:bag-bags,biscuit-biscuits,egg-eggs.当单数名词结尾为se,ze,ge,ce时(其词尾辅音为/s,z,ʃ,ʒ/等),加s后读作/iz/如vase-vases,fridge-fridges参考资料来源:百度百科-video参考资料来源:百度百科-复数
为什么要用复数形式?在什么情况下使用?
您好,您提到的问题在英语中是比较常见的,现在解释如下:mathematic 是形容词, 数学的mathematics是名词形式, 数学形容词复数形式作单数名词这样的用法在英语中很多,举两个例子:good 形容词,好的goods 名词,货物electronic 形容词,电子的,electronics 名词,电子产品---------------关于那道题的整个意思是这个会议需要城市里的数学老师参与城市里的数学老师应该很多,所以用复数形式teachers.不妥之处希望原谅
可数名词单数变复数的规则变化是什么?
1、直接在名词末尾加s。如:desk-desks2、以s,x,sh,ch结尾的加es,如:box-boxes,brush-brushes,match-matches3、以y结尾,前为辅音字母,要变y为i+es。如:baby-babies。但前为原因字母时,直接加s,如:boy-boys4、以f/fe结尾,要变f为v+es。如:knife-knives5、以o结尾,外来词或缩写的词,直接加s。如:zoo-zoos但:tomato-tomatoes,potato-potatoes可数名词复数的规则变化:1. 一般的名词词尾直接加-s 。如:book → books room → rooms pear→pearshouse → houses day → days song→songs2. 以s, x, ch, sh结尾的名词,在词尾加-es 。如:bus → buses box → boxeswatch → watches dish → dishes以上内容参考:百度百科-可数名词
如何使用iClient for JavaScript叠加地图
一.rest + rest
iserver自带的图层叠加范例,就属于这种场景,点击显示源码即可查看,
这里就不列出一一讲解了,注意两点就可以了,一是map的allOverlays属性设置为true;二是一定要使用异步加载的方法,即需要监听地图加载完成的事件,否则会出现两幅地图加载比例尺错乱显示等现象。
二.wmts+rest 、SuperMap Cloud+rest
如果你对wmts服务不太了解,你可以查看这个地址,里面对wmts做了详细的介绍。这里就简单介绍下JavaScript是如何对接的。
这里写图片描述
图层的url、matrixSet、layer、style、matrixIds、resolutions为必设属性. 当matrixIds设置字符串数组时,传入矩阵标识符列表,所设置的各级图层矩阵标识符要求与地图分辨率resolutions一一对应; 当matrixIds设置为对象数组时,此数组应与WMTS capabilities 中声明矩阵的描述一致,对象属性参考matrixIds属性描述。 如果未设置matrixIds,则矩阵标识符(identifier)默认为地图缩放级别的interger值:”0”、”1”、”2”…等。 resolutions属性继承于父类layer, 用户在创建WMTS图层时需要依照服务端出图的标准比例尺集( GlobalCRS84Scale、 GlobalCRS84Pixel、 GoogleCRS84Quad、 GoogleMapsCompatible)设置此属性,否则在出图时可能会出现地图偏差等问题。
下面是初始化wmts的代码片段
//wmts或许所需要的matrixID信息
var matrixIds = [];
for (var i=0; i<15; ++i) {
matrixIds[i] = {identifier:i};
};
//当前图层的分辨率数组信息,和matrixIds一样,需要用户从wmts服务获取并明确设置,resolutions数组和matrixIds数组长度相同
var resolutions = [165664.43905455674,82832.2195272785,41416.10976363925,
20708.054881819593,10354.027440909796,5177.0137204548855,
2588.506860227448,1294.2534301137255,647.1267150568613,
323.5633575284321,161.78167876421546,80.89083938210773,
40.44541969105401,20.222709845526946,10.111354922763473];
//新建wmts图层
layer = new SuperMap.Layer.WMTS({name: "wmts图层",
url: wmtsurl,
layer: "China",
style: "default",
matrixSet: "Custom_China",
format: "image/png",
resolutions:resolutions,
matrixIds:matrixIds,
opacity: 1,
requestEncoding:"KVP"});
你不必填写所有的分辨率,可以自定义缩放级别,但是得保证resolutions数组的值与matrixIds数组中的identifier是一一对应的;同时当你的地图的全幅范围不是默认的全球范围时,需要设置map.maxExtent为相应的值。
下面就是添加rest图层,j代码片段如下:
//实例化rest图层
RestLayer=new SuperMap.Layer.TiledDynamicRESTLayer("REST图层",resturl,{transparent:true},{resolutions:[165664.43905455674,82832.2195272785,41416.10976363925,
20708.054881819593,10354.027440909796,5177.0137204548855,
2588.506860227448,1294.2534301137255,647.1267150568613,
323.5633575284321,161.78167876421546,80.89083938210773,
40.44541969105401,20.222709845526946,10.111354922763473]});
//监听图层信息加载完成事件
RestLayer.events.on({"layerInitialized":addLayer})
}
function addLayer(){
//图层添加并显示指定级别
map.addLayers([layer,RestLayer]);
map.setCenter(new SuperMap.LonLat(0 , 0), 2);
}
可以看出,需要给rest图层设定与wmts对应的resolutions,这样两张地图叠加,就不会产生偏移。效果图如下
这里写图片描述
以此类推,使用超图云地图,天地图以及通过iserver直接发布的ugcv5,smtiles,mbtiles,MongoDB缓存的rest服务叠加自己的矢量地图,由于前两者和wmts一样都属于瓦片地图,有自身的resolutions分辨率数组。因此需要rest图层设置一致的scales或者resolutions。
C++的指针问题 error C2440: '=' : cannot convert from 'unsigned short *' to 'unsigned short'
你好,
unsigned short int * pAge = &myAge; 这样写是把pAge的声明和定义放到一起来写。你可以把指针的定义从右向左读:pAge是一个指向unsigned short int的指针。
*pAge = &myAge;这样就是错了,因为pAge是指针,而不是*pAge。这里的*是取值符号,它所代表的是去pAge指向的那个变量,所以编译器会报错。
初学编程是这样的,楼主慢慢体会就会明白了。
谢谢
Android 怎么用网上的图片设置ImageView背景?
Android 用网上的图片设置ImageView背景可以使用如下方法:
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.myimage);
ImageView image1 = (ImageView) findViewById(R.myImage.image);
//Bitmap bitmap = getLoacalBitmap(“/aa/aa.jpg”); //从本地取图片
Bitmap bitmap = getHttpBitmap(“http://blog.3gstdy.com/wp-content/themes/twentyten/images/headers/path.jpg”); //从网上取图片
image1 .setImageBitmap(bitmap); //设置Bitmap
}
/**
* 加载本地图片
* http://bbs.3gstdy.com
* @param url
* @return
*/
public static Bitmap getLoacalBitmap(String url) {
try {
FileInputStream fis = new FileInputStream(url);
return BitmapFactory.decodeStream(fis);
} catch (FileNotFoundException e) {
e.printStackTrace();
return null;
}
}
/**
* 从服务器取图片
*http://bbs.3gstdy.com
* @param url
* @return
*/
public static Bitmap getHttpBitmap(String url) {
URL myFileUrl = null;
Bitmap bitmap = null;
try {
Log.d(TAG, url);
myFileUrl = new URL(url);
} catch (MalformedURLException e) {
e.printStackTrace();
}
try {
HttpURLConnection conn = (HttpURLConnection) myFileUrl
.openConnection();
conn.setConnectTimeout(0);
conn.setDoInput(true);
conn.connect();
InputStream is = conn.getInputStream();
bitmap = BitmapFactory.decodeStream(is);
is.close();
} catch (IOException e) {
e.printStackTrace();
}
return bitmap;
}
如何重写Android 5.0 新增API
Context:
一个项目需要重写Android Resource类getDrawable方法,在系统调用Resource.getDrawable时进行拦截,分两种情况:A情况仍旧走正常的调用;B情况则写定制的逻辑。
第一次尝试:
新建一个Resource的子类,并重写getDrawable方法。1.正常调用是super.getDrawable 2.非正常时写自己的逻辑。
可发现在5.0上报错,5.0以下就没问题。
第二次尝试
上官网查了下,发现原来Google在Android 5.0上,新增了一个getDrawable(int id, Resources.Theme theme),系统不会再调用getDrawable(int id)方法,那当然也就拦截不到了,B情况的定制逻辑也就失效了。
把SDK的target调到5.0,重写getDrawable(int id, Resources.Theme theme),当然就ok了。可问题是我要在SDK4.+的情况下开发,那怎么办?
两种做法:在子类新建getDrawable(int id, Resources.Theme theme)进行重写,但是我还需要调用super.getDrawable(int id, Theme theme)方法。在4.+的SDK环境下super即Resource是没有这个办法的,那就没法实现A情况。这可怎么办。
用1.反射调用这个方法2.在方法名上加注释@TargetApi{22}
可问题是反射、注解都没办法实现super.getDrawable这个调用的。
第三次尝试
1.在项目中新建一个android.content.res包结构,并建立Resouce类。
2.将Resource的源码复制到该类中,但是因为系统隐藏API等,可能会报错。
3.把所有方法的方法体内容都删除,返回值是对象的就return null,是基础类型的就随便return 基础类型,void就return。(因为SDK中的API是不会打包到APK中的,只是保持了API的引用,安装到手机上,会自动调用ROM中的相关方法,所以这个复制的类只是为了让项目编译通过而已)。
4.给该类加上getDrawable(int id, Resources.Theme theme),这样我们子类重写Resource方法时,就可以调用super.getDrawable(int id, Resources.Theme theme).。
第四次尝试
大功告成,但发现程序Run as时没问题,但是打包就有问题了。
原因是打包会 调用混淆功能,Resource因被我们复制的类替换了SDK中的类。可是导出APK时不包含这个Resource类的,找不到引用就报错了。可实际上只要安装到手机上,就会调用系统ROM中的Resource类,所以不会产生实际的影响。也就是这个提示是没必要的,那怎么做呢?
在混淆的配置文件proguard-project.txt中加入
-dontwarn android.content.res.**
好了这才是大功告成了。