網誌

【程式設計-C#】巴斯卡三角形

巴斯卡三角形的演算法:

步驟1:在第1列中間行位置放入1

步驟2:從第2列開始,每個元素的值為其左上角的值與右上角的值相加,若元素在邊界,左或右邊已到邊緣,沒有左上或右上的元素可供相加,此時,我們可以假想這些不存在的元素為0,在左邊界的話,則元素的值等於0+右上角的值,在右邊界的話,則元素的值等於左上角的值+0。

程式的寫法:

陣列的大小為n x (2n-1)

    const int nr = 7; //列的數量
    const int nc = 2 * nr - 1; //行的數量
    int[,] M = new int[nr, nc]; //建立一個 n x 2n-1大小的二維陣列
    int row = 0, col = nc / 2; //計算第一列中間位置
    M[row, col] = 1; //將1放入第1列中間位置   
    for (row = 1; row < nr; row++)
    {
        for (col = 0; col < nc; col++)
        {
            if (col == 0) M[row, col] = M[row - 1, col + 1]; //左邊界
            else if (col == nc - 1) M[row, col] = M[row - 1, col - 1]; //右邊界
            else M[row, col] = M[row - 1, col - 1] + M[row - 1, col + 1];
        }
    }
    for (row = 0; row < nr; row++)
    {
        for (col = 0; col < nc; col++)
        {
            if (M[row, col] != 0) Console.Write("{0, 4}", M[row, col]);
            else Console.Write("    "); //如果是0的話,就只輸出4個空白,不要輸出0
        }
        Console.WriteLine();
    }

}


【主機維護筆記】郵件系統異常 2018/08/21

狀況:發送郵件時發生550 unrouteable address異常

主機環境:Linux, CPanel, WHA

此次會發生這樣的問題,可能的原因:

1.前日圖資中心的網路防火牆讓學校內部的DNS封包出不了外面,我做了一些DNS處理,也因為不太熟悉DNS運作,把域名刪除,而導致後續的問題

2.也可能因為在解決問題的過程中,順道做了系統的升級…

解法:

1.DNS 及 MX 記錄檢查

檢查主機域名MX記錄

dig domain MX

2.Exim 設定

3.使用 Mail Troubleshooter檢查

4.Email -> Repair Mailbox Permissions (此次關鍵解決方式)

5.Web mail中的追踨傳送中可以觀察到正常/失敗的訊息原因

2019年 日本 長野、新潟

文章D1D2D3D4D5D6D7D8D0注意事項
東京–熱海[JR passD1]

【早餐】機上早餐

【中餐】

【晚餐】

【宿】熱海大江戶,預訂號:A0011989316 1/22

【交通】

台北0850 ->東京 1255,長榮 br-0198 第2航廈

D2

(JR Pass D2)-> 熱海–新潟

【早餐】

【中餐】

【晚餐】

【宿】

新潟公園飯店 1/23

【交通】

新潟市區一日遊(新潟JR站出來徒步15分鐘內可抵達的景點)
新潟市漫畫動畫情報館、Befco BAKAUKE展望室(朱鷺展覽館)(免費入場)丶萬代橋

【早餐】

【中餐】

【晚餐】

【宿】

新潟公園飯店 1/24

【交通】

【行程】[JR pass D3]

新潟  -> 越後湯澤,寄放行李

前往->GALA湯澤滑雪場

回越後湯澤逛,取行李

到長野

【中餐】

【晚餐】

【宿】

長野精選酒店 1/25

【交通】

       

 

長野–地獄谷野猿公苑

【早餐】

【中餐】

【晚餐】

【宿】

【交通】

長野精選酒店 1/26

長野。地獄谷野猿公苑。交通攻略

長野–松本–長野–東京[JR pass D4]

(松本JR站出來徒步15分鐘內可到達的景點)
松本城、深志神社丶松本市美術館、繩手通和中町通⋯等,皆在同一區域內

【早餐】

【早餐】

【中餐】

【晚餐】

【宿】

上野NEW伊豆飯店 (Tokyo Ueno New Izu Hotel)  1/27

【交通】

東京–宇都宮–日光–東京 [JR pass D5]

【早餐】

【中餐】

【晚餐】

【宿】

上野NEW伊豆飯店 (Tokyo Ueno New Izu Hotel)  1/28

【交通】

東京市區

【早餐】

【中餐】

【晚餐】

【宿】

上野NEW伊豆飯店 (Tokyo Ueno New Izu Hotel)  1/29

【交通】

東京市區

【早餐】

【中餐】

【晚餐】

【交通】

Skyline 成田快鐵 上野 -> 成田

成田 1400  -> 台北 1705 長榮 br-0197 第一航站

  • WIFI 無線分享器

【要攜帶的物品】

  • 所有預訂資料(房間、機票、溫泉)

  • 護照

  • 現金、信用卡(樂天、華南等)

  • JR東日本鐵路周遊券

  • 相機、Surface Pro、手機、平板、行動電源(所需之傳輸線及充電器)、電子秤

  • 衣物、太陽眼鏡

  • 藥品

  • 優惠卷

【SQL Server維護】在SQL Server內部建立與使用網路磁碟機

問題:在建立維護/備份計畫時,無法看到在檔案總管裏建立的網路磁碟機,以致於無法將備份存於網路磁碟上。

作法:(在SQL Server)

  1. 啟動xp_cmdshell (已啟動就免)
  2. 新增查詢執行 EXEC xp_cmdshell ‘net use Z: \\網路主機名稱\分享目錄  網路磁機帳戶密碼 /user:網路磁機帳戶’

 

25 Tips For Successful Online Course Facilitation (筆記)

Teaching in the online environment is quite different from teaching in the classroom and as such has a number of unique characteristics and limitations. The following guide (based on my experience) is designed to help you before, during and after an online teaching event.

 

Nowadays online course facilitation is extremely important to teachers, educators, and professors. At this post you will find a total of 25 Tips For Successful Online Course Facilitation separated in the following 4 sections:

  1. Before The Online Course Starts
  2. At The Beginning Of The Online Course
  3. During The Online Course
  4. After The Online Course Finishes

Do not hesitate to share with me your Tips for Successful Online Course Facilitation

How To Succeed As Online Course Facilitator?

  1. Before The Online Course Starts
    1. Familiarize yourself with the course delivery structure and the site/platform
    2. Develop an online delivery plan/schedule
    3. Check that all resources, activities and links work (i.e. they open in a new window), are current and relevant to the learning experience
    4. Update your contact information
    5. Contact learners, welcome them to the course and provide clear log-in instructions
  2. At The Beginning Of The Online Course
    1. Check that learners can log-in and provide support and troubleshoot as needed
    2. Facilitate introductions and community-building activities at beginning of the course e.g. have everyone introduce themselves in a café style forum
    3. Set clear expectations
    4. Confirm contact/turnaround times
    5. Emphasize the importance of interactions and that online communication between participants is key to building community and contributes to the course outcomes, profiles, forums, chats etc.
    6. Encourage sharing of experiences
  3. During The Online Course
    1. Be a positive online role model
    2. Send some sort of meaningful weekly communication, but, don’t overwhelm learners
    3. Ideally respond to learner’s communication within a reasonable time frame to resolve any difficulties/queries to ensure their learning is not interrupted e.g.  phone calls, email, messaging, and forum posts
    4. Provide guidance and direction to learners when needed
    5. Encourage online communication between participants
    6. Relate to learner experiences and ask thought provoking questions
    7. Promote learner independence/responsibility and learner collaboration
    8. Provide technical and other learner support as required
    9. Online learning can be isolated and lonely so provide positive encouragement and feedback
    10. Monitor learner progress, participation in activities and completion of assessment tasks and follow up as required
    11. Provide informative developmental feedback
  4. After The Online Course Finishes
    1. Wrap-up the course, thank learners for their participation
    2. Review learner feedback and make recommendations for improvement
    3. Engage in your own self-reflection for improvement and consolidation

【程式設計】【C# – 變數的視野/scope】

在C# ,變數的視野/Scope是說變數的可見範圍、影響範圍…,共有三種scope:

  1. 類別/class
  2. 方法/method
  3. for, while and do while loop, if and switch敘述

類別視野範例:

class Test
{  // 類別視野的起始
 
  // 在類別中,宣告並初始化一個變數
    string colorName = "red";
 
  // 宣告一個方法 
    public void GetValue()            
    {
      /* 當一個變數是在類別中宣告的話,可以在這個類別中的任何地方被存取。*/
        Console.WriteLine(colorName); 
    }   // 方法的結束
 
} //類別視野結束

方法視野範例:

class Program
{      // 類別視野的起始
       public static void ShowVariable1()
       {  // 第一個方法視野的起始
 
           //宣告整數變數int,並給予初值100
           int number = 100;
 
           // 印出變數
           Console.WriteLine(number);
 
       }  // ShowVariable1 ()方法視野的結束
 
       public static void ShowVariable2()     // 第二個方法視野的起始
       {
         // 印出numver變數,但是,會產生編譯錯誤,因為,在這個方法中,無法存取另一個方法所宣告的變數number
           Console.WriteLine(number);                    
 
       } // ShowVariable2 ()方法視野的結束
   }

for, while and do while loop, if and switch statements 

class Program
    {  // 類別視野的起始
        static void Main(string[] args)         // main方法的起始
        {
            for (int i = 0; i <= 10; i++)
            {  // loop視野的起始
 
                //存取在for區塊中所宣告的變數i
                Console.WriteLine(i);
            }   // End for loop scope
 
            //在for區塊外面,存取for內部的變數i,這樣會造成編譯錯誤!
            Console.WriteLine(i);
            Console.ReadKey();
        }   // main方法視野的結束
    }   // 類別視野的結束

下面的程式中,ShowVariable1與ShowVariable2各印出多少?

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static int number = 100;

        static void Main(string[] args)
        {
        }

        public static void ShowVariable1()
        {  // 第一個方法視野的起始

            //宣告整數變數int,並給予初值100


            // 印出變數
            int number = 200;
            Console.WriteLine(number);

        }  // ShowVariable1 ()方法視野的結束

        public static void ShowVariable2()     // 第二個方法視野的起始
        {
            // 印出numver變數,但是,會產生編譯錯誤,因為,在這個方法中,無法存取另一個方法所宣告的變數number
            Console.WriteLine(number);

        } // ShowVariable2 ()方法視野的結束
    }
}

 

延伸閱讀:

  1. Value Type and Reference Type
  2. Understanding Classes and Objects the C# Way

Google雲端硬碟與Office應用程式的整合

Google給學校師生的超級大禮:Google G-Suit for Education,無限的硬碟空間容量,弘光也有喔~~ :弘光Gmail資訊連結(趁在學時務必取得帳號,等畢業後要申請,得要花500元新台幣加入校友會,由校友會這邊提出申請)。

我們有了無限大的空間後,就要妥善運用了。

Google雲端硬碟提供了類Office的線上應用程式,但是,其格式並不與Office的格式100%相容,造成使用上一個很大的問題,我們有一個解決方案:使用「Google 雲端硬碟外掛程式 Microsoft Office 版

使用上不難,下載安裝Google 雲端硬碟外掛程式 Microsoft Office 版應用程式後,就會在Office應用程式裏插入一個外掛,提供一個Google雲端硬碟的儲存位置選項:

 

 

【程式設計】【習題講解】BMI計算

【程式設計】【習題講解】BMI計算

【程式設計】【習題講解】BMI計算

題目:建立三個陣列,用來存放六人的姓名、身高、體重資料,在表單載入時,使用迴圈列出六人的資料(含姓名、身高、體重和BMI)及平均值。BMI為身體質量指數=體重(公斤) / 身高^2(公尺^2)。

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        string[] 姓名 = new string[] {"張志成", "廖美昭", "蔡文龍", "周家旬", "蔡汶璇", "蔡汶妤"};
        int[] 身高 = new int[] { 170, 168, 165, 164, 172, 160 }; 
        int[] 體重 = new int[] { 60, 55, 72, 59, 55, 54 };

        private void Form1_Load(object sender, EventArgs e)
        {
            label1.Text = "  姓名       身高      體重      BMI" + Environment.NewLine;
            int BMI加總 = 0, 身高加總 = 0, 體重加總 = 0;
            int BMI = 0;

            for (int i = 0; i <= 5; i++)
            {
                BMI = (int)(體重[i] / (身高[i] / 100.0 * 身高[i] / 100.0));
                label1.Text += "  " + 姓名[i] + "   " + 身高[i] + "       " + 體重[i] + "         " +  BMI + Environment.NewLine;
                身高加總 += 身高[i]; 體重加總 += 體重[i]; BMI加總 += BMI;
            }

            label1.Text += "   平均" + "      " + 身高加總 / 6 + "       " + 體重加總 / 6 + "         " + BMI加總/6 + Environment.NewLine;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}