版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第一章初識C+語言 第一節(jié)C+語言簡介 第二節(jié)C+語言程序結(jié)構(gòu)第一節(jié)C+語言簡介 信息學(xué)奧林匹克競賽是一項益智性的競賽活動,核心是考查選手的智力和使用計算機解題的能力,選手首先應(yīng)針對競賽題目的要求構(gòu)建數(shù)學(xué)模型,進而構(gòu)造出計算機可以接受的算法,之后編寫出計算機能夠執(zhí)行的程序。程序設(shè)計是信息學(xué)競賽的基本功,選手參與競賽活動的第一步是熟練掌握一門程序設(shè)計語言,目前競賽中允許使用的程序設(shè)計語言有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個關(guān)鍵字和9種控制語句,程序書寫自由,主要用小寫字母表示。運算符豐富C+語言的運算符包含的范圍很廣泛,共有34個運算符。數(shù)據(jù)結(jié)構(gòu)豐富C+語言的數(shù)據(jù)類型有:整型、實型、字符型、數(shù)組類型等等結(jié)構(gòu)化語言結(jié)構(gòu)化語言的顯著特點是代碼及數(shù)據(jù)的分隔化,即程序的各個部分除了必要的信息交流外彼此獨立。生成的代碼質(zhì)量高C+語言在代碼效率方面可以和匯編語言相媲美??梢浦残詮奀+語言編寫的程序很容易進行移植,在一個環(huán)境下運行的程序不加修改或少許修改就可以
3、在完全不同的環(huán)境下運行。C+程序結(jié)構(gòu) 在介紹C+語言程序的結(jié)構(gòu)之前,我們先來看一個簡單的例子:例1.1 在屏幕上輸出“Hello World!”。#include /使用cin,cout,須調(diào)用iostream 庫,否則編譯出錯#include / 使用system( )調(diào)用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)調(diào)用cstdlib庫return 0; /結(jié)束整個程序運行結(jié)果:Hello World!【說明】:1、以“/”開頭為注釋行,“/”后的內(nèi)容用以對語句進行說明,輸入程序時可以不輸入。2、#include告訴編譯器的預(yù)處理器將輸入輸出流的標準頭文件(iostream)包括在本程序中。這個頭文件包括了C+中定義的基本標準輸入輸出程序庫的聲明。3、using namespace std使用std(標準)名字空間的意思。所謂的名字空間是標準C+中的一種機制,用來控制不同類庫的沖突問題。使用它可以在不同的空間內(nèi)使用相同名字的類或者函數(shù)。4、int main( )這一行為主函數(shù)(main functio
5、n)的起始聲明。main()是所有C+程序的運行的起始點。不管它是在代碼的開頭,結(jié)尾還是中間,此函數(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).此時屏幕右下側(cè)出現(xiàn)一片白色區(qū)域,稱為“源程序編輯區(qū)域” ;可以在此輸入程序。如(圖5)所示。注意: 1必須在英文輸入環(huán)境下編輯程序(如果你當前能在程序編輯區(qū)輸入中文,說明你是在中文輸入環(huán)境下。為了輸入程序,你必須切換到英文輸入環(huán)境下)。 2在4.99以前的版本的Dev-C+環(huán)境下,為了查看程序運行結(jié)果,需要在main函數(shù)的return語句前加上:system(pause)或ge
7、tchar( ),這樣程序運行到該語句時,結(jié)果顯示屏幕將會停留,讓大家有時間看程序的輸出結(jié)果。否則結(jié)果顯示屏幕將會一閃而過。在4.99之后的版本可不必加該語句,運行結(jié)束后結(jié)果顯示屏幕將自動停留。圖5源程序編輯區(qū)#includeusing namespace std;int main ( )三、 保存源程序到硬盤一個好的習(xí)慣是創(chuàng)建了一個新程序后,在還未輸入代碼之前先將該程序保存到硬盤某個目錄下,然后在程序的編輯過程中經(jīng)常性地保存程序,以防止機器突然斷電或者死機。要保存程序,只需從主菜單選擇“文件”保存”就可以將文件保存到指定的硬盤目錄。如圖6所示。圖6保存此時會彈出一個對話框。在此你需要指定文件
8、要存放的磁盤目錄(例如: D:temp),自定文件名稱(例如:ex1)以及保存類型。在點擊右下角的保存按鈕后,在D盤上的temp目錄下將會出現(xiàn)一個名為ex1.cpp的源文件。 四、編譯、運行 編譯:從主菜單選“運行”“編譯運行”或快捷鍵“F9”(圖7)。如果程序中存在詞法、語法等錯誤,則編譯過程失敗。編譯器會在屏幕右下角的“Compile Log”標簽頁中顯示錯誤信息,如(圖8)所示,并且將源程序相應(yīng)的錯誤行標成紅色底色。圖8圖7 五、調(diào)試程序1設(shè)置程序斷點通過預(yù)處理、編譯和鏈接的程序僅僅是該程序中沒有詞法和語法等錯誤,而無法發(fā)現(xiàn)程序深層次的問題(譬如算法不對導(dǎo)致結(jié)果不正確)。當程序運行出錯時
9、,需要找出錯誤原因。仔細讀程序來尋找錯誤固然是一種方法,但是有時光靠讀程序已經(jīng)解決不了問題,此時需要借助于程序調(diào)試(Debug)手段。這是一種有效的排錯手段,每一位同學(xué)都需要掌握。如果想讓程序運行到某一行前能暫停下來,就需要將該行設(shè)成斷點。具體方法是在代碼所在行行首單擊,該行將被加亮。默認的加亮顏色是紅色。如果想取消不讓某行代碼成為斷點,則在代碼行首再次點擊即可。2運行程序設(shè)置斷點后,此時程序運行進入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)”等(具體含義見下面的介紹)。在學(xué)習(xí)函數(shù)之前,一般用的是Next Step和Continue。學(xué)習(xí)函數(shù)后,還會用到Step Into。4設(shè)置watch窗口在調(diào)試程序時,可能要看程序運行過程中變量的值,以檢測程序?qū)ψ兞康奶幚硎欠裾_,可以在調(diào)試時通過調(diào)試菜單下的添加變量(Add Watch)窗口來增加變量watch,新增的變量將會顯示在最左邊Explore的Debug頁中。如果左邊Explore中的當前頁不是De
11、bug頁,則可以點擊Debug標簽使之成為當前頁。第二節(jié)C+語言程序結(jié)構(gòu)無論做任何事情,都要有一定的方式方法與處理步驟,所謂“無規(guī)矩?zé)o以成方圓”。計算機程序設(shè)計比日常生活中的事務(wù)處理更具有嚴謹性、規(guī)范性和可行性。為了使計算機有效地解決實際問題,必須將處理步驟編排好,用計算機能理解的計算機語言編寫成“序列”,讓計算機自動識別并執(zhí)行這個“序列”,達到解決實際問題的目的。將處理問題的步驟編排好,用計算機語言組成序列,就是常說的編寫程序。在C+語言中,執(zhí)行每條語句都是由計算機完成相應(yīng)的具體操作,編寫程序是利用C+語句的功能來實現(xiàn)預(yù)定的處理要求。“千里之行,始于足下”,我們從簡單程序?qū)W起,逐步了解和掌握
12、怎樣編寫程序。在學(xué)習(xí)C+語言之前,讓我們繞過那些繁瑣的語法規(guī)則細節(jié),通過一些簡單的例題,來熟悉程序的基本組成和基本語句的用法,選手剛接觸編程時,多動手模仿是一條捷徑。例1.2 在梯形中陰影部分面積是150平方厘米,求梯形面積?!痉治觥?已知梯形上、下底長為15和25。令梯形的高為h,則由已知三角形面積為150平方厘米,有150(15*h)/2,得h為20,然后根據(jù)梯形面積公式算出梯形面積。程序如下: #include /printf和scanf調(diào)用cstdio庫,在C語言中可調(diào)用stdio.h庫#include / 使用system( )調(diào)用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( )調(diào)用stdlib.h庫 r
14、eturn 0; /結(jié)束程序,在TC+和VC+中也要保留運行結(jié)果:s=400.00 【說明】:所謂namespace,是指標識符的各種可見范圍。C+標準程序庫中的所有標識符都被定義于一個名為std的namespace中。當使用時,相當于在C中調(diào)用庫函數(shù),使用的是全局命名空間,也就是早期的C+實現(xiàn);當使用的時候,該頭文件沒有定義全局命名空間,必須使用namespace std;這樣才能正確使用cout、cin和endl。例1.3 已知一位小朋友的電影票價是10元,計算x位小朋友的總票價是多少?【分析】 假設(shè)總票價用y來表示,則這個問題可以用以下幾個步驟來實現(xiàn):輸入小朋友的數(shù)目x;用公式y(tǒng)=10*
15、x計算總票價;輸出總票價y的值。程序如下:#include /使用cin,cout,須調(diào)用iostream庫using namespace std;int main() int x,y; /定義整型變量 coutx; /小朋友的人數(shù) y=10*x; /計算總票價 couttotal=yendl; /輸出總票價 return 0; /結(jié)束程序 【說明】: 1、int定義x,y為整型變量,有關(guān)整型變量將在第二章詳細介紹。2、coutx的作用是輸入一個數(shù),賦予變量x。 4、couttotal=yendl的作用是輸出提示符total=,輸出y的值,endl是換行的意思。 通過以上例1.2和例1.3兩個
16、例子,可以總結(jié)出C+語言程序的結(jié)構(gòu)如下:1)C+語言變量在使用之前必須先定義其數(shù)據(jù)類型,未經(jīng)定義的變量不能使用。2)程序由一個或多個函數(shù)組成,一個程序中必須有且只有一個主函數(shù),主函數(shù)的名字為main。不論main()函數(shù)在程序中什么位置,程序都是從main()函數(shù)開始執(zhí)行,main()函數(shù)執(zhí)行完畢,程序也就結(jié)束了。3)在程序中可以調(diào)用系統(tǒng)提供的庫函數(shù)。在調(diào)用庫函數(shù)之前,必須將相應(yīng)頭文件包含在程序中。4)程序中可以有注釋行。注釋是為了使程序更易于理解和提示。5)程序的語句以分號結(jié)束。分號是C+語言不可缺少的組成部分。6)程序的書寫要注意適當?shù)目s進,一般采用“逐層縮進”形式,以便使程序更加清晰易讀
17、。 把處理問題的步驟編成能從上到下順序執(zhí)行的程序,是簡單程序的基本特征。再來分析下面一道例題的程序結(jié)構(gòu),同時繼續(xù)學(xué)習(xí)基本語句。例1.4 有一個牧場,牧場上的牧草每天都在勻速生長,這片牧場可供15頭牛吃20天,或可供20頭牛吃10天,那么,這片牧場每天新生的草量可供幾頭牛吃1天?【分析】解決這類問題的關(guān)鍵是利用牛吃的草量,最終求出這片牧場每天新生長的草量,我們設(shè)1單位的草量為1頭牛1天所需的草量,于是15頭牛20天所食的草量為300單位(包括這20天內(nèi)的新生草量),20頭牛10天所食的草量為200單位(包括這10天內(nèi)的新生草量),兩者的差值即為10天內(nèi)的新生草量。程序如下:#include /使
18、用cin,cout,須調(diào)用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; /結(jié)束程序 運行結(jié)果:s=10 【Dev C+版本注意事項】 在5.0版本Dev C+中,不是萬能庫,不包括cstdio,cstring,cstdlib,其他常用的min, max函數(shù)也不保證包括,需要注意如下幾個細節(jié): 、getchar(),stdin,stdout,freopen(),fclose(), scanf()在c+中需要調(diào)用 、memset()需要包含C頭文件,在c+中需要調(diào)用 、qsort(),exit()需要包含C頭文件,在c+中需要調(diào)用 在5.0版本C+中,根據(jù)標準去除了iostream對cstdio, cstring, algorithm的依賴性,需要顯式包括。你現(xiàn)在還可能不透徹理解以上注意事項,就慢慢消化吧,在信息學(xué)奧賽中一定要注意以上細節(jié),請記?。骸凹毠?jié)決定成敗”。【上機練習(xí)】1.輸入三個數(shù),計算并輸出它們的平均值以及三個數(shù)的乘積,寫出程序
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024新能源公交車運營協(xié)議
- 2024年離婚協(xié)議書反悔案例分析
- 2024年物流裝卸服務(wù)協(xié)議
- 不銹鋼欄桿包工料合同范本
- 中國勞動關(guān)系學(xué)院《老年健康照護和促進》2023-2024學(xué)年第一學(xué)期期末試卷
- 專業(yè)化噴泉維修服務(wù)協(xié)議模板下載版B版
- 2024年財務(wù)戰(zhàn)略咨詢合作合同版B版
- 乙炔知識培訓(xùn)課件
- 酒店行業(yè)保安工作總結(jié)
- 汽車行業(yè)促銷策略總結(jié)
- 高中體育與健康人教版全一冊 形意強身功 課件
- 高中語文《勸學(xué)》課件三套
- 人教版一年級數(shù)學(xué)上冊-教材分析
- 【企業(yè)盈利能力探析的國內(nèi)外文獻綜述2400字】
- 佳能相機PowerShot SX60 HS使用說明書
- 《遙感原理與應(yīng)用》-課程教學(xué)大綱
- GB/T 44311-2024適老環(huán)境評估導(dǎo)則
- 板材加工轉(zhuǎn)讓協(xié)議書模板
- GB 44506-2024人民警察警徽
- 2024年海南省中考歷史試題
- Siemens WinCC:WinCC趨勢圖與歷史數(shù)據(jù)技術(shù)教程.Tex.header
評論
0/150
提交評論