week one 遞迴演算法 復合資料型別)

2021-10-03 14:32:09 字數 3181 閱讀 2774

目標:

1.熟悉物件導向相關知識;

2.熟練運用c++內容編寫物件導向程式**;

3.了解軟體開發的基本流程,學會物件導向軟體開發方法;

4.能夠開發小型軟體系統。

一、遞迴演算法

程式直接或間接呼叫自身的程式設計技巧稱為遞迴演算法(recursion)。

直接或間接呼叫自身的函式稱為遞迴函式。

特點:把乙個大型複雜的問題層層轉化為乙個與原問題相似的規模較小的問題。

基本思想:層層分解

1.1遞迴

1.1.1關鍵:遞迴定義(關係)和遞迴終止條件

遞迴定義(關係):使問題向邊界條件轉化的規則。

如遞迴終止條件:所描述問題的最簡單情況,它本身不再使用遞迴的定義。

如(1!=1)

1.1.2解題步驟

(1)分析問題、尋找遞迴:找出大規模問題與小規模問題的關係,通過遞迴使問題的規模逐漸變小。

(2)設定邊界、控制遞迴:找出停止條件

(3)設計函式(名稱:可以體現函式功能;返回值…)、確定引數。

1.1.3 eq

遞迴函式和其他函式區別先處理結束條件。

計算過程:呼叫過程使問題簡化,回溯過程得到問題的解。

eq1:求前n個數的和,求n!。

**:#include< iostream >

using namespace std;

int fn(int n)

else

return n + fn(n - 1);(遞迴關係)(遞迴關係的表示一般用這種返回語句的形式表示)}

int fact(int a)

int main()

eq3:a^b(快速冪)

typedef為c語言的關鍵字,使用目的一般有兩個,乙個是給變數乙個易記且意義明確的新名字,另乙個是簡化一些比較複雜的型別宣告。

**:#include< iostream >

using namespace std;

typedef long long ll;

ll binarypow(ll a,ll b) }

int main()

普通**:

#include< iostream >

using namespace std;

int comp(int n)

int main()

遞迴總結

二、復合資料型別

c++的資料型別:

2.1 結構體和列舉

2.1.1 結構體

2.1.1.1結構體定義

c++ 中的結構體是由一系列具有相同型別不同型別的資料構成的資料集合,也叫結構。

宣告格式:

(1)struct 型別名;

(2)struct 型別名 變數名;

2.1.1.2結構體特點

(1)可以對結構體變數的整體進行操作。

(2)可以對結構體變數的成員進行操作。

引用結構體變數中成員的格式為:

結構體變數名. 成員名

(3)結構體變數的初始化方法與陣列類似。

2.1.1.3eq

eq1:學生多項不同型別資訊的顯示

**:#include

using namespace std;

struct student;

int main()

注: cout << fixed << setprecision(1) <<

fixed和setprecision()配合使用表示在小數點後保留幾位數。

eq2:年齡大小排序

基本思想:定義結構體型別定義結構體陣列用於儲存學生的所有資訊,依次輸入同學資訊,排序輸出。(sort排序的使用)

#include

using namespace std;

struct stu;

const int maxn = 110;

stu a[maxn];//全域性陣列採用堆儲存

int main()

return 0;}

2.1.1.4運算子過載 (結構體內有效)

語法格式:

型別名 operator 運算子 (const 型別名 變數)const

eqeq1:學生n天作業總時間計算。

由於涉及時分秒的計算,不同於平常的加法運算,於是對加法進行過載。

**:#include

using namespace std;

struct worktime

};int main()

cout << sum.hr << 」 hour 」 << sum.minut << 」 minute 」 << sum.sec << 」 second 」 ;

return 0;

}2.1.1.5 成員函式

struct 結構名 ;

eq:輸出身高最高學生資訊。

組織一結構體儲存資料,對結構體資料進行排序。

**:#include

using namespace std;

struct stu

void output()

booloperationconststu s)const

C 知識總結1(遞迴演算法 復合資料型別)

3.1遞迴演算法 一 1 把大型複雜的問題,層層分解得到規模小的小問題來求解 2 基本思想 層層分解 二 步驟 1 分析問題,尋找遞迴 找大規模和小規模之間的關係 2 找出停止條件 3 設計函式,確定引數 三 求1 100 遞迴 fn n n fn n 1 終止條件 f 1 1 int fn int...

復合資料型別

復合資料型別 作用 封裝資料 多種不同型別資料存放在一起 應存放在全域性,在訪問結構體中的變數時,應用stu.id stu.name 初始化的方式 在對陣列進行初始化時 strcpy stu.name,zhangsan 在對指標進行初始化時 char name 對name進行初始化 stu.name...

復合資料型別

一 struct結構體 封裝資料 存放多種不同的資料型別 struct的宣告放在全域性區 1.宣告和定義 宣告 struct student struct student stu array 3 int i for i 0 i 3 i for i 0 i 3 i include struct stu...