【C++ 筆記】類別(Class)的基礎概念 - part 17
【C++ 筆記】類別(Class)的基礎概念 - part 17很感謝你點進來這篇文章。 你好,我並不是什麼 C++、程式語言的專家,所以本文若有些錯誤麻煩請各位鞭大力一點,我極需各位的指正及指導!!本系列文章的性質主要以詼諧的口吻,一派輕鬆的態度自學程式語言,如果你喜歡,麻煩留言說聲文章讚讚吧! 簡介(Introduction)C++ 是一種物件導向程式設計(object-oriented programming:OOP)之語言。 通常有 OOP 的程式語言,都會具有 Class 類別,這種概念。 :::success那麼物件是什麼呢? 物件(Object):具有兩種性質,稱為屬性(Attributes)及方法(Methods)。 屬性(Attributes): 屬性是用來敘述物件特性的資料,通常是物件的狀態,也常被定義為 class 中的「變數」。 例:在名為「car」的物件中,屬性可以為 顏色、品牌、速度 等。 也可以想成是RPG角色的「能力屬性」,STR、HP、MP、DEX 等等。 方法(Methods): 簡言之,就是一個物件他的「行為」,Methods 通常是 cl...
【Windows 11 秘笈】重灌或裝新系統必做的五件事!
【Windows 11 秘笈】重灌或裝新系統必做的五件事!哈囉大家好,我是 LukeTseng,近期換新電腦裝系統時,發現忘記 win 11 有些操作令我不太習慣,且又忘記該如何操作,實在令人煩惱,所以便製作了這篇文章。 :::info註:這篇文章純粹是以我個人習慣而製作的,若有些設定你覺得不習慣可改回去::: 廢話不多說,馬上開始吧! 一、工作列置左首先工作列靠左是從 xp 時代至 win10 時代當中漸漸習慣的一件事,身為 windows 的長期使用者,當然務必首要的就是將 win 11 這惱人的工作列置中改成靠左啦! 那其實要靠左也很簡單,首先我們透過快捷鍵 windows 鍵 + i 鍵 打開設定,或是透過工作列底下的 windows 開始鍵打開也可以。 進入 [個人化] 後,可以看到有個選項叫做 [工作列]。 點進去 [工作列] 後,可看到最底下有個叫做 [工作列行為] 的選單。 點擊一下後,將 [工作列對齊] 中最右邊的下拉選單點擊一下,將 [置中] 改成 [靠左]。 二、右鍵選單要改回 w10 以前時代的右鍵選單,有兩種方法可使用: 登錄編輯程式(Reged...
【C++ 筆記】vector - part 16
【C++ 筆記】vector - part 16很感謝你點進來這篇文章。 你好,我並不是什麼 C++、程式語言的專家,所以本文若有些錯誤麻煩請各位鞭大力一點,我極需各位的指正及指導!!本系列文章的性質主要以詼諧的口吻,一派輕鬆的態度自學程式語言,如果你喜歡,麻煩留言說聲文章讚讚吧! 簡介(Introduction)在 C++ 中,vector 就像可調整大小的陣列 array。 vector 和 array 都是用於儲存相同資料型態的多元素資料結構(Data structure)。 兩者之間最大的差別,就是: :::successvector:可調整大小。array:不可調整大小,初始化時就固定了。::: 其中 vector 最重要的就是能夠自動管理記憶體使用,不必我們手動分配、釋放記憶體。 根據菜鳥教程,將 vector 列出了以下四點基本特性: 動態大小:vector 的大小可以根據需要而自動增長和縮小。 連續存儲:vector 中的元素在記憶體中是連續儲存的,這使得存取元素非常快速。 可迭代:vector 可以被迭代,所以可用迴圈(如 for 迴圈)來存取它的元素。 元素...
【C++ 筆記】結構(Struct) - part 15
【C++ 筆記】結構(Struct) - part 15很感謝你點進來這篇文章。 你好,我並不是什麼 C++、程式語言的專家,所以本文若有些錯誤麻煩請各位鞭大力一點,我極需各位的指正及指導!!本系列文章的性質主要以詼諧的口吻,一派輕鬆的態度自學程式語言,如果你喜歡,麻煩留言說聲文章讚讚吧! 簡介(Introduction)Structure(又稱 Struct),英翻中則為結構(體),是一種用來整合不同資料型態的自訂資料型態,讓我們能夠更方便地管理和使用相關的變數。 W3School 這樣定義: Structures (also called structs) are a way to group several related variables into one place. Each variable in the structure is known as a member of the structure. 結構是一種方法,將多個相關聯的變數分組到一個位置的方法。每個變數在結構裡面則被稱為結構中的成員(member)。 而在 C++ 中 struct 的格式如下: ...
【C++ 筆記】參考(Reference) - part 14
【C++ 筆記】參考(Reference) - part 14很感謝你點進來這篇文章。 你好,我並不是什麼 C++、程式語言的專家,所以本文若有些錯誤麻煩請各位鞭大力一點,我極需各位的指正及指導!!本系列文章的性質主要以詼諧的口吻,一派輕鬆的態度自學程式語言,如果你喜歡,麻煩留言說聲文章讚讚吧! 簡介(Introduction) 參考(Reference)是物件的別名(Alias),也就是替代名稱,對參考名稱存取時該有什麼行為,都參考了來源物件該有的行為,在 C++ 中,「物件」這個名詞,不單只是指類別的實例,而是指記憶體中的一塊資料。 所以參考變數是現存變數的另一個名字,將參考初始化為某個變數,就可以使用該參考名稱或變數名稱來指向變數。 參考常常與指標做比較,原因是他們的性質相同,同樣地,我們先從定義上來看: :::success指標(Pointer): 指標是一種變數,用來儲存其他變數的記憶體位址。指標可以直接對記憶體進行運算。 宣告時使用星號(*)來表示,例如:int* ptr; 表示 ptr 是一個指向整數的指標。::: :::info參考(Reference): ...
【C++ 筆記】指標(Pointer)(下) - part 13
【C++ 筆記】指標(Pointer)(下) - part 13很感謝你點進來這篇文章。 你好,我並不是什麼 C++、程式語言的專家,所以本文若有些錯誤麻煩請各位鞭大力一點,我極需各位的指正及指導!!本系列文章的性質主要以詼諧的口吻,一派輕鬆的態度自學程式語言,如果你喜歡,麻煩留言說聲文章讚讚吧! 指標與陣列(Pointer vs. Array)指標與陣列其實是有相關性的,先從定義上來看: :::success陣列的定義:陣列是一組相同型態的元素,這些元素在記憶體中是連續儲存的。陣列的名稱可以視為指向其首項元素的指標。例如,對於一個整數陣列 int arr[5];,arr 實際上是指向 arr 的指標。::: :::info指標的定義:指標是一種變數,用來儲存其他變數的位址。指標可以指向任何型態的資料,包括陣列。::: 指標和陣列在很多情況下是可以互換的。例如,一個指向陣列開頭的指標,可以透過使用指標的算術運算或陣列索引來存取陣列。請看下面的程式: 12345678910111213141516171819202122232425#include <iostream&g...
【C++ 筆記】儲存類別(Storage classes) - part 12
【C++ 筆記】儲存類別(Storage classes) - part 12很感謝你點進來這篇文章。 你好,我並不是什麼 C++、程式語言的專家,所以本文若有些錯誤麻煩請各位鞭大力一點,我極需各位的指正及指導!!本系列文章的性質主要以詼諧的口吻,一派輕鬆的態度自學程式語言,如果你喜歡,麻煩留言說聲文章讚讚吧! 簡介(Introduction) C++ Storage Classes are used to describe the characteristics of a variable/function. It determines the lifetime, visibility, default value, and storage location which helps us to trace the existence of a particular variable during the runtime of a program. C++ 儲存類別用於描述變數 / 函數的特徵。它決定了生命週期、可見性、預設值和儲存位置,這有助於我們在程式執行時,追蹤特定變數的...
【C++ 筆記】函數(Function)(下) - part 11
【C++ 筆記】函數(Function)(下) - part 11很感謝你點進來這篇文章。 你好,我並不是什麼 C++、程式語言的專家,所以本文若有些錯誤麻煩請各位鞭大力一點,我極需各位的指正及指導!!本系列文章的性質主要以詼諧的口吻,一派輕鬆的態度自學程式語言,如果你喜歡,麻煩留言說聲文章讚讚吧! 函數參數的傳遞方式 如果函數要使用參數,則必須宣告接受參數值的變數。這些變數稱為函數的形式參數。 形式參數如同局域變數(Local Variable),自從函數被呼叫開始,就被建立,函數程式碼結束後,則形式參數自動被刪除。 呼叫函數時,有三種參數的傳遞方式,如下: 傳值呼叫(call by value) 傳址呼叫(call by address / call by pointer / pass by address) 傳參(考)呼叫(call by reference) 這三種方式有什麼差異呢?請繼續看下去~ 傳值呼叫(call by value)傳值呼叫中,被傳遞的參數實際值會複製給形式參數,因此無論如何修改函數內的形式參數皆不會改變到實際參數值。 這就好像世界上總有許多同名...
【C++ 筆記】指標(Pointer)(上) - part 10
【C++ 筆記】指標(Pointer)(上) - part 10很感謝你點進來這篇文章。 你好,我並不是什麼 C++、程式語言的專家,所以本文若有些錯誤麻煩請各位鞭大力一點,我極需各位的指正及指導!!本系列文章的性質主要以詼諧的口吻,一派輕鬆的態度自學程式語言,如果你喜歡,麻煩留言說聲文章讚讚吧! 指標(Pointer)在講指標之前,我們都知道變數具有「值(value)」、「資料型態(Data Type)」、「記憶體位址(Memory Address)」三種特性。 我們要存取變數的記憶體位址,需要使用「&」符號加在變數名前面獲取,如下: 1&variable 透過以下範例,可以知道變數的記憶體位址如何獲取: 12345678#include <iostream>using namespace std;int main(){ int a = 0; cout << &a; return 0;} 輸出結果: 10x7ffdd306c874 :::success問題來了,指標是啥呢?::: 指標(Poi...
【C++ 筆記】字串(String) - part 9
【C++ 筆記】字串(String) - part 9很感謝你點進來這篇文章。 你好,我並不是什麼 C++、程式語言的專家,所以本文若有些錯誤麻煩請各位鞭大力一點,我極需各位的指正及指導!!本系列文章的性質主要以詼諧的口吻,一派輕鬆的態度自學程式語言,如果你喜歡,麻煩留言說聲文章讚讚吧! 字串(String)字串是由許多的字元所組成的,但字串實際上它是一個一維陣列,以 null 字元(’\0’)終止符號為結尾。 如下: 1char a[6] = {'H', 'e', 'l', 'l', 'o', '\0'}; Hello 共有 5 個字元,但實際上在 C++ 中存在於 6 個字元,因多一個 ‘\0’ 表示字串的結尾。 arraysize 因此要寫 6。 也可以寫成這樣: 1char a[] = "Hello"; 但實際上我們也不用那麼麻煩,加上 ‘\0’ 上去,C++ 編譯器會在初始化陣列時自動加上去。 以下是一個範例,輸...
【C++ 筆記】陣列(Array) - part 8
【C++ 筆記】陣列(Array) - part 8很感謝你點進來這篇文章。 你好,我並不是什麼 C++、程式語言的專家,所以本文若有些錯誤麻煩請各位鞭大力一點,我極需各位的指正及指導!!本系列文章的性質主要以詼諧的口吻,一派輕鬆的態度自學程式語言,如果你喜歡,麻煩留言說聲文章讚讚吧! 陣列(Array)陣列(Array),又稱數組,在 Python 中,此種類似的資料結構稱為列表(List),是將一組資料儲存在記憶體的集合。 陣列是一種集合,在 C++ 中只能儲存固定資料型態的元素於陣列中。 在此之前,我們需要了解陣列(Array)、元素(Element)、索引(Index)、資料型態(Data Type)之間的關係。 Image Source:https://www.geeksforgeeks.org/cpp-arrays/ 以上是陣列的圖示,所謂的元素就像是數列裡面的各個數字一樣,如:{1,2,3,4,5,6},1~6 即為元素。 所謂的索引(Index),就是每個元素的位置,C++ 的陣列索引以 0 為開頭,不是 1 唷。 以上圖而言,元素 2 的索引就是 0,它所在的...
【C++ 筆記】數學函式庫(cmath library) - part 7.5
【C++ 筆記】數學函式庫(cmath library) - part 7.5很感謝你點進來這篇文章。 你好,我並不是什麼 C++、程式語言的專家,所以本文若有些錯誤麻煩請各位鞭大力一點,我極需各位的指正及指導!!本系列文章的性質主要以詼諧的口吻,一派輕鬆的態度自學程式語言,如果你喜歡,麻煩留言說聲文章讚讚吧! 上節介紹到函數的概念,我們說函數就像是一台有功能的機器,在數學函式庫中,裡面的函數恰好能展現此一概念,故此節介紹 cmath。 cmath語法: 1#include <cmath> 有關其函數,列下表: 序號 函數 1 double cos(double); 2 double sin(double); 3 double tan(double); 4 double log(double); 5 double pow(double, double); 6 double hypot(double, double); -> 註:畢氏定理計算斜邊公式(根號a平方+b平方) 7 double sqrt(double); -&g...
【C++ 筆記】函數(Function)(上) - part 7
【C++ 筆記】函數(Function)(上) - part 7很感謝你點進來這篇文章。 你好,我並不是什麼 C++、程式語言的專家,所以本文若有些錯誤麻煩請各位鞭大力一點,我極需各位的指正及指導!!本系列文章的性質主要以詼諧的口吻,一派輕鬆的態度自學程式語言,如果你喜歡,麻煩留言說聲文章讚讚吧! 函數(Function)“A function is a block of code which only runs when it is called.”。 :::success「函數只能被呼叫來執行一個程式碼區塊。」::: 什麼意思呢?就好比函數是一台機器,這台機器是具有輸入、輸出的概念的,假設一台機器是具有功用性的,比如說自動販賣機,功能就是給錢吐飲料。所謂的函數其實就是一台具有功能的機器。 可以輸入參數給函數,也可以設定輸出給函數。 參數可以按照剛才的例子,想成是錢,輸出則是吐飲料。 接下來進入到 C++ 的函數世界,語法如下: 1234return_type function_name( parameter list ){ body of the functio...
【演算法筆記】計數排序 / 桶排序 / 基數排序
【演算法筆記】計數排序 / 桶排序 / 基數排序大家好我是 LukeTseng!這篇是我的一個小小學習筆記,為了想要了解更快速的排序法,所以特別製作了此篇。 在總結部分會將這三種排序法的各個優缺點,以及其他屬性等等做比較。 總之廢話不多說,進入正題吧: 計數排序法(Counting Sort)計數排序法(Counting Sort)是一個有線性時間成長的排序法,相較於以往較為基礎的泡沫排序法(Bubble Sort)、插入排序法(Insertion Sort)(時間複雜度:O(n^2))等,或是適用於大資料且排序速度較快的排序法:快速排序法(Quick Sort)、合併排序法(Merge Sort)(時間複雜度:O(n log n)),都還要來得快。 它的時間複雜度是 O(n),如果要準確一點說的話,是 O(n+k),k 是資料量。 適用情況在於資料量少的時候,有多少呢?資料量在幾千個以內,且資料範圍不超過幾百個(例如 1 到 100 或 1 到 500)的時候,計數排序法就仍有效率排序。 計數排序的演算步驟如下: 找出要排序的數列當中之最大值 初始化一個長度為 max+1 的...
【Lua 筆記】數學函式庫 - 番外
【Lua 筆記】數學函式庫 - 番外詳情參考自:Lua 5.4 Reference Manual math.abs(x) - 回傳 x 的絕對值。 math.acos(x) - 回傳 x 的反餘弦值(以弧度為單位)。 math.asin(x) - 回傳 x 的反正弦值(以弧度為單位)。 math.atan(x) - 回傳 x 的反正切值(以弧度為單位)。 math.atan2(y, x) - 回傳點 (x, y) 的反正切值(以弧度為單位)。 math.ceil(x) - 回傳不小於 x 的最小整數。(可理解成無條件進位) math.cos(x) - 回傳 x 的餘弦值(x 是以弧度為單位)。 math.cosh(x) - 回傳 x 的雙曲餘弦值。 math.deg(x) - 將角度 x 從弧度轉換為角度。 math.exp(x) - 回傳 e(數學常數) 的 x 次方。 math.floor(x) - 回傳不大於 x 的最大整數。(可理解成無條件退位) math.fmod(x, y) - 回傳 x 除以 y 的餘數。 math.huge - 表示無窮大的值。 math.log...





