版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、第一章初識C+語言 第一節(jié)C+語言簡介 第二節(jié)C+語言程序結構第一節(jié)C+語言簡介 信息學奧林匹克競賽是一項益智性的競賽活動,核心是考查選手的智力和使用計算機解題的能力,選手首先應針對競賽題目的要求構建數(shù)學模型,進而構造出計算機可以接受的算法,之后編寫出計算機能夠執(zhí)行的程序。程序設計是信息學競賽的基本功,選手參與競賽活動的第一步是熟練掌握一門程序設計語言,目前競賽中允許使用的程序設計語言有C語言、C+語言、Pascal。C+ 語言概述 C+由美國AT&T貝爾實驗室的本賈尼斯特勞斯特盧普博士在20世紀80年代初期發(fā)明并實現(xiàn)(最初這種語言被稱作“C with Classes”帶類的C)。開始,C+是
2、作為C語言的增強版出現(xiàn)的,從給C語言增加類開始,不斷的增加新特性。今天C+已成為世界主流編程語言之一。C+ 語言的特點 語言簡潔緊湊,使用靈活方便C+語言一共只有32個關鍵字和9種控制語句,程序書寫自由,主要用小寫字母表示。運算符豐富C+語言的運算符包含的范圍很廣泛,共有34個運算符。數(shù)據(jù)結構豐富C+語言的數(shù)據(jù)類型有:整型、實型、字符型、數(shù)組類型等等結構化語言結構化語言的顯著特點是代碼及數(shù)據(jù)的分隔化,即程序的各個部分除了必要的信息交流外彼此獨立。生成的代碼質量高C+語言在代碼效率方面可以和匯編語言相媲美??梢浦残詮奀+語言編寫的程序很容易進行移植,在一個環(huán)境下運行的程序不加修改或少許修改就可以
3、在完全不同的環(huán)境下運行。C+程序結構 在介紹C+語言程序的結構之前,我們先來看一個簡單的例子:例1.1 在屏幕上輸出“Hello World!”。#include /使用cin,cout,須調用iostream 庫,否則編譯出錯#include / 使用system( )調用cstdlib庫using namespace std; /在C語言中要省略,例如在VC+和TC+中int main() /有的C語言可用void main(),例如TC+和VC+coutHello World!endl; /輸出Hello World! system(pause); /暫停作用,使用system(paus
4、e)調用cstdlib庫return 0; /結束整個程序運行結果:Hello World!【說明】:1、以“/”開頭為注釋行,“/”后的內(nèi)容用以對語句進行說明,輸入程序時可以不輸入。2、#include告訴編譯器的預處理器將輸入輸出流的標準頭文件(iostream)包括在本程序中。這個頭文件包括了C+中定義的基本標準輸入輸出程序庫的聲明。3、using namespace std使用std(標準)名字空間的意思。所謂的名字空間是標準C+中的一種機制,用來控制不同類庫的沖突問題。使用它可以在不同的空間內(nèi)使用相同名字的類或者函數(shù)。4、int main( )這一行為主函數(shù)(main functio
5、n)的起始聲明。main()是所有C+程序的運行的起始點。不管它是在代碼的開頭,結尾還是中間,此函數(shù)中的代碼總是在程序開始運行時第一個被執(zhí)行。所有C+程序都必須有一個main(),int main()前int在Dev C+中可省略,在TC+和VC+中最好保留。main后面跟了一對圓括號( ),表示它是一個函數(shù)。C+中所有函數(shù)都跟有一對圓括號( ),括號中可以有一些輸入?yún)?shù)。注意,圓括號括號中即使什么都沒有也不能省略。如例題中顯示,主函數(shù)main()中的內(nèi)容,由一對花括號 括起來。 5、cout Hello World! Environment Options” (如圖3),在彈出的對話框中選擇
6、第二個標簽頁”interface”(如圖4),在Language下拉列表中選擇Chinese即可,將操作界面改為中文的。圖3 圖4二、新建源程序1)從主菜單選擇“文件” “新建” “源代碼”即可(如圖2所示)。圖22).此時屏幕右下側出現(xiàn)一片白色區(qū)域,稱為“源程序編輯區(qū)域” ;可以在此輸入程序。如(圖5)所示。注意: 1必須在英文輸入環(huán)境下編輯程序(如果你當前能在程序編輯區(qū)輸入中文,說明你是在中文輸入環(huán)境下。為了輸入程序,你必須切換到英文輸入環(huán)境下)。 2在4.99以前的版本的Dev-C+環(huán)境下,為了查看程序運行結果,需要在main函數(shù)的return語句前加上:system(pause)或ge
7、tchar( ),這樣程序運行到該語句時,結果顯示屏幕將會停留,讓大家有時間看程序的輸出結果。否則結果顯示屏幕將會一閃而過。在4.99之后的版本可不必加該語句,運行結束后結果顯示屏幕將自動停留。圖5源程序編輯區(qū)#includeusing namespace std;int main ( )三、 保存源程序到硬盤一個好的習慣是創(chuàng)建了一個新程序后,在還未輸入代碼之前先將該程序保存到硬盤某個目錄下,然后在程序的編輯過程中經(jīng)常性地保存程序,以防止機器突然斷電或者死機。要保存程序,只需從主菜單選擇“文件”保存”就可以將文件保存到指定的硬盤目錄。如圖6所示。圖6保存此時會彈出一個對話框。在此你需要指定文件
8、要存放的磁盤目錄(例如: D:temp),自定文件名稱(例如:ex1)以及保存類型。在點擊右下角的保存按鈕后,在D盤上的temp目錄下將會出現(xiàn)一個名為ex1.cpp的源文件。 四、編譯、運行 編譯:從主菜單選“運行”“編譯運行”或快捷鍵“F9”(圖7)。如果程序中存在詞法、語法等錯誤,則編譯過程失敗。編譯器會在屏幕右下角的“Compile Log”標簽頁中顯示錯誤信息,如(圖8)所示,并且將源程序相應的錯誤行標成紅色底色。圖8圖7 五、調試程序1設置程序斷點通過預處理、編譯和鏈接的程序僅僅是該程序中沒有詞法和語法等錯誤,而無法發(fā)現(xiàn)程序深層次的問題(譬如算法不對導致結果不正確)。當程序運行出錯時
9、,需要找出錯誤原因。仔細讀程序來尋找錯誤固然是一種方法,但是有時光靠讀程序已經(jīng)解決不了問題,此時需要借助于程序調試(Debug)手段。這是一種有效的排錯手段,每一位同學都需要掌握。如果想讓程序運行到某一行前能暫停下來,就需要將該行設成斷點。具體方法是在代碼所在行行首單擊,該行將被加亮。默認的加亮顏色是紅色。如果想取消不讓某行代碼成為斷點,則在代碼行首再次點擊即可。2運行程序設置斷點后,此時程序運行進入debug狀態(tài)。要想運行程序,就不能使用主菜單“Execute”“Run”,而是需要用主菜單“Debug”“Debug”(或者按快捷鍵F8),如圖12所示。 3單步執(zhí)行程序要想運行藍色底色的代碼,
10、可以使用圖14所示的“Next Step( F7)”、“Step Into(Shift F7)”、“Continue(Ctrl F7)”,“Run to Cursor(Shift F4)”等(具體含義見下面的介紹)。在學習函數(shù)之前,一般用的是Next Step和Continue。學習函數(shù)后,還會用到Step Into。4設置watch窗口在調試程序時,可能要看程序運行過程中變量的值,以檢測程序對變量的處理是否正確,可以在調試時通過調試菜單下的添加變量(Add Watch)窗口來增加變量watch,新增的變量將會顯示在最左邊Explore的Debug頁中。如果左邊Explore中的當前頁不是De
11、bug頁,則可以點擊Debug標簽使之成為當前頁。第二節(jié)C+語言程序結構無論做任何事情,都要有一定的方式方法與處理步驟,所謂“無規(guī)矩無以成方圓”。計算機程序設計比日常生活中的事務處理更具有嚴謹性、規(guī)范性和可行性。為了使計算機有效地解決實際問題,必須將處理步驟編排好,用計算機能理解的計算機語言編寫成“序列”,讓計算機自動識別并執(zhí)行這個“序列”,達到解決實際問題的目的。將處理問題的步驟編排好,用計算機語言組成序列,就是常說的編寫程序。在C+語言中,執(zhí)行每條語句都是由計算機完成相應的具體操作,編寫程序是利用C+語句的功能來實現(xiàn)預定的處理要求。“千里之行,始于足下”,我們從簡單程序學起,逐步了解和掌握
12、怎樣編寫程序。在學習C+語言之前,讓我們繞過那些繁瑣的語法規(guī)則細節(jié),通過一些簡單的例題,來熟悉程序的基本組成和基本語句的用法,選手剛接觸編程時,多動手模仿是一條捷徑。例1.2 在梯形中陰影部分面積是150平方厘米,求梯形面積?!痉治觥?已知梯形上、下底長為15和25。令梯形的高為h,則由已知三角形面積為150平方厘米,有150(15*h)/2,得h為20,然后根據(jù)梯形面積公式算出梯形面積。程序如下: #include /printf和scanf調用cstdio庫,在C語言中可調用stdio.h庫#include / 使用system( )調用cstdlib庫using namespace st
13、d; /在C語言中要省略,例如在VC+和TC+中int main() /有的C語言可用void main(),例如TC+和VC+ /整個程序開始 float s,h,up,down; / float定義s,h,up,down為單精度實型變量 up=15; /已知上底 down=25; /已知下底 h=2*150/up; /根據(jù)上底求出梯形的高 s=(up+down)*h/2; /求出梯形的面積 printf(s=%0.2fn,s);/ n是換行控制符,0.2f按實際位數(shù)輸出,保留2位小數(shù) system(pause); /暫停作用,TC+和VC+中使用system( )調用stdlib.h庫 r
14、eturn 0; /結束程序,在TC+和VC+中也要保留運行結果:s=400.00 【說明】:所謂namespace,是指標識符的各種可見范圍。C+標準程序庫中的所有標識符都被定義于一個名為std的namespace中。當使用時,相當于在C中調用庫函數(shù),使用的是全局命名空間,也就是早期的C+實現(xiàn);當使用的時候,該頭文件沒有定義全局命名空間,必須使用namespace std;這樣才能正確使用cout、cin和endl。例1.3 已知一位小朋友的電影票價是10元,計算x位小朋友的總票價是多少?【分析】 假設總票價用y來表示,則這個問題可以用以下幾個步驟來實現(xiàn):輸入小朋友的數(shù)目x;用公式y(tǒng)=10*
15、x計算總票價;輸出總票價y的值。程序如下:#include /使用cin,cout,須調用iostream庫using namespace std;int main() int x,y; /定義整型變量 coutx; /小朋友的人數(shù) y=10*x; /計算總票價 couttotal=yendl; /輸出總票價 return 0; /結束程序 【說明】: 1、int定義x,y為整型變量,有關整型變量將在第二章詳細介紹。2、coutx的作用是輸入一個數(shù),賦予變量x。 4、couttotal=yendl的作用是輸出提示符total=,輸出y的值,endl是換行的意思。 通過以上例1.2和例1.3兩個
16、例子,可以總結出C+語言程序的結構如下:1)C+語言變量在使用之前必須先定義其數(shù)據(jù)類型,未經(jīng)定義的變量不能使用。2)程序由一個或多個函數(shù)組成,一個程序中必須有且只有一個主函數(shù),主函數(shù)的名字為main。不論main()函數(shù)在程序中什么位置,程序都是從main()函數(shù)開始執(zhí)行,main()函數(shù)執(zhí)行完畢,程序也就結束了。3)在程序中可以調用系統(tǒng)提供的庫函數(shù)。在調用庫函數(shù)之前,必須將相應頭文件包含在程序中。4)程序中可以有注釋行。注釋是為了使程序更易于理解和提示。5)程序的語句以分號結束。分號是C+語言不可缺少的組成部分。6)程序的書寫要注意適當?shù)目s進,一般采用“逐層縮進”形式,以便使程序更加清晰易讀
17、。 把處理問題的步驟編成能從上到下順序執(zhí)行的程序,是簡單程序的基本特征。再來分析下面一道例題的程序結構,同時繼續(xù)學習基本語句。例1.4 有一個牧場,牧場上的牧草每天都在勻速生長,這片牧場可供15頭牛吃20天,或可供20頭牛吃10天,那么,這片牧場每天新生的草量可供幾頭牛吃1天?【分析】解決這類問題的關鍵是利用牛吃的草量,最終求出這片牧場每天新生長的草量,我們設1單位的草量為1頭牛1天所需的草量,于是15頭牛20天所食的草量為300單位(包括這20天內(nèi)的新生草量),20頭牛10天所食的草量為200單位(包括這10天內(nèi)的新生草量),兩者的差值即為10天內(nèi)的新生草量。程序如下:#include /使
18、用cin,cout,須調用iostream庫using namespace std;int main() int s1,s2,s3; /變量定義 s1=15*20; /15頭牛20天所食的草量 s2=20*10; /20頭牛10天所食的草量 s3=(s1-s2)/(20-10); /每天新生的草量單位數(shù) couts=s3endl; /1單位為1頭牛1天的食量 return 0; /結束程序 運行結果:s=10 【Dev C+版本注意事項】 在5.0版本Dev C+中,不是萬能庫,不包括cstdio,cstring,cstdlib,其他常用的min, max函數(shù)也不保證包括,需要注意如下幾個細節(jié): 、getchar(),stdin,stdout,freopen(),fclose(), scanf()在c+中需要調用 、memset()需要包含C頭文件,在c+中需要調用 、qsort(),exit()需要包含C頭文件,在c+中需要調用 在5.0版本C+中,根據(jù)標準去除了iostream對cstdio, cstring, algorithm的依賴性,需要顯式包括。你現(xiàn)在還可能不透徹理解以上注意事項,就慢慢消化吧,在信息學奧賽中一定要注意以上細節(jié),請記?。骸凹毠?jié)決定成敗”?!旧蠙C練習】1.輸入三個數(shù),計算并輸出它們的平均值以及三個數(shù)的乘積,寫出程序
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 網(wǎng)絡安全投標售后保障
- 玩具店內(nèi)部裝修工裝施工合同
- 礦石材料標簽規(guī)范
- 車站監(jiān)控系統(tǒng)施工合同
- 農(nóng)業(yè)用肥料標簽管理辦法
- 鋁廠混凝土施工合同
- 咨詢公司財務規(guī)劃策略
- 環(huán)保技術開發(fā)招標辦法
- 酒類批發(fā)市場衛(wèi)生條例
- 溫泉公園施工合同
- 智慧管網(wǎng)建設整體解決方案
- 2024-2025學年高中英語學業(yè)水平合格性考試模擬測試題三含解析
- 【長安的荔枝中李善德的人物形象分析7800字(論文)】
- 2024-2030年中國神經(jīng)外科行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略分析報告
- 生物安全風險評估報告
- 抖音直播代播合同范本
- 戈19商務方案第十九屆玄奘之路戈壁挑戰(zhàn)賽商務合作方案
- 2024高考政治真題-哲學-匯集(解析版)
- 對承租方有利的商鋪租賃合同
- 投標突發(fā)事件應急預案
- EPC項目土建設計的重難點分析及解決措施
評論
0/150
提交評論