對整個程序設計的知識整理
覺得自己在C++這方面真的沒有掌握的東西還有太多,希望自己在這半個月不到的時間內能盡可能彌補自己的空缺,以下是我利用課件和課外查閱的一些資料做的一些筆記,肯定還有很多很多不完善的地方,但是還是希望能通過自己的努力一點點的去改正。把之前的實驗又重新做一遍,希望可以讓自己的知識更紮實一點。
第一章 緒論
一、課件知識點
- 機器語言
由計算機硬件系統可以識別的二進制指令組成的語言稱為機器語言。
2. 匯編語言
將機器指令映射為一些可以被人讀懂的助記符,如ADD、SUB等。
3. 高級語言
屏蔽了機器的細節,提高了語言的抽象層次,程序中可以采用具有一定含義的數據命名和容易理解的執行語句。
4. 結構化程序設計的基本結構
每個模塊內部都由三種基本結構組成。
模塊的具體實現是使用子程序(函數)。
5.面向對象的程序設計核心概念:對象、消息;類、實例
① 客觀世界中的事物→抽象為“對象”
② 把所有對象的共性劃分為對象類,每個類定義一組數據和一組方法(也叫操作,或,服務)
③ 每個對象屬於一個類,稱為該類的一個實例。
類與對象的關系是抽象與具體。
④ 對象和對象之間通過消息通信。
6.面向對象程序設計的基本特征:抽象性、封裝性、繼承性、多態性
7. 二進制的優點:
① 易於物理實現
② 運算簡單
③ 機器可靠性高
④ 通用性強
二進制的缺點:
.用二進制表示一個數時,位數太多,太繁瑣
.難於記憶,可讀性差。
8.原碼,反碼,補碼
(a) 原碼
能表示有符號數的範圍為:-127~+127
0有兩種表示形式:[+0]原=0000 0000 [-0]原=1000 0000
(b) 反碼
能表示有符號數的範圍為:-127~+127
0有兩種表示形式:[+0]反=0000 0000 [-0]反=1111 1111
(c) 補碼
有符號數的範圍為:-128~+127
在補碼表示中,0有唯一的表示形式:[+0]補=[-0]補=0000 0000
多出來的這個補碼1000 0000被用來表示-128
二、自己對第一章的梳理
這一章主要是對一些概念性問題的掌握,各類語言的特點,編寫程序的一些過程。
熟悉計算機存儲的方式。
第二章 C++簡單程序設計
一. 課件理解
1. 數據類型影響/決定:
① 數據占內存字節數
② 數據取值範圍
③ 其上可進行的操作
2.常量(字面常量、符號常量)
const 說明,是語句,末尾有分號
例:const int N=10;
3,。變量的說明
<類型說明符><變量名表>;
4.sizeof運算符用來測試某類型數所占字節數
5.控制結構語句
if-else語句嵌套使用時,要註意if與else的正確配對。必要時,需要用{}括起語句塊。
switch語句在使用過程中要註意break的合理使用
對於循環語句,要註意:
(1) 初始條件、循環結束條件的設置,尤其是邊界部分;
(2) 在循環中使用break和continue的區別;
(3) 循環語句的嵌套使用中,要註意內外層循環變量的設置;
6. case是用於開關語句中的關鍵字。
開關語句,又稱switch語句,由關鍵字switch搭配若幹個case及可能存在的default語句,共同組建成的一種分支結構語句。其一般形式為
switch(表達式)
{
case 常量表達式1:語句1;
....
case 常量表達式2:語句2;
default:語句;
}
其功能為判斷表達式的值,然後跳轉到與表達式值相同的常量表達式n對應的case上去執行。
其中,表達式必須為整型,case後的表達式必須為常量。
default語句可以省略。
在switch語句中,如果執行到break;語句,而break語句不在任何循環體內,那麽會跳出switch語句
7.枚舉型
語法格式:enum 枚舉類型名 { 枚舉值列表 };
① 枚舉類型,本質是整型。枚舉類型可以隱含轉換為整型,但整型轉換為枚舉類型,必須顯式轉換。
② 枚舉類型不能直接輸入/輸出。
8.變量的類型:auto,extern,siatic
二、自己的理解(這部分內容是根據課外視頻整理的,所以可能會淩亂)
1、一個符號只能說明一次,且先聲明,後使用
2.pow(x,y) 表示x的y次方,pow是函數名,x,y均為雙精度實數
3.一次運行,多次輸入
while(<條件>)
{
<循環體(一段程序)>
}
<其他語句>
4.數學函數的使用 #include<cmath>
平方根:sqrt() 絕對值:fabs(x)
自變量均為雙精度,結果也是雙精度實數
5.\n 換行
\r 後面取代前面
\t 空格
\f 翻頁
\b 前移一格
6.const <類型說明符><符號常量名>=數據;
const int N=100;(說明一個符號表示一個常量)
7.符號常量
在main函數之前 #define<符號名稱><數據>
(define說明,預處理,行末沒有分號)
#define PAI 3.14
8. 變量使用中應註意的問題
1先定義,再使用
2只能定義一次,不能重復定義
3先賦值,再參與計算
4變量可以多次賦值,而常量是不能賦值的
5變量的定義可以出現在使用前的任何地方,但建議在程序的開始定義變量
6少用或者不用字面常量
9. 算數運算的實現
pow(x,n) x的n次方
exp(x) e的x次方
log(x) x的自然對數
log10 (x) x的常用對數
sin(x) x的正弦
asin(x) 反正弦函數 -1<=x<=1
這些都屬於數學函數,使用時需要在程序的開頭寫#include<cmath>
10.運算的數據類型
1相同類型的數據進行運算,結果還是這種數據類型
2不同類型的數據計算,默認向級別高的類型轉換
3強制類型轉換
(<類型>) x或<類型> (x)
將x轉化為<類型>數據,x可以是表達式
11.邏輯值true, 計算機中存的是1
邏輯值false, 計算機中存的是0
12. auto被定義為自動推斷變量的類型
第三章 函數
一.、課件知識點
1.函數的定義
語法格式:
類型 函數名(形式參數列表)
{
語句序列
}
2函數定義註意點
a) 定義一個函數是為了實現特定的功能。是否需要形參,形參的個數、類型,是否需要有返回值,返回值的類型,這些應當在設計函數時考慮清楚。
b) 如不需要返回值,則返回值類型標識符為void。
c) 形參個數可以是0或多個; 多個時以逗號分隔,且每個都要分別說明類型。
d) 函數名應符合C++標識符命名規則,並盡量“見名知意”。
3.函數的參數值傳遞時要用上“&”
4.函數的聲明格式
函數返回值類型 函數名 (形式參數列表);
例:void swap(int, int);
5函數的調用
函數名(實際參數列表)
例:swap (x,y)
6.函數的引用註意事項
a) 引用變量必須在聲明時進行初始化。
b) 引用變量聲明中的&與取地址運算符沒有關系,它只是引用變量聲明固定的語法格式要求。
7.內聯函數語法格式
函數名(形式參數列表)
{
語句序列
}
8.帶默認參數的函數
(1) 形參的默認值必須在函數聲明中指定。
(2) 有默認值的形參必須靠右放置。(即:在有默認值的形參右面,不能出現無默認值的形參)
9,函數重載簡介
c++允許若幹函數使用相同的函數名,但形參的個數或類型不同,這樣的函數稱為重載函數,這個過程稱為函數重載。
當調用重載函數時,編譯器會根據實參的個數、類型,做最佳匹配,來決定調用哪一個重載函數
10.所有小數默認是double類型,如果想用浮點型必須強制轉換,如
float i=3.5f或者(float)3.5
二、自己學習梳理
1.函數模板的定義形式:
template<模板參數表>
類型名 函數名(參數表)
{
函數體的定義
}
所有函數模板的定義都是用關鍵字template開始的,該關鍵字之後是使用尖括號<>括起來的“模板參數表”。模板參數表由用逗號分隔開的模板參數構成,可以包括以下內容:
1class(或typename)標識符,指明可以接收一個類型參數。
2“類型說明符”標識符,指明可以接收一個由“類型說明符”所規定類型的常量作為參數。
3template<參數表>class標識符,指明可以接收一個類模板名作為參數
2.函數指針只能指向模板的實例,不能指向模板本身
3.類模板聲明的語法形式:
template<模板參數表>
class 類名
{
類成員聲明
}
4.在類模板以外定義其成員函數
template <模板參數表>
類型名 類名<模板參數標識符列表>::函數名(參數表)
5.引用傳遞和值傳遞區別
引用專遞就是傳遞對象本身,值傳遞是傳遞對象的復制品
打個比方:比如你有一張相片要修改,把相片編輯工具看作函數,把被處理的相片看作參數,那麽直接操作相片原件就相當於引用傳遞,把相片復制一份然後操作這個復制品就叫值傳遞。
很明顯引用傳遞會影響當作參數的對象,而值傳遞不會影響當作參數的對象
對整個程序設計的知識整理