最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

第三、四講

2021-01-28 21:47 作者:你算是哪塊小餅干吖  | 我要投稿

第三講 ?函數(shù)


一 ?函數(shù)聲明與調(diào)用 ?

1 ?函數(shù)調(diào)用

主調(diào)(客戶(hù))函數(shù)與被調(diào)(服務(wù)器)函數(shù) 函數(shù)調(diào)用時(shí)的參數(shù)與返回值 例一: Swap( a, b ); 例二: n = Add( a, b ); ?

2 ?函數(shù)原型

函數(shù)的實(shí)現(xiàn)與調(diào)用格式說(shuō)明:作為函數(shù)接口 一般出現(xiàn)在頭文件中 格式: 函數(shù)返回值類(lèi)型 函數(shù)名稱(chēng)( 形式參數(shù)列表 ); 例一: int Add( int x, int y ); 例二: void Swap( int x, int y ); 例三: void Compute(); ?


二 ?函數(shù)定義

1 ?函數(shù)實(shí)現(xiàn)

函數(shù)定義,使用編程語(yǔ)言給出函數(shù)的執(zhí)行步驟

2 ?函數(shù)返回值

函數(shù)完成后帶回來(lái)的結(jié)果 主調(diào)函數(shù)可以使用

3 ?謂詞函數(shù)

返回 bool 類(lèi)型值的函數(shù) 表達(dá)某項(xiàng)任務(wù)是否完成或某個(gè)條件是否滿(mǎn)足

4 ?函數(shù)重載 ?

定義同名但參數(shù)不完全相同的函數(shù)

示 例:

?int Max( int x, int y );
?char Max( char x, char y );
?bool Max( bool x, bool y );


三 ?函數(shù)調(diào)用規(guī) ?

1 ?參數(shù)傳遞機(jī)制

  • 值傳遞

  • 形式參數(shù)在函數(shù)調(diào)用時(shí)才分配存儲(chǔ)空間,并接受實(shí)際參數(shù)的值

  • 實(shí)際參數(shù)可以為復(fù)雜的表達(dá)式,在函數(shù)調(diào)用前獲得計(jì)算

  • 形式參數(shù)與實(shí)際參數(shù)可同名,也可不同名

  • 參數(shù)較多時(shí),實(shí)際參數(shù)值逐一賦值,它們必須保持?jǐn)?shù)目、類(lèi)型、 順序的一致

  • 值的復(fù)制過(guò)程是單向不可逆的,函數(shù)內(nèi)部對(duì)形式參數(shù)值的修改 不會(huì)反映到實(shí)際參數(shù)中去

  • 函數(shù)參數(shù)一般為函數(shù)輸入集的一部分,函數(shù)輸出集一般使用返 回值表示,只有使用特殊的手段才可以將函數(shù)參數(shù)作為函數(shù)輸 出集的一部分 ?

  • 引用傳遞


2 ?函數(shù)調(diào)用??蚣??


第四講 ?算法


一 ?算法概念與特征

1 ?算法基本概念

  • 算法定義:解決問(wèn)題的方法與步驟

  • 設(shè)計(jì)算法的目的:給出解決問(wèn)題的邏輯描述,根據(jù)算法描述進(jìn)行實(shí)際編程

2 ?算法特征

  • 有窮性:算法在每種情況下都可以在有限步后終止

  • 確定性:算法步驟的順序和內(nèi)容沒(méi)有二義性

  • 輸入:算法有零個(gè)或多個(gè)輸入

  • 輸出:算法至少具有一個(gè)輸出

  • 有效性:所有操作具有明確含義,并能在有限時(shí)間內(nèi)完成 ?


二 ?算法描述

  • 偽代碼

  • 流程圖(程序框圖)


三 ?算法設(shè)計(jì)與實(shí)現(xiàn)

1 ?算法設(shè)計(jì)與實(shí)現(xiàn)

  • 構(gòu)造算法解決問(wèn)題

  • 按照自頂向下、逐步求精的方式進(jìn)行

  • 使用程序設(shè)計(jì)語(yǔ)言編程實(shí)現(xiàn) ?


四 ?遞歸算法

1 ?遞歸問(wèn)題的引入

  • 遞推公式:數(shù)學(xué)上非常常見(jiàn) 例一:階乘函數(shù): 1! = 1, n! = n × (n-1)! 例二:斐波那契數(shù)列函數(shù): f(1) = f(2) = 1, f(n) = f(n-1) + f(n-2)

  • 遞推函數(shù)一定是分段函數(shù),具有初始表達(dá)式

  • 遞推函數(shù)的計(jì)算邏輯:逐步簡(jiǎn)化問(wèn)題規(guī)模

2 ?遞歸的工作步驟

  • 遞推過(guò)程:逐步分解問(wèn)題,使其更簡(jiǎn)單

  • 回歸過(guò)程:根據(jù)簡(jiǎn)單情形組裝最后的答案 ?

3 ?循環(huán)與遞歸的比較 ?

  • 循環(huán)使用顯式的循環(huán)結(jié)構(gòu)重復(fù)執(zhí)行代碼段,遞歸使用重復(fù)的函數(shù)調(diào)用執(zhí)行代碼段

  • 循環(huán)在滿(mǎn)足其終止條件時(shí)終止執(zhí)行,而遞歸則在問(wèn)題簡(jiǎn)化到最簡(jiǎn)單情形時(shí)終止執(zhí)行

  • 循環(huán)的重復(fù)是在當(dāng)前迭代執(zhí)行結(jié)束時(shí)進(jìn)行,遞歸的重復(fù)則是在遇到對(duì)同名函數(shù)的調(diào)用時(shí)進(jìn)行

五 ?容 錯(cuò)

1 ?定義

  • 允許錯(cuò)誤的發(fā)生

2 ?錯(cuò)誤的處理

  • 很少見(jiàn)的特殊情況或普通錯(cuò)誤:忽略該錯(cuò)誤不對(duì)程序運(yùn)行結(jié)果產(chǎn)生影響

  • 用戶(hù)輸入錯(cuò)誤:通知用戶(hù)錯(cuò)誤性質(zhì),提醒用戶(hù)更正輸入

  • 致命錯(cuò)誤:通知用戶(hù)錯(cuò)誤的性質(zhì),停止執(zhí)行

3 ?典型容錯(cuò)手段

  • 數(shù)據(jù)有效性檢查

  • 程序流程的提前終止 ?


六 ?算法復(fù)雜度 ?

1 ?引入算法復(fù)雜度的目的

  • 度量算法的效率與性能

2 ?大 O 表達(dá)式

  • 算法效率與性能的近似表示(定性描述)

  • 算法執(zhí)行時(shí)間與問(wèn)題規(guī)模的關(guān)系

3 ?表示原則

  • 忽略所有對(duì)變化趨勢(shì)影響較小的項(xiàng),例如多項(xiàng)式忽略高階項(xiàng)之外的所有項(xiàng)

  • 忽略所有與問(wèn)題規(guī)模無(wú)關(guān)的常數(shù),例如多項(xiàng)式的系數(shù) ?

4 ?標(biāo)準(zhǔn)算法復(fù)雜度類(lèi)型 ?

  • O(1):常數(shù)級(jí),表示算法執(zhí)行時(shí)間與問(wèn)題規(guī)模無(wú)關(guān)

  • O(log(n)):對(duì)數(shù)級(jí),表示算法執(zhí)行時(shí)間與問(wèn)題規(guī)模的對(duì)數(shù)成正比

  • O(sqrt(n)):平方根級(jí),表示算法執(zhí)行時(shí)間與問(wèn)題規(guī)模的平方根成正比

  • O(n):線(xiàn)性級(jí),表示算法執(zhí)行時(shí)間與問(wèn)題規(guī)模成正比

  • O(n*log(n)): nlog(n) 級(jí),表示算法執(zhí)行時(shí)間與問(wèn)題規(guī)模的nlog(n) 成正比

  • O(n2):平方級(jí),表示算法執(zhí)行時(shí)間與問(wèn)題規(guī)模的平方成正比


七 ?練習(xí)


?#include<iostream>
?#include<cmath>
?
?using namespace std;
?bool IsPrime( unsigned int n );
?
?int main()
?{
? ? ?int n,i;
? ? ?cout << "Please enter a number n(n > 1):";
? ? ?cin >> n;
? ? ?cout << n << " = ";
? ? ?for(i = 2;i <= n;i++)
? ? ?{
? ? ? ? ?while(n % i == 0)
? ? ? ? ?{
? ? ? ? ? ? ?if(IsPrime( i ))
? ? ? ? ? ? ?{
? ? ? ? ? ? ? ? ?cout << ?i;
? ? ? ? ? ? ? ? ?n /=i;
? ? ? ? ? ? ? ? ?if(n != 1)
? ? ? ? ? ? ? ? ?cout << "*";
? ? ? ? ? ? ?}
? ? ? ? ?}
? ? ?}
? ? ?cout << endl;
? ? ?return 0;
?}
?
?bool IsPrime( unsigned int n )
?{
? ? ?unsigned int i = 2, t = (unsigned int)sqrt(n) + 1;
? ? ?if(n == 2)
? ? ?return true;
? ? ?if( n % 2 == 0 )
? ? ?return false;
? ? ?while( i <= t )
? ? ?{
? ? ? ? ?if( n % i == 0 )
? ? ? ? ?return false;
? ? ? ? ?i += 2;
? ? ?} ?
? ? ?return true;
?}?#include<iostream>
?#include<cmath>
?
?using namespace std;
?
?int main()
?{
? ? ?int n,i;
? ? ?cout << "Please enter a number n(n > 1):";
? ? ?cin >> n;
? ? ?cout << n << " = ";
? ? ?for(i = 2;i <= n;i++)
? ? ?{
? ? ? ? ?while(n % i == 0)
? ? ? ? ?{
? ? ? ? ? ? ?
? ? ? ? ? ? ?cout << ?i;
? ? ? ? ? ? ?n /=i;
? ? ? ? ? ? ?if(n != 1)
? ? ? ? ? ? ?cout << "*";
? ? ? ? ?}
? ? ?}
? ? ?cout << endl;
? ? ?return 0;
?}
?//不用判斷因數(shù)是否為素?cái)?shù)也可以



第三、四講的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
西充县| 东宁县| 和静县| 改则县| 西充县| 精河县| 海丰县| 齐河县| 全椒县| 浮山县| 滕州市| 石嘴山市| 德江县| 玉田县| 霍林郭勒市| 五大连池市| 湘阴县| 湖南省| 蒲城县| 和龙市| 松潘县| 长宁县| 乌拉特中旗| 喜德县| 蛟河市| 扬中市| 南靖县| 阿城市| 华亭县| 莫力| 太湖县| 铜鼓县| 静安区| 诸暨市| 霍林郭勒市| 大渡口区| 临颍县| 孟连| 巨野县| 碌曲县| 安福县|