資訊社社課-C++

講師:王政凱

講師介紹

  • 227王政凱
  • ck_platypus
  • 建中資訊 學術兼外交
  • 地科讀書會講師
  • 我不會資訊
  • FB:王政凱
  • IG:@kennywang2017

C++簡介

關於C++

  • 1979年由比雅尼·史特勞斯特魯普發明
  • 改良自C
  • 1998年發布第一個C++標準:C++98
  • 之後還有C++03、C++11、C++14、C++17等各種版本的標準
  • 目前最新版是2020發布的C++20

關於C++

  • 編譯式語言
  • 執行速度快
  • 標準函式庫
  • 物件導向

編譯器

你們電腦裡都有

常見的C++編輯器

  • Code::Blocks
  • Dev C++
  • Visual Studio Code
  • Visual Studio
  • Vim
  • Sublime Text

裝不了的替代方案

線上編輯器:repl.it

Hello World

#include<iostream>
using namespace std;

int main(){
  cout << "Hello World" << endl;
  return 0;
}

變數

#include<iostream>
using namespace std;

int main(){
  int a=1;
  cout << a << endl;
  return 0;
}

整數

資料型態 佔用空間(bytes) 值域
short 2 -32768~32767
int 4 -2147483648~2147483647
unsigned int 4 0~4294967295
long long 8 -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
unsigned long long 8 0~18,446,744,073,709,551,615

浮點數

資料型態 佔用空間(bytes) 值域 精度
float 4 3.4 E +-38 7位數
double 8 1.7 E +- 308 15位數

字元與字串

  • char可以存一個字元
  • 占用1 byte
  • 值域-128~127 
  • ASCII編碼儲存
  • string可以存字串
  • 空間視長度而定
  • 可以想成是char的陣列

布林值

  • bool
  • 佔用空間:1byte
  • 值域:0~1
  • True/False

變數命名規則

  • 命名可以是英文字母、底線、數字
  • 不能以數字開始
  • 大小寫都可以,但大小寫視為不同
  • 保留字不允許用
  • 盡量用有意義的名字命名

輸入

#include<iostream>
using namespace std;

int main(){
  int a;
  cin >> a;
  cout << a << endl;
  return 0;
}

運算子

#include<iostream>
using namespace std;

int main(){
  int a=1;
  a=a+2;
  a*=2;
  cout << a << endl;
  return 0;
}

指定運算子

  • a=3
  • 把=左邊的變數設定成右邊的值
  • 左邊必須是變數

算術運算子

  • +
  • -
  • *
  • /
  • %
  • 前後要是同型態的變數才可以運算
  • 常見的型態C++會幫你轉換
  • 一般會轉換成比較大的資料型態
  • 除不盡會 向0取整
  • 負數取餘數是負數
  • 浮點數不能取餘數

算術指定運算子

  • +=
  • -=
  • *=
  • /=
  • %=
  • 算術+指定
  • a+=b
  • a=a+b
  • 特性大致上和算術差不多

遞增遞減運算子

  • ++
  • --
  • 就是把值+1或-1

關係運算子

  • >
  • >=
  • <
  • <=
  • ==
  • !=
  • 比較兩個變數的大小關係
  • 回傳一個布林值(True/False)

邏輯運算子

  • &&
  • ||
  • !

簡易加法

兩光法師占卜術

a + b problem

條件判斷

#include<iostream>
using namespace std;

int main(){
  int a=1;
  if(a==1){
    a=2;
  }
  cout << a << endl;
  return 0;
}

迴圈

#include<iostream>
using namespace std;

int main(){
  int a=1;
  while(a<10){
    a++;
  }
  cout << a << endl;
  return 0;
}
#include<iostream>
using namespace std;

int main(){
  int a=1;
  for(int i=0;i<10;i++){
    a++;
  }
  cout << a << endl;
  return 0;
}

陣列

#include<iostream>
using namespace std;

int main(){
  int arr[5]={1,2,3,4,5};
  arr[0]++;
  arr[3]-=2;
  cout << arr[2] << endl;
  return 0;
}

迫於時間壓力,我僅把C++最簡單的語法部分交給大家,若有人聽完這堂課尚有興致繼續學習,可參加建中的資訊讀書會持續精進自己的C++能力,資訊社的C++放學社課也會更全面地帶大家學習程式語言。

deck

By ck_platypus

deck

  • 517