【個人筆記】C++ ZeroJudge 基礎題庫解題(純練習) - part 1
【個人筆記】C++ ZeroJudge 基礎題庫解題(純練習) - part 1 a003.:https://zerojudge.tw/ShowProblem?problemid=a003 難度:☆☆☆☆☆ 基本IO、條件判斷、四則運算 12345678910111213141516171819#include <iostream>using namespace std;int main(){ int M, D, S; cin >> M >> D; S = (M*2+D)%3; if (S==0){ cout << "普通"; } else if (S==1){ cout << "吉"; } else{ cout << "大吉"; } return 0;} a004.:...
【C++ 筆記】解構子(Destructors) - part 18.5
【C++ 筆記】解構子(Destructors) - part 18.5 很感謝你點進來這篇文章。 你好,我並不是什麼 C++、程式語言的專家,所以本文若有些錯誤麻煩請各位鞭大力一點,我極需各位的指正及指導!!本系列文章的性質主要以詼諧的口吻,一派輕鬆的態度自學程式語言,如果你喜歡,麻煩留言說聲文章讚讚吧! 解構子(Destructors) 這 18.5 part 是來補全前面建構子只講到一點的解構子,由於解構子的概念並未像建構子那麼複雜,所以只需要 0.5 part 的時間來學習XD。 解構子(Destructor),又名為析構函數,同於建構子是個特殊的成員函數,在當物件的作用域結束時,編譯器會呼叫此函數。 Destructor 可釋放類別中的物件先前使用的所有記憶體,可避免記憶體洩漏與資源浪費的情形發生。 :::success 解構子名稱與類別名稱相同,但是需要加上波浪符號(~)在最前面,以示為解構子。 ::: 123456class ClassName {public: ~ClassName() { // Body of Destru...
【C++ 筆記】建構子(Constructors) - part 18
【C++ 筆記】建構子(Constructors) - part 18 很感謝你點進來這篇文章。 你好,我並不是什麼 C++、程式語言的專家,所以本文若有些錯誤麻煩請各位鞭大力一點,我極需各位的指正及指導!!本系列文章的性質主要以詼諧的口吻,一派輕鬆的態度自學程式語言,如果你喜歡,麻煩留言說聲文章讚讚吧! 建構子(Constructors) 建構子(Constructors),又稱建構函數、建構式,為一種特別的 class members,每次實例化該類別的物件時,編譯器都會呼叫建構子(表示每次建立物件都會用到此函數)。建構子與 class 具有相同的名稱,並且可以在 class 中進行內部定義或外部定義。 另外建構子也不會回傳任何型態,也不會回傳 void。 :::success 可以想像建構子就是做初始化的動作。 ::: 在 C++ 中,共有下列四種建構子: 預設建構子(Default Constructors) 參數化建構子(Parameterized Constructors) 複製建構子(Copy Constructors) 移動建構子(Move Constructo...
【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 通常是...
【Windows 11 秘笈】重灌或裝新系統必做的五件事!
【Windows 11 秘笈】重灌或裝新系統必做的五件事! 哈囉大家好,我是 LukeTseng,近期換新電腦裝系統時,發現忘記 win 11 有些操作令我不太習慣,且又忘記該如何操作,實在令人煩惱,所以便製作了這篇文章。 :::info 註:這篇文章純粹是以我個人習慣而製作的,若有些設定你覺得不習慣可改回去 ::: 廢話不多說,馬上開始吧! 一、工作列置左 首先工作列靠左是從 xp 時代至 win10 時代當中漸漸習慣的一件事,身為 windows 的長期使用者,當然務必首要的就是將 win 11 這惱人的工作列置中改成靠左啦! 那其實要靠左也很簡單,首先我們透過快捷鍵 windows 鍵 + i 鍵 打開設定,或是透過工作列底下的 windows 開始鍵打開也可以。 進入 [個人化] 後,可以看到有個選項叫做 [工作列]。 點進去 [工作列] 後,可看到最底下有個叫做 [工作列行為] 的選單。 點擊一下後,將 [工作列對齊] 中最右邊的下拉選單點擊一下,將 [置中] 改成 [靠左]。 二、右鍵選單 要改回 w10 以前時代的右鍵選單,有兩種方法可使用: 登錄編輯程式(...
【C++ 筆記】vector - part 16
【C++ 筆記】vector - part 16 很感謝你點進來這篇文章。 你好,我並不是什麼 C++、程式語言的專家,所以本文若有些錯誤麻煩請各位鞭大力一點,我極需各位的指正及指導!!本系列文章的性質主要以詼諧的口吻,一派輕鬆的態度自學程式語言,如果你喜歡,麻煩留言說聲文章讚讚吧! 簡介(Introduction) 在 C++ 中,vector 就像可調整大小的陣列 array。 vector 和 array 都是用於儲存相同資料型態的多元素資料結構(Data structure)。 兩者之間最大的差別,就是: :::success vector:可調整大小。 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 參考(Referen...
【C++ 筆記】指標(Pointer)(下) - part 13
【C++ 筆記】指標(Pointer)(下) - part 13 很感謝你點進來這篇文章。 你好,我並不是什麼 C++、程式語言的專家,所以本文若有些錯誤麻煩請各位鞭大力一點,我極需各位的指正及指導!!本系列文章的性質主要以詼諧的口吻,一派輕鬆的態度自學程式語言,如果你喜歡,麻煩留言說聲文章讚讚吧! 指標與陣列(Pointer vs. Array) 指標與陣列其實是有相關性的,先從定義上來看: :::success 陣列的定義: 陣列是一組相同型態的元素,這些元素在記憶體中是連續儲存的。陣列的名稱可以視為指向其首項元素的指標。例如,對於一個整數陣列 int arr[5];,arr 實際上是指向 arr 的指標。 ::: :::info 指標的定義: 指標是一種變數,用來儲存其他變數的位址。指標可以指向任何型態的資料,包括陣列。 ::: 指標和陣列在很多情況下是可以互換的。例如,一個指向陣列開頭的指標,可以透過使用指標的算術運算或陣列索引來存取陣列。請看下面的程式: 12345678910111213141516171819202122232425#include <io...
【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 問題來了,指標是啥呢? ::: 指標...
【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); -&...




