標籤:結構化 型號 完全 width 步驟 集合 height c語言 方法
程式:為了讓電腦執行某些操作或解決某個問題而編寫的一系列有序指令的集合
演算法:解決問題的具體方法和步驟
流程圖是演算法的一種圖形化表示方式。
流程圖直觀、清晰,更有利於人們設計與理解演算法。
它使用一組預定義的符號來說明如何執行特定任務
電腦語言發展史
1.
機器語言
1) 簡介:所有代碼裡面只有0和1,每一條指令稱為“機器指令”
2) 優點
u 代碼能被電腦直接識別,直接對硬體產生作用,程式的執行效率非常高
u 能直接訪問、控制電腦的各種硬體裝置,如磁碟、儲存空間、CPU、I/O連接埠等
3) 缺點
u 程式全是些0和1的指令代碼,可讀性差,還容易出錯
u 對硬體的依賴性很強,因此不同型號電腦的機器語言又不一樣。也就是說,如果2台不同型號的機器想實現一樣的功能,需要編寫2套完全不同的代碼
u 要熟記所用電腦的全部指令和指令的涵義,指令又多又難記
4) 使用場合
綜上所述,機器語言很難掌握和推廣,現在除了電腦生產廠家的專業人員外,絕大多數的程式員已經不再去學習機器語言了
2.
組合語言
1) 簡介:用英文單詞等符號代替機器指令
2) 優點
u 像機器語言一樣,可以直接存取、控制電腦的各種硬體裝置
u 佔用記憶體少,執行速度快
3) 缺點
u 不同的機器有不同的組合語言文法和編譯器,代碼缺乏可移植性,也就是說,一個程式只能在一種機器上運行,換到其他機器上就不能運行
u 符號非常多、難記,即使是完成簡單的功能也需要大量的組合語言代碼,很容易產生BUG,難於調試
u 必須對硬體非常瞭解,開發效率很低,周期長且單調
4) 使用場合
u 作業系統核心、驅動程式、單片機程式
u 軟體的加密、解密、破解
u 病毒的製作、防治
u 程式的調試、分析
3.
進階語言
1) 簡介:接近自然語言
2) 優點
u 簡單、易用、易於理解,文法和結構類似於普通英文
u 遠離對硬體的直接操作,使得一般人經過學習之後都可以編程,而不用太熟悉硬體知識
u 一個程式還可以在不同的機器上運行,具有可移植性
3) 缺點
u 程式不能直接被電腦識別,需要經編譯器翻譯成二進位指令後,才能運行到電腦上
4) 種類:C語言、C++、C#、Java、Objective-C等
4.
三種語言的對比
分別用機器語言、組合語言、C語言(進階語言)來寫一個計算1+1的程式
1) 機器語言:簡直是天書!!!
10111000 00000001
00000000 00000101
00000001 00000000
2) 組合語言:可讀性稍微好一點,但是麻煩
MOV AX,1
ADD AX,1
3) C語言:精簡、通俗易懂
1+1
C 語言簡介
C 語言是貝爾實驗室的 Dennis Ritchie 在1973 年設計的。C 最初用於開發系統級程式。
在微機上,有許多效能良好的商品C 語言系統可用。包括Turbo C、Borland
C語言特點:
結構化的程式設計語言:層次清晰,便於按模組化方式組織程式,易於調試和維護
語句簡潔:學習時入門相對容易,C 語言很好地總結了其他語言提出的程式庫概念
功能強大:既可用於系統軟體的開發,也適合於應用軟體的開發。
移植性好:只要對這種語言稍加修改,便可以適應不同型號機器或各類作業系統。
C語言的基本結構
#include <stdio.h> //以.h為尾碼的檔案被稱為標頭檔,可以是 C 程式中現成的標準庫檔案,也可以是自訂的庫檔案。
void main(){ //程式從main主函數開始執行;
printf("HelloWorld\n"); //printf列印輸出;
}
代碼執行流程
1.原始碼(以.c為副檔名,這是使用者建立的檔案)
2.目標檔案(通常以.o或者.obj為副檔名,這是編譯器編譯後的檔案)
3.可執行檔(以.exe為尾碼名結束是連接器的輸入結果)
4.運行
#include <stdio.h>
int main()
{
// \n:換行 \t:製表位
/*
printf("************\n");
printf("*\n");
printf("*\n");
printf("*\n");
printf("*\n");
printf("************\n");
*/
printf("姓名\t語文\t數學\t英語\n");
printf("張三\t80\t90\t70\n");
return 0;
}
#include <stdio.h> void main() { /* printf("*******************************\n");// \n:換行 printf(" 鄭州四中成績表 \n"); printf("*******************************\n");// \n:換行 printf("姓名 語文 英語 數學\n"); printf("張三 80 80 80\n"); printf("李四 80 80 80\n"); */ printf("*******************************\n");// \n:換行 printf("\t鄭州四中成績表\n"); printf("*******************************\n");// \n:換行 printf("姓名\t語文\t英語\t數學\n"); // \t:製表位(tab)相當於若干空格 printf("張三\t80\t80\t80\n"); printf("李四\t80\t80\t80\n"); } |
從電腦語言的發展到我的第一行代碼(HelloWorld)