1. 程式人生 > >對整個程序設計的知識整理

對整個程序設計的知識整理

形式 控制結構 這一 指定 特定 相同 三種 使用 不同

覺得自己在C++這方面真的沒有掌握的東西還有太多,希望自己在這半個月不到的時間內能盡可能彌補自己的空缺,以下是我利用課件和課外查閱的一些資料做的一些筆記,肯定還有很多很多不完善的地方,但是還是希望能通過自己的努力一點點的去改正。把之前的實驗又重新做一遍,希望可以讓自己的知識更紮實一點。

第一章 緒論

一、課件知識點

  1. 機器語言

由計算機硬件系統可以識別的二進制指令組成的語言稱為機器語言。

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.引用傳遞和值傳遞區別

引用專遞就是傳遞對象本身,值傳遞是傳遞對象的復制品
打個比方:比如你有一張相片要修改,把相片編輯工具看作函數,把被處理的相片看作參數,那麽直接操作相片原件就相當於引用傳遞,把相片復制一份然後操作這個復制品就叫值傳遞。
很明顯引用傳遞會影響當作參數的對象,而值傳遞不會影響當作參數的對象

對整個程序設計的知識整理