第一章 C語言概論 本章投影片僅供本書上課教師使用,非經同意請勿拷貝或轉載.

Slides:



Advertisements
Similar presentations
邱锡鹏 复旦大学计算机科学技术学院 Text Books  “Dragon book”  Compilers: Principles, Techniques, and Tools (2nd Edition)  Alfred V. Aho;Monica S.
Advertisements

C/C++ 程序设计 吉林财经大学 管理科学与信息工程学院 李艳东 : Tel :
魏 饴. 处级干部培训班讲座 一、卓越干部的德行素质  常修为政之德、常思贪欲之害、常怀律己之心!  孔老夫子有个观点 “ 为政以德,譬如北辰居其所而众星拱之。 ”  司马光《资治通鉴》 “ 才者,德之资也;德者,才之帅也。 ” “ 德 ” 胜 “ 才 ” 谓之 “ 君子 ” , “ 才 ”
主讲:王幸民 理学院计算机基础教学部.
一、真愛密碼 二、尋求真愛 三、有自尊的愛. 。如果雙方對愛情產生 質疑、困惑時,則表示 彼此之間的愛情關係仍 有 待加強或釐清,千萬別 急著為自己的人生大事 下決定。 我是一個 16 歲的未婚媽媽,發現自 己懷孕時,已經五個月大了,我知 道自己沒能力照顧孩子,在驚訝之 於,大人們只好坦然接受,幫我找.
大地遊戲王 課程實錄.
CH02 電腦軟體 介紹電腦軟體之概念 認識系統軟體、程式語言與軟體開發 認識作業系統的主要功能 認識作業系統的演進歷史 認識常用之應用軟體
電腦與問題解決 5-1 電腦解題概論 5-2 電腦解題程序 5-3 演算法概論.
軟體工程 -物件導向程式設計與UML系統分析實作
第4章 電腦軟體應用 4-1 電腦軟體的分類 4-2 智慧財產權與軟體授權 4-3 封閉與開放格式及國際標準 4-4 常用軟體的應用簡介
基础模块 模块一 程序设计基础 (一)开发环境部分.
C语言程序设计 主讲教师 :张群燕 电话:
输入理想的程序,输出快乐的人生! 国家精品课 C语言程序设计 报告人 计算机科学与技术学院 教授,博士生导师 苏小红
第1章 Java语言概述.
授课教师:江星玲 1.
培养目标 1.建立基本的程序设计概念体系,掌握基础程序设计方法。
第一章 認識程式語言.
我在哈佛、麥肯錫 學到的一流工作術 富坂美織◎著.
第 2 章 初探 C++.
黃金比例.
财务管理.
植物保护 课程整体设计 汇报 申报省级精品资源共享课建设 植物保护课程组.
11 物流仿真技术 11.1物流系统仿真 11.2 物流仿真方法 知识归纳 复习题.
營建自動化 -營建管理資訊化 授課老師:劉俊杰 副教授 中華民國89年9月27日.
程序设计思想与方法入门篇 庄天红.
和大樹做朋友 一起去探索兒童公園的動植物生態吧! 財源老師技術指導、詩韻老師整理製作.
課程名稱:程式設計 授課老師:________
第6章 程序设计与算法 计算机应用基础 数学与计算机工程学院.
作业效率分析 1. Performance 概念 2. PAC 3. 作业效率改善方案.
新世代計算機概論 第14章 程式語言.
第1章 程式語言與Visual Basic的基礎
C# 程式設計 第一部分 第1-4章 C# 程式設計 - 南華大學資管系.
本科生医保资料的提交.
安裝JDK 安裝Eclipse Eclipse 中文化
第二十九章 DLL / LIB函式庫開發 當我們開發程式到一個階段之後,我們一定會希望各個Component的程式碼可以分開的越清楚越好。而這一章最主要就是要告訴各位讀者,我們常在Windows系統中看到的dll或是lib的檔案該怎麼實作?做出這樣的library我們又該如何運用?為什麼使用dll或是lib有利於我們開發程式?以上這些疑問都將會在這一章中得到解答。
C 程式設計— 語言簡介 台大資訊工程學系 資訊系統訓練班.
搜尋資料結構 Search Structures.
統計圖表的製作.
C++ 程式設計— 語言簡介 台大資訊工程學系 資訊系統訓練班.
Visual Basic 6.0 ——程序设计.
Instructor:Po-Yu Kuo 教師:郭柏佑
軟體工程:如何開發軟體? 把它看成是一件工程。 那麼就會有一些工具、技術、方法,也有管理的議題。
程式設計 老師:戴自強 助教:楊斯竣.
第 1 章 Java 簡介.
Programming Languages
第0章作业: 教材P12-练习与实践 1.写出用符号’*’输出描绘汉字”大”的流程图。
《结构力学认知实验》(授课形式)的上课时间改为: 5月5日(周二)晚上18:00~19:30和19:30~21:00,
《结构力学认知实验》(授课形式)的上课时间改为: 5月7日(周四)晚上18:30~20:00和20:00~21:30,
開發Java程式語言的工具 JDK.
梁文新 办公室:综合楼108 电 话: 软件工程导论 梁文新 办公室:综合楼108 电 话:
課程報告 使用開放原始碼工具實作軟體產品線方法
程式設計 老師:蘇炳煌 助教:楊斯竣.
C程序设计.
Introduction to the C Programming Language
計算機概論 跨越講義 第4章 基本視窗程式應用 4-1 程式語言簡介 4-2 結構化VS物件導向程式設計
畢業資格審查系統 操作步驟說明.
新制退休實務計算說明- 現職人員退休範例說明
現代專案管理教材 第一章 專案與專案管理 博碩文化出版發行.
第三章 基本的輸出與輸入函數 (Basic Output & Input Function)
编译原理实践 1.课程说明及引论.
106 學年度新生入學說明會 國立臺灣海洋大學 教務處簡介
醫工所碩士二年級 R 葉昱甫 電子所碩士一年級 R 謝博鈞 電信所碩士一年級 R 王欣平
编译原理 第一章 引 论 南京大学计算机科学与技术系 戴新宇.
程式語言簡介 2019/7/17 明乘中學編製.
C/C++基礎程式設計班 C語言入門、變數、基本處理與輸入輸出 講師:林業峻 CSIE, NTU 3/7, 2015.
面向对象程序设计 C++教程 西安工业大学 于帆.
第三章 流程控制 程序的运行流程 选择结构语句 循环结构语句 主讲:李祥 时间:2015年10月.
——彻底变革算法与程序设计的教学方式 湖北省水果湖高级中学 伍先军.
Introduction to the C Programming Language
第三章 计算机体系结构.
Presentation transcript:

第一章 C語言概論 本章投影片僅供本書上課教師使用,非經同意請勿拷貝或轉載

何謂硬體和軟體? 硬體(Hardware) 就是由中央處理單元﹑記憶單元﹑輸出入單元等裝置所構成的實體 設備 。 P1-2 何謂硬體和軟體? 硬體(Hardware) 就是由中央處理單元﹑記憶單元﹑輸出入單元等裝置所構成的實體 設備 。 軟體(Software) 就是程式(Program),而「程式」是用來指揮電腦為我們解決問題的指令集,而這些程式就是使用「程式語言」所編寫而成的。

1-1 程式語言的演進 人與人間主要透過共通的語言(Language)來互通訊息。 P1-2 1-1 程式語言的演進 人與人間主要透過共通的語言(Language)來互通訊息。 人和電腦溝通亦如此,必須下達電腦了解 的語言,電腦才會按照命令來行事。 「程式」就是用「程式語言」所編寫出來的,來命令電腦為我們解決較複雜的計算 和處理龐大的資料。 「程式語言」是人類和電腦溝通的橋樑。

P1-2 1-1 程式語言的演進 (續) 機器語言 組合語言 高階語言 問題導向語言 物件導向語言

P1-2 1-1 程式語言的演進 (續) 程式語言除「機器語言」外,其他的程式語言都必須經過「語言翻譯器」(Language Translator)轉換成電腦所能認識的「機器語言」,才能在電腦上執行。

一、機器語言 (Machine Language) P1-2 一、機器語言 (Machine Language) 由連續的0、1二進位數字所組成。 每個指令都可執行電腦一個最基本的操作。 相當於人類語言不必經過翻譯電腦就能直接 執行,所以執行速度最快。 不同電腦CPU,所使用機器語言是不相同。 與機器相關(machine-dependent),可攜性低。 使用0和1編寫程式,困難度高且程式難維護。

二、低階語言 (Low-Level Language) P1-3 二、低階語言 (Low-Level Language) 亦稱組合語言(Assembly Language)。 使用一些助憶符號,由字母和數字組合而成 如程式中使用ADD代表加法、MOV代表資料搬移,使得一行組合語言的指令取代一行機器碼。人們以此種方式來撰寫程式比起機器語言來得有意義且易學。 由於電腦的處理器只能看得懂機器語言,因此必須將寫好的組合語言經過組譯器(Assembler)將它轉換為機器語言,才能在電腦上執行。 此種語言的語法較機器語言易懂且易編寫,但是它和電腦硬體的相依度高,也就是說機器不相同,語言的寫法亦不盡相同,因此可攜性低 (不同平台之間程式移殖)

二、低階語言 (Low-Level Language) 續 P1-3 二、低階語言 (Low-Level Language) 續 編寫程式時要先瞭解電腦內部暫存器和 記憶體的運作才能編寫,對一般電腦初 學者還是很困難。 適於電腦專業人員,用來設計有關電腦 輸出入介面的驅動程式或需要執行速度 快的電動遊戲程式。

三. 高階語言 (High-Level Language) P1-3 三. 高階語言 (High-Level Language) 可攜性高且語法近人類語言和一般數學 表示式。 譬如:將y值加20的結果指定給x,其 數學表示式為:x=y+20,只要對程式稍加 修改,便可以在不同的電腦系統上執行。 傳統使用的高階語言有:BASIC、FORTRAN、PASCAL、COBOL、C等。 它們共同的特點是按照程式設計者指定的 邏輯順序執行,是屬於程序導向語言(Procedure-Oriented Language)。

三. 高階語言 (High-Level Language) 續 P1-3 三. 高階語言 (High-Level Language) 續 C語言與BASIC語言是主流。 BASIC是最容易也是最普及高階語言。 C語言是理工科或程式設計人員用來學習 程式設計的利器。 高階語言必須經編譯器或直譯將它轉譯為 機器語言,才能在電腦上執行。

P1-4

1-2 C語言的沿革 C 語言誕生的主要目的是為了開發 UNIX 作業系統。 以替代部份由組合語言所編寫的工作。 P1-5 1-2 C語言的沿革 C 語言誕生的主要目的是為了開發 UNIX 作業系統。 以替代部份由組合語言所編寫的工作。 讓C語言所編寫出的程式能在不同的環境 上開發系統與執行。 至於C語言的演進過程列表說明如下:

P1-5

P1-5

P1-6 1-3 C語言的特色 高階架構低階功能 可攜性高跨平台強 結構化程式語言 函式導向的語言 具有指標運算 動態配置記憶體能力

結構化程式語言  結構化程式設計於1960年發展出此種 革命性的概念。  主要觀念是一個程式流程可由循序、選 擇以及重複三種結構構成 P1-6 結構化程式語言  結構化程式設計於1960年發展出此種 革命性的概念。  主要觀念是一個程式流程可由循序、選 擇以及重複三種結構構成  去除早期非結構化程式設計使用 goto的 觀念,使得程式撰寫變得井然有序,比起 非結構化的程式設計更清晰,且易修改和 測試。

P1-6 結構化程式語言 續  一般結構化程式都會按照程式撰寫的 順序由上而下逐行執行,除非碰到額 外指示,透過選擇結 構或重複結構來 改變程式的流程,便可撰寫出具有結 構化的程式。  設計程式時可將具有小功能的程式片段 稱為模組(Module),  若能將這些模組組合,分工合作便可 組成一個具有模組化的大程式。

1-4 如何開發應用程式 Step1:問題分析(Problem analysis) Step2:設計演算法(Design algorithm) Step3:撰寫程式(Coding) Step4:程式的驗證 (Program verification)

P1-10

1-5 C 語言的編譯、連結和執行 C語言提供的 IDE 整合開發環境撰寫出的 程式,稱為 原始程式 (Source Program)。 C語言所寫的程式是屬於高階語言,必須 透過 Compiler或Interpreter變成機器碼。 當編譯器在編譯時會檢查編寫的程式是否 發生語法錯誤(Syntax Error)和語意錯誤(Semantic Error) 。

1-5 C語言的編譯、連結和執行 語法錯誤 是檢查是否漏掉某個符號或括號不成 對等,就像一般句子漏掉名詞或動詞。 P1-11 1-5 C語言的編譯、連結和執行 語法錯誤 是檢查是否漏掉某個符號或括號不成 對等,就像一般句子漏掉名詞或動詞。 語意錯誤 是指使用到未經宣告過的變數等。

P1-11

程式庫函式(Program Library Function) 是指一些事先經編譯好且具有能執行某特定工作函式的集合。 一般程式語言都將這些函式直接建立在程式語言定義上,變成敘述來使用。 C語言將這些經過編譯過的函式採程式庫函式處理,這些程式庫函式依性質放在不同的程式函式庫檔。 只要經連結程式(Linker)連結,便可自動將用到的程式庫函式連結到可執行檔中,至於沒用到的程式庫函式是不會連結到程式中。

解譯器 (Intepreter) P1-12 有些高階語言用解譯器來解譯程式。 先將程式存檔,再啟動解譯器開啟檔案,解譯器 便逐行讀取指令,逐行執行,此種過程稱為「解譯」如:VBA、Java Script均屬之。 從執行效率來看,由於編譯器編譯好一個程式 產生執行檔,下次執行不必再編譯一次, 但解譯器每次執行都再解譯一次費時。 從程式偵錯,因解譯器執行程式時,可動態 修改程式,修改完畢再繼續往下執行。但編譯器 若程式執行時發現程式有錯誤時,必須中斷執行,修改完畢、重新編譯後再執行較費時。

P1-12

1-6 前置處理命令 P1-12 C程式在程式開頭都必須加入一些前置處理命令。 主要由於C語言不像BASIC語言有提供input和print輸出入敘述來輸入或顯示資料,是透過printf()輸出函式、scanf()輸入函式和getchar()輸入字元函式來完成。 這些輸出入相關的函式都被定義在stdio.h(standard input/output)標準輸出入標頭檔內。 撰寫程式時,程式中有輸出入資料發生時,都必須在程式最前面加上#include<stdio.h>,讓程式編譯時,由前端處理器(Preprocessor)先將stdio.h標頭檔含入(展開)到目前程式中。

標頭檔(Header File)是指C語言中有許多由廠商事先寫好以供使用者呼叫的函式。 P1-13 標頭檔(Header File)是指C語言中有許多由廠商事先寫好以供使用者呼叫的函式。 若程式中有使用到這些函式,必須先用標頭檔來含入這些函式,才能在程式中正常使用。 在C語言中,只要敘述是 # 開頭,表示此敘述為前端處理命令,此敘述主要是在程式編譯時,將該標頭檔內的程式碼轉換到程式內以供電腦執行相關函式做準備。 C語言使用 # include< filename.h>敘述將角括號內指定的標頭檔含入到目前的程式檔中。

P1-14

本章結束 Take a Break …..