【教学课件】第6章程式语言.ppt

上传人:牧羊曲112 文档编号:4879254 上传时间:2023-05-21 格式:PPT 页数:41 大小:1.66MB
返回 下载 相关 举报
【教学课件】第6章程式语言.ppt_第1页
第1页 / 共41页
【教学课件】第6章程式语言.ppt_第2页
第2页 / 共41页
【教学课件】第6章程式语言.ppt_第3页
第3页 / 共41页
【教学课件】第6章程式语言.ppt_第4页
第4页 / 共41页
【教学课件】第6章程式语言.ppt_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《【教学课件】第6章程式语言.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第6章程式语言.ppt(41页珍藏版)》请在三一办公上搜索。

1、第6章 程式語言,6-1 程式語言發展史6-2 資料型態6-3 程式指令6-4 程序定義和使用,6-1 程式語言發展史,機器語言電腦所能接受由0與1組成組合語言將0、1字串以符號表示優點:指令比機器語言更易於學習缺點:必須符合特定機器,不具可攜性不具結構性,程式仍然不易理解,高階語言,範例:C語言特性可讀性高,容易理解比較容易維護和修改具有可攜性編譯:高階語言的程式碼需編譯成目的碼之後才能執行,流程如下圖:,程式語言發展年表,FORTRAN,第一個高階語言,為IBM於1957年左右推出針對複雜的科學計算所設計範例:,LISP,MIT教授John McCarthy於1958年所推出 適合作符號運

2、算 在人工智慧的應用特別重要 範例:,COBOL,專為商業資料處理而設計的語言 提供便利的檔案描述與處理 特別重視資料的定義 範例:,BASIC,隨著個人電腦推出簡單易學,但不是很嚴謹 微軟的VISUAL BASIC(簡稱VB),為BASIC語言提供了視覺化的簡易開發環境範例:,PASCAL,發源於歐洲 具有完備的資料型態,和結構化的控制結構 程式可讀性高,常為教科書所用範例:,C,為了UNIX作業系統所設計具有高階的結構化敘述,也具備了類似低階語言控制硬體的能力為目前最常被使用的高階語言之一 範例:,PROLOG,1972年於法國所推出邏輯化程式設計的代表在人工智慧領域有重要應用範例,ADA

3、,由美國國防部主導名稱是紀念世界上第一位程式設計員Ada Byron 希望結合所有語言的特性語言過於複雜,目前所知的應用不多,C+,基於C所擴充的物件導向程式語言 在類別中,可定義資料(Data member)和行為(Function member)可以指定使用範圍為公開的(Public),或是私自的(Private)範例:,JAVA,美國Sun公司於1995年發表具備有物件導向的特性 提供了跨平台的功能 範例:,ASP.NET,為了即時地從資料庫中抓取資料來動態地形成網頁,微軟提供了ASP語言(Active Server Page)。微軟進一步提出一系列以.NET為名稱的解決方案,以便更方便

4、地發展以Web為基礎的應用程式,其中也包含了ASP.NET。ASP.NET大幅度地改善了ASP的缺點,除了將程式分成HTML和Script不同的區塊,便於撰寫和除錯,也具有物件導向語言的特性。針對Script的部份,ASP.NET還支援多種不同的程式語言,特別包括微軟於1998年新設計的C#語言。,程式語言依照特性分類,6-2 資料型態,用以表示一個應用系統中要處理的對象 常見的資料型態數字:整數(int)、長整數(long int)、浮點數(float)、雙精準數(double)文字:字元(char)、字串(string)資料型態決定:所需空間 可表示的數值或資料範圍(參見下頁)有意義的運算

5、,C的資料型態,陣列,表示一系列相同型態的資料 範例:一個包含50個整數的陣列 int score50;陣列的名稱為score每個資料為整數(int)型態 陣列第一個位置為score0 陣列最後一個位置為score49C語言預設以註標0來表示陣列的第一個元素,結構,將一些相關資料,聚集成一個單元一起表示 範例:struct student char(6)name;char(10)major;int year;結構的名稱為student欄位name的資料型態為6個字元(char),欄位major的資料型態為10個字元,欄位year的資料型態為整數,結構(續),定義完結構之後可用以宣告為變數的型態

6、範例:宣告變數x的資料型態為student結構 struct student x;可以利用小數點加上欄位名稱,來指出結構變數中的某一個成分 範例:x.name、x.major、x.year,指標,記錄某個資料在記憶體的位置 提供了非直接存取(Indirect Accessing)的功能 使用指標的理由 效率性的考量 指標所需的空間是固定的,可作為複雜結構的代理人 不能確定資料的大小 若使用陣列,預先宣告的空間可能浪費或不夠,鏈結串列,表示大小會變化的資料將資料用節點表示,利用指標將節點串連起來範例:struct nodeint data;struct node*next;符號*表示指標變數處理

7、的資料為整數型態 鏈結串列的示意圖,6-3 程式指令,程式語言提供的指令,以組合出正確的程式 以下使用C和PASCAL語言作為範例同時使用流程圖(Flow chart)來輔助說明指令代表的邏輯結構,和步驟間的關聯,其符號如下圖:,比較:If,提供邏輯判斷式 如果“If”後面接的運算式被判斷為真,則程式會繼續執行“Then”後面的運算式 如果“If”後面接的運算式被判斷為不真,則程式會繼續執行“Else”後面的運算式 注意:C裡面省略了“Then”關鍵字“Else”後面的運算式可以不提供,如此程式不會有任何動作範例:在變數“i”的值大於0時,變數“x”的值設定為“10”,否則變數“y”的值設定為

8、“5”,If範例和流程圖,巢狀If,在“Then”或“Else”的部分,再放入另一個“If”敘述 範例:當變數“i”的值被判斷為正之後,我們需要再確定變數“a”的值大於變數“b”的值,才會指定變數“x”為10,固定次數的迴圈:For,事先指定好迴圈的執行次數 C沒有此種指令範例:透過變數“i”的值將迴圈的執行次數控制為5次,同時變數“x”的值在迴圈結束後,會等於整數1加到整數5的和,不固定次數的迴圈:while,迴圈的執行次數並沒有直接在程式裡指定好利用邏輯判斷式決定迴圈要執行幾次範例:若邏輯判斷式“i 6”為真,則程式會進入迴圈,反之則跳出迴圈,w,while(續),對應的流程圖如右注意:必

9、須適當的改變變數值,使得邏輯判斷式的真假值改變,否則會造成無窮迴圈的情況,先執行再判斷的寫法,先執行命令,再進行邏輯式的判斷 當判斷式為真 C提供的“do-while”指令會留在迴圈裡 PASCAL提供的“Repeat-until”指令會離開迴圈 範例:,w,d,不固定次數的迴圈:for,C語言裡面的for指令分成以下三部分:在執行迴圈之前,所需要先給定的初始值設定 進入或留在迴圈的條件,有如While指令後面接著的判斷式 在每當要執行下一次迴圈之前,所需要執行的式子,w,f,6-4 程序定義和使用,定義程序時,所必須提供的資訊程序名稱程序本體,含變數宣告和命令敘述正式參數(Formal pa

10、rameter)宣告程序回傳的資料型態範例:有回傳值的程序,又稱做函數,鏈結串列的程序範例,程序名稱:changehead;正式參數:兩個資料型態為指到結構“node”的指標參數,分別叫做“p”和“q”;局部變數:一個資料型態為指到結構“node”的指標變數,叫做“temp”;程序本體:將“p”串列的第一個節點移除,然後加入到“q”串列的第一個節點前,其4個步驟如下頁所示;回傳值:並無回傳值,在C語言裡是以“void”表示之。,執行步驟示意圖,程序呼叫,在運算式中呼叫函數 範例:x=square(5)*10;先呼叫函數square以計算5的平方,然後將函數回傳的值乘以10 一般沒有回傳值的程序

11、,會如同一般命令的被呼叫 範例:p-data=3;q-data=5;changehead(p,q);,全域變數VS.局部變數,全域變數(Global variable)能被全部的程式碼使用到通常定義在整個程式碼的最前端 局部變數(Local variable)只能被一部份程式碼使用到通常定義在程序中範例:(見下頁)全域變數:變數“a”Main的局部變數:變數“c”,程序範例,參數傳遞,正式參數 在定義程序時同時定義,必須宣告其資料型態 真實參數 在呼叫程序時所提供,必須符合正式參數的資料型態以值傳遞(passed by value)把真實參數的值算出來,然後再傳給正式參數 範例:z=square(5+3)*10;先算出“5+3”的值之後,再將其傳給正式參數“x”,參數傳遞(續),以值傳遞最常見的方式沒有辦法改變真實參數的值 以位址傳遞(passed by reference)把真實參數在記憶體的位址傳給正式參數程序裡的運算會直接作用在真實參數上 真實參數的值因而可以改變,以位址傳遞的程序定義和呼叫,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号