隨著科學技術的迅猛發展,計算機技術日新月異,計算機程序設計語言也層出不窮。那么,什么是程序語言,什么是程序設計?應該學哪一種程序語言,如何進行程序設計?這些都是程序設計初學者首先遇到的問題,也是程序設計的基本問題、共性問題。
不論是什么樣的計算機語言,其程序設計的基本方法是相同的。本書作為程序設計的入門教材,將以C語言程序設計為主線,介紹程序設計的基本概念和基本方法,講述C語言的語法規則和實用的C程序設計技術。作為全書的開篇,本章就程序設計的基本知識作概括性討論,重點介紹算法的概念、特征、設計算法的方法和策略、流程圖的表示和結構化程序設計方法等內容。需要說明的是,有些概念和方法要隨著后續各章的深入學習才會有深刻的理解,不必在一時不懂的問題上停滯不前。
1.1.1 程序與程序語言
1.計算機語言
什么是計算機語言?為什么要使用計算機語言?過去,一提到語言這個詞,人們自然想到的是像英語、漢語等這樣的自然語言,因為它是人和人相互交流信息不可缺少的工具。而今天,計算機遍布了我們生活的每一個角落,除了人和人之間的相互交流之外,我們必須和計算機交流。用什么樣的方式和計算機做最直接的交流呢?人們自然想到的是最古老也最方便的方式--語言。人和人交流用的是雙方都能聽懂和讀懂的自然語言,同樣,人和計算機交流也要用人和計算機都容易接受和理解的語言,這就是計算機語言。人們用自然語言講述和書寫,目的是給另外的人傳播信息。同樣,我們使用計算機語言把我們的意圖表達給計算機,目的是使用計算機。
計算機語言是根據計算機的特點而編制的,它沒有自然語言那么豐富多樣,而只是有限規則的集合,所以它簡單易學。但是,也正因為它是根據機器的特點編制的,所以交流中無法意會和言傳,而更多地表現了說一不二, 表現了"規則"的嚴謹。例如該是";"的地方不能寫成".",該寫"a"的地方不能寫成"A",這使得人和計算機的交流在一開始會有些不習慣。不過,只要認識到計算機語言的特點,注意學習方法,把必須的嚴謹和恰當的靈活相結合,一切都會得心應手。
2.程序
我們知道,計算機是一種具有內部存儲能力的自動、高效的電子設備,它最本質的使命就是執行指令所規定的操作。如果我們需要計算機完成什么工作,只要將其步驟用諸條指令的形式描述出來,并把這些指令 存放在計算機的內部存儲器中,需要結果時就向計算機發出一個簡單的ming令,計算機就會自動逐條順序執行操作,全部指令執行完就得到了預期的結果。這種可以被連續執行的一條條指令的集合稱為計算機的程序。也就是說,程序是計算機指令的序列,編制程序的工作就是為計算機安排指令序列。
但是,我們知道,指令是二進制編碼,用它編制程序既難記憶,又難掌握,所以,計算機工作者就研制出了各種計算機能夠懂得、人們又方便使用的計算機語言,程序就是用計算機語言來編寫的。因此,計算機語言通常被稱為"程序語言",一個計算機程序總是用某種程序語言書寫的。
3.程序語言的發展
程序語言的產生和發展,直接推動了計算機的普及和應用。自第一個高級語言問世以來,人們已發明了上千種程序語言,常用的也有上百種。這些語言之間有什么區別,我們應該學習哪一種?
計算機語言按使用方式和功能別可分為低級語言和高級語言。低級語言包括機器語言和匯編語言。機器語言就是計算機指令的集合,它與計算機同時誕生,是第一代的計算機語言;匯編語言是用符號來表示計算機指令,被稱為第二代語言。機器語言和匯編語言都是圍繞特定的計算機或計算機族而設計的,是面向計算機的語言。要使用這種語言必須了解計算機的內部結構,而且難學、難寫、難記憶,把這種語言稱為低級語言。因為低級語言是難以普及應用的,為此便產生了第三代語言--高級語言。它采用了完全符號化的描述形式,用類似自然語言的形式描述對問題的處理過程,用數學表達式的形式描述對數據的計算過程??梢姡呒壵Z言只是要求人們向計算機描述問題的求解過程,而不關心計算機的內部結構,所以把高級語言稱為"面向過程語言",它易于被人們理解和接受。典型的面向過程語言有BASIC、FORTRAN、COBOL、C、Pascal等等。
隨著計算機技術的迅猛發展,自從80年代以來,眾多的第四代非過程化語言、第五代智能化語言也競相推出。如果說第三代語言要求人們告訴計算機怎么做,那么第四代語言只要求人們告訴計算機做什么。因此,人們稱第四代語言是"面向對象語言"。面向對象概念的提出是相對于"面向過程"的一次革命,面向對象技術在系統程序設計、多媒體應用、數據庫等諸多領域得到廣泛應用。但是,"面向過程"是程序設計的基礎,尤其對于程序設計的初學者。所以,我們將以面向過程的C程序設計語言為背景,主要介紹程序設計的基本概念和方法。在本書最后一章中,我們將結合Visual C++ 6.0,介紹面向對象程序設計語言的基本概念和初步使用。
新聞熱點
疑難解答