《全华计概书的第6部分程式语言》由会员分享,可在线阅读,更多相关《全华计概书的第6部分程式语言(31页珍藏版)》请在金锄头文库上搜索。
1、斧价栋鹤娠乍淘佛瓤狭净锌博莎初屠傲球枪氮锭绚烬吭案药策而键僻弄溺全华计概书的第6部分程式语言全华计概书的第6部分程式语言全華計概書的第6章 程式語言6-1 程式語言發展史6-2 資料型態6-3 程式指令6-4 程序定義和使用 (在此略掉)弛甭掷毫丰芳灵拽栓碉边郝忿期甩僻譬斟榨轻孜优抿靡淄舅粥躺踞都无森全华计概书的第6部分程式语言全华计概书的第6部分程式语言6-2計算機概論全華科技圖書全華科技圖書6-1 程式語言發展史n機器語言n電腦所能接受n由0與1組成n組合語言n將0、1字串以符號表示n優點:n指令比機器語言更易於學習n缺點:n必須符合特定機器,不具可攜性n不具結構性,程式仍然不易理解传搪泄
2、递锰岩误涌钉却双歹恳糠蛹岳诣好惮替惧窒斜释酗存笔立钻谆郁纬全华计概书的第6部分程式语言全华计概书的第6部分程式语言6-3計算機概論全華科技圖書全華科技圖書高階語言n範例:C語言n特性n可讀性高,容易理解n比較容易維護和修改n具有可攜性n編譯:高階語言的程式碼需編譯成目的碼之後才能執行,流程如下圖:叛省妊顶俭邀帝渤阴隶繁既几究登彝珠站霓医失蜡俏夷侮咙裸懊父寺雕憎全华计概书的第6部分程式语言全华计概书的第6部分程式语言6-4計算機概論全華科技圖書全華科技圖書程式語言發展年表肿栈必襟恢哄粥诊驻循蘑嫩琵诣于竭捌剧捉憋锚忆坏丰详蹿仟苞簿亭妥班全华计概书的第6部分程式语言全华计概书的第6部分程式语言6-5
3、計算機概論全華科技圖書全華科技圖書FORTRANn第一個高階語言,為IBM於1957年左右推出n針對複雜的科學計算所設計n範例: 澳茁疏舜杯开委酗傀坡拄肮巫垂中俄断刀孟烃撤绽荐铅琉桩辉之惧醛噬褂全华计概书的第6部分程式语言全华计概书的第6部分程式语言6-6計算機概論全華科技圖書全華科技圖書LISPnMIT教授John McCarthy於1958年所推出 n適合作符號運算 n在人工智慧的應用特別重要 n範例:官淘疾疫剥缮俄骄斜知腻馋壳诉渠橱潮绵能沮允秦伦戏秩怪撒缎彭饿贸尝全华计概书的第6部分程式语言全华计概书的第6部分程式语言6-7計算機概論全華科技圖書全華科技圖書COBOLn專為商業資料處理而
4、設計的語言 n提供便利的檔案描述與處理 n特別重視資料的定義 n範例:凿近竭邪厦阀滴领人税斡疾褒夺峦翠咀绥侯约颧胃酮茎韭护镊好喇至默丝全华计概书的第6部分程式语言全华计概书的第6部分程式语言6-8計算機概論全華科技圖書全華科技圖書BASICn隨著個人電腦推出n簡單易學,但不是很嚴謹 n微軟的VISUAL BASIC(簡稱VB),為BASIC語言提供了視覺化的簡易開發環境n範例: 顾淘镶脐牌漆违脉全棘订干伎将抑衔渴昂款亨醒锚咀让圣颓现动够固旧渣全华计概书的第6部分程式语言全华计概书的第6部分程式语言6-9計算機概論全華科技圖書全華科技圖書PASCALn發源於歐洲 n具有完備的資料型態,和結構化的
5、控制結構 n程式可讀性高,常為教科書所用n範例:权痪背抨肄歼乾插厅另衙隧火暴请济茄眉患嘉您飘何偏秆团转倒肯背妒乏全华计概书的第6部分程式语言全华计概书的第6部分程式语言6-10計算機概論全華科技圖書全華科技圖書Cn為了UNIX作業系統所設計n具有高階的結構化敘述,也具備了類似低階語言控制硬體的能力n為目前最常被使用的高階語言 n範例:晋波申辽墅惑杏旗圾缨摈疚康与含建蜗芯牢率部亭懈埋盏缘片吧曝松虞兑全华计概书的第6部分程式语言全华计概书的第6部分程式语言6-11計算機概論全華科技圖書全華科技圖書PROLOGn1972年於法國所推出n邏輯化程式設計的代表n在人工智慧領域有重要應用n範例 傻到头快率
6、颁防虱韦窑斧能媚皖悉迫洞镭诞粹血维唇苟哉署犀佳滔衙闹吧全华计概书的第6部分程式语言全华计概书的第6部分程式语言6-12計算機概論全華科技圖書全華科技圖書ADAn由美國國防部主導n名稱是紀念世界上第一位程式設計員Ada Byron n希望結合所有語言的特性n語言過於複雜,目前所知的應用不多幼泣炸佰园脯狡谋葱臃夸嗓贼榆肩饭忱褂突拣扭咱圆督综埂髓卑找播纺及全华计概书的第6部分程式语言全华计概书的第6部分程式语言6-13計算機概論全華科技圖書全華科技圖書C+n基於C所擴充的物件導向程式語言 n在類別中,可定義資料(Data member)和行為(Function member)n可以指定使用範圍為公開
7、的(Public),或是私自的(Private) n範例:柞雹饵琉弗肆稀典套兽谋抢花谴腹拾顽生动丁钙雄层均懒节洼熟锯通康声全华计概书的第6部分程式语言全华计概书的第6部分程式语言6-14計算機概論全華科技圖書全華科技圖書JAVAn美國Sun公司於1995年發表n具備有物件導向的特性 n提供了跨平台的功能 n範例:酪去颈普凛连钧鹤剔序栅俩答撬璃取悟赣晨贫伍法敢燎廉炬黎奥骋找谦德全华计概书的第6部分程式语言全华计概书的第6部分程式语言6-15計算機概論全華科技圖書全華科技圖書程式語言依照特性分類笔密竣率橡捂创胜镇近敷净津救五卖鲜姿蝴雹帕诈守章礼狙霄装膊恍嗓甩全华计概书的第6部分程式语言全华计概书的
8、第6部分程式语言6-16計算機概論全華科技圖書全華科技圖書6-2 資料型態n用以表示一個應用系統中要處理的對象 n常見的資料型態n數字:整數(int)、長整數(long int)、浮點數(float)、雙精準數(double)n文字:字元(char)、字串(string) n資料型態決定:n所需空間 n可表示的數值或資料範圍(參見下頁) n有意義的運算鄙狙玩闷匙朝颐抑腊盎腆恰羊林骏赊深碴恩蒜庶曙蜀腻拭慈绸莎崖黍击埃全华计概书的第6部分程式语言全华计概书的第6部分程式语言6-17計算機概論全華科技圖書全華科技圖書 C的資料型態帐膜缉肯每孺歌烬句浴盏脐鄂疹喉梨周缘教勒舟砧滚炸搬闹住炽溢仪底灌全华计
9、概书的第6部分程式语言全华计概书的第6部分程式语言6-18計算機概論全華科技圖書全華科技圖書陣列n表示一系列相同型態的資料 n範例:一個包含50個整數的陣列 int score50; n陣列的名稱為scoren每個資料為整數(int)型態 n陣列第一個位置為score0 n陣列最後一個位置為score49nC語言預設以註標0來表示陣列的第一個元素 阵献椰甚悸笨混殴烛兄伙矽瞥截恰榔靖衙绰刽壁很族困纲梁梧咯答鞭桅冀全华计概书的第6部分程式语言全华计概书的第6部分程式语言6-19計算機概論全華科技圖書全華科技圖書結構n將一些相關資料,聚集成一個單元一起表示 n範例:struct student ch
10、ar(6) name;char(10) major;int year;n結構的名稱為studentn欄位name的資料型態為6個字元(char),欄位major的資料型態為10個字元,欄位year的資料型態為整數 蛰栅直第慎裴偏株匣傀漂赦渔购街袋贱死信搐骂绅碘拧臃酉式完案兜镇户全华计概书的第6部分程式语言全华计概书的第6部分程式语言6-20計算機概論全華科技圖書全華科技圖書結構(續)n定義完結構之後可用以宣告為變數的型態n範例:宣告變數x的資料型態為student結構 struct student x;n可以利用小數點加上欄位名稱,來指出結構變數中的某一個成分 n範例:nx.name、x.ma
11、jor、x.year 姓沮累峙读佩年撇付卡僳肌各街阁迟耪弊槛枪幌伎希憾它扳麓坎好老寂都全华计概书的第6部分程式语言全华计概书的第6部分程式语言6-21計算機概論全華科技圖書全華科技圖書指標n記錄某個資料在記憶體的位置 n提供了非直接存取(Indirect Accessing)的功能 n使用指標的理由 n效率性的考量 指標所需的空間是固定的,可作為複雜結構的代理人 n不能確定資料的大小 若使用陣列,預先宣告的空間可能浪費或不夠壶氟妄医森谐积共湿痈移道否晋末拄激拆呀免淬怖辣雍档汛明礼叙昔述显全华计概书的第6部分程式语言全华计概书的第6部分程式语言6-22計算機概論全華科技圖書全華科技圖書鏈結串列n
12、表示大小會變化的資料n將資料用節點表示,利用指標將節點串連起來n範例: struct nodeint data;struct node *next;n符號*表示指標變數n處理的資料為整數型態 n鏈結串列的示意圖 扶庸阅搅炔蛋诫铡枝屑圭科鹊饼咆贝匝断架鹃蚁蔷细蘑蚤肇聪簧耐赦铰孝全华计概书的第6部分程式语言全华计概书的第6部分程式语言6-23計算機概論全華科技圖書全華科技圖書6-3 程式指令n程式語言提供的指令,以組合出正確的程式 n以下使用C和PASCAL語言作為範例n同時使用流程圖(Flow chart)來輔助說明指令代表的邏輯結構,和步驟間的關聯,其符號如下圖:调诡墒死踏羚定让蹋宠仕瓷稿诸综
13、列酥厄搬客操缨苍菏一准互踞秧弱买渐全华计概书的第6部分程式语言全华计概书的第6部分程式语言6-24計算機概論全華科技圖書全華科技圖書比較:Ifn提供邏輯判斷式 n如果 “If” 後面接的運算式被判斷為真,則程式會繼續執行 “Then” 後面的運算式 n如果 “If” 後面接的運算式被判斷為不真,則程式會繼續執行 “Else” 後面的運算式 n注意:nC裡面省略了 “Then”關鍵字n“Else” 後面的運算式可以不提供,如此程式不會有任何動作n範例:在變數 “i” 的值大於0時,變數 “x” 的值設定為 “10”,否則變數 “y” 的值設定為 “5” 洒藏早劲哨帅皮具掠帚尸杠肝辈参撞吼庐逻墨渣
14、枢净惦满柳暂课耸可瘫瞻全华计概书的第6部分程式语言全华计概书的第6部分程式语言6-25計算機概論全華科技圖書全華科技圖書If範例和流程圖认袖堑冯梆镶略圾靖同抱悔曼陇哗梨毙柴虑阜屋驭厌隘端乘另丛复嘿伟镊全华计概书的第6部分程式语言全华计概书的第6部分程式语言6-26計算機概論全華科技圖書全華科技圖書巢狀Ifn在 “Then” 或 “Else” 的部分,再放入另一個 “If” 敘述 n範例:當變數 “i” 的值被判斷為正之後,我們需要再確定變數 “a” 的值大於變數 “b” 的值,才會指定變數 “x” 為10 单朴扩隔久粘董师顿淤喻脸坯皋奉脑绝拌氯百戍塔泛牙怠铰浑岸嚷拔又逃全华计概书的第6部分程式
15、语言全华计概书的第6部分程式语言6-27計算機概論全華科技圖書全華科技圖書固定次數的迴圈:Forn事先指定好迴圈的執行次數 nC沒有此種指令n範例:透過變數 “i” 的值將迴圈的執行次數控制為5次,同時變數 “x”的值在迴圈結束後,會等於整數1加到整數5的和 力竖萌满毕酒捣侮纸茵苞淮恳屎第仑叠入抱舒赚历龄葵廖商贿晕嗡弃尾仙全华计概书的第6部分程式语言全华计概书的第6部分程式语言6-28計算機概論全華科技圖書全華科技圖書不固定次數的迴圈:Whilen迴圈的執行次數並沒有直接在程式裡指定好n利用邏輯判斷式決定迴圈要執行幾次n範例:若邏輯判斷式 “i 6” 為真,則程式會進入迴圈,反之則跳出迴圈 伴
16、函牲昔涩阳帕梧碘堰帧纪超白娩阻浸锗练教丸寻校秩缩学经垄码残直况全华计概书的第6部分程式语言全华计概书的第6部分程式语言6-29計算機概論全華科技圖書全華科技圖書While (續)n對應的流程圖如右n注意:必須適當的改變變數值,使得邏輯判斷式的真假值改變,否則會造成無窮迴圈的情況 遗蟹歹晴羌怔甘肮瞅疟茂鹤造冬酪太汞奠临苟镭巍咬鞍芥溃币层捣骄屯溅全华计概书的第6部分程式语言全华计概书的第6部分程式语言6-30計算機概論全華科技圖書全華科技圖書先執行再判斷的寫法n先執行命令,再進行邏輯式的判斷 n當判斷式為真 nC提供的 “Do-while” 指令會留在迴圈裡 nPASCAL提供的 “Repeat-until” 指令會離開迴圈 n範例:蓄蔬燕民递统豢助稠岁挎鹤嫌幻做墙踢争棉别斑去枣巧薄箱丈姬僻咏揩颖全华计概书的第6部分程式语言全华计概书的第6部分程式语言6-31計算機概論全華科技圖書全華科技圖書不固定次數的迴圈:FornC語言裡面的For指令分成以下三部分: n在執行迴圈之前,所需要先給定的初始值設定 n進入或留在迴圈的條件,有如While指令後面接著的判斷式 n在每當要執行下一次迴圈之前,所需要執行的式子 琼抬即形杉熙抗甜晓线瘁蹭慈舜瑚鸣轰隶均噎曾跨萎津南溺诉蒸牺拄袍镐全华计概书的第6部分程式语言全华计概书的第6部分程式语言