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

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

如何用輕小說的方式學(xué)C++(二) 天秤(上)

2019-07-31 20:29 作者:汐留楓Channel  | 我要投稿

“吶吾徒喲,100噸棉花和100噸鐵哪個(gè)更重?”

“這還用說嗎,當(dāng)然是一樣重啊?!?/p>

剎那側(cè)了側(cè)頭,懵逼地看著滿懷期待卻落空的凜音。旁邊的久遠(yuǎn)則捂著肚子開始笑了起來。

“然而某位師傅最開始似乎不這么認(rèn)為的,而且她還說一般人肯定都會(huì)錯(cuò)(噗哈哈哈哈)”

“閉嘴!”

惱羞成怒的凜音哐嘰一聲打開了筆記本,喊到:“那么今天寫一個(gè)比較大小的程序!”

“寫一個(gè)比較大小的程序所以以后可以先輸入100 100,然后得出它們一樣重的答案嗎?”久遠(yuǎn)邊岔氣邊說著。

凜音沒有理會(huì)久遠(yuǎn),而是監(jiān)督著剎那打開了編輯器,看著她敲完了昨天學(xué)的代碼。


#include<iostream>

int main() {

????std::cout<<"Hello, Setsuna"<<std::endl;

????return 0;

}


“首先是第一行;第一行是一個(gè)宏指令,你可以簡單理解為在編譯器正式著手看你程序之前,有個(gè)叫預(yù)處理器的東西會(huì)先對(duì)你的宏指令進(jìn)行替換。注意,是替換,不帶任何深層分析的替換?!?/p>

“以后還會(huì)學(xué)到其他的宏指令,你先記住 #include 這個(gè)宏指令即可。這個(gè)指令的意思是,叫系統(tǒng)去找同名的文件,然后啪的一下復(fù)制粘貼biubiu地貼在你寫#include的這一行這里?!?/p>

(這什么擬聲詞)

“#include后面可以跟單書名號(hào)<> 也可以跟雙引號(hào) "" ,配對(duì)的符號(hào)之間寫你需要的文件名。兩者之間的區(qū)別在于,<>只尋找?guī)炖锏奈募?,?#34;"尋找你當(dāng)前文件夾下的文件?!?/p>

“這樣的文件,我們叫他‘頭文件’?!?/p>


“頭文件?”

剎那摸了摸自己的頭,慶幸頭并沒有被吸到電腦里去變成一個(gè)文件。

“嘛畢竟通常都是寫在程序一開始的地方,所以叫‘頭文件’嘛?!?/p>


凜音喝了口水,繼續(xù)講解到:“iostream是一個(gè)文件,意思是input&output stream,輸入輸出流。流是某大佬定義的概念,大意就是把所有的東西看成一串,你可以寫程序依次一塊一塊處理?!?/p>

(側(cè)頭,不解)

總而言之就是負(fù)責(zé)讀黑框框里面的東西和往黑框框上面打東西的!

旁邊的久遠(yuǎn)吃了一塊炸雞,嘟嘟噥噥地抱怨你這樣說明誰聽得懂。

“食物,沒收?。?!”


“那么,第一行的#include<iostream>講完了。就是在庫里面找一個(gè)叫iostream主要負(fù)責(zé)輸入輸出的文件,并且啪地貼到你代碼的開頭?!?/p>

剎那思考了一下,說到:“就是調(diào)庫而已?”

“初學(xué)者就這么理解吧,反正初學(xué)者基本次次都會(huì)寫上的?;疽院竽阋幌胗檬裁聪到y(tǒng)提供的東西,都需要檢查一下看看相應(yīng)的‘頭文件’你是否寫在了開頭。沒寫,到時(shí)候編譯器看到你用的東西會(huì)很迷惑不知道是什么,但是寫上了以后因?yàn)閷?duì)應(yīng)的頭文件會(huì)貼在你程序的開頭,所以機(jī)器會(huì)提前看到你用的東西?!?/p>

“就是用別人寫過的代碼嘛,我知道。”

“那么下一行代碼?!?/p>


“雖說我很不想把它稱之為‘函數(shù)’,但是很多翻譯都這么翻譯的所以算了。比起Function我更傾向于Procedure?!?/p>

(???)

“就相當(dāng)于你把一些要干的事情集中在一塊,然后宏觀上面抽象一下而已?!?/p>

“呃那個(gè)...我更迷糊了?!?/p>

“那我問你,把一個(gè)大象關(guān)進(jìn)冰箱里面要幾步?”

“哦那個(gè)經(jīng)典的腦筋急轉(zhuǎn)彎嗎?3步啊,打開冰箱門,把大象塞進(jìn)去,關(guān)上冰箱門?!?/p>

“沒錯(cuò),程序可以是長這個(gè)樣子:”


void pushElephantIntoFridge() {

????openFridgeDoor();

????pushElephant();

????closeFridgeDoor();

}


“那么我接著問,把長頸鹿塞進(jìn)冰箱門要幾步?”

“4步啊,打開門,把大象拿出來,長頸鹿塞進(jìn)去,關(guān)門。”

“很好。示例程序我也不寫了。我再問一個(gè)問題,叢林開運(yùn)動(dòng)會(huì),有誰沒參加?”

“大象和長頸鹿啊,一個(gè)凍感冒了一個(gè)還在冰箱里?!?/p>

“Bingo~你應(yīng)該注意到了,因?yàn)榈谝粏栍绊懥吮涞臓顟B(tài),所以第二問的結(jié)果和第一問不徑相同吧。第三問則更有影響了?!?/p>

“的確?!?/p>

“數(shù)學(xué)上的‘函數(shù)’是純函數(shù),也就是輸入值一樣輸出值就一樣。而計(jì)算機(jī)里面更傾向于過程,相同的過程但是因?yàn)橹暗牟僮饔绊懥撕芏鄸|西,所以體現(xiàn)出來的東西也不太相同?!?/p>

“那么,讓我們進(jìn)入編程的一大重點(diǎn)概念:‘過程’吧!”


“吾徒剎那喲,你還記得一個(gè)簡單的CPU模型能干哪幾類事情嗎?”

“呃...計(jì)算,訪存,分支跳轉(zhuǎn),以及其他?”

“差不多。因?yàn)?strong>寄存器小而快,內(nèi)存大而慢,所以計(jì)算通常是計(jì)算寄存器里存的數(shù)值,訪存則是內(nèi)存與寄存器之間的數(shù)據(jù)交換,可存可??;最后一個(gè)分支跳轉(zhuǎn)則代表可以根據(jù)數(shù)據(jù)以及計(jì)算結(jié)果來動(dòng)態(tài)決定執(zhí)行哪些代碼,可謂核心之一?!?/p>

“比如剎那,你現(xiàn)在要計(jì)算1+2+3+...+100,應(yīng)該怎么辦?”

“直接輸出5050就可以了啊。”

被彈了額頭。

“那1+2+3+...+n呢?”

“那輸出n*(n+1)/2.”

“那輸出平方和?”

“平方和公式?jīng)]背。”

凜音拿出紙扇狠狠地扇在了剎那的腦瓜子上?!熬筒荒苡闷渌k法嗎?”

“呃...比如寫個(gè)流程圖?算1加1,算2加2,每次都判斷一下是不是已經(jīng)加到了n?”

“大致是這個(gè)想法。這其實(shí)就是一個(gè)過程了?!?/p>


久遠(yuǎn)在旁邊邊泡杯面邊抱怨到:“喲呵語法都還沒講就開始講算法了?”

啊好香。

久遠(yuǎn):“別想了沒多的了。”

凜音:“這樣啊,那我和剎那醬分了沒你的份了?!?/p>

久遠(yuǎn):“誒?!啊拿回來?。?!”


凜音指了指開水壺:“人類的一大文明就是抽象思考。比方說,倒水是一個(gè)過程,那么所有需要水的時(shí)候是不是都可以拿起水壺執(zhí)行‘倒水’這個(gè)動(dòng)作了呢?”

“所以凜音醬想說什么?”

“比方說現(xiàn)在全班40人每人都要泡面,然后你寫代碼讓機(jī)器人給每個(gè)人倒水,你是寫40次‘倒水’還是寫1次倒水然后再循環(huán)叫它干40次呢?”

“感覺沒差啊?”

“假設(shè)‘倒水’寫起來非常復(fù)雜?倒水這么多筆畫,循環(huán)你只需要畫個(gè)箭頭寫個(gè)x40?”

“那肯定是循環(huán)叫它干40次啊?!?/p>

“沒錯(cuò),這就是‘過程’的核心——把相同的邏輯放在一起?!?/p>

“畫個(gè)箭頭計(jì)算機(jī)就能理解了?”

“不要在意這些細(xì)節(jié)~”


凜音和剎那很快解決掉了泡面,把悲痛欲絕地說著“那可是限定版蛋黃醬口味的嗚嗚嗚”的久遠(yuǎn)曬在了一邊。

“在所有的過程中,有個(gè)過程是老大,它的名字叫main?!?/p>

“mian?剛才我們吃的不是面嗎?”

らららラーメン、大好き、セツナさん~

“main!就想著吃!main代表著入口點(diǎn)。程序從這里開始執(zhí)行(雖然這句話嚴(yán)格意義上講不對(duì)不過改正是以后的事情了),一切從這里開始?!?/p>

“因?yàn)楝F(xiàn)在的程序比較簡單,所以就一個(gè)過程就行了?!?/p>

“還請(qǐng)注意一下main過程的寫法。再寫成mian的話下次搶久遠(yuǎn)桑的泡面就不分給你吃了?!?/p>

久遠(yuǎn):“誒還要搶老娘的泡面?!”


int main() {

}


凜音拍了拍白板?!癷nt表示整數(shù),整個(gè)單詞是integer,表示這個(gè)過程返回一個(gè)整數(shù)。”

剎那側(cè)頭:“返回?”

凜音:“學(xué)過函數(shù)吧。y=2x?!?/p>

剎那:“這是個(gè)線性函數(shù)?”

凜音:“我輸入1總該出個(gè)2吧?”

剎那:(恍然大悟然后思索)“你之前寫的推冰箱的void是什么意思?”

凜音:“void意即虛空,表示沒有要返回的數(shù)據(jù)。比方說你干一系列事情干完就完了也沒有什么要額外匯報(bào)的。”

剎那:“那出問題了呢?”

凜音:“就你事多!”

剎那:“那一個(gè)程序執(zhí)行完了也不需要匯報(bào)什么吧,為什么返回值是int?”

凜音:“你這個(gè)返回值是給操作系統(tǒng)或者父程序看的,也就是別的程序可以通過你main函數(shù)返回值來判斷你的運(yùn)行狀況,所以有用的?!?/p>

剎那:(似懂非懂)

凜音:“總之你把它當(dāng)固定搭配記吧!”

出現(xiàn)了!英語老師的大殺器——固定搭配!


“int后面跟著的main是過程名,表示這個(gè)過程叫main?!?/p>

“面~(流口水)”

咚——

剎那委屈地捂著頭上的包。

“main后面跟著兩個(gè)小括號(hào),注意是半角,編程里面全用半角!不要開著輸入法編程!兩個(gè)小括號(hào)里面寫參數(shù),因?yàn)閙ain過程用不到(以后會(huì)用到再說)所以沒有參數(shù),空著不寫就行。最后跟一對(duì)半角大括號(hào)?!?/p>

“參數(shù)?”

“y=2x?!?/p>

“我懂了,x是參數(shù)吧。”

“流石吾徒?!?/p>

“接下來是這一行:”

std::cout<<"Hello, Setsuna"<<std::endl;

“這一塊解釋起來會(huì)很復(fù)雜,因?yàn)樯婕暗较?—— 當(dāng)多的東西?!?/p>

“我先講一下std吧。我先問個(gè)問題,假設(shè)有100個(gè)人一起寫一個(gè)程序,然后不是要給變量命名嘛。”

點(diǎn)頭。

“那100個(gè)人能保證取的名字都不一樣嗎?”

“唔...不提前溝通的話難吧,但是至少可以比如把自己的名字寫在變量名之前?比如 剎那_變量1 和 凜音_變量1 之類的?”

“很好,吾徒已經(jīng)明白了?!臻g’就是在說這樣的事。”

“哦哦?。∫簿褪钦f,庫的開發(fā)者把所有的東西加了 std 這個(gè)前綴,所以別人寫代碼就不會(huì)重名了?”

“不錯(cuò),今天結(jié)束了我請(qǐng)飲料?!?/p>

“誒嘿嘿~”

“std是standard的縮寫。意即標(biāo)準(zhǔn)庫。cout則是console out的合并簡寫,表示控制臺(tái)輸出。至于為什么用<<這個(gè)奇怪的符號(hào)..還真勞煩先死記吧,這是后面的內(nèi)容了。你可以在后面串起來寫很多個(gè)<<也沒人管,然后用""括起來你想寫的內(nèi)容就可以了。最后這個(gè)std::endl是換行,比較好理解,記住就行。”


“那么接下來就是這個(gè) return 0; 了。字面意思,過程結(jié)束,返回值0,表示程序正常運(yùn)行?!?/p>

哆咪來嗦,嗦來咪哆——

完全放學(xué)鈴打響了。

久遠(yuǎn):“看來剎那的天平還沒寫出來呢。凜音回去不買菜吧?別被人忽悠了。”

凜音:“要你管!”

如何用輕小說的方式學(xué)C++(二) 天秤(上)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
诏安县| 安庆市| 巍山| 南通市| 库伦旗| 库尔勒市| 临清市| 永定县| 兴业县| 澎湖县| 嫩江县| 赣榆县| 临江市| 勐海县| 吉隆县| 普洱| 宁蒗| 吴江市| 新巴尔虎左旗| 松溪县| 高密市| 山东| 鄂伦春自治旗| 新余市| 南阳市| 壶关县| 玛多县| 永胜县| 东乌| 武宁县| 讷河市| 耒阳市| 安顺市| 清徐县| 商洛市| 洪湖市| 乌拉特后旗| 普宁市| 武鸣县| 潼关县| 湖州市|