64. Ubuntu18.04 安装 wine
- q
1
2$ sudo dpkg --add-architecture i386
$ wget -qO - https://dl.winehq.org/wine-builds/winehq.key | sudo apt-key add - - w
1
2
3
4
5
6
7
8### Ubuntu 19.04
$ sudo apt-add-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ disco main
### Ubuntu 18.04
$ sudo apt-add-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ bionic main'
### Ubuntu 16.04
$ sudo apt-add-repository 'deb https://dl.winehq.org/wine-builds/ubuntu/ xenial main' - a如果出错
1
2$ sudo apt-get update
$ sudo apt-get install --install-recommends winehq-stable1
2$ sudo apt-get install aptitude
$ sudo aptitude install winehq-stable - a
1
wine --version
wine-4.0.1
63. Excel常用函数
1、ABS函数
函数名称 :
ABS
主要功能 :
求出相应数字的绝对值。
使用格式 :
ABS(number)
参数说明 :
number代表需要求绝对值的数值或引用的单元格。
应用举例 :
如果在B2单元格中输入公式:=ABS(A2),则在A2单元格中无论输入正数(如100)还是负数(如-100),B2中均显示出正数(如100)。
特别提醒 :
如果number参数不是数值,而是一些字符(如A等),则B2中返回错误值“#VALUE!”。
2、AND函数
函数名称 :
AND
主要功能 :
返回逻辑值:如果所有参数值均为逻辑“真(TRUE)”,则返回逻辑“真(TRUE)”,反之返回逻辑“假(FALSE)”。
使用格式 :
AND(logical1,logical2, …)
参数说明 :
Logical1,Logical2,Logical3……:表示待测试的条件值或表达式,最多这30个。
应用举例 :
在C5单元格输入公式:=AND(A5>=60,B5>=60),确认。如果C5中返回TRUE,说明A5和B5中的数值均大于等于60,如果返回FALSE,说明A5和B5中的数值至少有一个小于60。
特别提醒 :
如果指定的逻辑条件参数中包含非逻辑值时,则函数返回错误值“#VALUE!”或“#NAME”。
3、AVERAGE函数
函数名称 :
AVERAGE
主要功能 :
求出所有参数的算术平均值。
使用格式 :
AVERAGE(number1,number2,……)
参数说明 :
number1,number2,……:需要求平均值的数值或引用单元格(区域),参数不超过30个。
应用举例 :
在B8单元格中输入公式:=AVERAGE(B7:D7,F7:H7,7,8),确认后,即可求出B7至D7区域、F7至H7区域中的数值和7、8的平均值。
特别提醒 :
如果引用区域中包含“0”值单元格,则计算在内;如果引用区域中包含空白或字符单元格,则不计算在内。
4、COLUMN 函数
函数名称 :
COLUMN
主要功能 :
显示所引用单元格的列标号值。
使用格式 :
COLUMN(reference)
参数说明 :
reference为引用的单元格。
应用举例 :
在C11单元格中输入公式:=COLUMN(B11),确认后显示为2(即B列)。
特别提醒 :
如果在B11单元格中输入公式:=COLUMN(),也显示出2;与之相对应的还有一个返回行标号值的函数——ROW(reference)。
5、CONCATENATE函数
函数名称 :
CONCATENATE
主要功能 :
将多个字符文本或单元格中的数据连接在一起,显示在一个单元格中。
使用格式 :
CONCATENATE(Text1,Text……)
参数说明 :
Text1、Text2……为需要连接的字符文本或引用的单元格。
应用举例 :
在C14单元格中输入公式:=CONCATENATE(A14,”@”,B14,”.com”),确认后,即可将A14单元格中字符、@、B14单元格中的字符和.com连接成一个整体,显示在C14单元格中。
特别提醒 :
如果参数不是引用的单元格,且为文本格式的,请给参数加上英文状态下的双引号,如果将上述公式改为:=A14&”@”&B14&”.com”,也能达到相同的目的。
6、COUNTIF函数
函数名称 :
COUNTIF
主要功能 :
统计某个单元格区域中符合指定条件的单元格数目。
使用格式 :
COUNTIF(Range,Criteria)
参数说明 :
Range代表要统计的单元格区域;Criteria表示指定的条件表达式。
应用举例 :
在C17单元格中输入公式:=COUNTIF(B1:B13,”>=80”),确认后,即可统计出B1至B13单元格区域中,数值大于等于80的单元格数目。
特别提醒 :
允许引用的单元格区域中有空白单元格出现。
7、DATE函数
函数名称 :
DATE
主要功能 :
给出指定数值的日期。
使用格式 :
DATE(year,month,day)
参数说明 :
year为指定的年份数值(小于9999);month为指定的月份数值(可以大于12);day为指定的天数。
应用举例 :
在C20单元格中输入公式:=DATE(2003,13,35),确认后,显示出2004-2-4。
特别提醒 :
由于上述公式中,月份为13,多了一个月,顺延至2004年1月;天数为35,比2004年1月的实际天数又多了4天,故又顺延至2004年2月4日。
8、**函数名称** :
DATEDIF
主要功能 :
计算返回两个日期参数的差值。
使用格式 :
=DATEDIF(date1,date2,”y”)、=DATEDIF(date1,date2,”m”)、=DATEDIF(date1,date2,”d”)
参数说明 :
date1代表前面一个日期,date2代表后面一个日期;y(m、d)要求返回两个日期相差的年(月、天)数。
应用举例 :
在C23单元格中输入公式:=DATEDIF(A23,TODAY(),”y”),确认后返回系统当前日期[用TODAY()表示)与A23单元格中日期的差值,并返回相差的年数。
特别提醒 :
这是Excel中的一个隐藏函数,在函数向导中是找不到的,可以直接输入使用,对于计算年龄、工龄等非常有效。
9、DAY函数
函数名称 :
DAY
主要功能 :
求出指定日期或引用单元格中的日期的天数。
使用格式 :
DAY(serial_number)
参数说明 :
serial_number代表指定的日期或引用的单元格。
应用举例 :
输入公式:=DAY(“2003-12-18”),确认后,显示出18。
特别提醒 :
如果是给定的日期,请包含在英文双引号中。
10、DCOUNT函数
函数名称 :
DCOUNT
主要功能 :
返回数据库或列表的列中满足指定条件并且包含数字的单元格数目。
使用格式 :
DCOUNT(database,field,criteria)
参数说明 :
Database表示需要统计的单元格区域;Field表示函数所使用的数据列(在第一行必须要有标志项);Criteria包含条件的单元格区域。
应用举例 :
在F4单元格中输入公式:=DCOUNT(A1:D11,”语文”,F1:G2),确认后即可求出“语文”列中,成绩大于等于70,而小于80的数值单元格数目(相当于分数段人数)。
特别提醒 :
如果将上述公式修改为:=DCOUNT(A1:D11,,F1:G2),也可以达到相同目的。
11、FREQUENCY函数
函数名称 :
FREQUENCY
主要功能 :
以一列垂直数组返回某个区域中数据的频率分布。
使用格式 :
FREQUENCY(data_array,bins_array)
参数说明 :
Data_array表示用来计算频率的一组数据或单元格区域;Bins_array表示为前面数组进行分隔一列数值。
应用举例 :
同时选中B32至B36单元格区域,输入公式:=FREQUENCY(B2:B31,D2:D36),输入完成后按下 “Ctrl+Shift+Enter”组合键进行确认,即可求出B2至B31区域中,按D2至D36区域进行分隔的各段数值的出现频率数目(相当于统计各分数段人数)。
特别提醒 :
上述输入的是一个数组公式,输入完成后,需要通过按“Ctrl+Shift+Enter”组合键进行确认,确认后公式两端出现一对大括号({}),此大括号不能直接输入。
12、IF函数
函数名称 :
IF
主要功能 :
根据对指定条件的逻辑判断的真假结果,返回相对应的内容。
使用格式 :
=IF(Logical,Value_if_true,Value_if_false)
参数说明 :
Logical代表逻辑判断表达式;Value_if_true表示当判断条件为逻辑“真(TRUE)”时的显示内容,如果忽略返回 “TRUE”;Value_if_false表示当判断条件为逻辑“假(FALSE)”时的显示内容,如果忽略返回“FALSE”。
应用举例 :
在C29单元格中输入公式:=IF(C26>=18,”符合要求”,”不符合要求”),确信以后,如果C26单元格中的数值大于或等于18,则C29单元格显示“符合要求”字样,反之显示“不符合要求”字样。
特别提醒 :
本文中类似“在C29单元格中输入公式”中指定的单元格,读者在使用时,并不需要受其约束,此处只是配合本文所附的实例需要而给出的相应单元格,具体请大家参考所附的实例文件。
13、INDEX函数
函数名称 :
INDEX
主要功能 :
返回列表或数组中的元素值,此元素由行序号和列序号的索引值进行确定。
使用格式 :
INDEX(array,row_num,column_num)
参数说明 :
Array代表单元格区域或数组常量;Row_num表示指定的行序号(如果省略row_num,则必须有 column_num);Column_num表示指定的列序号(如果省略column_num,则必须有 row_num)。
应用举例 :
在F8单元格中输入公式:=INDEX(A1:D11,4,3),确认后则显示出A1至D11单元格区域中,第4行和第3列交叉处的单元格(即C4)中的内容。
特别提醒 :
此处的行序号参数(row_num)和列序号参数(column_num)是相对于所引用的单元格区域而言的,不是Excel工作表中的行或列序号。
14、INT函数
函数名称 :
INT
主要功能 :
将数值向下取整为最接近的整数。
使用格式 :
INT(number)
参数说明 :
number表示需要取整的数值或包含数值的引用单元格。
应用举例 :
输入公式:=INT(18.89),确认后显示出18。
特别提醒 :
在取整时,不进行四舍五入;如果输入的公式为=INT(-18.89),则返回结果为-19。
15、ISERROR函数
函数名称 :
ISERROR
主要功能 :
用于测试函数式返回的数值是否有错。如果有错,该函数返回TRUE,反之返回FALSE。
使用格式 :
ISERROR(value)
参数说明 :
Value表示需要测试的值或表达式。
应用举例 :
输入公式:=ISERROR(A35/B35),确认以后,如果B35单元格为空或“0”,则A35/B35出现错误,此时前述函数返回TRUE结果,反之返回FALSE。
特别提醒 :
此函数通常与IF函数配套使用,如果将上述公式修改为:=IF(ISERROR(A35/B35),””,A35/B35),如果B35为空或“0”,则相应的单元格显示为空,反之显示A35/B35
的结果。
16、LEFT函数
函数名称 :
LEFT
主要功能 :
从一个文本字符串的第一个字符开始,截取指定数目的字符。
使用格式 :
LEFT(text,num_chars)
参数说明 :
text代表要截字符的字符串;num_chars代表给定的截取数目。
应用举例 :
假定A38单元格中保存了“我喜欢天极网”的字符串,我们在C38单元格中输入公式:=LEFT(A38,3),确认后即显示出“我喜欢”的字符。
特别提醒 :
此函数名的英文意思为“左”,即从左边截取,Excel很多函数都取其英文的意思。
17、LEN函数
函数名称 :
LEN
主要功能 :
统计文本字符串中字符数目。
使用格式 :
LEN(text)
参数说明 :
text表示要统计的文本字符串。
应用举例 :
假定A41单元格中保存了“我今年28岁”的字符串,我们在C40单元格中输入公式:=LEN(A40),确认后即显示出统计结果“6”。
特别提醒 :
LEN要统计时,无论中全角字符,还是半角字符,每个字符均计为“1”;与之相对应的一个函数——LENB,在统计时半角字符计为“1”,全角字符计为“2”。
18、MATCH函数
函数名称 :
MATCH
主要功能 :
返回在指定方式下与指定数值匹配的数组中元素的相应位置。
使用格式 :
MATCH(lookup_value,lookup_array,match_type)
参数说明 :
Lookup_value代表需要在数据表中查找的数值;
Lookup_array表示可能包含所要查找的数值的连续单元格区域;
Match_type表示查找方式的值(-1、0或1)。
如果match_type为-1,查找大于或等于 lookup_value的最小数值,Lookup_array 必须按降序排列;
如果match_type为1,查找小于或等于 lookup_value 的最大数值,Lookup_array 必须按升序排列;
如果match_type为0,查找等于lookup_value 的第一个数值,Lookup_array 可以按任何顺序排列;如果省略match_type,则默认为1。
应用举例 :
在F2单元格中输入公式:=MATCH(E2,B1:B11,0),确认后则返回查找的结果“9”。
特别提醒 :
Lookup_array只能为一列或一行。
19、MAX函数
函数名称 :
MAX
主要功能 :
求出一组数中的最大值。
使用格式 :
MAX(number1,number2……)
参数说明 :
number1,number2……代表需要求最大值的数值或引用单元格(区域),参数不超过30个。
应用举例 :
输入公式:=MAX(E44:J44,7,8,9,10),确认后即可显示出E44至J44单元和区域和数值7,8,9,10中的最大值。
特别提醒 :
如果参数中有文本或逻辑值,则忽略。
20、MID函数
函数名称 :
MID
主要功能 :
从一个文本字符串的指定位置开始,截取指定数目的字符。
使用格式 :
MID(text,start_num,num_chars)
参数说明 :
text代表一个文本字符串;start_num表示指定的起始位置;num_chars表示要截取的数目。
应用举例 :
假定A47单元格中保存了“我喜欢天极网”的字符串,我们在C47单元格中输入公式:=MID(A47,4,3),确认后即显示出“天极网”的字符。
特别提醒 :
公式中各参数间,要用英文状态下的逗号“,”隔开。
21、MIN函数
函数名称 :
MIN
主要功能 :
求出一组数中的最小值。
使用格式 :
MIN(number1,number2……)
参数说明 :
number1,number2……代表需要求最小值的数值或引用单元格(区域),参数不超过30个。
应用举例 :
输入公式:=MIN(E44:J44,7,8,9,10),确认后即可显示出E44至J44单元和区域和数值7,8,9,10中的最小值。
特别提醒 :
如果参数中有文本或逻辑值,则忽略。
22、MOD函数
函数名称 :
MOD
主要功能 :
求出两数相除的余数。
使用格式 :
MOD(number,divisor)
参数说明 :
number代表被除数;divisor代表除数。
应用举例 :
输入公式:=MOD(13,4),确认后显示出结果“1”。
特别提醒 :
如果divisor参数为零,则显示错误值“#DIV/0!”;MOD函数可以借用函数INT来表示:上述公式可以修改为:=13-4*INT(13/4)。
23、MONTH函数
函数名称 :
MONTH
主要功能 :
求出指定日期或引用单元格中的日期的月份。
使用格式 :
MONTH(serial_number)
参数说明 :
serial_number代表指定的日期或引用的单元格。
应用举例 :
输入公式:=MONTH(“2003-12-18”),确认后,显示出11。
特别提醒 :
如果是给定的日期,请包含在英文双引号中;如果将上述公式修改为:=YEAR(“2003-12-18”),则返回年份对应的值“2003”。
24、NOW函数
函数名称 :
NOW
主要功能 :
给出当前系统日期和时间。
使用格式 :
NOW()
参数说明 :
该函数不需要参数。
应用举例 :
输入公式:=NOW(),确认后即刻显示出当前系统日期和时间。如果系统日期和时间发生了改变,只要按一下F9功能键,即可让其随之改变。
特别提醒 :
显示出来的日期和时间格式,可以通过单元格格式进行重新设置。
25、OR函数
函数名称 :
OR
主要功能 :
返回逻辑值,仅当所有参数值均为逻辑“假(FALSE)”时返回函数结果逻辑“假(FALSE)”,否则都返回逻辑“真(TRUE)”。
使用格式 :
OR(logical1,logical2, …)
参数说明 :
Logical1,Logical2,Logical3……:表示待测试的条件值或表达式,最多这30个。
应用举例 :
在C62单元格输入公式:=OR(A62>=60,B62>=60),确认。如果C62中返回TRUE,说明A62和B62中的数值至少有一个大于或等于60,如果返回FALSE,说明A62和B62中的数值都小于60。
特别提醒 :
如果指定的逻辑条件参数中包含非逻辑值时,则函数返回错误值“#VALUE!”或“#NAME”。
26、RANK函数
函数名称 :
RANK
主要功能 :
返回某一数值在一列数值中的相对于其他数值的排位。
使用格式 :
RANK(Number,ref,order)
参数说明 :
Number代表需要排序的数值;ref代表排序数值所处的单元格区域;order代表排序方式参数(如果为“0”或者忽略,则按降序排名,即数值越大,排名结果数值越小;如果为非“0”值,则按升序排名,即数值越大,排名结果数值越大;)。
应用举例 :
如在C2单元格中输入公式:=RANK(B2,$B$2:$B$31,0),确认后即可得出丁1同学的语文成绩在全班成绩中的排名结果。
特别提醒 :
在上述公式中,我们让Number参数采取了相对引用形式,而让ref参数采取了绝对引用形式(增加了一个“$”符号),这样设置后,选中 C2单元格,将鼠标移至该单元格右下角,成细十字线状时(通常称之为“填充柄”),按住左键向下拖拉,即可将上述公式快速复制到C列下面的单元格中,完成其他同学语文成绩的排名统计。
27、RIGHT函数
函数名称 :
RIGHT
主要功能 :
从一个文本字符串的最后一个字符开始,截取指定数目的字符。
使用格式 :
RIGHT(text,num_chars)
参数说明 :
text代表要截字符的字符串;num_chars代表给定的截取数目。
应用举例 :
假定A65单元格中保存了“我喜欢天极网”的字符串,我们在C65单元格中输入公式:=RIGHT(A65,3),确认后即显示出“天极网”的字符。
特别提醒 :
Num_chars参数必须大于或等于0,如果忽略,则默认其为1;如果num_chars参数大于文本长度,则函数返回整个文本。
28、SUBTOTAL函数
函数名称 :
SUBTOTAL
主要功能 :
返回列表或数据库中的分类汇总。
使用格式 :
SUBTOTAL(function_num, ref1, ref2, …)
参数说明 :
Function_num为1到11(包含隐藏值)或101到111(忽略隐藏值)之间的数字,用来指定使用什么函数在列表中进行分类汇总计算(如图6);ref1, ref2,……代表要进行分类汇总区域或引用,不超过29个。
应用举例 :
在B64和C64单元格中分别输入公式:=SUBTOTAL(3,C2:C63)和=SUBTOTAL103,C2:C63),并且将61行隐藏起来,确认后,前者显示为62(包括隐藏的行),后者显示为61,不包括隐藏的行。
特别提醒 :
如果采取自动筛选,无论function_num参数选用什么类型,SUBTOTAL函数忽略任何不包括在筛选结果中的行;SUBTOTAL函数适用于数据列或垂直区域,不适用于数据行或水平区域。
29、**函数名称** :
SUM
主要功能 :
计算所有参数数值的和。
使用格式 :
SUM(Number1,Number2……)
参数说明 :
Number1、Number2……代表需要计算的值,可以是具体的数值、引用的单元格(区域)、逻辑值等。
应用举例 :
在D64单元格中输入公式:=SUM(D2:D63),确认后即可求出语文的总分。
特别提醒 :
如果参数为数组或引用,只有其中的数字将被计算。数组或引用中的空白单元格、逻辑值、文本或错误值将被忽略;如果将上述公式修改为:=SUM(LARGE(D2:D63,{1,2,3,4,5})),则可以求出前5名成绩的和。
30、SUMIF函数
函数名称 :
SUMIF
主要功能 :
计算符合指定条件的单元格区域内的数值和。
使用格式 :
SUMIF(Range,Criteria,Sum_Range)
参数说明 :
Range代表条件判断的单元格区域;Criteria为指定条件表达式;Sum_Range代表需要计算的数值所在的单元格区域。
应用举例 :
在D64单元格中输入公式:=SUMIF(C2:C63,”男”,D2:D63),确认后即可求出“男”生的语文成绩和。具体请见栏目:sumif函数 - sumifs函数的使用方法及实例_sumif多条件求和。
特别提醒 :
如果把上述公式修改为:=SUMIF(C2:C63,”女”,D2:D63),即可求出“女”生的语文成绩和;其中“男”和“女”由于是文本型的,需要放在英文状态下的双引号(“男”、”女”)中。
31、TEXT函数
函数名称 :
TEXT
主要功能 :
根据指定的数值格式将相应的数字转换为文本形式。
使用格式 :
TEXT(value,format_text)
参数说明 :
value代表需要转换的数值或引用的单元格;format_text为指定文字形式的数字格式。
应用举例 :
如果B68单元格中保存有数值1280.45,在C68单元格中输入公式:=TEXT(B68, “$0.00”),确认后显示为“$1280.45”。
特别提醒 :
format_text参数可以根据“单元格格式”对话框“数字”标签中的类型进行确定。
32、TODAY函数
函数名称 :
TODAY
主要功能 :
给出系统日期。
使用格式 :
TODAY()
参数说明 :
该函数不需要参数。
应用举例 :
输入公式:=TODAY(),确认后即刻显示出系统日期和时间。如果系统日期和时间发生了改变,只要按一下F9功能键,即可让其随之改变。
特别提醒 :
显示出来的日期格式,可以通过单元格格式进行重新设置(参见附件)。
33、VALUE函数
函数名称 :
VALUE
主要功能 :
将一个代表数值的文本型字符串转换为数值型。
使用格式 :
VALUE(text)
参数说明 :
text代表需要转换文本型字符串数值。
应用举例 :
如果B74单元格中是通过LEFT等函数截取的文本型字符串,我们在C74单元格中输入公式:=VALUE(B74),确认后,即可将其转换为数值型。
特别提醒 :
如果文本型数值不经过上述转换,在用函数处理这些数值时,常常返回错误。
34、VLOOKUP函数
函数名称 :
VLOOKUP
主要功能 :
在数据表的首列查找指定的数值,并由此返回数据表当前行中指定列处的数值。
使用格式 :
VLOOKUP(lookup_value,table_array,col_index_num,range_lookup)
参数说明 :
Lookup_value代表需要查找的数值;Table_array代表需要在其中查找数据的单元格区域;Col_index_num为在 table_array区域中待返回的匹配值的列序号(当Col_index_num为2时,返回table_array第2列中的数值,为3时,返回第 3列的值……);Range_lookup为一逻辑值,如果为TRUE或省略,则返回近似匹配值,也就是说,如果找不到精确匹配值,则返回小于 lookup_value的最大数值;如果为FALSE,则返回精确匹配值,如果找不到,则返回错误值#N/A。
应用举例 :
参见:vlookup函数 - vlookup函数的使用方法_vlookup函数的操作实例,在D65单元格中输入公式:=VLOOKUP(B65,B2:D63,3,FALSE),确认后,只要在B65单元格中输入一个学生的姓名(如丁48),D65单元格中即刻显示出该学生的语言成绩。
特别提醒 :
Lookup_value参见必须在Table_array区域的首列中;如果忽略Range_lookup参数,则Table_array的首列必须进行排序;在此函数的向导中,有关Range_lookup参数的用法是错误的。
35、WEEKDAY函数
函数名称 :
WEEKDAY
主要功能 :
给出指定日期的对应的星期数。
使用格式 :
WEEKDAY(serial_number,return_type)
参数说明 :
serial_number代表指定的日期或引用含有日期的单元格;return_type代表星期的表示方式[当Sunday(星期日)为 1、Saturday(星期六)为7时,该参数为1;当Monday(星期一)为1、Sunday(星期日)为7时,该参数为2(这种情况符合中国人的习惯);当Monday(星期一)为0、Sunday(星期日)为6时,该参数为3。
应用举例 :
输入公式:=WEEKDAY(TODAY(),2),确认后即给出系统日期的星期数。
特别提醒 :
如果是指定的日期,请放在英文状态下的双引号中,如=WEEKDAY(“2003-12-18”,2)。
62. 双系统安装:win10 + ubuntu 18.04
说明:以 Dell 游匣
为例
进入BIOS,每台机型都不同,这里以戴尔为例,按住
F2
将
Setting-System Configuration-SATA Operation
设置为AHCI
Secure Boot-Secure Boot Enable
设置为Disabled
Apply - Exit
- 下载
微PE
(由于微PE比较干净,不会强制安装软件,且版本为win10PE,由于低版本的会出现很多问题,如:硬盘识别不出来;U盘识别不出来……),点击这里下载微PE - 使用键盘快捷键,进入PE
- 将系统盘(或者全部的盘(想删除干净的话)) 删除分区,提交
- 快速建立分区(一定要用这个,否则没有引导)
【注意】:如果要是安装双系统,并且在固态上安装ubuntu系统,那么,要分成两个区,删除其中的一个,不要弄成一个区,然后,
压缩卷
,这样的话,系统就会出现bug:安装完ubuntu之后,win10就坏了 - 还原win10镜像系统
首先,在官网下载镜像,点击这里下载;
使用
UltraISO
制作系统盘(或者使用rufus
制作,具体百度吧):开始装系统:
按住
F12
,选择UEFI
选择:
Install Ubuntu
选择中文简体-继续
键盘布局默认选择-继续
不联网-继续
更新和其他软件-默认-继续
安装类型-其它选项-继续
分区:
以系统安装在固态为例
- 单击
固态的空闲内存
(此处为51636),点+
, 挂载点选/
,ok - 单击
机械硬盘的空闲内存
(此处为216372),点+
,输入200000(大约以这个比例输入),挂载点选/home
,ok - 单击
剩余的空闲内存
(此处为16372),点+
,设置为用于交换空间
,点现在安装
,继续;
- 单击
都安装在机械硬盘:
- 类似于上面,更加简单而已,
大小
类比于安装Ubuntu 18.04 - 3.8.1
。
- 类似于上面,更加简单而已,
继续安装
位置-默认
设置用户名和密码,密码一定要记住
重启
重启,如果卡住了,就直接用电源强心关机,然后再开机,这个没关系的,放心弄就行
进入
Ubuntu高级设置
进入
Ubuntu,with Linux 4.10.0-15-generis (recovery mode)
(第二个)进入
resume resume normal boot
回车,继续进入此时,已经进入了Ubuntu了
运行以下命令:
1
2sudo apt-get update
sudo apt-get install -f1
2sudo su
sudo gedit /etc/defaul/grub
得到下图:
【补】:全部命令
找到
GRUB_CMDLINE_LINUX_DEFAULT
这一行,在quiet splash
后面添加nouveau.modeset=0
下面是我的电脑的grub配置:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33# If you change this file, run 'update-grub' afterwards to update
# /boot/grub/grub.cfg.
# For full documentation of the options in this file, see:
# info -f grub -n 'Simple configuration'
GRUB_DEFAULT=0
GRUB_TIMEOUT_STYLE=hidden
GRUB_TIMEOUT=10
GRUB_DISTRIBUTOR=`lsb_release -i -s 2> /dev/null || echo Debian`
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash nouveau.modeset=0"
GRUB_CMDLINE_LINUX=""
# Uncomment to enable BadRAM filtering, modify to suit your needs
# This works with Linux (no patch required) and with any kernel that obtains
# the memory map information from GRUB (GNU Mach, kernel of FreeBSD ...)
#GRUB_BADRAM="0x01234567,0xfefefefe,0x89abcdef,0xefefefef"
# Uncomment to disable graphical terminal (grub-pc only)
#GRUB_TERMINAL=console
# The resolution used on graphical terminal
# note that you can use only modes which your graphic card supports via VBE
# you can see them in real GRUB with the command `vbeinfo'
#GRUB_GFXMODE=640x480
# Uncomment if you don't want GRUB to pass "root=UUID=xxx" parameter to Linux
#GRUB_DISABLE_LINUX_UUID=true
# Uncomment to disable generation of recovery mode menu entries
#GRUB_DISABLE_RECOVERY="true"
# Uncomment to get a beep at grub start
#GRUB_INIT_TUNE="480 440 1"更新grub
1
sudo update-grub
61. 明朝那些事儿
- 暴力可以成为解决问题的后盾,但绝对不能解决问题。
- 刀在砍人之前磨的时间越久,就越锋利,用起来杀伤力也会更大。
- 辩论和演讲从来不能解决问题,因为这个世界是靠实力说话的。
59. C#程序设计
C#程序设计简介
- 1.4 基本输入输出
- 窗体
- 通过控件(Control)来控制,如:
- 文本框(TextBox)、标签(label)
- 下拉框、图片等
- 例:
- 用文本框表示输入;
- 用按钮表示发出命令;
- 用标签表示结果;
- 通过控件(Control)来控制,如:
- 控制台
- 使用Console类
- 输出
- Console.Write()
- Console.WriteLine()
- 输入
- Console.ReadLine()
- 输出
- 使用Console类
.NET
开发工具
- 窗体
C#语言基础
- 2.1 数据类型、变量与常量
程序中的变量与常量
程序的基本任务:对数据进行处理
数据分为变量(variable)与常量(literal)
变量是值可以改变,本质上是
内存的空间,用来存储信息
常量的值是固定的,直接写出来的,称字面常量(literal)
变量的声明和赋值类似于
C语言
int x, y;
double d;
bool b;
String s;
Person p = new Person();
数据类型:本质上是数据的存储方式及其能参与的运算的抽象
数据类型分为两大类
- 值类型(Value Type),如:int, double, Point(简单的结构体), Size(宽或高), DataTime(时间)
- 引用类型(Reference Type), 如:Button, Lable, Book, Person
- 一种不是特别准确的说法:简单的是值类型,复杂的是引用类型
两种类型的区别:
- 见图
- 值类型的复制:把值拷贝到另一个内存
- 引用类型的复制:把引用(或者说叫做地址)拷贝到另一个内存
- 值类型存到
栈
空间 - 引用类型
栈
存储位置,堆
存储真正的信息 - 复制:不管是值类型还是引用类型都是把栈中的值拷贝一份,只不过引用类型存储的是地址,所以指向的还是一个堆空间
- DataTime的存储方式
- 值类型和引用类型都是类型
- 任何变量都有类型
- double也是类型,它也有Parse()这样的方法
- 所有的对象都是
Object
- 它们都能
.ToString()
,如:Label1.Text = age.ToString();
- 都能用于字符串的连接(+)
- 它们都能
- 见图
类型细分
- 值类型
- 简单类型(Simple Type)
- 结构类型(Struct Type)
- 枚举类型(Enum Type)
- 引用类型
- 类类型(Class Type)
- 接口类型(Interface Type)
- 委托类型(Delegate)
- 数组类型(Array Type)
- C++中
Struct
和Class
是一样的,但是在C#中是完全不一样的类型
- 值类型
等价类型
简单类型
字符串前可使用
@
,则可以不进行转义,可以换行,双引号则用两个双引号表示一个双引号C#3.0后的特殊类型:
-
var
是推断类型,类似于C++的auto
Nullable
类型,如- int? a = 32;
- if (a.HasValue)…
-
Dynamic(动态类型)由DLR支持,如:
- dynamic x = new Cell();
- 编译时不检查,运行时才确定,主要用于与COM组件或其他语言交互
- 2.2 运算符与表达式
- 运算符
- 逻辑运算符
- 字符串
+
:只要有一个是字符串,那么就默认为字符串+ - 运算符优先级与结合性
- 类型转换
- 字符串转换成数值:
- double.Parse(s)
- int.Parse(s)
- 数字转换成字符串
- 10.ToString()
- “” + 10
- 使用Convert
- Convert.ToInt32(textbox1.Text)
- Convert.ToDouble(“123.45”)
- Convert.ToDateTime(“2009-10-01 14:00”)
- 字符串转换成数值:
- 运算符
- 2.3 流程控制语句
3种基本流程
简单语句
分支语句
- if
- switch
- if
小技巧
- 2.4 数组
- 数组属于引用类型
- 数组的声明:
- int[] a1;
- double []b;
- Mydate []c;
- 声明数组是不能指明长度
- 动态初始化
- 数组定义与数组元素分配孔家并赋值的操作分开进行
int []a = new int[3];
MyDate []dates;
dates = new MyDate[3];
dates[0] = new MyDate(22, 7, 1964);
dates[1] = new MyDate(1, 5, 1964);
dates[2] = new MyDate(4, 7, 1944);
- 静态初始化:
- 在定义数组的同时就位数组元素分配空间并赋值
int[] a = {3, 9, 8};
或者int[] a = new int[]{3, 9, 8};
- ```c#
MyDate[] dates = {
new MyDate(22, 7, 1964),
new MyDate(12, 1, 2004),
new MyDate(21, 2, 1984)
}1
2
3
4
5
6
7
8
9
10
11
12
13
146. 注:最后可以多一个逗号。如: `{3, 9, 8, }`
7. 数组是引用类型,它的元素相当于类的 ***成员变量*** ,因此数组一经分配空间,其中的 ***每个元素*** 也被按住奥成员变量同样的方式被 ***隐式初始化***,例如:
1. 数值类型是0
2. 引用类型为null
8. 数组元素的引用方式:
1. 类似于C语言;
2. index为数组元素下标,可以是整型常量或整型表达式,如a[3], b[i], c[6 * i]
3. 每个数组都有一个属性Length指明它的长度,例如: `a.Length`指明数组a的长度(元素的个数)
9. foreach可以方便的处理数组】集合中各元素, 如
```c#
int[] ages = new int[10];
foreach (int age in ages) {
// ...
}foreach 是只读式的遍历
59. 数据库-绪论
58. U盘装系统,启动快捷键
- 笔记本
- 组装机
- 台式机
57. 渗透
- ncpa.cpl
- services.msc
- http响应码
- 200:客户端请求成功,是最常见的状态
- 302:重定向
- 404:请求资源不存在,是最常见的状态
- 400:客户端请求有语法错误,不能被服务器所理解
- 401:请求未经授权
- 403:服务器收到请求,但是拒绝提供服务
- 500:服务器内部错误,是最常见的状态
- 503:服务器当前不能处理客户端的请求,一段时间后可能恢复正常
- url:统一资源定位符
【例】:http://www.cracer.com:80/admin/index.php - html:伪静态(看上去静态,实际上是动态)
- http请求方法
- GET
- POST
- OPTIONS
- PUT
- MOVE
- DELETE
- TRACE
56. 最小生成树
1. 构造邻接矩阵
- 结构体
1
2
3
4
5
6
7
8
9typedef char VertexType;
typedef int EdgeType;
#define MAXVEX 100
#define INFINITY 0x3f3f3f3f // 在程序设计中,将无穷大设为0x3f3f3f3f
typedef struct {
VertexType vexs[MAXVEX];
EdgeType arc[MAXVEX][MAXVEX];
int numVertexes, numEdges;
}MGraph; - 实例化邻接矩阵
1
2
3
4
5
6
7
8
9
10
11MGraph G;
memset(G.arc, 0x3f, sizeof(G.arc));
int N;
cout << "请输入有多少条边:";
cin >> N;
for (int i = 0; i < N; i++) {
int ti, tj, va;
cin >> ti >> tj >> va;
G.arc[ti][tj] = va;
G.arc[tj][ti] = va;
}2. 生成最小生成树
1. 步骤:
- 随机将一个点作为生成树的顶点,这里以$V_0$为顶点;
- 将各点与$V_0$的距离保存到
lowcost
数组中; adjvex
用来存储各个顶点的值,用来看是哪个点与接下来的哪个点相连的;lowcost
存储各个顶点是否为生成树顶点;- 遍历数组
lowcost
,找到与顶点 $V_0$最短的边,并将对应的顶点,添加到生成树中; - 接着,将下一个顶点与$V_0$看成整体
O
,更新lowcost
的值(更新其他顶点与O
的更短的距离); - 直到数组
lowcost
全部为0。2. 代码:
1 | /** |
- 判断该边添加上之后是否会使生成树生成回路,由于该边是与其两端点有关系,因此,判断该点是否在生成树中即可;
- 用一个数组标明