第二課:學習C++的基本語句引子:上節課給大家介紹了如何在Windows環境下安裝開發環境,如果您還沒有開發環境,即先看看第一節。這裡在開課前給初學者說幾句課外話:題外話1: 初學者初學,最好不用VC的整合式開發環境(IDE),IDE有它的優點,但初學這個優點您還用不上。如果您不是初學者,請飄過。題外話2:為什麼要給初學者用cygwin,而不是其它? 優點1: 它在windows下就可以用,windows大家都很熟悉。 優點2: cygwin提高的g++編譯器,比較符合C++標準。 優點3: 用命令列方式能更好的瞭解C++,能有助於你將來用IDE,更有助於將來的將來你管理超大的項目。太大的項目IDE維護起來很吃力。 說話題外話,我們先說本節課將給大家介紹的內容: 本節課只給大家C++的基本語句,讓大家對“編程寫”有一個感性認識,同時加深對編程過程的瞭解。 不管是什麼複雜的程式,也不管是程式設計語言,最終都可以分解為三種程式結構:1) 順序執行;2) 分支執行;3) 迴圈執行。換句話說,再複雜的程式,都是上述三結構組合而成的。 本節課就讓大家學會這三種結果。(對著鏡子笑笑並自己說:“學了今天的知識,無論多複雜的程式我都能完成”) 還是先寫代碼吧。上節課我們讓程式給我們說“hello world”,今天要讓電腦能說”hello c++”,“hello CSDN”. 演練1: 編寫一個程式, 在命令列中輸入 ./a.exe “your name”,電腦能輸入” hello your name”.代碼: Code:
- #include <iostream>
- int main (int argc, char* argv[])
- {
- if (argc == 2)
- {
- std::cout<<"hello " << argv[1] << std::endl;
- }
- else
- {
- std::cout<< "bad command" << std::endl;
- std::cout << "the command is :" << argv[0] << " your_name"
- << std::endl;
- }
- return 0;
- }
程式碼分析通過本例,希望你能學到:1) 加深對編程過程的熟悉;2) 理解命令列參數3) 理解 if 語句4) 理解分支和順序執行. 自己動手輸入代碼試試.演練2: 編寫一個程式,在命令列中輸入 ./a.exe 2345, 讓電腦確定輸入的數是奇數還是偶數.提示: C++標準庫中提供一個函數叫 atoi(),它可以把字串(什麼是字串呢?我們以後再細說,今天的目的是學會用分支語句.代碼 Code:
- #include <iostream>
- #include <stdlib.h> //for using function atoi()
- int main (int argc, char* argv[])
- {
- if (argc == 2)
- {
- const char* parameter = argv[1];
- int val = atoi(parameter);
- if (val % 2 == 0)
- {
- std::cout << val << " " << " is even number." << std::endl;
- }
- else
- {
- std::cout << val << " " << " is odd number." <<std::endl;
- }
- }
- else
- {
- std::cout<< "bad command" << std::endl;
- std::cout << "the command is :" << argv[0] << " 1234 "
- << std::endl;
- }
- return 0;
- }
通過上面的演練,您是否理解了分支語句呢? 演練3: 編寫一個程式,在命令列中輸入 ./a.exe 5在螢幕上輸出******************** Code:
- #include <iostream>
- #include <stdlib.h> //for using function atoi()
- int main (int argc, char* argv[])
- {
- const char star = '*';
- if (argc == 2)
- {
- const char* parameter = argv[1];
- int val = atoi(parameter);
- for(int i = 0; i < val; i++)
- {
- for(int j = 0; j < val; j++)
- {
- std::cout<< star;
- }
- std::cout<<std::endl;
- }
- std::cout<<std::endl;
- }
- else
- {
- std::cout<< "bad command" << std::endl;
- std::cout << "the command is :" << argv[0] << " 1234 "
- << std::endl;
- }
- return 0;
- }
你能修改代碼,讓電腦輸入出 ./a.exe 3****** C++的迴圈語句還有while和do while,這裡就不再舉例了. 可能有些同學覺得內容太少,不過癮.~~~ 我們先易後難,並且後面可能會進度很快.我先給大家說說後面的安排吧:接下來的課程,我們會給大家講C++的資料類型, 數組,指標,函數; (2~3課不等,看同學們情況)上面的內容學完之後,會給大家講指符串,C++中的stl,包括vector,list, string什麼的 (2~3課不等,看同學們情況)再以後我們就講C++物件導向方面的了,其實我很期待物件導向編程哦. (5~10課不等,看同學們情況)學完這些,其實還有很多可以學到的,比如:用c++寫多線程的程式,寫網路程式(打算講mysql),寫網路程式. (也許有這個機會吧)