樹心幽徑

20191230用JavaScript設計插入與選擇排序法
2019/12/30,08:50

(1-1)在notepad輸入如下JS程式碼並存檔在桌面為d01.htm

<script>
var a = [9, 5, 8, 1, 3 , 2 , 7];
var i,j,t;
document.write("插入排序法<br>排序前 a[]="+a);
for (i=1;i<a.length;i++){
    t=a[i];
        document.write("<br> i=" + i +"待插入元素t=a[i]=" + a[i] + " : a[]=" + a);
        for (j=i;j>0 && t<a[j-1];j--) a[j]=a[j-1];
    a[j]=t;
        }
document.write("<br>排序後 a[]="+a);
</script>

(1-2) 用firefox開啟d01.htm,瀏覽結果如下:

插入排序法
排序前 a[]=9,5,8,1,3,2,7
i=1待插入元素t=a[i]=5 : a[]=9,5,8,1,3,2,7
i=2待插入元素t=a[i]=8 : a[]=5,9,8,1,3,2,7
i=3待插入元素t=a[i]=1 : a[]=5,8,9,1,3,2,7
i=4待插入元素t=a[i]=3 : a[]=1,5,8,9,3,2,7
i=5待插入元素t=a[i]=2 : a[]=1,3,5,8,9,2,7
i=6待插入元素t=a[i]=7 : a[]=1,2,3,5,8,9,7
排序後 a[]=1,2,3,5,7,8,9

 

(2-1)在notepad輸入如下JS程式碼並存檔在桌面為d02.htm

<script>
var b = [9, 5, 8, 1, 3 , 2 , 7];
var i,j,t;
document.write("選擇排序法<br>排序前 b[]="+b);
for (i=0;i<b.length-1;i++){
    var mini=i;
        for (j=i+1;j<b.length;j++){
            if (b[j]<b[mini]) mini=j;
        }
        t=b[mini];
        b[mini]=b[i];
        b[i]=t;
    document.write("<br>第"+i +"回合, b[]="+b);
        }
document.write("<br>排序後 b[]="+b);
</script>

(2-2) 用firefox開啟d02.htm,瀏覽結果如下:

選擇排序法
排序前 b[]=9,5,8,1,3,2,7
第0回合, b[]=1,5,8,9,3,2,7
第1回合, b[]=1,2,8,9,3,5,7
第2回合, b[]=1,2,3,9,8,5,7
第3回合, b[]=1,2,3,5,8,9,7
第4回合, b[]=1,2,3,5,7,9,8
第5回合, b[]=1,2,3,5,7,8,9
排序後 b[]=1,2,3,5,7,8,9

(2-3)在notepad輸入如下JS程式碼並存檔在桌面為d02f.htm

<script>
var b = [9, 5, 8, 1, 3 , 2 , 7];
var i,j,t;
document.write("選擇排序法<br>排序前 b[]="+b);
ssort();
document.write("<br>排序後 b[]="+b);

for (i=0;i<20;i++) b.push(30-i);
document.write("選擇排序法<br>排序前 b[]="+b);
ssort();
document.write("<br>排序後 b[]="+b);


function ssort(){
  for (i=0;i<b.length-1;i++){
    var mini=i;
        for (j=i+1;j<b.length;j++){
            if (b[j]<b[mini]) mini=j;
        }
        t=b[mini];
        b[mini]=b[i];
        b[i]=t;
    document.write("<br>第"+i +"回合, b[]="+b);
        }
}
</script>


(3)參考文章:

C++ :

JavaScript :

20191229ubuntu1604boot repair after install win10
2019/12/28,10:49

REF :https://linuxhint.com/ubuntu_boot_repair_tutorial/

(0)boot with  Ubuntu1604 live USB disk then select the "Try Ubuntu" option.

(1) sudo add-apt-repository ppa:yannubuntu/boot-repair
OK

(2-0) $sudo apt update

OK

(2-1)$  sudo apt install boot-repair

OK

(2-2) $  boot-repair

(2-2-1) select second button [Create a BootInfo summary]  to generate the report on  http://paste.ubuntu.com/p/vqm9SbJb6R/ (20191229UbuntuBoot-RepairReport.txt下載 )

(2-2-2) select first button [Recommended repair]  to repair(20191229UbuntuBootRepairOK.txt下載 (82 KB))

An error occurred during the repair.

Please write on a paper the following URL:
http://paste.ubuntu.com/p/crCG8Bs2bw/


In case you still experience boot problem, indicate this URL to:
boot.repair@gmail.com

You can now reboot your computer.
Please do not forget to make your BIOS boot on sda1/EFI/ubuntu/shimx64.efi file!

If your computer reboots directly into Windows, try to change the boot order in your BIOS.
If your BIOS does not allow to change the boot order, change the default boot entry of the Windows bootloader.
For example you can boot into Windows, then type the following command in an admin command prompt:
bcdedit /set {bootmgr} path \EFI\ubuntu\shimx64.efi

 

20200107在windows下載、安裝並使用Appserv應用程式伺服程式
2019/12/24,20:52

(5-1)下載並安裝appserv-win32-8.5.0.exe 32位元版Download : http://prdownloads.sourceforge.net/appserv/appserv-win32-8.5.0.exe?download

(5-2)執行appserv-win32-8.5.0.exe  來安裝應用程式伺服程式:

(5-3)選c:\APPSERV

(5-4)接受如下安裝組件「Apache ,PHP,MySQL,phpMyAdmin 」

(5-5)接受「localhost」為伺服器名稱,

管理者EMAIL給BEAR@MAIL.EDU.TW

http PORT :80 

https 埠號:443

(5-6)MYSQL ROOT密碼給ABC123ABC123

   Character Sets接受UTF-8 UNICODE

(5-7)安裝完成並啟用APACHEMYSQL SERVER

(5-8)讓防火牆「允許存取:不封鎖APACHE HTTP SERVER」

(5-9)放一小狗圖檔dog.png 在C:\AppServ\www

(5-10)用firefox 連 http://localhost/dog.png成功看到小狗圖檔

 

(6-0)製作如下背景透明的動物圖案並存在桌面為wild.png

(6-2)啟動GIMP/按CTRL+N/圖片尺寸寬600、高800/進階「填上/透明」。

(6-2)左上工具區選「鉛筆工具」

(6-3)左上工具區/「前景」挑「紫色」

(6-4)右上「筆刷」挑「最大的實心圓」

(6-5)用滑鼠在工作區繪出一隻紫色線的動物

(6-6)按CTRL+E將工作區匯出到C:\AppServ\www,檔名為wild.png。

(6-8)用記事本編寫如下「六行HTML文字」並存檔在C:\AppServ\www為wild.htm

(6-9)用firefox瀏覽http://localhost/wild.htm的結果如下:

alt

 

 



 

 

 

(1)自 https://www.appserv.org/en/download/ 下載(AppServ 9.3.0,94.8MB)

  • Support TLS,SSL or https
  • For 64bit only

Release Date : 2019-09-29  SHA1SUM : 63e5b8eab036e86fda275ba00e39d5a57b8a2da9

(2)參考「在 Linux 系統上面產生 MD5 與 SHA1 校驗碼,驗證檔案是否有損毀或遭到竄改

(3-0)win10憑證管理與校驗碼工具指令:

D:\>CERTUTIL/?

:  -hashfile         -- 透過檔案產生並顯示密碼編譯雜湊


(3-1) d:\> CERTUTIL -HASHFILE C:\Users\treehrt\Downloads\appserv-x64-9.3.0.exe sha1
SHA1 的 C:\Users\treehrt\Downloads\appserv-x64-9.3.0.exe 雜湊:
63e5b8eab036e86fda275ba00e39d5a57b8a2da9

以上計算結果和「網站檔案下載處的SHA1SUM : 63e5b8eab036e86fda275ba00e39d5a57b8a2da9」有一致,故下載的檔案可信。


(3-2) d:\>CERTUTIL -HASHFILE C:\Users\treehrt\Downloads\appserv-x64-9.3.0.exe md5
MD5 的 C:\Users\treehrt\Downloads\appserv-x64-9.3.0.exe 雜湊:
c820a6a9d652356824c5743c8e60d750

 

(3-3)d:\>CERTUTIL -HASHFILE C:\Users\treehrt\Downloads\appserv-x64-9.3.0.exe sha256
SHA256 的 C:\Users\treehrt\Downloads\appserv-x64-9.3.0.exe 雜湊:
ff63bf4eb68f63c5bc46fbe90634ecfb555fddbb0566f35c4d3bc92951aaed18


(3-4) d:\>CERTUTIL -HASHFILE C:\Users\treehrt\Downloads\appserv-x64-9.3.0.exe sha384
SHA384 的 C:\Users\treehrt\Downloads\appserv-x64-9.3.0.exe 雜湊:
32d0978106dd64e40cf6e6c4e6f2536bc36f57339f49dce3379df778674b94c4fcb4a61707b141456e32944085698872

(3-5)d:\>CERTUTIL -HASHFILE C:\Users\treehrt\Downloads\appserv-x64-9.3.0.exe sha512
SHA512 的 C:\Users\treehrt\Downloads\appserv-x64-9.3.0.exe 雜湊:
b835dd7be997fc575e1c810a789fd52dabb86dce543701a3d26dfa474540f5887e7486a50c78c911488bdc5ea87463d91ac09c1a14c5af453ff385cc0ad24442

 

20191223用記事本編寫可找前三名及飛機航班追蹤模擬的JavaScript程式
2019/12/23,09:28

REF1: 20191221用記事本編寫JavaScripts網頁前端程式 »

 

REF2:20191216在jsbin.com網站編寫JavaScript程式將結果抓入writer再轉存為pdf再上傳至「金門農工學生學習歷程系統

(1-0)在A陣例找前三名JavaScript程式

(1-1)在notepad(記事本)輸入如下程式碼並存檔在桌面為c01.htm(存檔類型要選所有檔案)

<script>
var a =[63,54,23,78,99,10];
var rank=[];
a.push(65);a.push(78);
document.writeln("a[]="+a);
sort();
document.writeln("<hr>rank[]="+rank);

function sort(){
  rank.length=0;
  for (i=1;i<=3;i++){
    var aMax=Math.max(...a);
    document.writeln("<br>aMax="+aMax);
    var iaMax=a.indexOf(aMax);
    document.writeln("<br>iaMax="+iaMax);
    rank.push(a[iaMax]);
    a.splice(iaMax,1);
    document.writeln("<br>after splice a[]="+a);
    }
}

</script>

 

(1-2)用IE或chrome或firefox瀏覽器開啟c01.htm,瀏覽結果如下:

a[]=63,54,23,78,99,10,65,78
aMax=99
iaMax=4
after splice a[]=63,54,23,78,10,65,78
aMax=78
iaMax=3
after splice a[]=63,54,23,10,65,78
aMax=78
iaMax=5
after splice a[]=63,54,23,10,65


rank[]=99,78,78

 

(2-0)飛機航班追蹤模擬的JavaScript程式

(2-1) 在notepad(記事本)輸入如下程式碼並存檔在桌面為c02.htm(存檔類型要選所有檔案)

<script>

var start,end;

var b=[];

for (i=0;i<20000;i++) b.push(rand(30000));

start=new Date();
var result;
for (i=0;i<2500;i++) result=b.indexOf(747);

end=new Date();
document.write("747的索引="+result + " <br> b[result]="+b[result] + "<br>");

var dt=(end-start)/1000;
document.write("找2500次747花的時間=" + dt + "秒 <hr>");

function rand(r){
 var x=Math.random()*r;
 var y=parseInt(x);
 while (b.indexOf(y) >=0) {
    x=Math.random()*r;
    y=parseInt(x);
    }
 return y;
}

</script>

 

(2-2)用IE或chrome或firefox瀏覽器開啟c02.htm,瀏覽結果如下:

747的索引=2382
b[result]=747
找2500次747花的時間=0.007秒

(3)將以上c01.htm 及c02.htm 二檔的操作畫面及程式碼用fn+PrtScr鍵抓入LibreOffice 的writer中並存檔為「20191227電機一47號吳小花 js找前三名及飛機航班追蹤.odt」,並再 匯出為PDF檔(自動取用odt檔的主檔名),詳細內容格式請參如下二範例檔:(ALT鍵在空白鍵的二邊,PrtScr鍵在F12鍵的右邊)

20191227電機一47號吳小花 js找前三名及飛機航班追蹤.odt 下載 (361 KB)

20191227電機一47號吳小花 js找前三名及飛機航班追蹤.pdf下載 (299 KB) 

(4)請把(3)所產生的PDF檔上傳至「金門農工學生學習歷程系統」成為你的IT學習檔案。

 

20191221用記事本編寫JavaScripts網頁前端程式
2019/12/17,11:19

REF:20191216在jsbin.com網站編寫JavaScript程式將結果抓入writer再轉存為pdf再上傳至「金門農工學生學習歷程系統」成IT學習檔案

 

(1-1)在notepad(記事本)輸入如下程式碼並存檔在桌面為j01.htm(存檔類型要選所有檔案)

<script>
var a =[1,3,5,7,9,"a","b","c"];
for (i=0; i < a.length; i++)
      document.write(a[i]);
</script>

(1-2)用IE或chrome或firefox瀏覽器開啟js01.htm,瀏覽結果如下:

13579abc


(2-1)在notepad輸入如下程式碼並存檔在桌面為j02.htm

<body bgcolor=lightblue>
<script>
var b = [1,3,5,7,-9,11,13,15];
var i=0;
while ( b[i] > 0){
      document.write(b[i]);
      i++;
}
</script>
</body>

(2-2)用firefox開啟js02.htm,瀏覽結果如下:

1357

(3-1) 在notepad輸入如下程式碼並存檔在桌面為j03.htm

<title>js3.htm</title>
<body bgcolor=lightgreen>
<script>
var ts=0;
var s=0;
do {
    s+= Math.random()*100;
    s=parseInt(s);
    ts++;
    document.write("次數ts="+ts+" : ");
    document.write("總和s="+s+"<br>");
} while (s<2000);
document.write("總和s="+s+"已超出上限2000");
</script>
</body>

(3-2)用firefox開啟j03.htm,瀏覽結果如下:

次數ts=1 : 總和s=68
次數ts=2 : 總和s=117
次數ts=3 : 總和s=185
:

次數ts=35 : 總和s=1738
次數ts=36 : 總和s=1832
次數ts=37 : 總和s=1876
次數ts=38 : 總和s=1952
次數ts=39 : 總和s=1986
次數ts=40 : 總和s=2026
總和s=2026已超出上限2000

(4-1) 在notepad輸入如下程式碼並存檔在桌面為j04.htm

<body bgcolor=lightblue>
<script>
function s()
{
      var obj=document.getElementById("item");
      document.write("你選了"+obj.value);
      switch(obj.value){
    case "1": alert("1號餐199元");break;
    case "2": alert("2號餐299元");break;
    case "3": alert("3號餐399元");break;
    default: alert("未選擇");
    }
}
</script>

<select id="item" onchange="s();">;
    <option>選我</option>
    <option>1</option>
    <option>2</option>
    <option>3</option>
</select>

</script>
</body>

(4-2)用IE開啟j04.htm,瀏覽結果如下:

你選了2 

 

(5)請把(1)~(4)所寫的程式碼及執行結果畫面排在一起用fn+PrtSCR鍵(PrtSCR在F12鍵的右邊)抓入LibreOffice 的writer中並截切多餘的抓圖部分

並存為「20191220你名你號js程式.odt」並匯出產生PDF檔(檔名為:20191220你名你號js程式.pdf),請參考如下:

20200113商經三吳小花48號用記事本編寫 JavaScript.odt下載 (471 KB)

20200113商經三吳小花48號用記事本編寫 JavaScript.pdf下載 (422 KB)

 

(6)請把(5)所產生的PDF檔上傳至「金門農工學生學習歷程系統」成為你的IT學習檔案。

以上如有辦法修改上列4個網頁程式碼檔並做出結果不太一樣的PDF檔並上傳「金門農工學生學習歷程系統」,老師將會給予認證。

 

(7-1) 在notepad輸入如下JS遞廻程式碼並存檔在桌面為j07.htm

<body bgcolor=yellow>
<script>
document.write("r(100)="+r(100)+"<br>");
document.write("r(10)="+r(10)+"<br>");
document.write("r(5)="+r(5)+"<br>");
function r(c)
{
   if (c>1) return(c+r(c-1));
   else return(1);
}
</script>
</body>

(7-2)用firefox開啟j07.htm,瀏覽結果如下:

r(100)=5050
r(10)=55
r(5)=15


(8-1)在notepad輸入如下JS遞廻程式碼並存檔在桌面為j08.htm

<body bgcolor=pink>
<script>
document.write("n(10)="+n(10)+"<br>");
document.write("n(9)="+n(9)+"<br>");
document.write("n(8)="+n(8)+"<br>");
document.write("n(7)="+n(7)+"<br>");
document.write("n(6)="+n(6)+"<br>");
document.write("n(5)="+n(5)+"<br>");

function n(c)
{
   if (c>1) return(c*n(c-1));
   else return(1);
}
</script>
</body>

 

(8-2)用firefox開啟j08.htm,瀏覽結果如下:

n(10)=3628800
n(9)=362880
n(8)=40320
n(7)=5040
n(6)=720
n(5)=120

 

 

(9-1)在notepad輸入如下JS遞廻程式碼並存檔在桌面為j09.htm

<script>
var a=[8,5,2,3,1,9,4,6];
function sw(a,i,j)
{  var t=a[i];  a[i]=a[j];  a[j]=t;}


function bsort(a,end)
{
  document.write(" end= "+end+ " a[]="+a+"<br>");
  for (var j=0;j<a.length-end;j++)
   { if (a[j+1]<a[j]) sw(a,j+1,j); }
  if (end < a.length-2)  bsort(a,end+1);
}

bsort(a,0);
document.write(" After bsort a[]="+a+"<br>");
</script>

(9-2)用firefox開啟j09.htm,瀏覽結果如下:

end= 0 a[]=8,5,2,3,1,9,4,6
end= 1 a[]=5,2,3,1,8,4,6,9
end= 2 a[]=2,3,1,5,4,6,8,9
end= 3 a[]=2,1,3,4,5,6,8,9
end= 4 a[]=1,2,3,4,5,6,8,9
end= 5 a[]=1,2,3,4,5,6,8,9
end= 6 a[]=1,2,3,4,5,6,8,9
After bsort a[]=1,2,3,4,5,6,8,9

 

20191213用DEV-C++設計各式資料型態的陣列並將結果抓入writer再轉存為pdf再上傳至「金門農工學生學習歷程系統」成IT學習檔案
2019/12/13,09:15

 

 

 

20191216在jsbin.com網站編寫JavaScript程式將結果抓入writer再轉存為pdf再上傳至「金門農工學生學習歷程系統

 

 

 

 

 

(1)請先下載Dev-Cpp 5.11 TDM-GCC 4.9.2 Setup.exe(約49MB)並安裝C語言編譯開發環境(SDK)

 

(2)請參考如下文章編寫4個c程式,檔名分別為1.cpp,2.cpp,3.cpp,4.cpp

20191125用DEV-C++設計各式資料型態的陣列

 

(3)請把(2)所寫的程式碼及執行結果畫面用fn+ALT+PRTSCR鍵抓入LibreOffice 的writer中並存為「20191213你名你號C程式.odt」並匯出產生PDF檔(檔名為:20191213你名你號C程式.pdf),請參考如下:

20191213電機一吳小貓48號 IT-C程式設計仿作學習檔案.odt下載 (385 KB)

20191213電機一吳小貓48號 IT-C程式設計仿作學習檔案.pdf下載 (45 KB)

 

(4)請把(3)所產生的PDF檔上傳至「金門農工學生學習歷程系統」成為你的IT學習檔案。

20191211使用openssl建立私密金鑰檔server.key及憑證要求檔server.csr
2019/12/11,09:32

(1)建立一個 私密金鑰檔server.key

 # openssl genrsa -out server.key 2048
Generating RSA private key, 2048 bit long modulus
.....................+++
...................+++
e is 65537 (0x10001)

(2)# stat server.key
  File: ‘server.key’
  Size: 1675            Blocks: 8          IO Block: 4096   普通檔案
Device: fd01h/64769d    Inode: 2760360     Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2019-12-11 17:33:29.764947258 +0800
Modify: 2019-12-11 17:30:46.760935711 +0800
Change: 2019-12-11 17:30:46.760935711 +0800
 Birth: -

(3)# cat server.key
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAzvU1dEVpXBiQoo6BlcggpHXia1awV44y3whXVlt27LENRnUV
9KDb0Uv20A7mNWN9IONFsojbgA9cquyL066ZpO1aEk6jdStDGzgDCNLXX4M6abiW
D8vITE1q+3oJOZTC+78gSFGolzzGYYmRm16oXOJ/R7OJEBRg82cIgDj61XRd66Ys
Nnr7ekMfMpbXBU9gfOS8JgNT7akK8UsedzLjoLO7Fl2zg6Dev17LBUanlhdQgJQ/
0ufkTb/FaG8m6Drp4EwfGvawD49oL2ciRTG9r7fFHlv8bl5LJpfV2hBZ5nPeeTQt
DOOTObiGFDg3cpvSaDQuDBhb5+1FYT5g5uAJNQIDAQABAoIBADM9Xsi0zsswgc7d
fZP6Aqr1TOPKiMqEuG+j/wuwhZdAlsrU/mSc1w/QwQDuT2z0fux/mKgFXmMsaoMf
Idd9KSk+YsiZk7rUxT6d9ZJfsVdChFnci7rJd4P8vvoYUuRgwo3V2kZNgXJAZ9WK
W/Sd0Q1+PokgGFVU1lQtNFuav+/M95ChjJ+YNfVzdbth+CkUxZBAU99JwF2Hqw+T
Dc0S9TGt/YMVPDUlQVUIq7R8pthFdy87DvLRsSlZD2PpvAljrQGjkKk47R/rK1VT
5wZYvhCDF5Yb9YZfhWSp5W7Ss/El1awvkldF4UHozQUZlqKhZfW/CwHtpeurnl67
7sWGOxkCgYEA9/cF4Wv7iZ1ogQhDYCE6U1clV0FSShwoW9vkF4QWVFzlJvKdl6YJ
NgBSkP8LSSIfKihQNI788b5ErfOff4xf+/+QxbBqzNo8sGVybWSsp5LYqM90q3px
SfuFEBl9Yd8bj39bDCGlKlqgR4cZ7ioCzOzaULKFScR1t+hSDZD1Y2MCgYEA1aoD
owfDW06Fj3KfI4obMbv6ttiMkSqETafoQHibFo9EIZSj0NrjISclNLyMCEN/Pgf0
zu935p3VpAwAZ+q80faO8pmRn/v7/KoA4YW96L/c3mE2VX3NM5bPl4OLwy13UDzh
o9MJxMreEzqQCy5oOqoRLucFpZo+oMcsSzwW4IcCgYEA7K2xxTpmezHtv8t9U9Ij
c8zobWKCAw7hTtyR2AhRr/CDISvOVCM9A3hHVvK5ePLCwGB+PcyFjtDHiSnSgdIh
A80qCCedqS5dYxlRoSzIx6IYfviVKd/TJoSWu4k47iQgkFVFOE0c81JRTjScAYHD
7oncz821/3Uvz3xGZYCJWHUCgYAne/6mDxYz9mPKKYVtHOV/oFxpk8UOQowmiaPq
3h7S4XDWv9AyFXEpvEEs6Lb8A/Ussm20HB7NOFe1tB4TFhcEugqanHSD2x4rCAOX
qY55x5L6aX6P9+qG4RTFzCJ01B8bbdTI4IQKoO6/IPBjkJTkWm9IeprZipKORaBS
2uzjWwKBgDHDnu0QLrx1g7qQDLxhXJd1Ku2488N533+2EFEVcbVq2rtYYtBH1G8x
uzogsvzyN9srmDmllib46lNiW/gH2VTJsMbvWo2hJhEmXZ60d8NmINz6PBA1hs5H
TjaV1Tqj40n/88YRmejzQptphXA+I+yNoruj2Z867zJZHcryI/qz
-----END RSA PRIVATE KEY-----

(4-1)建立憑證要求檔server.csr

sudo openssl req -new -key server.key -out server.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:TW
State or Province Name (full name) []:Kinmen
Locality Name (eg, city) [Default City]:kinmen
Organization Name (eg, company) [Default Company Ltd]:kmvs
Organizational Unit Name (eg, section) []:teach
Common Name (eg, your name or your server's hostname) []:163.25.20.92
Email Address []:tr@gmail.com

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:abc123abc123
An optional company name []:treehrt

(4-2)# stat server.csr
  File: ‘server.csr’
  Size: 1115            Blocks: 8          IO Block: 4096   普通檔案
Device: fd01h/64769d    Inode: 2760361     Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2019-05-27 23:57:46.717889608 +0800
Modify: 2019-12-11 17:40:15.761976020 +0800
Change: 2019-12-11 17:40:15.761976020 +0800
 Birth: -

(4-3)# cat server.csr
-----BEGIN CERTIFICATE REQUEST-----
MIIC/TCCAeUCAQAwgYIxCzAJBgNVBAYTAlRXMQ8wDQYDVQQIDAZLaW5tZW4xDzAN
BgNVBAcMBmtpbm1lbjENMAsGA1UECgwEa212czEOMAwGA1UECwwFdGVhY2gxFTAT
BgNVBAMMDDE2My4yNS4yMC45MjEbMBkGCSqGSIb3DQEJARYMdHJAZ21haWwuY29t
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAzvU1dEVpXBiQoo6Blcgg
pHXia1awV44y3whXVlt27LENRnUV9KDb0Uv20A7mNWN9IONFsojbgA9cquyL066Z
pO1aEk6jdStDGzgDCNLXX4M6abiWD8vITE1q+3oJOZTC+78gSFGolzzGYYmRm16o
XOJ/R7OJEBRg82cIgDj61XRd66YsNnr7ekMfMpbXBU9gfOS8JgNT7akK8UsedzLj
oLO7Fl2zg6Dev17LBUanlhdQgJQ/0ufkTb/FaG8m6Drp4EwfGvawD49oL2ciRTG9
r7fFHlv8bl5LJpfV2hBZ5nPeeTQtDOOTObiGFDg3cpvSaDQuDBhb5+1FYT5g5uAJ
NQIDAQABoDUwFgYJKoZIhvcNAQkCMQkMB3RyZWVocnQwGwYJKoZIhvcNAQkHMQ4M
DGFiYzEyM2FiYzEyMzANBgkqhkiG9w0BAQUFAAOCAQEAAS+F1ZmRM43oycUxRPSs
Ghx+k7TsdLVspVu7zUKuG/BsmJ5PoPGvCHuAJmeYnhgMW1JcP+6KrkyFtTgw0Gk7
mJuK4FFKQjdngHkvc2F9M2qfarZ379s5ti/o8eiXgFV2chfsFEuJ2wgUXTgxiDed
MAZha3gVLMVufdKijlQSDCLO6WHgchzUza4dKICPz6AJQGOHcjqkT3Pr+cYzt+37
uoUvenedfgFrxUBT/w0YGBMkryHILCWmjgcV4XKzt6BdeivxOafIIEmvQqJbTRkt
d6hFXDFStsGrp7mukulNdxLNjwYV1v6F33hVAkVP1vmBTrdJKyfP5TkKMn2H3rFK
/w==
-----END CERTIFICATE REQUEST-----

(5-1)$ vi ssl.conf

 

[req]
prompt = no
default_md = sha256
default_bits = 2048
distinguished_name = dn
x509_extensions = v3_req

[dn]
C = TW
ST = Taiwan
L = Taipei
O = Tree Inc.
OU = IT Department
emailAddress = treehrt@insecta.idv.tw
CN = localhost

[v3_req]
subjectAltName = @alt_names

[alt_names]
DNS.1 = *.localhost
DNS.2 = localhost
DNS.3 = 192.168.2.100

(5-2)建立出 私密金鑰 (server.key) 與 憑證檔案 (server.crt)

sudo openssl req -x509 -new -nodes -sha256 -utf8 -days 3650 -newkey rsa:2048 -keyout server.key -out server.crt -config ssl.conf
[sudo] password for treehrt:
Generating a 2048 bit RSA private key
.........+++
................+++
writing new private key to 'server.key'
-----

(5-3) 顯示自簽憑證檔內容

$ cat server.crt
-----BEGIN CERTIFICATE-----
MIID5TCCAs2gAwIBAgIJAP+j2xBoRWsCMA0GCSqGSIb3DQEBCwUAMIGWMQswCQYD
VQQGEwJUVzEPMA0GA1UECAwGVGFpd2FuMQ8wDQYDVQQHDAZUYWlwZWkxEjAQBgNV

:

VaZ/BRqgO/SvwN8zBn4RFqzIHje9LB9xWP3AX+I3kHyX875Y4waw9GI=
-----END CERTIFICATE-----

 

 

(5-4)匯入自簽憑證到「受信任的根憑證授權單位」

sudo cp  server.crt  /usr/local/share/ca-certificates/server.crt

sudo update-ca-certificates

Updating certificates in /etc/ssl/certs...
0 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...

done.
done.

(5-5)$ sudo systemctl restart apache2

以上沒成功。

:

:

(5-6)設定browser,以firefox為例:

在about:preferences#privacy/偏好設定/憑證/檢視憑證/伺服器/新增例外網站/

輸入位置:https://localhost/取得憑證/無可用資訊?????。

仍沒有成功。

:

(6)終於成功如下截圖

alt

 

 

(7-1)pietty要和伺服器連線的信任rsa2 key fingerprint(ssh-rsa 2048):

alt

(7-2)SSL參考

20191210用DEV-C++設計單向鏈結串列(LinkList)
2019/12/10,15:41

(1)code:LinkList.cpp

 #include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct iRec
{
  char ln[80];
  iRec *next;
} MR;
MR root;
MR *p;
int main(){
  FILE *infile;
  infile = fopen("ansiBoshiamy.cin", "r");
  int c=0;
  while (!feof(infile)) {
      char lns[80];
      fgets (lns , 80 , infile);
      lns[strlen(lns ) - 1] = 0;
    
      p=(MR *)malloc(sizeof(iRec));
      strcpy(p->ln,lns);
      p->next=root.next;
      root.next=p;
      c=c+1;
      if( c >50) break;
   }
  fclose(infile);
  printf("自檔案讀取 %d 行文字\n",c);
 
  MR *cur;
  cur=root.next;
  while(cur!=NULL){
      printf("%d : %s\n",c,cur->ln);
      c=c-1;
      cur=cur->next;
  }
 
  return 0;
}

 

(2)執行結果

自檔案讀取 51 行文字
51 : ,dl 陸
50 : ,dk 玖
49 : ,dj 拾
48 : ,dg 仟
47 : ,df 肆
46 : ,de 壹
45 : ,dc 柒
44 : ,db 捌
43 : %chardef begin
42 : %keyname end
41 : z Z
40 : y Y
39 : x X
38 : w W
37 : v V
36 : u U
35 : t T
34 : s S
33 : r R
32 : q Q
31 : p P
30 : o O
29 : n N
28 : m M
27 : l L
26 : k K
25 : j J
24 : i I
23 : h H
22 : g G
21 : f F
20 : e E
19 : d D
18 : c C
17 : b B
16 : a A
15 : ] 」
14 : [ 「
13 : ; ;
12 : . 。
11 : , ,
10 : ' 、
9 : %keyname begin
8 : %selkey 1234567890
7 : %cname 無蝦米輸入法
6 : %ename Boshiamy
5 : %gen_inp
4 : # 更新日期:2016.07.31
3 : # 支援字數:Unicode 1.0 CJK 字元集全部 20,902 個漢字
2 : # 碼表來源:蝦米族樂園
1 : # 碼表名稱:無蝦米輸入法


20191207用DevC++設計讀取文字檔(輸入法表格)到字串陣列的嘸蝦米查碼程式
2019/12/07,12:16

(1) 下載Dev-Cpp 5.11 TDM-GCC 4.9.2 Setup.exe(約49MB)並安裝之

(2) 下載輸入法表格檔 :ansiBoshiamy.cin 下載 (354 KB)

(2)在DEV-C++程式編寫整合環境中按CTRL+N編寫如下程式碼並存為 d:\readb2array.cpp

#include <stdio.h>
#include <string.h>
char boshcode[60000][80];
int main(){
  FILE *infile;
  infile = fopen("ansiBoshiamy.cin", "r");
  int c=0;
  while (!feof(infile)) {
      char lns[80];
      fgets (lns , 80 , infile);
      lns[strlen(lns ) - 1] = 0;
      strcpy(boshcode[c],lns);
    c=c+1;
   }
  fclose(infile);

  printf("自檔案讀取 %d 行文字\n",c);
 
  int sboshcode=c;
  char inputs[80];
  while(1){
      printf("請輸入要查的字串(CTRL+C 結束程式):");
    scanf("%s",inputs);
      c=0;
      int fc=0;
      char *p;
      while (c<sboshcode) {
          p=strstr(boshcode[c],inputs);
        if(p!=NULL) {
          fc=fc+1;
          printf("在第 %d 列字串「%s」的第%d個位置,找到第%d次「%s」。 \n",c, boshcode[c],p-boshcode[c],fc,inputs);
          }
        c=c+1;
       }
  }
  return 0;
}

 

(3)在DEV-C++程式碼編輯器中按F11鍵編譯並執行d:\readb2array.cpp,會於新視窗上輸出結果如下: 

自檔案讀取 51125 行文字
請輸入要查的字串(CTRL+C 結束程式):鑫
在第 10999 列字串「aaa 鑫」的第4個位置,找到第1次「鑫」。
請輸入要查的字串(CTRL+C 結束程式):滋
在第 8641 列字串「wbew 滋」的第5個位置,找到第1次「滋」。
在第 8927 列字串「wlww 滋」的第5個位置,找到第2次「滋」。
在第 9118 列字串「wrww 滋」的第5個位置,找到第3次「滋」。
在第 9211 列字串「ww 滋」的第3個位置,找到第4次「滋」。
請輸入要查的字串(CTRL+C 結束程式):淼
在第 21385 列字串「www 淼」的第4個位置,找到第1次「淼」。
請輸入要查的字串(CTRL+C 結束程式):aaa
在第 10999 列字串「aaa 鑫」的第0個位置,找到第1次「aaa」。
在第 11000 列字串「aaa 龘」的第0個位置,找到第2次「aaa」。
在第 11001 列字串「aaa 鑆」的第0個位置,找到第3次「aaa」。
在第 22368 列字串「aaar 鑆」的第0個位置,找到第4次「aaa」。
在第 22369 列字串「aaav 龘」的第0個位置,找到第5次「aaa」。
請輸入要查的字串(CTRL+C 結束程式):ccc
在第 835 列字串「ccc 蟲」的第0個位置,找到第1次「ccc」。
在第 836 列字串「ccc 轟」的第0個位置,找到第2次「ccc」。
在第 837 列字串「cccf 蠱」的第0個位置,找到第3次「ccc」。
在第 10122 列字串「cccv 轟」的第0個位置,找到第4次「ccc」。
在第 13101 列字串「fccc 爞」的第1個位置,找到第5次「ccc」。
在第 27057 列字串「ccc ?」的第0個位置,找到第6次「ccc」。
在第 27058 列字串「ccc ?」的第0個位置,找到第7次「ccc」。
在第 27059 列字串「cccf ?」的第0個位置,找到第8次「ccc」。
在第 43246 列字串「ccc ?」的第0個位置,找到第9次「ccc」。
在第 43247 列字串「ccc ?」的第0個位置,找到第10次「ccc」。
在第 43248 列字串「ccc ?」的第0個位置,找到第11次「ccc」。
在第 43249 列字串「cccb ?」的第0個位置,找到第12次「ccc」。
在第 43250 列字串「ccch ?」的第0個位置,找到第13次「ccc」。
在第 50038 列字串「wccc ?」的第1個位置,找到第14次「ccc」。
請輸入要查的字串(CTRL+C 結束程式):

(4) REF:

20191204在WINDOWS裝檔案傳輸伺服器ftpd (FileZilla Server)
2019/12/04,08:47

(1) 下載FileZilla Server(FileZilla_Server-0_9_60_2.exe 約2MB) :

下載點:https://filezilla-project.org/download.php?type=server

 

(2)執行FileZilla_Server-0_9_60_2.exe安裝程式:

alt

(2-1)接受預設安裝資料夾:C:\Program Files (x86)\FileZilla Server

alt

(2-2)接受預設啟動服務方式及管理埠號並於安裝完即刻啟動FileZilla Server

alt

(2-3)接受用戶登入即啟動伺服程式

alt

(2-4)安裝拷備中…    (2-5)完成。

alt

(2-6)接受預設的輸入 (HOST:localhost ,PORT:14147,PASSWORD:)來登入管理者介面

alt

(2-7)管理介面登入成功但有警告訊息:FTP over TLS 沒有啟用,用戶無法安全登入。

警告訊息:You appear to be behind a NAT router. Please configure the passive mode settings and forward a range of ports in your router. 

 

傳輸層安全性協定(英語:Transport Layer Security,縮寫:TLS)及其前身安全通訊協定(英語:Secure Sockets Layer,縮寫:SSL)是一種安全協定,目的是為網際網路通訊提供安全及資料完整性保障。


alt

(3)點選用戶鈕新增並設定用戶名稱 bear及可任意讀寫的家目錄D:\FARMER

alt

(4-1)用win7命令列登入本機的伺服程式失敗。

C:\Users\user>ftp localhost
已連線到 TEACHER。
220-FileZilla Server 0.9.60 beta
220-written by Tim Kosse (tim.kosse@filezilla-project.org)
220 Please visit https://filezilla-project.org/
使用者 (TEACHER:(none)): bear
530 TLS required
登入失敗。
ftp> quit
221 Goodbye

(4-1b)伺服端的對應訊息:

(000001)2019/12/4 下午 15:46:35 - (not logged in) (::1)> Connected on port 21, sending welcome message...
(000001)2019/12/4 下午 15:46:35 - (not logged in) (::1)> 220-FileZilla Server 0.9.60 beta
(000001)2019/12/4 下午 15:46:35 - (not logged in) (::1)> 220-written by Tim Kosse (tim.kosse@filezilla-project.org)
(000001)2019/12/4 下午 15:46:35 - (not logged in) (::1)> 220 Please visit https://filezilla-project.org/
(000001)2019/12/4 下午 15:46:39 - (not logged in) (::1)> USER bear
(000001)2019/12/4 下午 15:46:39 - (not logged in) (::1)> 530 TLS required
(000001)2019/12/4 下午 15:46:50 - (not logged in) (::1)> QUIT
(000001)2019/12/4 下午 15:46:50 - (not logged in) (::1)> 221 Goodbye
(000001)2019/12/4 下午 15:46:50 - (not logged in) (::1)> disconnected.

 

(4-2a)不要勾force TLS for user login

alt

(4-2b)用win7命令列登入本機的伺服程式成功。
C:\Users\user>ftp localhost
已連線到 TEACHER。
220-FileZilla Server 0.9.60 beta
220-written by Tim Kosse (tim.kosse@filezilla-project.org)
220 Please visit https://filezilla-project.org/
使用者 (TEACHER:(none)): bear
331 Password required for bear
密碼:
230 Logged on
ftp> quit
221 Goodbye

(4-2c)伺服端的對應訊息:

(000002)2019/12/4 下午 15:56:26 - (not logged in) (::1)> Connected on port 21, sending welcome message...
(000002)2019/12/4 下午 15:56:26 - (not logged in) (::1)> 220-FileZilla Server 0.9.60 beta
(000002)2019/12/4 下午 15:56:26 - (not logged in) (::1)> 220-written by Tim Kosse (tim.kosse@filezilla-project.org)
(000002)2019/12/4 下午 15:56:26 - (not logged in) (::1)> 220 Please visit https://filezilla-project.org/
(000002)2019/12/4 下午 15:56:33 - (not logged in) (::1)> USER bear
(000002)2019/12/4 下午 15:56:33 - (not logged in) (::1)> 331 Password required for bear
(000002)2019/12/4 下午 15:56:38 - (not logged in) (::1)> PASS *********
(000002)2019/12/4 下午 15:56:38 - bear (::1)> 230 Logged on
(000002)2019/12/4 下午 15:56:56 - bear (::1)> QUIT
(000002)2019/12/4 下午 15:56:56 - bear (::1)> 221 Goodbye
(000002)2019/12/4 下午 15:56:56 - bear (::1)> disconnected.

(5)傳檔成功:

D:\>ftp localhost
已連線到 DESKTOP-6GAEL2F。
220-FileZilla Server 0.9.60 beta
220-written by Tim Kosse (tim.kosse@filezilla-project.org)
220 Please visit https://filezilla-project.org/
202 UTF8 mode is always enabled. No need to send this command.
使用者 (DESKTOP-6GAEL2F:(none)): bear
331 Password required for bear
密碼:
230 Logged on
ftp> mput *.cpp
mput array2.cpp? y
200 Port command successful
150 Opening data channel for file upload to server of "/array2.cpp"
226 Successfully transferred "/array2.cpp"
ftp: 365 位元組已傳送,時間: 0.00秒數 365000.00KB/sec。
ftp> ls *.cpp
200 Port command successful
150 Opening data channel for directory listing of "/*.cpp"
array2.cpp
226 Successfully transferred "/*.cpp"
ftp: 15 位元組已接收,時間: 0.00秒數 15000.00KB/sec。
ftp> quit
221 Goodbye

D:\>

 

(6)下載用戶端程式:FileZilla Client for Windows(下載點FileZilla_3.46.0_win64_sponsored-setup.EXE約8.6MB )並安裝之

(7)啟動FileZilla Client來登入本機的FileZilla server成功

alt

(8)參考如下文章來建立TLS安全連線(Ref 1:FileZilla Server建立SSL與TLS安全連線)

(8-1)於伺服器管理介面/設定選項/FTP OVER TLS SETTINGS/勾選Enable FTP over TLS support(FTPS)/按
Generate new certificate鈕/

alt

(8-2)Key size選1280/並依序輸入Country code,State,city,organization,unit,email,server addr/

並給定keyfile位置/按最下端的Generate certificate鈕

alt

(8-3)選OK

alt

(9-1)首次用filezilla-client連線會有如下未知憑證確認對話盒,勾選確認即可。

alt

(9-2)D:\ITpython>type certificate.crt
-----BEGIN RSA PRIVATE KEY-----
MIIC7AIBAAKBoQCvvY+DC+UXw9rCQ2Yjw+l/A1OkIU0gd00dGhsbv5V+oVtq+RAE
sYuNCQACEm4RH9qHHBa3ay+YkjX7dKVPALYiH/md0vjhYeOWmDSpWKTrkimBYSxI
MyelXwXlYKD90Y+tFT9u8jPqv91kgjzLrPBE4MujTeYdZS14aZ7P2+CtJyMNZplZ
s9vBokQj1bRbhN+DcXTPUf2c/LmM3B5JOShrAgMBAAECgaA1uNrgEojLxQFglT3p
/P+p5hhxegSbwhx+ovZaeyx181mAz/ZHmQax7GhmOcAP2A7zcnC3TTrVhwyde8D0
76C9ucySpGWUcFokNQ8UHZb8s8Xj03OeOBQyKVJgb0SG1aE/r3qjcAK/cFhaqjuT
GQpLkXiXYO0usTyEulIT0CKWSk018qzaqMeG8/r9SdvtUrxi1kMnpiC6ZTAdkYGQ
3GQRAlEA2nJJkD9dAy5SqjuxwAqC4Ez3GPu8N1uu/fjaYyieFFphqrVWx5fiJm7U
WAYUJJ3Ufp1Wb84Tn6gyBaXLKCljTs3Fm6CgUkW5LNA5uI5RRo0CUQDN885lp4Vg
4K3/ExU4bd/ldj2OGICb/NfIM8gS6vDWfYA5u+6Gae5S8Nv0pdHF8d7NBLOWESnh
Rlj9BprF9s5ORKBZGBXsP3I8LEUtmmyI1wJRAIbKVJgccRFAaSO/t9uO4Nj0xNf2
pVnnSeBOyLq82mYmqvNB9+0qzBH4+y/heFZryS3jee19VGCE0XDor6X1e+CpWhDA
mYyKl0uOpL87me0VAlEAiApV+bvwVI/VHzphuAaL8Kxr+KKiwWcAuhPKQwTB1UzN
GFXVNyBd9pd3E2E88b3U6CQE5EmuGko3mdt0/PMMT5LxQCiywn0eXjT39SmeK70C
T0VjQJ+utPRngkcrH/Tke6OnkMTpkHxVeuHq8ZuG/vvD6mr7nQ6i9LfBje2MBNaH
2q4i39d9Z6qr47Y9HlBiAYZkOJCuFidVNbfZjiGzvlw=
-----END RSA PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIICxzCCAhCgAwIBAgIECHDLOjANBgkqhkiG9w0BAQsFADCBhzEVMBMGA1UEAwwM
MTYzLjI1LjIwLjkwMQswCQYDVQQGEwJUVzEPMA0GA1UECAwGVGFpd2FuMQ8wDQYD
VQQHDAZraW5tZW4xDTALBgNVBAoMBGttdnMxDjAMBgNVBAsMBXRlYWNoMSAwHgYJ
KoZIhvcNAQkBFhF0cmVlaHJ0QGdtYWlsLmNvbTAeFw0xOTEyMDUwMzA3MjBaFw0y
MDEyMDQwMzA3MjBaMIGHMRUwEwYDVQQDDAwxNjMuMjUuMjAuOTAxCzAJBgNVBAYT
AlRXMQ8wDQYDVQQIDAZUYWl3YW4xDzANBgNVBAcMBmtpbm1lbjENMAsGA1UECgwE
a212czEOMAwGA1UECwwFdGVhY2gxIDAeBgkqhkiG9w0BCQEWEXRyZWVocnRAZ21h
aWwuY29tMIG/MA0GCSqGSIb3DQEBAQUAA4GtADCBqQKBoQCvvY+DC+UXw9rCQ2Yj
w+l/A1OkIU0gd00dGhsbv5V+oVtq+RAEsYuNCQACEm4RH9qHHBa3ay+YkjX7dKVP
ALYiH/md0vjhYeOWmDSpWKTrkimBYSxIMyelXwXlYKD90Y+tFT9u8jPqv91kgjzL
rPBE4MujTeYdZS14aZ7P2+CtJyMNZplZs9vBokQj1bRbhN+DcXTPUf2c/LmM3B5J
OShrAgMBAAEwDQYJKoZIhvcNAQELBQADgaEAfkoqM4n7daOgnM9O/Fqo+as8e/jo
6fScn5p5iZaDszo4BIUyrw5Z+uvTfJwuZQTCLtIQ9yDxI6HTO5h+RdxUKf4+ucqe
sXKU+HHju1yQzheRBO/sKPLrLbeEOL3Q0zo0retJXeUsQsF2Qtzh+/ob0X7D1ZhC
mIR4drh7gH6HYA3pBfuOYCwIzfUdo7sKXBRl+jmHM4PalGh7ltv9VwCEgw==
-----END CERTIFICATE-----

(9-3) RSA 是一種非對稱的加密演算法,也是第一個比較完善的公開密鑰算法,它既能用於加密,也能用於數字簽名。

非對稱是因為它利用了兩把不同的鑰匙,一把叫公開金鑰,另一把叫私密金鑰,詳如本連結。


 (10)SSL參考

20191201安裝新酷音及蝦米輸入法並在各式軟體使用新裝的中文輸入法
2019/12/01,13:07

(1a)參考如下文章安裝新酷音及蝦米輸入法:

20191119在WINDOWS安裝PIME新酷音輸入程式並使用蝦米輸入法

(1b)PIME新酷音輸入程式 下載  PIME-1.1.0-setup.exe  (約24MB)

(1c) liu-uni.tab  下載 (136K)

 

(2-1)請執行ms-office word並輸入如下內容並存檔為d:\a1.docx

alt

 

(2-2)請執行ms-office excel並輸入如下內容並存檔為d:\a2.xlsx

alt

 

(2-3)請執行ms-office powerpoint並輸入如下內容並存檔為d:\a3.pptx

alt

(2-4)用PhotoImpact 輸入如下內容並存檔為d:\a4.ufo
alt
(2-5)用notepad記事本 輸入如下內容並存檔為d:\a5.htm(存檔類型要選所有檔案)並用firefox打開a5.htm
alt
(2-6)用LibreOffice Writer 輸入如下內容並存檔為d:\a6.odt(參考20191120安裝並使用LibreOfficeWriter.odt 下載 (200 KB))
alt

(2-7)用LibreOffice CALC 輸入如下內容並存檔為d:\a7.ods(參考20191120安裝並使用LibreOfficeCALC.ods下載 (118 KB))

alt

(2-8)用LibreOffice Impress 輸入如下內容並存檔為d:\a8.odp

alt

(2-9)用LibreOffice Draw 輸入如下內容並存檔為d:\a9.odg

alt

(2-10)用gimp輸入如下文字並存檔為d:\a10.xcf(沒gimp請下載GIMP並安裝之)。

alt

 

(3)鍵盤指法參考:http://www.ymjhs.tyc.edu.tw/~asie/source/junior1/keyboard.htm

 

(4)拆碼練習的CAI程式下載點: http://boshiamy.com/dl/LiuEasyLearn.exe

 

20191216在jsbin.com網站編寫JavaScript程式將結果抓入writer再轉存為pdf再上傳至「金門農工學生學習歷程系統」成IT學習檔案
2019/12/01,10:17

 

 

 

(1)連上 https://jsbin.com/

(2)將AUTO-RUN JS的勾選取消

(3-1)點選JavaScript鈕並編寫如下程式:

var n=10;

var s=1;

for (i=1;i<=n;i++) { s=s*i; }

alert("n!=" + s );

(3-2)按RUN WITH JS鈕執行結果如下:

alt

(4-1)將(3-1)的JS程式改寫如下:

var n=100;

var s=0;

for (i=1;i<=n;i=i+2) { s=s+i; }

alert("1+3+5+...+n=" + s );

(4-2)按RUN WITH JS鈕執行結果如下:

1+3+5+...+n=2500

(5)請把(3)及(4)所寫的程式碼及執行結果畫面用fn+ALT+PRTSCR鍵抓入LibreOffice 的writer中並存為「20191216你名你號js程式.odt」並匯出產生PDF檔(檔名為:20191216你名你號js程式.pdf),請參考如下:

20191217汽車一吳小花48號 JS程式設計.odt下載 (205 KB)

20191217汽車一吳小花48號 JS程式設計.pdf下載 (161 KB)

 

(6)請把(5)所產生的PDF檔上傳至「金門農工學生學習歷程系統」成為你的IT學習檔案。

 

(7) NOTEPAD編寫 js1.HTM 如下並用FIREFOX開啟之並抓入如下執行結果及程式碼來更新你的ODT及pdf及學習檔:

<script>

var n=100;

var s=0;

for (i=1;i<=n;i=i+2) { s=s+i; }

alert("1+3+5+...+n=" + s );

</script>

 

 

 
Accessible and Valid XHTML 1.0 Strict and CSS Powered by LifeType