![Ubuntu设置系统语言-大小世界](https://dxd365.com/wp-content/uploads/2024/03/934db8be0464692-220x150.jpg)
Ubuntu设置系统语言
Ubuntu系统安装好后,默认的系统语言是英文,更改其系统语言的办法: 01. 打开 Settings; 02. 选择 Region & Language —— 选择 Manage Installed Languages; 03. ...
Ubuntu系统安装好后,默认的系统语言是英文,更改其系统语言的办法: 01. 打开 Settings; 02. 选择 Region & Language —— 选择 Manage Installed Languages; 03. ...
有的时候应用程序需要禁止它联网,来解决部分联网会导致的各种问题。
那么~~~ Windows系统如何禁止某个程序联网?
1、打开控制面板,点击其中的“系统与安全”;
2、点击“Windows 防火墙”之后,打开“高级设置”;
3、点击“出站规则”--新建规则;
4、点击“程序”--浏览--找到需要阻止访问网络的程序。
5、找到需要禁止的程序,勾选“阻止连接”,然后按照提示完成操作就可以了。
一、按飞行平台构型分类
1.固定翼无人机
由固定在机身上具有翼型的机翼,通过与来流的空气发生相对运动产生升力的飞行器。固定翼无人机具有续航时间长、飞行稳定、距离远等特点,在巡航条件下速度快,对操作要求更高,目前其已被广泛应用在测绘、地质、农林等行业。
2.多旋翼无人机
多旋翼无人机,是一种具有三个及以上旋翼轴的特殊的无人驾驶旋翼飞行器。多旋翼无人机现在越来越主流,应用也多种多样。多旋翼无人机成本较为低廉,操作较为简单,飞行震动非常小。
3.无人直升机
由一个或两个具有动力的旋翼提供升力并进行姿态操作的飞行器。无人直升机灵活性强,可以原地垂直起飞和悬停。一般来说,无人机直升机的载荷、续航时间、抗风性能等指标要优于多旋翼无人机。
4.伞翼无人机
5.扑翼无人机
6.无人飞艇
二、按用途分类
1.军用无人机
军用无人机是由遥控设备或自备程序控制操纵的不载人飞机,可分为侦察无人机、诱饵无人机、无人战斗机等。军用无人机使用方便、机动灵活、可以减少人员伤亡,在现代战争中的作用日渐突出。
2.民用无人机
民用无人机可分为航拍无人机、巡查无人机、农用无人机、气象无人机等。随着无人机技术逐渐成熟,制造成本和进入门槛降低,民用无人机市场正在爆发,越来越多地被用于航拍摄影、电力巡检、环境监测等领域。
三、按尺度分类
无人机按尺度可分为微型无人机、轻型无人机、小型无人机以及大型无人机。
↓ 大疆无人机的分类 ↓
四、任务高度分类
按任务高度无人机可以分为超低空无人机、低空无人机、中空无人机、高空无人机和超高空无人机。
1.超低空无人机任务高度一般小于等于100米;
2.低空无人机任务高度大于100米小于等于1000米;
3..中空无人机任务高度大于1000米小于等于7000米;
4.高空无人机任务高度大于7000米小于等于18000米;
5.超高空无人机任务高度大于18000米。
五、按活动半径分
按活动半径,无人机可分为超近程无人机、近程无人机、短程无人机、中程无人机和远程无人机。
1.超近程无人机活动半径一般小于15km;
2.近程无人机活动半径大于15km小于等于50km;
3.短程无人机活动半径大于50km小于等于200km;
4.中程无人机活动半径大于200km小于等于800km;
5.远程无人机活动半径大于800km。
美国手
1、[左手]油门(THR)和方向舵(以多旋翼无人机为例,油门是控制无人机上升和下降,方向舵是控制无人机向左旋转和向右旋转);
2、[右手]升降舵和副翼(以多旋翼无人机为例,升降舵是控制无人机向前飞行和向后飞行,副翼是控制无人机向左飞行和向右飞行)。
日本手
(右手油门)——左手升降舵和方向舵,右手油门和副翼
1、[左手]升降舵和方向舵(以多旋翼无人机为例,升降舵是控制无人机向前飞行和向后飞行,方向舵是控制无人机向左旋转和向右旋转);
2、[右手]油门和副翼(以多旋翼无人机为例,油门是控制无人机上升和下降,副翼是控制无人机向左飞行和向右飞行)。
中国手
也被称之为反美国手
1、[左手]升降舵和副翼(以多旋翼无人机为例,升降舵是控制无人机向前飞行和向后飞行,副翼是控制无人机向左飞行和向右飞行);
2、[右手]油门和方向舵(以多旋翼无人机为例,油门是控制无人机上升和下降,方向舵是控制无人机向左旋转和向右旋转)。
string类型的变量可以看成是char变量的只读数组。
一个可写的char数组:
string myString = “A string”;
char[] myChar = myString.ToCharArray();
然后就可以采用其它方式处理char数组了。也可以使用foreach循环中使用字符串:
foreach(char character in myString)
{
WriteLine($"{character}");
}
与数组同理,可以使用 myString.Length 获取元素个数,可以得到字符串中的字符数:
string myString = ReadLine();
WriteLine($"You typed {myString.Length} character.")
其它:
<string>.ToLower() //把字符串转换为小写形式
<string>.ToUpper() //把字符串转换为大写形式
<string>.ToTrim() //删除字符串前后的空格
<string>.ToTrimStart() //删除字符串前面的空格
<string>.ToTrimEnd() //删除字符串前后的空格
<string>.ToPadStart() //在字符串的左边添加空格,使字符串达到指定的长度
<string>.ToPadEnd() //在字符串的右边添加空格,使字符串达到指定的长度
<string>.Split() //把string字符串转换为string数组,把它在指定的位置隔开
Adobe大面积出现未经授权许可禁止使用。
解决方法:1. 卸载 Adobe Genuine Service; 2.禁止Adobe联网。
01. 打开“控制面板”,选择“系统和安全”,打开“Windows Defender 防火墙”;
02. 打开“高级设置”;
03. 在“出站规则”中 “新建规则”;
04. 选择Adobe的程序文件,勾选“阻止联网”,并最终给该规则起名字,完成设置即可成功阻止Adobe程序联网。
注意:代理上网也会影响程序的联网方式,请注意设置。
但是有时会出现以下这样的情况,“抱歉,此Adobe应用不可用”:
解决办法,卸载干净后重新安装软件,并设置规则。
数组是一个变量的索引列表,存储在数组类型的变量中。
数组有一个基本类型,数组中的各个条目都是这种类型。数组的条目通常称为元素。
第一个条目的索引是0 , 第二个条目的索引是1 , 以此类推。
01. 声明数组
<baseType>[] <name>;
其中,<baseType> 可以是任何变量类型,包括枚举和结构类型。
数组必须在访问之前初始化,数组的初始化有两种方式:可以字面值形式指定数组的完整内容,也可以指定数组的大小,再使用关键字 new 初始化所有数组元素。
int [] myIntArray = { 21, 2, 354, 7, 99 };
int [] myIntArray = new int [ 5 ] ;
这里使用关键字 new 显式地初始化数组,用一个常量值定义其大小。这种方式会给所有数组元素赋予同一个默认值,对于数值类型来说,其默认值是0。
也可以使用非常量的变量来进行初始化,例如:
int [] myint Array = new int [arraySize] ;
如果使用变量定义其大小,该变量
必须是一个常量,例如:
const int arraySize = 5;
int[] myintArray = new int[arraySize] { 21, 2, 354, 7, 99 };
如果省略了关键字const(常量),运行这段代码就会失败。
与其他变量类型一样,并非必须在声明数组的代码行中初始化该数组。
02. foreach 循环
foreach 循环可以使用一种简便的语法来定位数组中的每个元素:
foreach (<baseType> <name> in <array>)
{
//can use <name> for each element
}
这个循环会迭代每一个元素,依次把每个元素放在变量 <name> 中,且不存在访问非法元素的风险。不需要考虑数组中有多少个元素,并可以确保将在循环中使用每一个元素。
foreach循环对数组内容进行只读访问,所以不能改变任何元素的值;for循环可以给数组元素赋值。
03. 使用 switch case 表达式进行模式匹配
可以基于变量的类型(如string或int数组)在 switch case 中进行模式匹配。因为变量的类型是已知的,所以可以访问该类型提供的方法和属性。
switch (<testVar>)
{
case int value:
<code to execute if <testVar> is an int>
break;
case string s when s.Length == 0:
<code to execute if <testVar> is an string with a Length = 0>
break;
...
case null:
<code to execute if <testVar> = null>
break;
default:
<code to execute if <testVar> != comparisonVals>
break;
}
case 关键词之后紧跟的是想要检查的变量类型(string、int等)。
在case语句匹配时,该类型的值将保存到声明的变量中。例如,若<testVar>是一个integer类型的值,则该integer的值将存储在变量 value 中。接下来将when关键字修饰符应用到了switch case表达式。when关键字修饰符允许扩展或添加一些额外的条件,以执行case语句中的代码。
多维数组是使用多个索引访问其元素的数组。
例如,假设要确定一座山相对于某个位置的高度,使用两个坐标X和Y来确定一个位置,把这个坐标用作索引,让数组hillHeight可以用每对坐标来存储高度,这就需要用到多维数组。
二维数组: <baseType>[,] <name>;
多维数组: <baseType>[,,,] <name>;
如果声明并初始化一个二维数组 hillHeight ,其基本类型为 double ,X大小是3,Y大小是4,则:
double[,] hillHeight = new double[3,4];
还可以使用字面值进行初始赋值:
double[,] hillHeight = { [ 1, 2, 3, 4], [ 2, 3, 4, 5], [ 3, 4, 5, 6] };
可以使用 foreach循环访问多维数组中的所有元素,方式与访问一维数组相同:
double[,] hillHeight = { [ 1, 2, 3, 4], [ 2, 3, 4, 5], [ 3, 4, 5, 6] };
foreach (double height in hillHeight)
{
WriteLine($"(height)");
}
数组中每一个元素都是另一个数组,也可以有数组的数组的数组,甚至更加复杂的数组。这些数组都必须是相同的数据类型。锯齿数组(jagged array),每行的元素个数不同。
声明数组的数组时,在声明中指定多个方括号对:
int [][] jaggedIntArray;
不能采用以下方式:
可以初始化包含其它数组的数组,然后依次初始化子数组:
jaggedIntArray = new int[2][];
jaggedIntArray[0] = new int[3];
jaggedIntArray[1] = new int[4];
也可以使用字面值赋值的改进形式:
jaggedIntArray = new int[3][] { new int[] {1,2,3}, new int[] {1}, new int[] {1,2} };
把数组的初始化和声明放在同一行上:
int [][] jaggedIntArray = { new int[] {1,2,3}, new int[] {1}, new int[] {1,2} };