]]>榪愮畻絎﹂噸杞?鍙嬪師鍑芥暟(緇撴瀯浣撱佺被鍜岃繍綆楃閲嶈澆)http://www.shnenglu.com/sixleaves/archive/2014/08/29/208178.htmlswpswpFri, 29 Aug 2014 08:31:00 GMThttp://www.shnenglu.com/sixleaves/archive/2014/08/29/208178.htmlhttp://www.shnenglu.com/sixleaves/comments/208178.htmlhttp://www.shnenglu.com/sixleaves/archive/2014/08/29/208178.html#Feedback0http://www.shnenglu.com/sixleaves/comments/commentRss/208178.htmlhttp://www.shnenglu.com/sixleaves/services/trackbacks/208178.html鏈榪戝湪緇冧範綆楁硶銆佽寰楁湁蹇呰鎬葷粨涓婥++榪欐柟闈㈢殑鐭ヨ瘑錛孋++紜疄鏄鏉傦紝but i love it銆?/span>
絎竴錛氳繍綆楃閲嶈澆鐨勫熀鏈簲鐢ㄣ傜浜岋細榪愮畻絎﹂噸杞戒簬鍙嬪師鍑芥暟鐨勫叧緋匯傜涓夛細緇撴瀯浣撲簬綾誨叧浜庤繍綆楃閲嶈澆鐨勫尯鍒傞鍏堟垜闇瑕佹櫘鍙婁笅鍩烘湰鐨勭煡璇嗭細 棰勫鐭ヨ瘑錛?/span>operator(鎿嶄綔絎?銆乷perand(鎿嶄綔鏁?銆佽〃杈懼紡 琛ㄨ揪寮忔槸鐢辨搷浣滅鍜屾搷浣滄暟鏋勬垚鐨勶紝鑰屼笖涓鑸瘡涓〃杈懼紡閮芥湁鍓綔鐢紝騫朵笖閮芥湁緇撴灉錛堝叧娉ㄧ粨鏋滃拰鍓綔鐢級銆備粈涔堟剰鎬濓紵
鍏充簬鍓綔鐢ㄧ殑鐞嗚В錛氬叾瀹炲氨鏄湪杈懼埌緇撴灉鐨勮繖涓繃紼嬩腑鎵鍋氱殑涓浜涗簨鎯咃紝鑰岃繖浜涗簨鎯呬駭鐢熶簡涓浜涘獎鍝嶏紝浣嗘槸涓嶅獎鍝嶇粨鏋溿?/span>
濂藉儚鏈夌偣緇曘佺湅鐪嬩緥瀛愬湪鐞嗚В鍚с?/span>
鐪嬩緥瀛愶細
int a = 1,b=2,c; c = a + b;
鍦ㄨ繖孌典唬鐮侀噷闈紝c = a + b;灝辨槸琛ㄨ揪寮忋佸叾涓?= 銆?+ 鍙堢О涓烘搷浣滅銆乧銆乤銆乥鍙堢О涓烘搷浣滄暟銆傚叾緇撴灉灝辨槸璁$畻鍑轟簡a+b鐨勫鹼紝鍓綔鐢ㄦ病鏈夈?/span>
鍙堟瘮濡傦細
cout << "Helloe" << endl;鍏朵腑 <<鏄搷浣滅銆乧out銆?helloe"銆乪ndl鏄搷浣滄暟銆?lt;<鐨勭粨鏋滄槸榪斿洖浜唎stream鐨勫紩鐢紝鑰屽壇浣滅敤灝辨槸灝?Helloe"杈撳嚭鍒板睆騫曘?/span>
絎竴錛氳繍綆楃閲嶈澆鐨勫熀鏈簲鐢ㄣ?/strong> 鐪嬪涓嬩唬鐮侊細
1 #include <iostream> 2 3usingnamespace std; 4 5class Point { 6private: 7double x,y; 8public: 9 Point(double x = 0, double y = 0):x(x),y(y) { 10 11 } 12 Point operator+(const Point &p) const{//榪欑鏄渶鍩烘湰鐨勬柟寮忋佸叾鏈川鏄仛鎿嶄綔鏁拌皟鐢╫perator+鍑芥暟 13 Point temp; 14 temp.x = this->x + p.x; 15 temp.y = this->y + p.y; 16return temp; 17 } 18/* 19 ostream& operator<<(ostream& out) { 20 out << x << " " << y; 21 return out; 22 } 23*/ 24 friend ostream& operator<<(ostream& out, Point & p); 25 }; 26///* 27ostream& operator<<(ostream& out, Point & p) { 28out << p.x <<" "<< p.y; 29returnout; 30 } 31//*/ 32 33int main() { 34 35 Point a(1,5); 36 Point b(5,7); 37 Point c; 38 c = a + b; 39//c << cout << endl; 40 cout << c << endl; 41return 0; 42 }
]]>sixleaves涔婣C++鏉傝皥褰曠2绔?<<寰幆鍜岃鏁?gt;> http://www.shnenglu.com/sixleaves/archive/2014/02/21/205872.htmlswpswpFri, 21 Feb 2014 08:21:00 GMThttp://www.shnenglu.com/sixleaves/archive/2014/02/21/205872.htmlhttp://www.shnenglu.com/sixleaves/comments/205872.htmlhttp://www.shnenglu.com/sixleaves/archive/2014/02/21/205872.html#Feedback0http://www.shnenglu.com/sixleaves/comments/commentRss/205872.htmlhttp://www.shnenglu.com/sixleaves/services/trackbacks/205872.html榪欑珷鎴戝啓寰楁湁鐐規ュ垏錛屽簲涓轟箣鍓岰++瀛﹁繃錛屾湁浜涙蹇典竴璺寵岃繃錛岀湅涓嶆噦鐨勶紝鍙互寰涓嬫壘綰㈣壊瀛椾綋澶勫紑濮嬶紙浠庡驚鐜笉鍙樺紡鍒嗘瀽澶勫紑濮嬬殑鍒嗘瀽錛屽啀鍥炲ご鏉ョ湅榪欎釜錛夈?br />
1 #include <iostream> 2 #include <string> 3 4int main() { 5//ask for the person's name 6 std::cout << "Please enter your first name: "; 7 8//read the name 9 std::string name; 10 std::cin >> name; 11 12//build the message that we intend to write 13const std:;string greeting = "Hello, " + name + "!"; 14 15//we have to rewrite this part 16 }
#
#鍒嗘瀽錛氭垜浠幇鍦ㄩ渶瑕侀噸鍐欙紙閲嶆瀯//we have...鍚庨潰鐨勪唬鐮侊級錛屽簲璇ヨ繖鏍鋒濊冿紝浠ュ墠鐨勯偅涓▼搴忎笉鍏峰濂界殑鍙墿灞曟э紝涓轟粈涔堝憿錛熼鍏堝鏋滆姹傝緭鍏ョ殑妗嗘灦緙栫▼10琛岋紙絀虹櫧#琛屽彉鎴?0琛岋級錛屽悗闈㈢殑浠g爜涔呰澶氬姞寰堝琛岋紝涓琛岃鐨勮繘琛岃緭鍑恒傝繖鏃舵垜浠彲浠ョ敤寰幆瀵逛唬鐮佽繘琛岄噸鏋勩傛垜浠厛鍒嗘瀽錛屽湪greeting涓婁笅絀虹櫧琛屽彧鏈変竴琛岋紝鎵浠ユ垜浠敤pad
#琛ㄧず絀虹櫧琛岋紝鑰屾葷殑琛屾暟涓? * pad + 3錛堝ご灝懼姞greeting閭h錛夈傝繖鏍鋒垜浠氨鍙互璁╃▼搴忚緭鍑轟換鎰忓琛屻備簬鏄湁濡備笅浠g爜
int r = 0; //setting r to 0 makes the invariant true
while(r != rows) { //we can assume that the invariant is true here //waiting a row of output makes the invariant false std::cout << std::endl; //incrementing r makes the invariant true again r++;
} //we can conclude that the invariant is true here
#棣栧厛浣犲簲璇ユ兂涓鎯寵紜繚涓嶅彉寮忓緇堜負true錛屽彧瑕佺‘淇濆湪寰幆榪涘叆鐐逛負true錛屼竴嬈″驚鐜粨鏉熺偣涓簍rue錛岄偅涔堣繖涓笉鍙樺紡涔呮案榪滀負true錛寀nderstand錛熷鏋滆繕涓嶇悊瑙o紝鍏堝惂鎴戣 #鐨勮繖鍙ヨ瘽鐞嗚В浜嗭紝鍦ㄧ戶緇線涓嬬湅錛屼笉鐒朵綘涓嶇煡閬撴垜鍦ㄨ浠涔堜笢瑗? #鎴戜滑鐨勪笉鍙樺紡灝辨槸涓婅堪鏂█invariant:we have written r rows so far #鎴戜滑鍒嗘瀽榪囷紝涓嶅彉寮忕殑涓や釜鏂偣錛屼竴涓鍦ㄥ紑澶達紝涓涓湪緇撳熬錛屾墍浠ュ紑澶存椂r = 0銆傛鏃剁▼搴忎竴琛屼篃娌¤緭鍑猴紝涓嶅彉寮忎負true錛屽湪緇撳熬澶剅++鍚庯紝浠嶄負true錛屼負浠涔堝憿錛熶婦涓緥瀛愶紝r = 0錛岃繘鏉ヤ箣鍚庯紝灝嗚緭鍑轟竴琛岋紝鎵浠ユ鏃秗涓嶅簲璇ュ湪涓?錛岃屽簲璇ヤ負1. #榪欐槸姣忎竴琛岃緭鍑虹殑妗嗘灦錛岃漿鎹㈡垚for寰幆灝辨槸涓婇潰鐩稿簲鐨勪唬鐮侊紝鑰岃嚦浜庡彟澶栦竴涓驚鐜竴鏍蜂釜閬撶悊銆?br />#涓嬮潰鍐嶄粙緇嶄竴涓噸瑕佺殑姒傚康錛岃繖涓蹇墊垜涔嬪墠榪樼湡娌″濂斤紝鐪嬪畬鍚庯紝鎭嶇劧澶ф偀錛屽ぇ嫻嬪ぇ鎮熼樋錛侀偅灝辨槸寰幆鏃剁殑璁℃暟闂銆?br /> #鍦–涓瑿++涓垜浠啓寰幆緇忓父鏄噸int i = 0錛屼粠0寮濮嬫槸涓嶏紵灝辯畻鏄紝浣犳槸涓嶆槸緇忓父榪欐牱鍐檉or(int i = 0; i <= number; i++);浣嗘槸鏇村ソ鐨勫啓娉曞簲璇ユ槸for(int i = 0; i #!= number; i++);涓轟粈涔堝憿錛熻鍚垜鎱㈡參閬撴潵. #棣栧厛鎴戜滑鐭ラ亾鍦ㄤ笉瀵圭О鍖洪棿[0, rows)璁℃暟鐨勮瘽錛屽緢鏄庢樉灝辨槸rows涓暟錛屼絾鏄鏋滀綘浣跨敤鐨勬槸瀵圭О鍖洪棿錛孾num,rows]鍒欐湁rows - num + 1涓暟錛屾槸涓嶆槸寰堜笉鏄庢樉錛屽啀鍒欎粠0寮 #濮嬩竴鐩簡鐒訛紝鍒浣犵湅涓嶅嚭鏉ワ紝鎴戝湪涓句釜渚嬪瓙錛?錛?6],鍜孾21,86]鍝竴涓綘鑳藉揩閫熷垽鏂嚭鏈夊嚑涓暟銆?br /> #鏈夌殑浜哄張璇達紝榪欑畻浠涔堥樋錛屾垜浠?寮濮嬭礉[1,66]錛屼笉灝卞綆椾竴涓暟涔堬紝涔犳儻灝卞ソ銆傛垜鎯寵錛屼綘璇寸殑娌$矖錛屼絾鎴戞噿錛岀敤涓嶅縐板尯闂磋窡鍧楃畻鍑猴紝鏇翠笉浼氬嚭閿欍傚湪鍒欙紝鐢ㄤ笉瀵圭О鍖洪棿鐨勫ソ #澶勬槸瀹規槗鍜宨nvariant錛堝驚鐜笉鍙樺紡錛夌浉緇撳悎錛屼緥濡傦紝濡傛灉浣犱粠1寮濮嬭鏁幫紝鏈夌殑浜烘兂鎴戜滑鎶婁笉鍙樺紡鏀規垚鐜板湪杈撳嚭絎瑀琛岋紝浣嗘槸榪欐牱鏄笉鑳戒綔涓轟竴涓笉鍙樺紡鐨勶紝鎵璋撲笉鍙樺紡錛屽氨鏄?br /> #榪欎釜鏂█姘歌繙姝g‘錛屼絾鏄綋浣犵粨鏉熷驚鐜椂r = rows + 1錛屽氨鍙樻垚浜嗚緭鍑虹rows + 1琛岋紝浣嗚繖涓笉鍙樺紡灝卞彉鎴愰敊鐨勯笩錛寀nderstand銆?br /> #鍐嶅垯鎴戜滑閫夎咃紒=鑰屼笉鏄?lt;=鏉ヤ綔涓烘瘮杈冩搷浣滅銆傝繖涓樊鍒緢灝忥紝浣嗘槸寰堜笉涓鏍鳳紝鍓嶈咃紝寰幆緇撴潫鏃訛紙鍙娌℃湁鍦ㄥ驚鐜噷break錛夛紝灝辮兘鍒ゆ柇姝ゆ椂r = rows錛屼絾鏄鏋滄槸鍚庤咃紝鎴? #浠繖鑳借瘉鏄庤嚦灝戣緭鍑轟簡rows琛岋紝涓哄暐錛熷洖蹇嗕笅瀛﹁繃鐨刴ath錛?lt;=,鏄粈涔堟剰鎬濓紵 #榪樻湁涓鏉″ソ澶勶紝鎴戝氨涓嶇綏鍡︿簡錛岀患涓婃墍灞烇紝浣犲彲浠ュ彂鐜頒粠0寮濮嬭鏁扮殑濂藉錛侊紝鎯沖綋涓鏃訛紝鍦ㄥ啓閾捐〃鏃訛紝灝辨槸鍥犱負榪欎釜璁℃暟闂錛岃嚜宸變篃鏁翠簡涓瘉鏄庢柟娉曪紝鍝堝搱錛屾瘡鎯沖埌鏃╁氨鏈夋洿 #綆鍗曠殑鏂瑰紡浜嗐?br />#鏈漢鎵嶇枏瀛︽祬錛岀湅涓嶆噦鐨勶紝鍙互鐣欒█璁ㄨ涔嬨?img src ="http://www.shnenglu.com/sixleaves/aggbug/205872.html" width = "1" height = "1" />
]]>sixleaves涔婣C++鏉傝皥褰曠1绔?<<浣跨敤瀛楃涓?gt;>http://www.shnenglu.com/sixleaves/archive/2014/02/20/205856.htmlswpswpThu, 20 Feb 2014 12:38:00 GMThttp://www.shnenglu.com/sixleaves/archive/2014/02/20/205856.htmlhttp://www.shnenglu.com/sixleaves/comments/205856.htmlhttp://www.shnenglu.com/sixleaves/archive/2014/02/20/205856.html#Feedback0http://www.shnenglu.com/sixleaves/comments/commentRss/205856.htmlhttp://www.shnenglu.com/sixleaves/services/trackbacks/205856.html
浠g爜濡備笅
1// ask for person's name, and greet the person 2 3 #include <iostream> 4 #include <string> 5 6int main() { 7//ask for the person's name 8 std::cout << "Please enter your first name: "; 9 10//read the name 11 std::string name; 12 std::cin >> name; 13 14//write a greeting 15 std::cout << "Hello, " << name << "!" << std::endl; 16return 0; 17 }
#name灝辨槸涓涓彉閲忥紙瀹冪殑綾誨瀷鏄痵td::string錛夛紝鑰屽彉閲忔槸涓涓湁鍚嶅瓧鐨勫璞★紙鍙橀噺涓瀹氭槸瀵硅薄錛屼絾瀵硅薄涓嶄竴瀹氫負鍙橀噺錛屽洜涓哄璞″彲浠ユ病鏈夊悕瀛楋紝鑰屼笖瀵硅薄瀵瑰簲緋葷粺涓殑涓鍧楀唴瀛橈級銆?br />
#line 11錛氭槸涓涓猟efinition錛屽嵆鏄竴涓畾涔夛紝瀹氫箟浜嗕竴涓悕鍙仛name鐨剆td::string綾誨瀷鐨勫彉閲忋傝屼笖鍑虹幇鍦ㄤ竴涓嚱鏁版彁涓紝鎵浠ユ槸涓涓猯ocal variable錛屽綋紼嬪簭鎵ц鏀懼埌}錛屽氨浼氶攢姣乶ame鍙橀噺錛屽茍涓旈噴鏀緉ame鍗犵敤鐨勫唴瀛橈紝浠ヨ鍏朵粬鍙橀噺浣跨敤銆?br />
#line 12錛?gt;>浠庢爣鍑嗚緭鍏ヤ腑璇誨彇涓涓瓧絎︿覆錛屽茍涓斾繚瀛樺畠鍦╪ame瀵硅薄涓傚綋閫氳繃鏍囧噯搴撹鍙栦竴涓瓧絎︿覆鏃訛紝浠栦細蹇界暐杈撳叆涓殑鎵鏈夌┖鐧界錛岃屽惂鍏朵粬瀛楃璇誨彇鍒皀ame涓紝鐩村埌瀹冮亣鍒板叾浠栫┖鐧界鎴栬呮枃浠剁粨鏉熸爣蹇椼傚洜姝td::cin >> name;鐨勭粨鏋滄槸浠庢爣鍑嗚緭鍏ヤ腑璇誨彇涓涓崟璇嶃?br />
#杈撳叆杈撳嚭搴撲細鎶婂畠鐨勮緭鍑轟繚瀛樺湪buffer鐨勫唴閮ㄦ暟鎹粨鏋勪笂錛岄氳繃緙撳瓨鍙互浼樺寲杈撳嚭鎿嶄綔銆傦紙鍥犱負璁稿鎿嶄綔緋葷粺鍦ㄥ悜杈撳嚭璁懼鍐欏叆瀛楃鏃墮渶瑕佽姳澶ч噺鐨勬椂闂達級
#鏈変笁涓簨浠朵細淇冧嬌緋葷粺鍒鋒柊緙撳啿鍖恒?br />
#絎竴錛岀紦瀛樺尯婊′簡錛岃嚜鍔ㄥ埛鏂般?br />
#絎簩錛屾爣鍑嗗簱琚姹傝鍙栨爣鍑嗚緭鍏ユ祦銆傦紙鍗硈td::cin鏄痵td::istream綾誨瀷錛夈傚line 12.
#絎笁錛屾樉紺虹殑瑕佹眰鍒鋒柊緙撳啿銆傦紙std::endl緇撴潫浜嗚緭鍑鴻錛屽茍涓斿埛鏂扮紦鍐插尯)
# 1//ask for a person's name, and generate a framed greeting
2 #include <iostream> 3 #include <string> 4 5int main() { 6 std::cout << "Please enter your first name: "; 7 std::string name; 8 std::cin >> name; 9//build the message that we intend to write 10const std::string greeting = "Hello, " + name + "!"; 11 12//build the second and fourth lines of the input 13const std::string spaces(greeting.size(), ' '); 14const std::string second = "* " + spaces + " *"; 15 16//build the first and fifth lines of the output 17const std::string first(second.size(), '*'); 18 19//write it all 20 std::cout << std::endl; 21 std::cout << first <<std::endl; 22 std::cout << second << std::endl; 23 std::cout << "* " << greeting << " *" << std::endl; 24 std::cout << second << std::endl; 25 std::cout << first << std::endl; 26 27return 0; 28 }