- 註冊時間
- 2006-10-8
- 最後登錄
- 2019-6-20
- 主題
- 查看
- 積分
- 1306
- 閱讀權限
- 110
- 文章
- 1393
- 相冊
- 0
- 日誌
- 1
   
狀態︰
離線
|
本帖最後由 mm117777 於 2012-6-19 23:27 編輯
MS-DOS 指令 架構 為: 指令 [參數] [開關]
例如, c:\>dir *.c /p 是 將 目前 目錄 下的 所有 .c 檔 依 一頁 一頁 方式 列印 在 螢幕上, 其中
dir 是 列印 指令,
*.c 是 參數, 指目前 目錄下的 所有 .c 檔,
/p 是 開關, 指依 一頁 一頁 方式 列印。
下列 為 一些 常用 DOS 指令:
指令 例子 說明
format format a: 將 在 drive a: 的磁碟 格式化
format a:/s 格式化 磁碟 可做為 啟動用,含
COMMAND.COM,IO.SYS及MSDOS.SYS
cd cd \cpg\labs 從 目前 的 目錄 到 目錄 \cpg\labs
md md games 在目前的目錄下開一新目錄games
rd rd test 從目前 的 目錄下 清除 目錄 test
cls cls 清除螢幕
copy copy file1 file2 複製 檔案 file1 成 file2
del del *.bak 清除 所有 .bak 檔
dir dir *.c 列出 所有 *.c 檔 於螢幕
dir *.* /w
dir *.* /p/o
path path 列印 路徑 以知 設定 環境
ren ren file1 files 將 file1 改名為 file2
type type file 將 file 列印 在 螢幕
type file|more 將 file 列印 在 螢幕 依頁 方式列印
第 0.3.3 節 MS-DOS 如何 執行 指令
MS-DOS 的 執行檔 有 3 種: .COM、 .EXE、 .BAT。 如果 在 目前的 目錄下 有 file.COM、 file.EXE 及 file.BAT 三個檔, 鍵入 file 後 DOS 是 執行 那個檔?
如果 file 是 內建 指令 則 執行 內建指令, 不然 就 執行 file.COM。 若 沒有 file.COM 則 執行 file.EXE, 否則 執行 file.BAT。
如果 file 不是 內建 指令, 又 目前 的 目錄下 沒有 file.COM、 file.EXE 及 file.BAT 三個檔, 則 DOS 依 環境變數 PATH 中 路徑的 順序 尋找 執行檔 file, 若有 則 再按 .COM、 .EXE 及 .BAT 的順序 尋找。 若 都沒有 則 列印 出 Bad command or file name。
當 PATH 中 含 C:\TC;C:\TC\BIN; 我們 可 在 任何 目錄下 鍵入 tc file.c 以 使用 TURBO C, 又 當一個 程式 編譯 成 一執行檔 .EXE 時, 須 注意 其 主檔名 不為 內建 指令。
第 0.3.4 節 MS-DOS 輸入 及 輸出 轉向
MS-DOS 有 3 個 基本 檔案 stdin, stdout 及 stderr。 由 鍵盤 輸入 的 是 stdin, 輸出 至 螢幕 的是 stdout。 從 鍵盤 輸入 可轉為 由 一般 檔案 輸入, 例如 執行 一 C 程式 lab1.exe 需 由 鍵盤 輸入資料,我們 可 先 將 資料 存在 一檔案 如 in.txt, 執行 lab1.exe 時, 鍵入 lab1 <in.txt 即可。
輸出 至 螢幕 可 轉為 輸出 至 一般 檔案, 例如 C:\>type file,我們可 在 螢幕 看到 檔案 file 的內容, 若 鍵入 指令 C:\>type file >out, 則 輸出 至 螢幕的 資料 全 存入 檔案 out, 螢幕 也 見不到 什麼, 若 鍵入 指令 C:\>type file >>out, 則 輸出 至 螢幕 的 資料 全 附加 在檔案 out 之後。
一個 執行檔 的 輸出 可 做 另一 執行檔 的 輸入, 例如 C:\>type file | more、 C:>grep file 林 | sort >out等。
--------------------------------------------------------------------------------
第 0.4 節 程式語言
程式語言 基本上 可 分為 四類: 機器語言、 組合語言、 高階語言 及 自然語言 (普通話)。 電腦 CPU 所能 執行的 語言 是 機器語言, 機器語言 是 由 一連串的 0 與 1 所構成。 機器語言 非常 不適合 人 去 編寫、 閱讀 及 修改, 所以 有 組合語言 發展 出來, 組合語言 較容易 編寫、 閱讀 及 修改, 但是 電腦 無法 直接 執行 組合語言, 因此 需要 組合編譯器 將 組合語言 翻譯 成 機器語言。 又 組合語言 與 普通話 差太多, 因此 有 高階語言 如 Fortran、 Cobol、 Pascal 及 C 等 發展 出來。 目前 電腦 的 普通話 程式語言 仍在 研究發展中, 尚未有 成品 可供 使用, 因此 我們 仍 須 學習 高階語言 如 C 或 低階語言 以 發展 應用軟體 或 其它。
一般而言, 程式語言 是 由 程式 敘述 所構成, 其 控制 流程 可分為: 連續性、 選擇性、 迴圈性、 跳躍性等。 對 C 程式語言 而言,
選擇性 敘述 有 if-else 敘述 及 switch 敘述;
迴圈性 敘述 有 while、 for 及 do-while 敘述;
跳躍性 敘述 有 break、 continue、 return、 goto 及 函數 呼叫 等。
C 程式語言 的 敘述 有 簡單敘述 及 複合敘述 兩類, 簡單敘述 是 以 分號 ";" 做 結束。 複合敘述 是 由 括號 {} 構成, 括號 內 可填上 0 個, 1 個 或 多個 簡單敘述。 簡單敘述 約有 下列 幾種:
指派 敘述
其 語法 為 : 變數 = 運算式;
其 語意 為 : 將 運算式 的 值 指派 給 變數。
例如 : x = y*(x+1);
說明 : 若 在 執行 此 敘述 前 變數 x 與 y 的 值 都是 2, 執行後 x 的 值 變為 6, y 的 值 不變。
if 敘述
其 語法 為 : if ( 運算式 ) 敘述;
其 語意 為 : 若 運算式 的值 不為 0 則 執行 該敘述, 否則 跳過 該 敘述。
例如 : if ( x % 5 == 0 ) { printf("\n"); x = 1; }
說明 : 若 變數 x 的值 是 5 (可 解釋 為 每列印 5 個) 就 跳行。
if-else 敘述
其 語法 為 :
if ( 運算式 ) 敘述1;
else 敘述2;
其 語意 為 : 若 運算式 的 值 不為 0 則 執行 敘述 1, 否則 執行 敘述 2。
例 : if (x%2==0) x=x/2; else x=3*x+1;
說明 :
(1) x 為 偶數 則 除 2, 不然 乘 3 加 1。
(2) 此 敘述 亦可 改寫 成 x = (x%2==0) ? x/2 : 3*x+1;
if-else-if 敘述
其 語法 為 :
if (運算式1) 敘述1;
else if (運算式2) 敘述2;
...
else 敘述n;
其 語意 為 : 若 運算式 1 的 值 不為 0 則 執行 敘述 1, 否則, 若 運算式 2 的 值 不為 0 則 執行 敘述 2 等, 若 以上 皆非 則 執行 敘述 n。
例 :
if (total>=90) total=total*1.07;
else if (total>=80) total=total*1.05;
else if (total>=70) total=total*1.03;
switch 敘述
其 語法 為 :
switch ( 運算式 )
{ case 常數1: 敘述1; break;
case 常數2: 敘述2; break;
...
default: 敘述n; break;
}
其 語意 為 : 若 運算式 的 值 為 常數 1 則 執行 敘述 1, 否則, 若 運算式 的 值 為常數 2 則 執行 敘述 2 等, 若 以上 皆非 則 執行 敘述 n。
例 :
switch (c)
{ case 'A' : total_A++; break;
case 'E' : total_E++; break;
case 'I' : total_I++; break;
case 'O' : total_O++; break;
case 'U' : total_U++; break;
default : others++;
}
while 敘述
其 語法 為 : while ( 運算式 ) 敘述;
其 語意 為 : 若 運算式 的 值 不為 0, 則 執行 敘述, 並且 一直 執行 該 敘述 直到 運算式 的 值 為 0。
例 :
while ( x > 1 )
if ( x % 2 == 0 ) x /= 2;
else x = 3 * x + 1;
說明 : 當 x 大於 1 時, 若 x 為 偶數 則 繼續 除 2, 不然 乘 3 加 1, 一直 到 x 的值 變為 1。
for 敘述
其 語法 為 : for (運算式1; 運算式2; 運算式3) 敘述;
其 語意 為 :
運算式1;
while ( 運算式2 )
{ 敘述;
運算式3;
}
例 :
sum = 0;
for ( i = 1 ; i <= n ; i++)
sum += i*i;
說明 : 求 1 至 n 的 平方和。
do-while 敘述
其 語法 為:
do
敘述;
while( 運算式 );
其 語意 為 : 執行 敘述 , 一直 到 運算式 的值為 0。
例 :
do
c = getchar();
while (c == ' ');
說明 : 將空白去掉。
|
|