A. 「程序設計=演算法+數據結構」如何理解
「演算法+數據結構=程序」是一個著名的公式。程序運行的過程就是數據流的處理過程,怎麼處理,那就是演算法問題,數據怎麼組織,那就是數據結構了。
程序設計是給出解決特定問題程序的過程,是軟體構造活動中的重要組成部分。程序設計往往以某種程序設計語言為工具,給出這種語言下的程序。
(1)演算法與數據介面擴展閱讀:
某種意義上,程序設計的出現甚至早於電子計算機的出現。英國著名詩人拜倫的女兒愛達·勒芙蕾絲曾設計了巴貝奇分析機上計算伯努利數的一個程序。她甚至還創建了循環和子程序的概念。由於她在程序設計上的開創性工作,愛達·勒芙蕾絲被稱為世界上第一位程序員。
任何設計活動都是在各種約束條件和相互矛盾的需求之間尋求一種平衡,程序設計也不例外。在計算機技術發展的早期,由於機器資源比較昂貴,程序的時間和空間代價往往是設計關心的主要因素;
隨著硬體技術的飛速發展和軟體規模的日益龐大,程序的結構、可維護性、復用性、可擴展性等因素日益重要。
另一方面,在計算機技術發展的早期,軟體構造活動主要就是程序設計活動。但隨著軟體技術的發展,軟體系統越來越復雜,逐漸分化出許多專用的軟體系統,如操作系統、資料庫系統、應用伺服器,而且這些專用的軟體系統愈來愈成為普遍的計算環境的一部分。
這種情況下軟體構造活動的內容越來越豐富,不再只是純粹的程序設計,還包括資料庫設計、用戶界面設計、介面設計、通信協議設計和復雜的系統配置過程。
B. 計算機圖形學問題
1、直線的生成和2種演算法:DDA演算法:代碼如下
void
dda(Graphics
g,int
x1,int
x2,int
y1,int
y2)
{int
k;
float
x,y,dx,dy;
k=Math.abs(x2-x1);
if(Math.abs(y2-y1)>k)
k=Math.abs(y2-y1);
dx=(float)(x2-x1)/k;
dy=(float)(y2-y1)/k;
x=(float)x1;
y=(float)y1;
for(int
i=0;i<k;i++)
drawLine((int)x+.5f,((int)y+.5f,((int)x+.5f.((int)y+.5f);
x=x+dx;
y=y+dy;
}
}
Breseham演算法;
2、填充的定義和2種演算法分別是
掃描線種子填充演算法和遞歸演算法
3、圖像學的定義與運用
定義是研究如何在計算機環境下生成,處理和現實圖形的一門學科。具體應用很廣泛:像有些公司在製造汽車,飛機等時,會先畫出制圖,一般都會在計算機上繪制出來;等等吧