1. 程式人生 > >從計算機語言的發展到我的第一行代碼(HelloWorld)

從計算機語言的發展到我的第一行代碼(HelloWorld)

流程圖 專業 程序庫 進制 掌握 設計 borland 編程 擴展名

程序:為了讓計算機執行某些操作或解決某個問題而編寫的一系列有序指令的集合

算法:解決問題的具體方法和步驟

流程圖是算法的一種圖形化表示方式。

流程圖直觀、清晰,更有利於人們設計與理解算法。

它使用一組預定義的符號來說明如何執行特定任務

計算機語言發展史

1. 機器語言

1) 簡介:所有代碼裏面只有01,每一條指令稱為“機器指令”

2) 優點

u 代碼能被計算機直接識別直接對硬件產生作用程序的執行效率非常高

u 能直接訪問控制計算機的各種硬件設備磁盤存儲器CPUI/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#JavaObjective-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)