第1章 計(jì)算機(jī)與計(jì)算機(jī)程序概述_第1頁
第1章 計(jì)算機(jī)與計(jì)算機(jī)程序概述_第2頁
第1章 計(jì)算機(jī)與計(jì)算機(jī)程序概述_第3頁
第1章 計(jì)算機(jī)與計(jì)算機(jī)程序概述_第4頁
第1章 計(jì)算機(jī)與計(jì)算機(jī)程序概述_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

程序設(shè)計(jì)基礎(chǔ)教師:

葉曉霞E_mail:xiaoxia7761@Tel課程的內(nèi)容第一部分基礎(chǔ)第二部分簡單程序設(shè)計(jì)第三部分高級(jí)程序設(shè)計(jì)算法概念、編程原理、編程風(fēng)格、基本數(shù)據(jù)類型定義、算術(shù)運(yùn)算符及表達(dá)式順序結(jié)構(gòu)、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)、數(shù)組的定義及應(yīng)用、程序設(shè)計(jì)過程函數(shù)、變量的存儲(chǔ)類別、指針、結(jié)構(gòu)體與共用體、文件課程的要求、課時(shí)安排與考核課程要求:通過學(xué)習(xí)能在VC6.0環(huán)境下編程、調(diào)試C語言程序(編輯、編譯、連接、運(yùn)行程序)。側(cè)重學(xué)習(xí)一個(gè)具體問題的算法化的過程,掌握基本編程技巧以及C編程的風(fēng)格和藝術(shù)。課時(shí)安排:上課40學(xué)時(shí),上機(jī)24學(xué)時(shí)。上機(jī)時(shí)間安排:周五晚上(第7周開始)周二上午(第9周開始)考核方法:期末全院統(tǒng)考(統(tǒng)一命題、統(tǒng)一時(shí)間、統(tǒng)一閱卷)。成績:考勤(10%)+作業(yè)和實(shí)驗(yàn)(20%)+考試(70%)第1章計(jì)算機(jī)及程序設(shè)計(jì)概述計(jì)算機(jī)和計(jì)算機(jī)程序計(jì)算機(jī)的基本工作原理馮·諾依曼體系結(jié)構(gòu)計(jì)算機(jī)硬件和計(jì)算機(jī)軟件計(jì)算機(jī)硬件主機(jī):CPU+主存外部設(shè)備計(jì)算機(jī)軟件裸機(jī)要使計(jì)算機(jī)解決各種實(shí)際問題,必須有軟件的支持,計(jì)算機(jī)軟件著重研究如何管理計(jì)算機(jī)和使用計(jì)算機(jī)的問題,沒有軟件支持的計(jì)算機(jī)就是一堆廢鐵指令與程序指令指令就是計(jì)算機(jī)執(zhí)行某種操作的命令,是硬件能理解并能執(zhí)行的語言,是機(jī)器語言的一個(gè)語句,是程序員進(jìn)行程序設(shè)計(jì)的最小語言單位。指令的組成指令由操作碼和操作數(shù)構(gòu)成Mov3,reg1Mov5,reg2Addreg1,reg2End指令與程序程序程序(program)是為實(shí)現(xiàn)特定目標(biāo)或解決特定問題而用計(jì)算機(jī)語言編寫的、可以連續(xù)執(zhí)行并能夠完成一定任務(wù)的指令序列的集合。程序的開發(fā)描述問題(算法)程序設(shè)計(jì)語言計(jì)算機(jī)軟件指令與程序

程序是計(jì)算機(jī)完成某一任務(wù)的指令或語句的有序集合(由某種語言來完成),由數(shù)據(jù)和處理數(shù)據(jù)的操作組成的。數(shù)據(jù)是被操作的對(duì)象,操作的目的是對(duì)數(shù)據(jù)進(jìn)行加工處理,以得到期望的結(jié)果。操作步驟也就是算法,即求解問題的方法和步驟。我們編寫程序的過程就是程序設(shè)計(jì)。計(jì)算機(jī)程序設(shè)計(jì)語言:

簡稱為編程語言,是人與計(jì)算機(jī)之間傳遞信息的媒介,具有特定的詞法和語法規(guī)則,用于描述解決問題的方法,共計(jì)算機(jī)閱讀和執(zhí)行。機(jī)器語言匯編語言高級(jí)語言面向過程面向?qū)ο驝PU指令系統(tǒng),由0、1序列構(gòu)成的指令碼組成如:10000000加

10010000減用助記符號(hào)描述的指令系統(tǒng)如ADDA,B面向機(jī)器的語言程序設(shè)計(jì)是數(shù)據(jù)被加工的過程客觀世界可以分類,對(duì)象是類的實(shí)例對(duì)象是數(shù)據(jù)和方法的封裝對(duì)象間通過發(fā)送和接受消息發(fā)生聯(lián)系程序設(shè)計(jì)關(guān)鍵是定義類,并由類派生對(duì)象

程序設(shè)計(jì)語言計(jì)算機(jī)程序設(shè)計(jì)語言的發(fā)展難理解難記憶不使用符號(hào)語言難記憶執(zhí)行效率高使用少接近自然語言易記憶(詞/數(shù)學(xué)公式)易使用更接近自然語言人對(duì)客觀事物更高層次的抽象程序設(shè)計(jì)語言高級(jí)語言與具體的計(jì)算機(jī)指令系統(tǒng)無關(guān)的計(jì)算機(jī)語言高級(jí)語言的分類面向過程的語言C、Pascal面向?qū)ο蟮恼Z言C++、Java、.Net面向特定應(yīng)用的語言SQL翻譯程序

編譯方式:

是指利用事先編好的一個(gè)稱為編譯程序的機(jī)器語言程序,作為系統(tǒng)軟件存放在計(jì)算機(jī)內(nèi),當(dāng)用戶將高級(jí)語言源程序輸入計(jì)算機(jī)后,編譯程序便把源程序整個(gè)地翻譯成用機(jī)器語言表示的與之等價(jià)的目標(biāo)程序,然后計(jì)算機(jī)再執(zhí)行該目標(biāo)程序,以完成源程序要處理的運(yùn)算并取得結(jié)果。解釋方式:

是指源程序輸入計(jì)算機(jī)后,解釋程序?qū)υ闯绦蜻厭呙柽吔忉?,解釋一句,?jì)算機(jī)執(zhí)行一句,并不產(chǎn)生目標(biāo)程序。程序設(shè)計(jì)語言為什么學(xué)習(xí)C語言?C語言是目前實(shí)際程序設(shè)計(jì)工作中使用最廣泛的語言之一它包含了程序設(shè)計(jì)需要理解和使用的基本程序機(jī)理和主要機(jī)制掌握這些機(jī)制就可以理解程序與程序設(shè)計(jì)的主要問題。目前有許多軟件系統(tǒng)是用C編寫的,或基本上是用C編寫的學(xué)習(xí)程序設(shè)計(jì)的同時(shí)也能掌握一種實(shí)用的程序設(shè)計(jì)工具C語言是一種很靈活的語言既可以在較高層次上做,也可以在較低級(jí)的層次上做很多新型的語言都是衍生自C語言有些本身就是C語言的擴(kuò)充和發(fā)展程序設(shè)計(jì)是計(jì)算機(jī)領(lǐng)域的基礎(chǔ)課程C語言適合作為計(jì)算機(jī)領(lǐng)域許多后續(xù)課程的教學(xué)語言程序設(shè)計(jì)什么是程序設(shè)計(jì)?使用某種程序語言編寫程序的過程,就是用計(jì)算機(jī)語言對(duì)所要解決的問題中的數(shù)據(jù)以及處理問題的方法和步驟所做的完整而準(zhǔn)確的描述的過程怎樣進(jìn)行程序設(shè)計(jì)?分析問題:對(duì)數(shù)據(jù)的描述(數(shù)據(jù)流)。指定數(shù)據(jù)類型和數(shù)據(jù)結(jié)構(gòu)確定算法:對(duì)操作的描述(控制流)。指定操作的步驟編制程序:使用某種程序語言描述算法。調(diào)試程序:通過某個(gè)軟件運(yùn)行程序。算法什么是算法(Algorithm)?就是為了解決一個(gè)特定的問題而采取的確定的、有限的、按照一定次序進(jìn)行的、缺一不可的執(zhí)行步驟。注意為了有效地利用計(jì)算機(jī)解決實(shí)際問題,在設(shè)計(jì)算法時(shí)不僅要保證計(jì)算機(jī)執(zhí)行算法的正確性,還要考慮算法的質(zhì)量,選擇適合于具體問題的算法。算法通常計(jì)算機(jī)算法分為兩大類:數(shù)值運(yùn)算算法和非數(shù)值運(yùn)算算法數(shù)值運(yùn)算是指對(duì)問題求數(shù)值解有確定的數(shù)學(xué)模型非數(shù)值運(yùn)算是指事務(wù)處理過程種類繁多,很難提供統(tǒng)一規(guī)范的算法更多的是需要用戶設(shè)計(jì)其算法的算法的特性有窮性應(yīng)含有有限的操作步驟,不能是無限的。有窮性指在“合理的限度之內(nèi)”唯一性每一個(gè)步驟都是確定的,只有一個(gè)涵義,不可以為二義性有零個(gè)或多個(gè)輸入在執(zhí)行算法時(shí)需要從外界獲取必要的信息有一個(gè)或多個(gè)輸出算法執(zhí)行的目的就是為了求解,“解”就是輸出的信息沒有輸出的算法是沒有意義的正確性每一個(gè)步驟應(yīng)當(dāng)被有效的執(zhí)行,并得到確定的結(jié)果算法舉例例1:猴子吃桃問題。有一堆桃子不知數(shù)目,猴子第一天吃掉一半,又多吃了一個(gè),第二天照此方法,吃掉剩下桃子的一半又多一個(gè),天天如此,到第11天早上,猴子發(fā)現(xiàn)只剩一只桃子了,問這堆桃子原來有多少個(gè)?

數(shù)學(xué)模型:ai=2*(ai+1+1)i=9,8,7,…1;Step1:peach1=1;i=10;Step2:peach0=2*(peach1+1);Step3:peach1=peach0;Step4:i=i-1;Step5:若i>=1,繼續(xù)循環(huán)執(zhí)行Step2;Step6:輸出peach0的值。

算法舉例例2:輸入三個(gè)數(shù),然后輸出最大的數(shù)。算法的兩個(gè)要素基本功能操作數(shù)據(jù)運(yùn)算和傳輸控制結(jié)構(gòu)順序、選擇和循環(huán)三種基本控制流程算法可以寫成:(1)輸入A,B,C;(2)若A>B,則A->MAX;若A<B,則B->MAX。(3)若C>MAX,則C->MAX。(4)輸出MAX,MAX是最大數(shù)。算法的表示流程圖端點(diǎn):表示程序的轉(zhuǎn)向,常用來表示程序的開始和結(jié)束。處理:操作的功能判斷:單入口多出口,表明判斷的條件流線:表示程序的執(zhí)行方向和順序。輸入/輸出:表示數(shù)據(jù)的名稱、類型和用途等。算法的表示流程圖開始輸入A,B,CA>B?TNMAX=AMAX=BC>MAX?NTMAX=C輸出MAX結(jié)束算法的表示N-S圖是適合結(jié)構(gòu)化程序設(shè)計(jì)方法的圖形工具N-S流程圖無法表示非結(jié)構(gòu)化的程序TN當(dāng)〈條件〉滿足a1=1i=10當(dāng)i>=1時(shí),循環(huán)a0=2*(a1+1)a1=a0i=i-1輸出a0算法的表示UML面向?qū)ο蟮姆治雠c設(shè)計(jì)工具適合于描述復(fù)雜系統(tǒng)元素之間的關(guān)系,不關(guān)注具體算法程序設(shè)計(jì)基本步驟確定數(shù)學(xué)模型實(shí)際問題的準(zhǔn)確描述算法描述解決問題的具體步驟編寫程序?qū)⒁言O(shè)計(jì)好的算法表達(dá)出來程序測(cè)試保證程序的正確性程序設(shè)計(jì)方法面向過程程序設(shè)計(jì)方法面向?qū)ο蟪绦蛟O(shè)計(jì)方法1.自頂向下、逐步求精:結(jié)構(gòu)化程序設(shè)計(jì)的主要思想是功能分解并逐步求精。當(dāng)一些任務(wù)復(fù)雜以至無法描述時(shí),可以將它拆分為一系列較小的功能部件,直到這些完備的子任務(wù)小到易于理解的程度。這種方法叫“自頂向下,逐步求精”。2.模塊化設(shè)計(jì):在拿到一個(gè)程序模塊(實(shí)際上是程序模塊的任務(wù)書)以后,根據(jù)程序模塊的功能將它劃分為若干個(gè)子模塊。這個(gè)過程采用自頂向下方法來實(shí)現(xiàn)。3.結(jié)構(gòu)化編碼:在設(shè)計(jì)好一個(gè)結(jié)構(gòu)化的算法之后,還要善于進(jìn)行結(jié)構(gòu)化編碼。即用高級(jí)語言語句正確地實(shí)現(xiàn)順序、選擇、循環(huán)三種基本結(jié)構(gòu)。結(jié)構(gòu)化程序設(shè)計(jì)結(jié)構(gòu)化程序設(shè)計(jì)結(jié)構(gòu)化程序設(shè)計(jì)中的程序結(jié)構(gòu)結(jié)構(gòu)化的程序設(shè)計(jì)方法程序的三種基本結(jié)構(gòu)順序結(jié)構(gòu),順序結(jié)構(gòu)表示程序中的各操作是按照它們出現(xiàn)的先后順序執(zhí)行的選擇結(jié)構(gòu),表示程序的處理出現(xiàn)了分支,它需要根據(jù)某一特定的條件選擇其中的一個(gè)分支執(zhí)行循環(huán)結(jié)構(gòu),程序反復(fù)執(zhí)行某個(gè)或某些操作,直到某條件為假(或?yàn)檎妫r(shí)才可終止循環(huán)

面向?qū)ο蟪绦蛟O(shè)計(jì)將數(shù)據(jù)及對(duì)數(shù)據(jù)的操作放在一起,作為一個(gè)相互依存、不可分割的整體來處理,它采用了數(shù)據(jù)抽象和信息隱藏技術(shù)。在面向?qū)ο蟪绦蛟O(shè)計(jì)中可以用下面的式子表示程序:程序=對(duì)象+對(duì)象+…+對(duì)象對(duì)象=算法+數(shù)據(jù)結(jié)構(gòu)+程序設(shè)計(jì)語言+語言環(huán)境面向?qū)ο蟪绦蛟O(shè)計(jì)面向?qū)ο蟪绦蛟O(shè)計(jì)面向?qū)ο蟪绦蛟O(shè)計(jì)中的程序結(jié)構(gòu)C語言C語言的特點(diǎn)適合開發(fā)系統(tǒng)軟件結(jié)構(gòu)化的程序設(shè)計(jì)語言豐富的數(shù)據(jù)類型和數(shù)據(jù)結(jié)構(gòu)運(yùn)算符多樣化可移植性好語句簡潔緊湊編程風(fēng)格靈活,語法限制少,使用靈活具有預(yù)處理功能面向?qū)ο蟪绦蛟O(shè)計(jì)的基礎(chǔ)例1.1】編寫程序,輸出“HelloWorld!”字符串。#include<stdio.h> /*編譯預(yù)處理命令*/voidmain() /*主函數(shù)*/{

printf(“HelloWorld!\n”); }C程序的結(jié)構(gòu)

C語言源程序(擴(kuò)展名為.c)包括編譯預(yù)處理命令、注釋和函數(shù)等內(nèi)容。

編譯預(yù)處理命令:以“#”號(hào)開頭的行都是編譯預(yù)處理行,且在一行中,只能寫一行編譯預(yù)處理指令。編譯預(yù)處理命令不是C語句,不能以分號(hào)結(jié)尾,而是以換行結(jié)尾。#include〈stdio.h〉voidmain(){

inta,b;/*定義兩個(gè)整形變量*/a=1;b=5;/*給兩個(gè)變量賦值*/

printf(“%d+%d=%d\n”,a,b,a+b);/*打印a和b之和*/}

C語言嚴(yán)格區(qū)分大、小寫英文字母。什么是C語言?

C語言程序是由一個(gè)個(gè)的語句組成。

C語言程序使用“;”作為語句的終止符和分隔符??梢匀我鈺鴮?,即一行中可以書寫多個(gè)語句,一個(gè)語句也可以占用任意多行,語句之間必須用“;”分隔。初學(xué)時(shí)建議在一行內(nèi)書寫一條語句。編寫一個(gè)加法運(yùn)算程序#include〈stdio.h〉main(){

inta,b;/*定義兩個(gè)整形變量*/a=1;b=5;/*給兩個(gè)變量賦值*/

printf(“%d+%d=%d\n”,a,b,a+b);/*打印a和b之和*/}

C語言嚴(yán)格區(qū)分大、小寫英文字母。什么是C語言?

C語言程序是由一個(gè)個(gè)的語句組成。

C語言程序使用“;”作為語句的終止符和分隔符。

C語言程序中用大括號(hào)對(duì)“{}”表示程序的結(jié)構(gòu)層次范圍。一個(gè)完整的程序模塊要用一對(duì)花括號(hào)括起來,用以表示模塊的范圍。為了清晰地表現(xiàn)出程序的結(jié)構(gòu),建議使用右縮進(jìn)鋸齒型程序書寫格式。編寫一個(gè)加法運(yùn)算程序#include〈stdio.h〉main(){

inta,b;/*定義兩個(gè)整形變量*/a=1;b=5;/*給兩個(gè)變量賦值*/

printf(“%d+%d=%d\n”,a,b,a+b);

/*打印a和b之和*/}

C語言嚴(yán)格區(qū)分大、小寫英文字母。什么是C語言?

C語言程序是由一個(gè)個(gè)的語句組成。

C語言程序使用“;”作為語句的終止符和分隔符。

C語言程序中用大括號(hào)對(duì)“{}”表示程序的結(jié)構(gòu)層次范圍。

C語言程序可以使用注釋。注釋部分的格式是:/*注釋內(nèi)容*/注釋部分不參與程序的執(zhí)行,對(duì)程序的運(yùn)行結(jié)果沒有影響,只是用來提示或助記。編寫一個(gè)加法運(yùn)算程序函數(shù)C程序結(jié)構(gòu)組成C程序?yàn)楹瘮?shù)模塊結(jié)構(gòu),整個(gè)程序都是由一個(gè)或多個(gè)函數(shù)組成.函數(shù)是C程序的基本單位。函數(shù)是由函數(shù)說明和函數(shù)體兩部分組成一個(gè)C程序總是從main()函數(shù)開始執(zhí)行.有且僅有一個(gè)主函數(shù)main(),被調(diào)用的函數(shù)可以是系統(tǒng)提供的庫函數(shù),也可以是用戶根據(jù)需要自己編制設(shè)計(jì)的函數(shù)(用戶自定義函數(shù))一個(gè)C程序可以由一個(gè)文件組成,也可以由若干個(gè)文件組成#include<stdio.h>voidmain(){

inta=1,b=5,c;c=add(a,b);

printf(“c=%d\n”,c);}

int

add(intx,inty){return(x+y);}

C程序源程序文件1源程序文件i源程序文件n預(yù)編譯命令函數(shù)1函數(shù)n函數(shù)體函數(shù)首部C程序結(jié)構(gòu)組成C語言1.C程序的書寫格式比較自由,一般一行寫一條語句。對(duì)于短語句也可一行寫多個(gè),中間用“;”分隔。對(duì)于長語句也可將一條語句分寫在多行上,分行原則是不能將一個(gè)單詞分開,也不要將雙撇號(hào)引用的一個(gè)字符串分開。2.為了程序書寫得清晰,提高程序的可讀性,一般采用縮進(jìn)格式。即同一層次語句要對(duì)齊,不同層次語句要縮進(jìn)若干個(gè)字符(2~4個(gè))。例如循環(huán)體中的語句和選擇體中的語句要縮進(jìn)對(duì)齊。3.花括號(hào)的書寫方法較多,常用的是每個(gè)花括號(hào)占一行,并與使用花括號(hào)的語句對(duì)齊,花括號(hào)內(nèi)的語句采用縮格書寫的方式;另有一種形式是花括號(hào)與所括內(nèi)容占一行。C程序的書寫格式習(xí)慣用小寫字母,大小寫敏感不使用行號(hào),無程序行概念可使用空行和空格常用鋸齒形書寫格式main(){……………….………………

…………..…………..

……………….

………………………….……………

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論