版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第一章C語言程序設(shè)計基礎(chǔ)知識
以封魔錄游戲中的具體功能描述流程圖以封魔錄游戲中的具體代碼描述C語言程序設(shè)計的基本知識1.1引言1.1.1計算機與信息社會計算機定義:一種在事先存入程序的控制下,能夠接收數(shù)據(jù)、存儲數(shù)據(jù)、處理數(shù)據(jù)并提供處理結(jié)果的數(shù)字化電子設(shè)備。計算機工作流程圖輸入運算與控制存儲輸出數(shù)據(jù)計算機結(jié)果1.1.2計算機中信息的表示
1.計算機內(nèi)所有信息采用二進制表示
2.采用二進制的原因:
1)二進制只包含0和1,可以使用具有兩種不同穩(wěn)定狀態(tài)的元件來表示。
2)二進制數(shù)的運算規(guī)則簡單,使得計算機中的運算部件的結(jié)構(gòu)也比較簡單。3.計算機中信息的表示數(shù)值直接轉(zhuǎn)換為二進制字符采用ASCII編碼(7位、美國標準信息交換碼)其它信息(漢字、圖形、圖象、聲音、表格)也有相應(yīng)的編碼標準和規(guī)則。
計算機系統(tǒng)軟件系統(tǒng)硬件系統(tǒng)系統(tǒng)軟件(操作系統(tǒng)、編譯程序、診斷程序系統(tǒng)服務(wù)軟件等)應(yīng)用軟件(信息管理軟件、游戲等)CPU控制器運算器輸入設(shè)備(鍵盤、鼠標、手寫筆、MIC等)輸出設(shè)備(顯示器、繪圖儀、打印機等)存儲器內(nèi)存儲器(RAM)外存儲器(硬盤、U盤、光盤)1.1.3計算機系統(tǒng)的組成HIT-CProgramming
C程序的程序設(shè)計步驟Whattodo?可執(zhí)行文件擴展名為.exe的文件
需求分析(Analysis)設(shè)計(Design)編碼(Write)編輯(Edit)編譯(Compile)連接(Link)運行(Run)調(diào)試(Debug)Howtodo?擴展名為.c的文件擴展名為.obj的文件開發(fā)C程序的步驟1.設(shè)計算法2.編寫程序源代碼把自己的意圖寫入源代碼3.編輯源程序4.編譯和連接5.調(diào)試程序
直到改正了所有的編譯錯誤和運行錯誤6.運行程序例子1輸入一個整數(shù),輸出其絕對值算法:1輸入一個整數(shù);2若該數(shù)為正數(shù),則其絕對值取該數(shù)的值
否則,其絕對值取該數(shù)的相反數(shù)值;3輸出其絕對值。程序#include<stdio.h>
void
main(){
intnumb;/*代表一個整數(shù)*/
intabs;/*代表運算結(jié)果:絕對值*/
scanf(“%d”,&numb);/*輸入整數(shù)的值*/
if(numb>0)abs=numb;
elseabs=-numb;
printf(“numb的絕對值是:%d\n”,abs);}例子2封魔錄游戲主界面功能選擇算法:1初始化(令hang=0;ch=1等);
2如果處于第5個功能項且字符ch等于回車符,跳到第6步;
3顯示5個功能項;
4輸入一個字符ch;5如果字符ch等于’s’(向下),則選擇下一功能項(hang增加2),其中如果已經(jīng)處于第5個功能項,不再往下選。否則如果字符ch等于’w’(向上),則選擇上一功能項(hang減少2),其中如果已經(jīng)處于第1個功能項,不再往上選。跳到第2步;
6結(jié)束程序intmain(void){ charch=1;//輸入的字符,初始設(shè)為1。 inthang=0;//用來控制光標的行位置。共有0,2,4,6,
8//四個有效值,初始設(shè)為0,即處于第1個功能項
//調(diào)用DOS命令;title為命令提示符窗口創(chuàng)建標題。 system("title封魔錄"); system("colorf1");//color設(shè)置顏色
while(!(hang==8&&ch==13))//循環(huán)選擇。 {
//顯示5個功能項
if(hang==0)gotoxy(20,8); printf("%c%c",16,16); gamedifficult_show(); gotoxy(22,8); printf("開始游戲"); gotoxy(22,10); printf("按鍵設(shè)置"); gotoxy(22,12); printf("難度設(shè)置"); gotoxy(22,14); printf("游戲制作"); gotoxy(22,16); printf("退出");
ch=getch();//無回顯獲取一個字符;
if(ch==key_down)//’s’
{
hang=hang+2;
if(hang>8)hang=hang-2;
gotoxy(20,6+hang);printf("");
gotoxy(20,8+hang);printf("%c",16);
}
elseif(ch==key_up)//’w’
{
hang=hang-2;
if(hang<0)hang=hang+2;
gotoxy(20,10+hang);printf("");
gotoxy(20,8+hang);printf("%c",16);
}
}
}程序的靈魂—算法一個程序應(yīng)包括:對數(shù)據(jù)的描述:在程序中要指定數(shù)據(jù)的類型和數(shù)據(jù)的組織形式即數(shù)據(jù)結(jié)構(gòu)(datastructure)對操作的描述:數(shù)據(jù)進行操作的具體步驟,即算法(algorithm)程序構(gòu)成公式NikiklausWirth提出的公式:
程序=數(shù)據(jù)結(jié)構(gòu)+算法目前已經(jīng)修改為程序=算法+數(shù)據(jù)結(jié)構(gòu)
+程序設(shè)計方法+語言工具和環(huán)境
算法及其表示算法:解決問題所采取的一系列步驟例,要求計算圓的面積,算法為:
設(shè)置(輸入或指定)半徑值r;使用公式s=лr2;顯示(輸出)S的值。算法的特點(1)有輸入算法可以有零個或多個輸入。在一個算法的執(zhí)行過程中,提供需處理的數(shù)據(jù)或控制算法執(zhí)行過程的信息。(2)有輸出算法必須具有一個或多個執(zhí)行結(jié)果的輸出。沒有輸出的算法是一個無效的算法。算法的特點(3)有窮性任何算法都應(yīng)該在執(zhí)行有窮步驟之后結(jié)束。(4)確定性算法不能具有二義性。算法中每一步的語義都應(yīng)該清晰明了,明確指出應(yīng)該執(zhí)行什么操作,如何執(zhí)行操作。算法的特點(5)高效性根據(jù)算法編寫出來的程序應(yīng)具有較高的時空效率:執(zhí)行時間短不占用過多內(nèi)存。算法的表示(描述)自然語言表示易理解和交流,但易產(chǎn)生二義性。偽代碼表示偽代碼使用介于自然語言和計算機語言之間的文字和符號來描述算法
算法的表示(描述)程序流程圖用圖形符號和文字說明來表示數(shù)據(jù)處理的過程和步驟。N-S流程圖也稱方框圖;適于結(jié)構(gòu)化程序設(shè)計的算法描述工具。程序流程圖描述算法的良好工具。邏輯框和流向線組成。邏輯框是表示功能的圖形符號流向線指示邏輯處理順序邏輯框和流向線NY流程圖的邏輯框起止框表示程序的開始和結(jié)束。處理框表示一種處理功能或程序段,框內(nèi)用文字簡述其功能。邏輯框判斷框表示在此進行判斷以決定程序的流向,框內(nèi)注明判斷條件。連接框框內(nèi)注有字母,當流程圖跨頁時,或者可能出現(xiàn)流向線交叉時,用它來表示彼此之間的關(guān)系,相同符號的連接框表示它們是相互連接的。流向線流向線以單向箭頭表示。N-S流程圖1973年美國學(xué)者Nassi和Schneiderman提出N-S流程圖(也稱為方框圖),它是一種適于結(jié)構(gòu)化程序設(shè)計的算法描述工具。由于流程圖各步驟之間,一般總是按照從上到下順序執(zhí)行(N-S流程圖中取消了流向線)二選一結(jié)構(gòu)的表示ABYN滿足不滿足AB編寫程序
算法用C語言進行實現(xiàn),該過程也稱對算法進行編碼;按照算法的流程順序編寫程序;編寫程序還必須進行語句執(zhí)行過程的控制。語言提供的控制結(jié)構(gòu)1.順序:定義了語句按順序執(zhí)行的次序。2.選擇:根據(jù)某個條件的結(jié)果,對多條語句,選擇執(zhí)行其中的一條語句。3.循環(huán)(重復(fù)):根據(jù)某個條件的結(jié)果,重復(fù)執(zhí)行某些語句。4.調(diào)用:即在需要時運行指定的代碼段。C語言程序的基本結(jié)構(gòu)#include<stdio.h>
void
main(){
數(shù)據(jù)定義;(變量說明語句);
數(shù)據(jù)處理;(執(zhí)行語句);}數(shù)據(jù)結(jié)構(gòu)算法程序說明每個C程序必須有一個主函數(shù)main{
}是函數(shù)開始和結(jié)束的標志若需要輸入和/或輸出功能,程序開頭應(yīng)該為
#include<stdio.h>
#include<stdio.h>
void
main(){
printf(“我可以設(shè)計程序了.\n”);}
程序簡例程序的作用是輸出一行信息:我可以設(shè)計程序了.自然語言描述:
1輸入一個整數(shù);2若該數(shù)為正數(shù),則其絕對值取該數(shù)的值
否則,其絕對值取該數(shù)的相反數(shù)值;3輸出其絕對值。例子1輸入一個整數(shù),輸出其絕對值算法偽碼表示BEGINREADnumbIFnumb>0abs=numbELSEabs=-numbPRINTabsENDBEGINREADnumbIFnumb<0numb=-numbPRINTnumbEND對比程序流程圖
---學(xué)生當場畫BEGINREADnumbnumb>0abs=numbabs=-numbPRINTabsENDYN程序#include<stdio.h>
void
main(){
intnumb;/*代表一個整數(shù)*/
intabs;/*代表運算結(jié)果:絕對值*/
scanf(“%d”,&numb);/*輸入整數(shù)的值*/
if(numb>0)abs=numb;
elseabs=-numb;
printf(“numb的絕對值是:%d\n”,abs);}例子2封魔錄游戲主界面功能選擇算法自然語言描述:1初始化(令hang=0;ch=1等);
2如果處于第5個功能項且字符ch等于回車符,跳到第6步;
3顯示5個功能項;
4輸入一個字符ch;5如果字符ch等于’s’(向下),則選擇下一功能項(hang增加2),其中如果已經(jīng)處于第5個功能項,不再往下選。否則如果字符ch等于’w’(向上),則選擇上一功能項(hang減少2),其中如果已經(jīng)處于第1個功能項,不再往上選。跳到第2步;
6結(jié)束偽代碼BEGINSET0→hangSET1→chWHILEch==13andhang==8arenotsatisfiedBEGINDISPLAY5functionitems
READachardatatochfromkeyboard
IFch==‘s’then
hang+2→hang IFhang>8thenhang-2→hang SELECTthecorrespondingfunctionitem ELSEIFch==‘w’thenhang-2→hang IFhang<0thenhang+2→hang SELECTthecorrespondingfunctionitem END_IFEND_WHILEEND程序流程圖描述算法BEGINch==‘s’YNENDYNhang==8&&ch==13YNSET:0→hang,1→chDISPLAY5functionsREADchhang>8hang+2→hanghang-2→hangSELECTtheitemNNYNYNch==‘w’YNhang-2→hanghang+2→hangSELECTtheitemNNYNhang<0程序intmain(void){ charch=1;//輸入的字符,初始設(shè)為1。 inthang=0;//用來控制光標的行位置。共有0,2,4,6,
8//四個有效值,初始設(shè)為0,即處于第1個功能項
//調(diào)用DOS命令;title為命令提示符窗口創(chuàng)建標題。 system("title封魔錄"); system("colorf1");//color設(shè)置顏色
while(!(hang==8&&ch==13))//循環(huán)選擇。 {
//顯示5個功能項
if(hang==0)gotoxy(20,8); printf("%c%c",16,16); gamedifficult_show(); gotoxy(22,8); printf("開始游戲"); gotoxy(22,10); printf("按鍵設(shè)置"); gotoxy(22,12); printf("難度設(shè)置"); gotoxy(22,14); printf("游戲制作"); gotoxy(22,16); printf("退出");
ch=getch();//無回顯獲取一個字符;
if(ch==key_down)//’s’
{
hang=hang+2;
if(hang>8)hang=hang-2;
gotoxy(20,6+hang);printf("");
gotoxy(20,8+hang);printf("%c",16);
}
elseif(ch==key_up)//’w’
{
hang=hang-2;
if(hang<0)hang=hang+2;
gotoxy(20,10+hang);printf("");
gotoxy(20,8+hang);printf("%c",16);
}
}
}注釋“/*……*/”、“//”表示注釋。注釋是對源程序進行的注解,增加程序的可讀性;對編譯和運行不起作用。庫函數(shù)C語言(編譯器)提供了許多基本的、常用的功能;分別保存在不同的文件中;以函數(shù)形式提供給程序員使用;庫函數(shù)分類(1)I/O功能,需要的包含文件:stdio.h
如:printf,scanf等。(2)字符(串)處理功能,string.h如:islower,strcat,strcmp,strlen等。(3)數(shù)學(xué)功能,math.h
如:sin,cos,exp,log,sqrt等。庫函數(shù)分類(4)時間、日期功能,time.h
如:time()(5)動態(tài)存儲分配,alloc.h…C程序的結(jié)構(gòu)特點
C程序由函數(shù)(模塊)構(gòu)成;C程序可由一個或多個函數(shù)組成,其中必須有且僅有一個main函數(shù);C程序在執(zhí)行中可調(diào)用由C語言提供的各種標準庫函數(shù)和用戶自定義的函數(shù)。編程風(fēng)格1、通常使用小寫英文字母;2、充分利用注釋功能,增加可讀性;3、程序中的各語句組按功能和嵌套關(guān)系縮進編排,使程序的模塊和復(fù)合關(guān)系明顯;4、注意花括號對齊和配對;5、適當空格和空行可使程序更加清晰
字母是程序中的最小單位,是構(gòu)成其他語法單位的基礎(chǔ)。C規(guī)定的合法字符集是ASCII碼字符集。C語言字母表(字符集)C語言單詞符號標識符關(guān)鍵字運算符常量(分)界符標識符——例子2中的hang、gotoxy等程序員對于使用的常量、變量、函數(shù)、語句標號、類型定義等進行命名的字符串。只能由字母、下劃線和數(shù)字組成,并以字母和下劃線開始。非法:5class、m*n、studentname、int
見名知意:如sum、volume、result大小寫字母有別:name不同于Name關(guān)鍵字(保留字、基本字)——例子2中的int、char、include、if、else等對某些標識符,語言規(guī)定其具有特定的含義;不能另作他用。關(guān)鍵
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 課題申報參考:教育治理視域下師德問責制度化研究
- 課題申報參考:江南風(fēng)景攝影的審美范式及其傳統(tǒng)轉(zhuǎn)化研究
- 課題申報參考:價值醫(yī)療視角下安寧療護經(jīng)濟可持續(xù)性機理解析及促進機制設(shè)計
- 二零二五版道路照明設(shè)施節(jié)能補貼申請合同4篇
- 2025年度大型商場裝修設(shè)計與施工一體化承包合同范本4篇
- 2025年金昌b2貨運資格證多少道題
- 二零二五年度輪胎產(chǎn)品綠色環(huán)保認證服務(wù)合同4篇
- 基于云計算的2025年度企業(yè)級應(yīng)用集成合同3篇
- 中介和房東的委托協(xié)議 2篇
- 二零二五年度商業(yè)綜合體消防安全與安保服務(wù)合同3篇
- 道路瀝青工程施工方案
- 《田口方法的導(dǎo)入》課件
- 承包鋼板水泥庫合同范本(2篇)
- 人教版(2024年新教材)七年級上冊英語Unit 7 Happy Birthday 單元整體教學(xué)設(shè)計(5課時)
- DLT 572-2021 電力變壓器運行規(guī)程
- 公司沒繳社保勞動仲裁申請書
- 損傷力學(xué)與斷裂分析
- 2024年縣鄉(xiāng)教師選調(diào)進城考試《教育學(xué)》題庫及完整答案(考點梳理)
- 車借給別人免責協(xié)議書
- 應(yīng)急預(yù)案評分標準表
- “網(wǎng)絡(luò)安全課件:高校教師網(wǎng)絡(luò)安全與信息化素養(yǎng)培訓(xùn)”
評論
0/150
提交評論