C的發展史 C程式初體驗 C程式設計基本注意事項 上機實習課程

Slides:



Advertisements
Similar presentations
C/C++ 程序设计 吉林财经大学 管理科学与信息工程学院 李艳东 : Tel :
Advertisements

While 迴圈 - 不知重複執行次數
主讲:王幸民 理学院计算机基础教学部.
河內塔(Hanoi)問題.
基础模块 模块一 程序设计基础 (一)开发环境部分.
C语言程序设计 主讲教师 :张群燕 电话:
授课教师:江星玲 1.
培养目标 1.建立基本的程序设计概念体系,掌握基础程序设计方法。
親愛的老師您好 感謝您選用本書作為授課教材,博碩文化準備本書精選簡報檔,特別摘錄重點提供給您授課專用。 說明: 博碩文化:
第1单元 操作系统概论 第一节 绪论 操作系统定义.
“八皇后”问题 崔萌萌 吕金华.
程序设计基础 贺辉 图书馆三楼办公室(进馆左侧上楼)
第一章 C语言概述 计算机公共教学部.
操作系统原理 Principles of Operating System
请将手机调整到静音状态 实验网站:program3.ccshu.net 资源网站:class.ccshu.org/ /
多媒體概論期末報告 Windows Media Video(WMV)介紹 組員 資料查詢-謝佳忻 基本操作-楊浩 應用軟體-徐嘉佑(報告)
補充: Input from a text file
第一章 c语言程序设计基础 任课教师:温荷 Neusoft Institute of Information
C++程序设计 主讲:王兴波教授 1.
第2章 高级编程的硬件基础 主要内容 计算机硬件组成 80x86微机系统 Turbo C编译方式 BIOS和DOS调用.
高级语言程序设计 主讲人:陈玉华.
Do.For.While.正三角.倒正三角.倒九九乘法表
選擇排序法 通訊一甲 B 楊穎穆.
Chap 10 函数与程序结构 10.1 函数的组织 10.2 递归函数 10.3 宏定义 10.4 编译预处理.
If … else 選擇結構 P27.
C 程式設計— 語言簡介 台大資訊工程學系 資訊系統訓練班.
C++ 程式設計— 語言簡介 台大資訊工程學系 資訊系統訓練班.
Function.
第12章 從C到C++語言 12-1 C++語言的基礎 12-2 C++語言的輸出與輸入 12-3 C++語言的動態記憶體配置
程式撰寫流程.
第5章 堆疊(Stacks) 5-1 堆疊的基礎 5-2 堆疊的表示法 5-3 堆疊的應用 - 運算式的計算與轉換
第7章 编译预处理 本章要求: 本章重点: 本章难点: 掌握用#define定义无参数宏和带有参数宏定义和调用方法;
Instructor:Po-Yu Kuo 教師:郭柏佑
計數式重複敘述 for 迴圈 P
第5讲 结构化程序设计(Part II) 周水庚 2018年10月11日.
第4章 顺序程序设计.
第九章 预处理命令.
第0章作业: 教材P12-练习与实践 1.写出用符号’*’输出描绘汉字”大”的流程图。
第1章 概述 本章要点: C语言程序结构和特点 C语言程序的基本符号与关键字 C语言程序的编辑及运行 学习方法建议:
Name1..hour //加班時數 name2..hour //請假時數
C语言复习2----函数.
C语言程序设计.
第一章 程序设计和C语言 主讲人:高晓娟 计算机学院.
C语言程序示例: 1.输入10个数,按从小到大的顺序排序。 2.汉诺塔问题。.
C程序设计.
Introduction to the C Programming Language
C语言程序设计 教案 崔武子制作
函式庫補充資料.
Oop8 function函式.
Chap 5 函数 5.1 计算圆柱体积 5.2 使用函数编写程序 5.3 变量与函数.
輸出與輸入(I/O).
第一章 C语言概述 教师:周芸.
C++程式設計入門 變數與運算子 作者:黃建庭.
项目1 C程序设计起步 学习目标: 通过该项目你可以知道: C语言的用途。 C语言的基本符号和关键字。 C语言程序的结构及特点。
第一章 C语言概述 目录 什么是语言、程序 C语言的历史与发展 C语言的书写形式与程序结构 运行C语言的步骤与方法
第二章 语言设计问题.
第二章 类型、对象、运算符和表达式.
Introduction to the C Programming Language
累堆排序法 (Heap Sort).
本节内容 函数嵌套调用的内存布局 视频提供:昆山爱达人信息技术有限公司 官网地址: 联系QQ: QQ交流群 : 联系电话:
Introduction to the C Programming Language
程式設計--linear search 通訊一甲 B 楊穎穆.
第1章程序设计和C语言.
C++程序设计 概述 潘荣江 山东大学软件学院.
C/C++基礎程式設計班 C語言入門、變數、基本處理與輸入輸出 講師:林業峻 CSIE, NTU 3/7, 2015.
資料!你家住哪裏? --談指標 綠園.
第三章 流程控制 程序的运行流程 选择结构语句 循环结构语句 主讲:李祥 时间:2015年10月.
Introduction to the C Programming Language
函式庫補充資料 1.
隨機函數.
Presentation transcript:

C的發展史 C程式初體驗 C程式設計基本注意事項 上機實習課程

C的起源 1972年貝爾實驗室的Dennis Ritchie以B語言為基礎,並持續改善它。 除了保留BCLP及B語言中的許多觀念外,更加入了資料型態的觀念及其它功能,並且將它發表為「C語言」。 Dennis Ritchie發展出來的C語言乃是架構在DEC PDP-11電腦上,最初的目的主要是做為開發Unix作業系統的工具。 由於C語言這樣實用的工具使得Unix作業系統開發難度降低且進行順利,所以也開始應用在其它的程式設計領域,因此也使得C語言迅速受到眾人的矚目。

C的特色與優點(1) 程式可攜性高,具有跨平台能力 只要是使用ANSI C定義的標準函數庫來開發,而其中不包含一些中斷處理或廠商單獨提供的函數庫,那麼所開發出來的程式將具有相當高的可攜性(Portable)。 如果將開發出來的C語言程式碼拿到不同的作業平台上重新編譯,隨即能夠產生一個功能相同的可執行程式,而程式開發者不再需要重新編撰程式碼內容。

C的特色與優點(2) 體積小,執行效率高 具低階處理能力 作為學習其它語言的基礎 相較於Java、Visual Basic、Pascal等程式語言來說,C語言的執行效率相當高,執行時也相當穩定。 具低階處理能力 雖然這些較低階的操作技巧在學習上並不容易,不過卻是其它高階程式語言難以達成的工作項目。這也是C功能較其它語言強大的地方。 作為學習其它語言的基礎 C語言堪稱是「程式語言之父」,例如C++、Java、PHP與C#等程式語言,它們的基本語法及某些程式觀念都與C十分類似。

C程式執行過程簡介 過程通常可區分為「編輯」、「編譯」、「連結」、「載入」與「執行」五個階段。 目前多半是使用所謂的整合開發環境(IDE,Integrated Development Environment)來作為C的開發環境。 編寫完的程式碼,電腦是看不懂的,必需翻譯成電腦能懂的機器語言模式。 由於C是一種編譯式語言,也就是必須使用編譯器將原始程式翻譯成「目的碼」,副檔名為「*.obj」。

最後載入過程將可執行檔與相關的函數庫元件,從磁碟中載入到記憶體中,就可準備執行了。 1-1 C的發展史 由於使用者編譯的C程式中可能會使用到函數庫(副檔名為*.lib)中的函數,或者一個程式可能分為數個檔案來開發,這些檔案在編輯為目的檔後,必須透過連結器(linker),最後才會產生可執行檔(副檔名為*.exe)。 最後載入過程將可執行檔與相關的函數庫元件,從磁碟中載入到記憶體中,就可準備執行了。

C程式初體驗 1-2 C程式初體驗   功能表 工具列 程式輸入游標 專案瀏覽區 編寫程式區 編譯器輸出紀錄區 狀態列

程式碼的編寫與儲存 1-2 C程式初體驗 01 #include <stdio.h> 02 #include <stdlib.h> 03 04 int main(void) 05 { 06 printf("C程式初體驗\n");/* 呼叫printf()函數 */ 07 08 system("pause"); 09 return 0; 10 } 輸入完以上程式碼後,請執行「檔案/儲存」指令或是工具列上的「儲存」 鈕,並以「Ch01_01」為檔名,「.c」為副檔名進行檔案儲存。

程式碼的編譯與執行 1-2 C程式初體驗 按下工具列中的編譯按鈕 或執行「執行/編譯」指令,然後會出現以下視窗,代表檔案正在編譯中,如果編譯成功,原本的Compiling會出現Done字樣: 編譯進行中,這還包括連結與載入過程

請執行「執行/執行」指令或按下執行鈕 。將會看到本程式的執行結果: 1-2 C程式初體驗 請執行「執行/執行」指令或按下執行鈕 。將會看到本程式的執行結果:

程式碼快速解析 1-2 C程式初體驗 程式範例:第一個程式碼範例:CH01_01.c

第5~10行:表示此函數的所有指令內容。當然在這兩個大括弧間也可以完全沒有任何指令。 1-2 C程式初體驗 第1~2行:利用#include指令是前置處理指令的一種,在編譯時可將<stdio.h>標頭檔與<stdlib.h>標頭檔含括進來。 第4行:C中的main()函數是程式的進入點,而程式的內容則包含在main()下的大括弧{}內,而「void」表示此函數不需要任何的引數,int是宣告函數回傳值是整數資料型態。 第5~10行:表示此函數的所有指令內容。當然在這兩個大括弧間也可以完全沒有任何指令。 第6行:printf()是C語言的輸出函數指令,會將括號中引號「"」內的字串輸出到螢幕上,而「/n」則是跳脫字元的一種,有換行的功用,這些輸出功能會在第三章中為您深入說明。至於「/*」與「*/」符號所包括的部份稱為「註解」。

1-2 C程式初體驗 第8行:由於Windows系統正常結束後,都會直接關掉執行視窗,執行畫面會一閃即逝,根本看不出執行結果。這時可利用system()函數呼叫系統參數pause會讓程式執行到此先暫停,並且在執行視窗中會印出"請按任意鍵繼續…"等字,當您敲下任意鍵後,程式便會往下執行。 第9行:因為主程式被宣告為int資料型態,必須回傳(return)一個值,在習慣上是傳回0作為程式執行完畢,在ANSI C語法中,如果這行指令省略,也會自動視為是「return 0;」指令。

妥善利用函數 1-3 C程式設計基本注意事項 當程式開始執行時,一定會先執行main()這個函數,而不管它在程式中的任何位置,編譯器都會找到它才開始編譯程式內,因此main()又稱為「主函數」,架構如下所示: 01 int main( ) 02 { 03 指令 1; 04 指令 2; 05 . 06 . 07 } C語言程式的開頭 C語言程式的內容

其中第02行的左大括弧{表示main()函式開始,第07行的右大括弧}則表示main()函式的結束。 1-3 C程式設計基本注意事項 其中第02行的左大括弧{表示main()函式開始,第07行的右大括弧}則表示main()函式的結束。 另外在這兩個大括弧間也可以完全沒有任何內容,因此一個最簡單的C程式可以如下: 01 int main( ) 02 { 03 } 完全無任何的陳述

底下列出常見的C內建標頭檔供做參考: 標頭檔 說明 <math.h> 包含數學運算函數 <stdio.h> 包含標準輸出入函數 <stdlib.h> 標準函數庫,包含各類基本函數。 <string.h> 包含字串處理函數 <time.h> 包含時間、日期的處理函數  

適當加以縮排 在同一行指令中,對於完整不可分割的單元稱為字符(token),兩個字符間必須以空白鍵、tab鍵或輸入鍵區隔。請看以下指令範例: 1-3 C程式設計基本注意事項 在同一行指令中,對於完整不可分割的單元稱為字符(token),兩個字符間必須以空白鍵、tab鍵或輸入鍵區隔。請看以下指令範例: Return0; /*不合法的指令*/ printf ( "C程式初體驗\n") ; /*合法的指令*/ printf("C程式初體驗!!\n"); system("pause"); return 0; /*合法的指令*/ print f("C程式初體驗!!\n"); /*不合法的指令*/

像是在主程式中包含子區段,或者子區段中又包含其它子區段時,這時就可以透過縮排來區分程式碼的層級。 1-3 C程式設計基本注意事項 像是在主程式中包含子區段,或者子區段中又包含其它子區段時,這時就可以透過縮排來區分程式碼的層級。 簡單來說,遇到大括號時就要考慮縮排。 如以下巢狀if else指令,透過縮排的效果讓,讓區塊層次更分明:

1-3 C程式設計基本注意事項

盡量加上註解 註解不僅可以幫助其他的程式設計師了解程式內容,在日後進行程式維護時,詳盡的註解也能夠省下不少維護時間與成本。 1-3 C程式設計基本注意事項 註解不僅可以幫助其他的程式設計師了解程式內容,在日後進行程式維護時,詳盡的註解也能夠省下不少維護時間與成本。 在C中「/*」與「*/」間的文字都屬於註解內容。另外註解也能夠跨行使用。如下所示: /* 這是我的第一個C程式  它會顯示一小段簡單的文字 */ 中間的內容編譯器全部不予理會

上機實習課程 1-4 上機實習課程 上機實習範例:CH01_02.c

1-4 上機實習課程 執行結果