自訂與內建函式
#include "/usr/include/stdio.h"
int max(int a, int b) {
int c;
if (a>b) c=a;
else c=b;
return c;
}
main(void)
{
int x=20,y=30;
int d=max(x,y);
printf("The max number is: %d\n",d);
}
php
#!/usr/bin/php
<?php
function max_num($a,$b) {
if ($a>$b) {
$c=$a;
}
else {
$c=$b;
}
return $c;
}
echo max_num(3,2)."\n";
?>
shell script
#!/bin/bash
max_num() {
if [ $1 -gt $2 ]
then
c=$1
else
c=$2
fi
return $(($c))
}
max_num 10 20
echo $c
2017年12月18日 星期一
2017年12月17日 星期日
change default shell in Mac OS
- Go to System Preferences
- Click on "Users & Groups"
- Click the lock to make changes.
- Right click the current user -> Advanced options
- Change the login shell to /bin/zsh in the dropdown.
- Open a new terminal and verify with
echo $SHELL
2017年11月30日 星期四
Windows 10 按鍵組合
Windows 按鍵組合
Windows 鍵或者 Ctrl + Esc:彈出開始功能表。
Windows 鍵+E:開啟檔案總管。
Windows 鍵+Tab:工具列視窗切換。
Alt+Tab : 應用程式切換。
Windows 鍵+D:隱藏、顯示視窗。
Windows 鍵+F1:開啟 Windows 的 [說明與支援]。
Windows 鍵+M:所有視窗縮到最小。
Windows 鍵+M+Shift:取消所有視窗縮到最小。
Windows 鍵+Pause/Break:開啟 [系統內容]。
Windows 鍵或者 Ctrl + Esc:彈出開始功能表。
Windows 鍵+E:開啟檔案總管。
Windows 鍵 + X : 開啟「進階設定」功能表。
Windows 鍵+R:執行(R)...。
Windows 鍵+F:開啟 [搜尋檔案和資料夾]。(windows 8)
Windows 鍵 + S : 開啟 [搜尋檔案和資料夾]。(Windows 10)
Windows 鍵 + I : 開啟「設定」視窗,以變更 Windows 中的功能行為。
Windows 鍵 + K : 開啟「連接」或「裝置」檢視畫面,以連接藍牙裝置。
Windows 鍵+Tab:工具列視窗切換。
Alt+Tab : 應用程式切換。
Windows 鍵+D:隱藏、顯示視窗。
Windows 鍵 + 左箭頭 或右箭頭
移動並調整目前的視窗至畫面左半邊或右半邊。
Windows 鍵 + Prt Scr (Print Screen)
將畫面的圖片以 PNG 圖形檔儲存至圖片媒體櫃的螢幕擷取畫面資料夾中。
Windows 鍵+M:所有視窗縮到最小。
Windows 鍵+M+Shift:取消所有視窗縮到最小。
Windows 鍵+Pause/Break:開啟 [系統內容]。
Linux player
MPlayer
MPlayer is a free and open media player software. The program is available for all major .... Qt-based are SMPlayer and KMPlayer
sudo zypper install vlc vlc-codecs
sudo zypper install handbrake-cli handbrake-gtk
sudo zypper install k3b-codecs ffmpeg lame phonon-backend-vlc phonon4qt5-backend-vlc vlc-codecs libdvdcss2 flash-player
zypper dup
sudo zypper dup --from 'Packman Repository'
MPlayer is a free and open media player software. The program is available for all major .... Qt-based are SMPlayer and KMPlayer
smplayer
SMPlayer是一個非常好用的媒體播放器,可以支援大部分的視訊和音訊檔案。它支援音訊軌道切換,允許調節亮度、對比度、色調、飽和度、伽瑪值,按照倍速、4倍速等多種速度回放,還可以進行音訊和字幕延遲調整以同步音訊和字幕。open-source codecs
https://en.wikipedia.org/wiki/Comparison_of_audio_coding_formatspackman
zypper ar -f -n packman http://ftp.gwdg.de/pub/linux/misc/packman/suse/openSUSE_Leap_42.1/ packmansudo zypper install vlc vlc-codecs
sudo zypper install handbrake-cli handbrake-gtk
sudo zypper install k3b-codecs ffmpeg lame phonon-backend-vlc phonon4qt5-backend-vlc vlc-codecs libdvdcss2 flash-player
zypper dup
sudo zypper dup --from 'Packman Repository'
2017年11月29日 星期三
字元變數(variable)
建立變數
int i;int j;
i=1;
j=2;
short way
int i=1, j=2;
字'元'變數
一個英文字母、數字或其他的符號,我們稱它為字元(character),總共256種。可以用ASCII字元碼來對應到每個字元。要表示一個字元,我們可以用一對單引號 ' 把該字元夾起來,例如:char test='c';
事實上,字元在電腦中是以一個八位元的整數來儲存(即 1 Byte)也就是說,其實字元對電腦來說也是一個數字,因為最後還是01的變化。
ASCII
二進位 十進位 圖形0000 0010 3
0011 0011 51 3
main(void)
{
int e=3;
printf("整數變數的值是(顯示圖形) : %c\n",e);
char f='3';
printf("字元變數的值是(顯示十進位) : %d\n",f);
}
第一個答案是空的,因為以%c顯示字元圖形是空的
整數變數的值是(顯示圖形) :
第二個答案是51,因為以%d顯示十進位的值
字元變數的值是(顯示十進位) :51
結論:
字元在電腦中是以一個八位元的整數來儲存(例如ASCII所示)
因此也可以拿來做加減乘除等四則運算。例如
ASCII
二進位 十進位 圖形0011 0001 49 1
0011 0100 52 4
#include <stdio.h>
main(void)
{ char c='1';
c=c+3;
printf("The answer is : %c\n",c);
char d='1';
d=d+3;
printf("The answer is : %d\n",d);
}
The answer is : 4
The answer is : 52
控制字元
控制字元通常以跳脫字元 \ 開頭,簡單來說用'\n'控制換行就好像鍵盤按下Enter。'\0' 空字元,用於字串的結束
'\n' New Line,換行符號
'\r' Carriage Return,回歸鍵(即 Enter 鍵)
'\t' Tab,跳格
'\b' Backspace,倒退鍵
'\a' Bell,嗶一聲
'\\' 反斜線 \
'\'' 單引號 '
'\"' 雙引號 "
2017年9月8日 星期五
建立修改MySQL資料表
命令列建立資料庫表格需要三項要素:
一 表格的名字
二 欄位名稱
三 欄位的類型
語法:
CREATE TABLE 表格的名字 (欄位名稱 欄位的類型);
以下是一個建立表格的範例:
Create Table ExTable (
ExId INT NOT NULL AUTO_INCREMENT,
ExName CHAR(20) NOT NULL,
ExTitle VARCHAR(100) ,
ExDate DATE,
PRIMARY KEY (ExId)
);
Create Table ExTable (
ExId INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
ExName CHAR(20) NOT NULL,
ExTitle VARCHAR(100) ,
ExDate DATE,
);
ALTER TABLE 表格的名字 CHANGE COLUMN 原來欄位名稱 新欄位的名稱 新欄位的類型;
以下是一個修改表格的範例:
Alter table ExTable Change column ExName NewName char(20) not null;
ALTER TABLE 表格的名字 ADD COLUMN 欄位名稱 欄位的類型;
以下是一個新增表格的範例:
Alter table ExTable ADD column ExAddress varchar(100) not null;
ALTER TABLE 表格的名字 DROP COLUMN 欄位名稱 ;
以下是一個刪除表格欄位的範例:
Alter table ExTable DROP column ExAddress;
alter table ExTable modify column ExId int, drop primary key;
alter table ExTable modify column ExId int primary key;
alter table ExTable modify column ExId int auto_increment;
alter table ExTable add primary key(ExId);
所謂NULL值並不是表示數字的零或是字串中的空字串,而是代表未知值或是未適合值。NULL大多在欄位輸入時,尚未獲知正確值的情況下使用。
例如,建立通訊錄表格時,並不知道某人的傳真號碼或沒有傳真號碼,用NULL表示。
如果欄位屬性為NOT NULL(不可以未知)時,使用者在建立一筆資料時,若欄位為空白MySQL會顯示錯誤。
一 表格的名字
二 欄位名稱
三 欄位的類型
語法:
CREATE TABLE 表格的名字 (欄位名稱 欄位的類型);
以下是一個建立表格的範例:
Create Table ExTable (
ExId INT NOT NULL AUTO_INCREMENT,
ExName CHAR(20) NOT NULL,
ExTitle VARCHAR(100) ,
ExDate DATE,
PRIMARY KEY (ExId)
);
Create Table ExTable (
ExId INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
ExName CHAR(20) NOT NULL,
ExTitle VARCHAR(100) ,
ExDate DATE,
);
ALTER TABLE 表格的名字 CHANGE COLUMN 原來欄位名稱 新欄位的名稱 新欄位的類型;
以下是一個修改表格的範例:
Alter table ExTable Change column ExName NewName char(20) not null;
ALTER TABLE 表格的名字 ADD COLUMN 欄位名稱 欄位的類型;
以下是一個新增表格的範例:
Alter table ExTable ADD column ExAddress varchar(100) not null;
ALTER TABLE 表格的名字 DROP COLUMN 欄位名稱 ;
以下是一個刪除表格欄位的範例:
Alter table ExTable DROP column ExAddress;
alter table ExTable modify column ExId int, drop primary key;
alter table ExTable modify column ExId int primary key;
alter table ExTable modify column ExId int auto_increment;
alter table ExTable add primary key(ExId);
所謂NULL值並不是表示數字的零或是字串中的空字串,而是代表未知值或是未適合值。NULL大多在欄位輸入時,尚未獲知正確值的情況下使用。
例如,建立通訊錄表格時,並不知道某人的傳真號碼或沒有傳真號碼,用NULL表示。
如果欄位屬性為NOT NULL(不可以未知)時,使用者在建立一筆資料時,若欄位為空白MySQL會顯示錯誤。
2017年3月25日 星期六
google-drive-ocamlfuse(install google-drive on linux)
Introduction:
GUI way:Insync.
command line: google-drive-ocamlfuse
Installation:
1. download from "https://software.opensuse.org/find"2. install
authorize:
google-drive-ocamlfuse.
This command will open a browser window that will prompt you to log into your Google account
Mounting your Google Drive:
google-drive-ocamlfuse /mnt/point
umount:
fusermount -u /mnt/point
umount:
fusermount -u /mnt/point
NFS與CIFS
NFS:(Network File System)
NFS實際上是網絡檔案系統的縮寫。該網絡檔案系統實際上用於Linux或Unix-Based的作業系統。
用戶可以通過使用一台Unix-Based作業系統平台來查看,甚至更改/編輯一個另一台Unix-Based作業系統平台中的一些檔案。 FTP只能下載後編輯。
mount:
# mount serverIP:/server/dir /mnt/point
權限:
由server side設定用戶端的權限
mount on startup
serverIP:/dir /mnt/point nfs defaults,_netdev 0 0
mount on startup
serverIP:/dir /mnt/point nfs defaults,_netdev 0 0
CIFS:(Common Internet File System)
是基於Windows的檔案共享對象。
mount:
# mount.cifs -o username=user //server/dir /mnt/point
umount:
# umount -l /mnt/point
umount:
# umount -l /mnt/point
2017年1月23日 星期一
網路類別
廣域網路(WAN)
廣域網路的架構是用於兩個距離超過二十公里以上之區域網路要做連線所需方式。
都會網路(MAN)
大都會網域架構為二十公里以內,四公里以上範圍內網路系統。
區域網路(LAN)
區域網路架構為四公里以內範圍,是網路最基本的連線組織方式。
無線區域網路(WLAN)
廣域網路的架構是用於兩個距離超過二十公里以上之區域網路要做連線所需方式。
都會網路(MAN)
大都會網域架構為二十公里以內,四公里以上範圍內網路系統。
區域網路(LAN)
區域網路架構為四公里以內範圍,是網路最基本的連線組織方式。
無線區域網路(WLAN)
訂閱:
文章 (Atom)