當前位置:首頁 » 編程軟體 » 慧編程題目

慧編程題目

發布時間: 2022-04-12 22:50:20

A. 2008年小學奧林匹克競賽答案

要多復習這些題!

牛吃草問題,簡便計算,工程問題,濃度問題,植樹問題,圖形題,盈虧問題,行程問題,倒推法解題,比的應用題,邏輯推理,流水行船問題,找規律,平均數問題,差倍問題,算式謎,周期問題,還原問題,假設法解題等等。

你還可以買本奧數書看,在網上找試卷來做。

最後祝你考個好成績!
一、整數處理(100分)(存檔程序名:T1)

電腦老師讓小慧編程做一道題:輸入一個正整數A(A≤100000000),如果A的個位數字是5,則統計A能被5整除多少次?否則,統計A當中含有多少個「0」?你能做嗎?

例如:輸入:125 輸入:305160

輸出:3 輸出:2

程序:

program cs200801;

var

a:longint;{根據A的取值范圍,採用長整型}

n:integer;

begin

readln(a);

n:=0;

if a mod 10=5 then

repeat

a:=a div 5;

n:=n+1;

until a mod 5<>0{統計A能被5帶除多少次}

else begin

repeat

if a mod 10=0 then n:=n+1;

a:=a div 10;

until a<10;{統計A當中含有多少個0}

end;{採用if……then……else……結構,以符合題目的邏輯關系}

writeln(n);

readln

end.

二、新年同慶(100分)(存檔程序名:T2)

過年了,小慧與鄰居鄰居的小夥伴共n人相約一起放花炮:他們同時放響了第一個,隨後n個人分別以a1、a2、a3、……、an秒的間隔繼續放花炮,每人都放了b個。問:總共可聽到多少聲花炮響?

輸入:n(n≤10)

a1 a2 …… an(每個數≤100,以空格相隔)

b(b≤100)

輸出:一個整數(聽到的花炮響聲數)

例如:輸入:3 輸出:7

1 2 3

4

解題思路:

用數組的下標表示時間,元素的值不為0表示聽到花炮響。用同一個數組來標示所有人放花炮的過程,同時響的花炮在數組中會被記錄在同一元素中。最後統計數組中有數據的元素個數,就能得出共聽到了多少聲花炮響。這一方法還可以求出在某一時刻,同時有多少個花炮一起響。

程序:

program CS200802;

var

n,b,i,j,k,s:integer;

a:array[1..100] of integer;

c:array[1..10000] of integer;{用於記錄花炮響。最多100個,間隔最大100,下標范圍到10000可滿足條件}

begin

readln(n);

for i:=1 to n do read(a[i]);{為保證輸入格式,此處用read(),不用readln()}

readln(b);

c[1]:=n;{第一個花炮同時放響}

for i:=1 to n do begin{1至n代表放花炮的每個人}

k:=1;{第一個花炮響的時間}

for j:=2 to b do begin{2至b代表從第2個到第b個花炮}

k:=k+a[i];{依次得到花炮響的時間}

c[k]:=c[k]+1;{將花炮響時間記錄到數組c中}

end;

end;

s:=0;

for i:=1 to 10000 do if c[i]<>0 then s:=s+1;{求一共聽到多少次花炮響}

writeln(s);

{for i:=1 to 10000 do if c[i]<>0 then write(i:3);

writeln;

for i:=1 to 10000 do if c[i]<>0 then write(c[i]:3);}{輸出所有花炮響的時刻及有多少花炮同時響}

readln

end.

三、文檔編輯(100分)(存檔程序名:T3)

暑假當中,媽媽讓小慧幫忙修改英文資料,英文中還有一些統計數據(統計數據都是正整數,而且其前、後都有空格)。媽媽說:如果文檔結尾處有「end」,則應當刪除,文中所有的統計數據都要加上一個正整數m。你能編程序完成小慧的任務嗎?

輸入:m

待修改的文檔(字元串)

輸出:修改後的文檔(字元串)

例如:輸入:13

There are 45 students in 32class.end

輸出:There are 58 students in 32class.

解題思路:

這個題目由兩個問題構成,一個是處理文檔結尾處的「end」。一個是處理統計數據。

處理文檔結尾處的「end」,需要判斷出文檔最後三個字母是不是「end」。先用length函數求出文檔的長度,再函數截取文檔最後三個字母和「end」進行比較。

處理統計數據關鍵在於獲取空格的位置。利用pos函數可以取得空格的位置。

在處理整個文檔時,先處理文檔結尾處的「end」,然後一個一個單詞進行處理。處理完一個單詞就輸出一個單詞並從字元串中刪除此單詞及其後的空格。遇到統計數據則按題目要求處理。

需要注意的是,依題意,文檔開頭和結尾的數據不作統計數據處理。

程序:

program CS200803;

var

m,n:longint;

l,i,c,k:integer;

s,s1:string;

begin

readln(m);

readln(s);

l:=length(s);

if (s,l-2,3)='end' then delete(s,l-2,3);{刪除文檔結尾的'end'}

k:=pos(' ',s);{查找第一個空格的位置}

for i:=1 to k do write(s[i]);

delete(s,1,k);{輸出並刪除文檔第一個單詞。這一步主要是為了解決第一個單詞是數據的情況,依題意,因前面沒有空格,不做統計數據處理}

repeat

if (char(s[1])>=char('0')) and (char(s[1])<=char('9')) then{單詞第一個字母是數字,則可能是統計數據}

begin

k:=pos(' ',s);

s1:=(s,1,k-1);

val(s1,n,c);{將此單詞轉換為數值}

if c=0 then{c=0則意味著轉換過程中沒有出錯,單詞完全由數字組成}

begin

write(n+m,' ');

delete(s,1,k);

end else begin

for i:=1 to k do write(s[i]);

delete(s,1,k);

end;

end else begin;{c<>0,意味著轉換過程出錯,單詞不是統計數據}

k:=pos(' ',s);

for i:=1 to k do write(s[i]);

delete(s,1,k);

end;

until pos(' ',s)=0;{處理到最後一個空格為此,後面的不可能再為統計數據,因後面沒有空格了}

write(s);{輸出文檔的剩餘部分}

readln

end.

四、智力沖浪(100分)(存檔程序名:T4)

小慧准備參加湖南電視台舉辦的智力沖浪節目。規則如下:

沖浪者首先擁有m個快樂金球。沖浪當中設有n個游戲項目,每個游戲項目都必須在整分鍾時開始,限時1分鍾,而且都規定了最後完成期限(即:沖浪開始t分鍾內必須完成)。如果一個游戲項目沒按規定完成,則從沖浪者的快樂金球中扣掉一部分,不同游戲項目扣掉的金球數也不同。游戲項目的順序自己安排。最終,贏得快樂金球數最多的選手勝出。

小慧非常想奪得冠軍,請你計算出小慧最多能贏得多少個快樂金球?

輸入:m n(m≤10000,n≤50)

n個整數(以空格相隔),分別表示每個游戲項目規定的完成期限(≤n)

n個整數(以空格相隔),分別表示每個游戲項目未完成時扣掉的金球數

輸出:一個整數(最多能贏得快樂金球的個數)

例如:輸入:10000 7

4 2 4 3 1 4 6

20 60 70 40 30 50 10

輸出:9950

程序:

program CS200804;

var

m,n,i,j,t,time,s:integer;

a,b,c:array[1..50] of integer;

flag:boolean;

begin

readln(m,n);

for i:=1 to n do read(a[i]);

for i:=1 to n do read(b[i]);

for i:=1 to n do m:=m-b[i];

for i:=1 to n do

for j:=i+1 to n do begin

if a[i]>a[j] then begin

t:=a[i];a[i]:=a[j];a[j]:=t;t:=b[i];b[i]:=b[j];b[j]:=t;

end;end;{按照完成期限由短至長排序}

for i:=1 to n do

for j:=i+1 to n do begin

if (a[i]=a[j]) and (b[i]<b[j]) then begin

t:=a[i];a[i]:=a[j];a[j]:=t;t:=b[i];b[i]:=b[j];b[j]:=t;

end;end;{相同完成期限的按從大到小排序}

{for i:=1 to n do write(a[i]:3);writeln;

for i:=1 to n do write(b[i]:3);writeln;}{測試用,查看排序結果}

for i:=1 to n do

for j:=i to n do if (a[j]=i) and (b[j]>c[i]) then begin

c[i]:=b[j];a[j]:=0;b[j]:=0;

end;{將每一完成期限的第一個值,即金球數最多的值填入數組c,數組c的下標對應完成期限}

{for i:=1 to n do write(a[i]:3);writeln;

for i:=1 to n do write(b[i]:3);writeln;

for i:=1 to n do write(c[i]:3);writeln;}{測試用}

for i:=1 to n do

for j:=i+1 to n do begin

if (b[i]<b[j]) then begin

t:=a[i];a[i]:=a[j];a[j]:=t;t:=b[i];b[i]:=b[j];b[j]:=t;

end;end;{將剩餘的數據從大到小排序}

for i:=1 to n do

for j:=i to n do if (a[j]>i) and (c[i]=0) then begin

c[i]:=b[j];a[j]:=0;b[j]:=0;

end;{將數據按照完成期限填入到數組C的空位中}

for i:=1 to n do

for j:=i+1 to n do begin

if a[i]>a[j] then begin

t:=a[i];a[i]:=a[j];a[j]:=t;t:=b[i];b[i]:=b[j];b[j]:=t;

end;end;{將剩餘的數據按完成期限從短到長排序}

for i:=1 to n do

for j:=i to n do if (a[j]>i) and (b[j]>c[i]) then begin

c[i]:=b[j];a[j]:=0;b[j]:=0;

end;{用剩餘的數據替換完成期限比它短,數值比它小的數}

{for i:=1 to n do write(a[i]:3);writeln;

for i:=1 to n do write(b[i]:3);writeln;

for i:=1 to n do write(c[i]:3);writeln;}{測試用}

for i:=1 to n do m:=m+c[i];

writeln(m);

readln;readln

end.

績!

B. 關於python編程的一個問題,集體智慧編程

改成這樣,就可以了 應該

frommathimportsqrt
defsim_distance(prefs,personal1,personal2):
si={}
foriteminprefs[personal1]:
ifiteminprefs[personal2]:
si[item]=1
iflen(si)==0:return0//這一句有問題!!
sum_of_squares=sum([pow(prefs[personal1][item]-prefs[personal2][item],2)
foriteminprefs[personal1]ifiteminprefs[personal2]])
return1/(1+sqrt(sum_of_squares))

reload未定義說明要麼這個變數你木有聲明,要麼這個模塊你木有導入

C. 大智慧編程DRAWTEXT(COND,PRICE,TEXT)問題

DRAWTEXT(A=1,REF(H,5),'5'),COLORYELLOW,ALIGN1;

D. 編程演算法題:將兩個數組a、b中相同的元素提取出來,保存在數組c中,不考慮空間復雜度。

有nlogn的,先對兩個數組進行排序,然後再拿其中的一個數字去另一個數字中二分查找.

E. 編程該怎麼學

0.引言

在ChinaITLAB導師制輔導中,筆者發現問得最多的問題莫過於"如何學習編程?Java該如何學習?"。類似的問題回答多了,難免會感覺厭煩,就萌生了寫下本文的想法。到時候再有人問起類似的問題,我可以告訴他(她),請你去看看《Java學習之路》。拜讀過台灣蔡學鏞先生的《Java夜未眠》,有些文章如《Java學習之道》等讓我們確實有共鳴,本文題目也由此而來。

軟體開發之路是充滿荊棘與挑戰之路,也是充滿希望之路。Java學習也是如此,沒有捷徑可走。夢想像《天龍八部》中虛竹一樣被無崖子醍醐灌頂而輕松獲得一甲子功力,是很不現實的。每天仰天大叫"天神啊,請賜給我一本葵花寶典吧",殊不知即使你獲得了葵花寶典,除了受自宮其身之苦外,你也不一定成得了"東方不敗",倒是成"西方失敗"的幾率高一點。

"不走彎路,就是捷徑",佛經說的不無道理。

1.如何學習程序設計?

Java是一種平台,也是一種程序設計語言,如何學好程序設計不僅僅適用於Java,對C++等其他程序設計語言也一樣管用。有編程高手認為,Java也好C也好沒什麼分別,拿來就用。為什麼他們能達到如此境界?我想是因為編程語言之間有共通之處,領會了編程的精髓,自然能夠做到一通百通。如何學習程序設計理所當然也有許多共通的地方。

1.1 培養興趣

興趣是能夠讓你堅持下去的動力。如果只是把寫程序作為謀生的手段的話,你會活的很累,也太對不起自己了。多關心一些行業趣事,多想想蓋茨。不是提倡天天做白日夢,但人要是沒有了夢想,你覺得有味道嗎?可能像許多深圳本地農民一樣,打打麻將,喝喝功夫茶,拜拜財神爺;每個月就有幾萬十幾萬甚至更多的進帳,憑空多出個"食利階層"。你認為,這樣有味道嗎?有空多到一些程序員論壇轉轉,你會發現,他們其實很樂觀幽默,時不時會冒出智慧的火花。

1.2 慎選程序設計語言

男怕入錯行,女怕嫁錯郎。初學者選擇程序設計語言需要謹慎對待。軟體開發不僅僅是掌握一門編程語言了事,它還需要其他很多方面的背景知識。軟體開發也不僅僅局限於某幾個領域,而是已經滲透到了各行各業幾乎每一個角落。

如果你對硬體比較感興趣,你可以學習C語言/匯編語言,進入硬體開發領域。如果你對電信的行業知識及網路比較熟悉,你可以在C/C++等之上多花時間,以期進入電信軟體開發領域。如果你對操作系統比較熟悉,你可以學習C/Linux等等,為Linux內核開發/驅動程序開發/嵌入式開發打基礎。

如果你想介入到應用范圍最廣泛的應用軟體開發(包括電子商務電子政務系統)的話,你可以選擇J2EE或.NET,甚至LAMP組合。每個領域要求的背景知識不一樣。做應用軟體需要對資料庫等很熟悉。總之,你需要根據自己的特點來選擇合適你的編程語言。

1.3 要腳踏實地,快餐式的學習不可取

先分享一個故事。

有一個小朋友,他很喜歡研究生物學,很想知道那些蝴蝶如何從蛹殼里出來,變成蝴蝶便會飛。有一次,他走到草原上面看見一個蛹,便取了回家,然後看著,過了幾天以後,這個蛹出了一條裂痕,看見裡面的蝴蝶開始掙扎,想抓破蛹殼飛出來。 這個過程達數小時之久,蝴蝶在蛹裡面很辛苦地拚命掙扎,怎麼也沒法子走出來。這個小孩看著看著不忍心,就想不如讓我幫幫它吧,便隨手拿起剪刀在蛹上剪開,使蝴蝶破蛹而出。 但蝴蝶出來以後,因為翅膀不夠力,變得很臃腫,飛不起來。

這個故事給我們的啟示是:欲速則不達。

浮躁是現代人最普遍的心態,能怪誰?也許是貧窮落後了這么多年的緣故,就像當年的大躍進一樣,都想大步跨入共產主義社會。現在的軟體公司、客戶、政府、學校、培訓機構等等到處彌漫著浮躁之氣。就拿筆者比較熟悉的深圳IT培訓行業來說吧,居然有的打廣告宣稱"參加培訓,100%就業",居然報名的學生不少,簡直是藐視天下程序員。社會環境如是,我們不能改變,只能改變自己,鬧市中的安寧,彌足珍貴。許多初學者C++/Java沒開始學,立馬使用VC/JBuilder,會使用VC/JBuilder開發一個Hello World程序,就忙不迭的向世界宣告,"我會軟體開發了",簡歷上也大言不慚地寫上"精通VC/Java"。結果到軟體公司面試時要麼被三兩下打發走了,要麼被駁的體無完膚,無地自容。到處碰壁之後才知道捧起《C++編程思想》《Java編程思想》仔細鑽研,早知如此何必當初呀。

"你現在講究簡單方便,你以後的路就長了",好象也是佛經中的勸戒。

1.4 多實踐,快實踐

彭端淑的《為學一首示子侄》中有窮和尚與富和尚的故事。

從前,四川邊境有兩個和尚,一個貧窮,一個有錢。一天,窮和尚對富和尚說:"我打算去南海朝聖,你看怎麼樣?"富和尚說:"這里離南海有幾千里遠,你靠什麼去呢?"窮和尚說:"我只要一個水缽,一個飯碗就夠了。"富和尚為難地說:"幾年前我就打算買條船去南海,可至今沒去成,你還是別去吧!" 一年以後,富和尚還在為租賃船隻籌錢,窮和尚卻已經從南海朝聖回來了。

這個故事可解讀為:任何事情,一旦考慮好了,就要馬上上路,不要等到准備周全之後,再去幹事情。假如事情准備考慮周全了再上路的話,別人恐怕捷足先登了。軟體開發是一門工程學科,注重的就是實踐,"君子動口不動手"對軟體開發人員來講根本就是錯誤的,他們提倡"動手至上",但別害怕,他們大多溫文爾雅,沒有暴力傾向,雖然有時候蓬頭垢面的一副"比爾蓋茨"樣。有前輩高人認為,學習編程的秘訣是:編程、編程、再編程,筆者深表贊同。不僅要多實踐,而且要快實踐。我們在看書的時候,不要等到你完全理解了才動手敲代碼,而是應該在看書的同時敲代碼,程序運行的各種情況可以讓你更快更牢固的掌握知識點。

1.5 多參考程序代碼

程序代碼是軟體開發最重要的成果之一,其中滲透了程序員的思想與靈魂。許多人被《仙劍奇俠傳》中凄美的愛情故事感動,悲劇的結局更有一種缺憾美。為什麼要以悲劇結尾?據說是因為寫《仙劍奇俠傳》的程序員失戀而安排了這樣的結局,他把自己的感覺融入到游戲中,卻讓眾多的仙劍迷扼腕嘆息。

多多參考代碼例子,對Java而言有參考文獻[4.3],有API類的源代碼(JDK安裝目錄下的src.zip文件),也可以研究一些開源的軟體或框架。

1.6 加強英文閱讀能力

對學習編程來說,不要求英語, 但不能一點不會,。最起碼像Java API文檔(參考文獻[4.4])這些東西還是要能看懂的,連猜帶懵都可以;旁邊再開啟一個"金山詞霸"。看多了就會越來越熟練。在學Java的同時學習英文,一箭雙雕多好。另外好多軟體需要到英文網站下載,你要能夠找到它們,這些是最基本的要求。英語好對你學習有很大的幫助。口語好的話更有機會進入管理層,進而可以成為剝削程序員的"周扒皮"。

1.7 萬不得已才請教別人

筆者在ChinaITLab網校的在線輔導系統中解決學生問題時發現,大部分的問題學生稍做思考就可以解決。請教別人之前,你應該先回答如下幾個問題。

你是否在google中搜索了問題的解決辦法?

你是否查看了Java API文檔?

你是否查找過相關書籍?

你是否寫代碼測試過?

如果回答都是"是"的話,而且還沒有找到解決辦法,再問別人不遲。要知道獨立思考的能力對你很重要。要知道程序員的時間是很寶貴的。

1.8 多讀好書

書中自有顏如玉。比爾?蓋茨是一個飽讀群書的人。雖然沒有讀完大學,但九歲的時候比爾?蓋茨就已經讀完了所有的網路全書,所以他精通天文、歷史、地理等等各類學科,可以說比爾?蓋茨不僅是當今世界上金錢的首富,而且也可以稱得上是知識的巨富。

筆者在給學生上課的時候經常會給他們推薦書籍,到後來學生實在忍無可忍開始抱怨,"天吶,這么多書到什麼時候才能看完了","學軟體開發,感覺上了賊船"。這時候,我的回答一般是,"別著急,什麼時候帶你們去看看我的書房,到現在每月花在技術書籍上的錢400元,這在軟體開發人員之中還只能夠算是中等的",學生當場暈倒。(註:這一部分學生是剛學軟體開發的)

對於在Java開發領域的好書在筆者另外一篇文章中會專門點評。該文章可作為本文的姊妹篇。
1.9 使用合適的工具

工欲善其事必先利其器。軟體開發包含各種各樣的活動,需求收集分析、建立用例模型、建立分析設計模型、編程實現、調試程序、自動化測試、持續集成等等,沒有工具幫忙可以說是寸步難行。工具可以提高開發效率,使軟體的質量更高BUG更少。組合稱手的武器。到飛花摘葉皆可傷人的境界就很高了,無招勝有招,手中無劍心中有劍這樣的境界幾乎不可企及。在筆者另外一篇文章中會專門闡述如何選擇合適的工具(該文章也可作為本文的姊妹篇)。

2.軟體開發學習路線

兩千多年的儒家思想孔孟之道,中庸的思想透入骨髓,既不冒進也不保守並非中庸之道,而是找尋學習軟體開發的正確路線與規律。

從軟體開發人員的生涯規劃來講,我們可以大致分為三個階段,軟體工程師→軟體設計師→架構設計師或項目管理師。不想當元帥的士兵不是好士兵,不想當架構設計師或項目管理師的程序員也不是好的程序員。我們應該努力往上走。讓我們先整理一下開發應用軟體需要學習的主要技術。

A.基礎理論知識,如操作系統、編譯原理、數據結構與演算法、計算機原理等,它們並非不重要。如不想成為計算機科學家的話,可以採取"用到的時候再來學"的原則。

B.一門編程語言,現在基本上都是面向對象的語言,Java/C++/C#等等。如果做WEB開發的話還要學習HTML/JavaScript等等。

C.一種方法學或者說思想,現在基本都是面向對象思想(OOA/OOD/設計模式)。由此而衍生的基於組件開發CBD/面向方面編程AOP等等。

D.一種關系型資料庫,ORACLE/SqlServer/DB2/MySQL等等

E.一種提高生產率的IDE集成開發環境JBuilder/Eclipse/VS.NET等。

F.一種UML建模工具,用ROSE/VISIO/鋼筆進行建模。

G.一種軟體過程,RUP/XP/CMM等等,通過軟體過程來組織軟體開發的眾多活動,使開發流程專業化規范化。當然還有其他的一些軟體工程知識。

H.項目管理、體系結構、框架知識。

正確的路線應該是:B→C→E→F→G→H。

還需要補充幾點:

1).對於A與C要補充的是,我們應該在實踐中逐步領悟編程理論與編程思想。新技術雖然不斷涌現,更新速度令人眼花燎亂霧里看花;但萬變不離其宗,編程理論與編程思想的變化卻很慢。掌握了編程理論與編程思想你就會有撥雲見日之感。面向對象的思想在目前來講是相當關鍵的,是強勢技術之一,在上面需要多投入時間,給你的回報也會讓你驚喜。

2).對於資料庫來說是獨立學習的,這個時機就由你來決定吧。

3).編程語言作為學習軟體開發的主線,而其餘的作為輔線。

4).軟體工程師著重於B、C、E、D;軟體設計師著重於B、C、E、D、F;架構設計師著重於C、F、H。

3.如何學習Java?

3.1 Java學習路線

3.1.1 基礎語法及Java原理

基礎語法和Java原理是地基,地基不牢靠,猶如沙地上建摩天大廈,是相當危險的。學習Java也是如此,必須要有扎實的基礎,你才能在J2EE、J2ME領域游刃有餘。參加SCJP(SUN公司認證的Java程序員)考試不失為一個好方法,原因之一是為了對得起你交的1200大洋考試費,你會更努力學習,原因之二是SCJP考試能夠讓你把基礎打得很牢靠,它要求你跟JDK一樣熟悉Java基礎知識;但是你千萬不要認為考過了SCJP就有多了不起,就能夠獲得軟體公司的青睞,就能夠獲取高薪,這樣的想法也是很危險的。獲得"真正"的SCJP只能證明你的基礎還過得去,但離實際開發還有很長的一段路要走。
3.1.2 OO思想的領悟

掌握了基礎語法和Java程序運行原理後,我們就可以用Java語言實現面向對象的思想了。面向對象,是一種方法學;是獨立於語言之外的編程思想;是CBD基於組件開發的基礎;屬於強勢技術之一。當以後因工作需要轉到別的面向對象語言的時候,你會感到特別的熟悉親切,學起來像喝涼水這么簡單。

使用面向對象的思想進行開發的基本過程是:

●調查收集需求。

●建立用例模型。

●從用例模型中識別分析類及類與類之間的靜態動態關系,從而建立分析模型。

●細化分析模型到設計模型。

●用具體的技術去實現。

●測試、部署、總結。

3.1.3 基本API的學習

進行軟體開發的時候,並不是什麼功能都需要我們去實現,也就是經典名言所說的"不需要重新發明輪子"。我們可以利用現成的類、組件、框架來搭建我們的應用,如SUN公司編寫好了眾多類實現一些底層功能,以及我們下載過來的JAR文件中包含的類,我們可以調用類中的方法來完成某些功能或繼承它。那麼這些類中究竟提供了哪些方法給我們使用?方法的參數個數及類型是?類的構造器需不需要參數?總不可能SUN公司的工程師打國際長途甚至飄洋過海來告訴你他編寫的類該如何使用吧。他們只能提供文檔給我們查看,Java DOC文檔(參考文獻4.4)就是這樣的文檔,它可以說是程序員與程序員交流的文檔。

基本API指的是實現了一些底層功能的類,通用性較強的API,如字元串處理/輸入輸出等等。我們又把它成為類庫。熟悉API的方法一是多查Java DOC文檔(參考文獻4.4),二是使用JBuilder/Eclipse等IDE的代碼提示功能。

3.1.4 特定API的學習

Java介入的領域很廣泛,不同的領域有不同的API,沒有人熟悉所有的API,對一般人而言只是熟悉工作中要用到的API。如果你做界面開發,那麼你需要學習Swing/AWT/SWT等API;如果你進行網路游戲開發,你需要深入了解網路API/多媒體API/2D3D等;如果你做WEB開發,就需要熟悉Servlet等API啦。總之,需要根據工作的需要或你的興趣發展方向去選擇學習特定的API。

3.1.5 開發工具的用法

在學習基礎語法與基本的面向對象概念時,從鍛煉語言熟練程度的角度考慮,我們推薦使用的工具是Editplus/JCreator+JDK,這時候不要急於上手JBuilder/Eclipse等集成開發環境,以免過於關注IDE的強大功能而分散對Java技術本身的注意力。過了這一階段你就可以開始熟悉IDE了。

程序員日常工作包括很多活動,編輯、編譯及構建、調試、單元測試、版本控制、維持模型與代碼同步、文檔的更新等等,幾乎每一項活動都有專門的工具,如果獨立使用這些工具的話,你將會很痛苦,你需要在堆滿工具的任務欄上不斷的切換,效率很低下,也很容易出錯。在JBuilder、Eclipse等IDE中已經自動集成編輯器、編譯器、調試器、單元測試工具JUnit、自動構建工具ANT、版本控制工具CVS、DOC文檔生成與更新等等,甚至可以把UML建模工具也集成進去,又提供了豐富的向導幫助生成框架代碼,讓我們的開發變得更輕松。應該說IDE發展的趨勢就是集成軟體開發中要用到的幾乎所有工具。

從開發效率的角度考慮,使用IDE是必經之路,也是從一個學生到一個職業程序員轉變的里程碑。

Java開發使用的IDE主要有Eclipse、JBuilder、JDeveloper、NetBeans等幾種;而Eclipse、JBuilder佔有的市場份額是最大的。JBuilder在近幾年來一直是Java集成開發環境中的霸主,它是由備受程序員尊敬的Borland公司開發,在硝煙彌漫的Java IDE大戰中,以其快速的版本更新擊敗IBM的Visual Age for Java等而成就一番偉業。IBM在Visual Age for Java上已經無利可圖之下,乾脆將之貢獻給開源社區,成為Eclipse的前身,真所謂"柳暗花明又一村"。浴火重生的Eclipse以其開放式的插件擴展機制、免費開源獲得廣大程序員(包括幾乎所有的骨灰級程序員)的青睞,極具發展潛力。

3.1.6 學習軟體工程

對小型項目而言,你可能認為軟體工程沒太大的必要。隨著項目的復雜性越來越高,軟體工程的必要性才會體現出來。參見"軟體開發學習路線"小節。

3.2學習要點

確立的學習路線之後,我們還需要總結一下Java的學習要點,這些要點在前文多多少少提到過,只是筆者覺得這些地方特別要注意才對它們進行匯總,不要嫌我婆婆媽媽啊。

3.2.1勤查API文檔

當程序員編寫好某些類,覺得很有成就感,想把它貢獻給各位苦難的同行。這時候你要使用"Javadoc"工具(包含在JDK中)生成標準的Java DOC文檔,供同行使用。J2SE/J2EE/J2ME的DOC文檔是程序員與程序員交流的工具,幾乎人手一份,除了菜鳥之外。J2SE DOC文檔官方下載地址:http://Java.sun.com/j2se/1.5.0/download.jsp,你可以到google搜索CHM版本下載。也可以在線查看:http://Java.sun.com/j2se/1.5.0/docs/api/index.html。

對待DOC文檔要像毛主席語錄,早上起床念一遍,吃飯睡覺前念一遍。

當需要某項功能的時候,你應該先查相應的DOC文檔看看有沒有現成的實現,有的話就不必勞神費心了直接用就可以了,找不到的時候才考慮自己實現。使用步驟一般如下:

●找特定的包,包一般根據功能組織。

●找需要使用類,類命名規范的話我們由類的名字可猜出一二。

●選擇構造器,大多數使用類的方式是創建對象。

●選擇你需要的方法。

3.2.2 查書/google->寫代碼測試->查看源代碼->請教別人

當我們遇到問題的時候該如何解決?

這時候不要急著問別人,太簡單的問題,沒經過思考的問題,別人會因此而瞧不起你。可以先找找書,到google中搜一下看看,絕大部分問題基本就解決了。而像"某些類/方法如何使用的問題",DOC文檔就是答案。對某些知識點有疑惑是,寫代碼測試一下,會給你留下深刻的印象。而有的問題,你可能需要直接看API的源代碼驗證你的想法。萬不得已才去請教別人。

3.2.3學習開源軟體的設計思想

Java領域有許多源代碼開放的工具、組件、框架,JUnit、ANT、Tomcat、Struts、Spring、Jive論壇、PetStore寵物店等等多如牛毛。這些可是前輩給我們留下的瑰寶呀。入寶山而空手歸,你心甘嗎?對這些工具、框架進行分析,領會其中的設計思想,有朝一日說不定你也能寫一個XXX框架什麼的,風光一把。分析開源軟體其實是你提高技術、提高實戰能力的便捷方法。

3.2.4 規范的重要性

沒有規矩,不成方圓。這里的規范有兩層含義。第一層含義是技術規范,多到http://www.jcp.org下載JSRXXX規范,多讀規范,這是最權威准確最新的教材。第二層含義是編程規范,如果你使用了大量的獨特演算法,富有個性的變數及方法的命名方式;同時,沒給程序作注釋,以顯示你的編程功底是多麼的深厚。這樣的代碼別人看起來像天書,要理解談何容易,更不用說維護了,必然會被無情地掃入垃圾堆。Java編碼規范到此查看或下載http://Java.sun.com/docs/codeconv/ ,中文的也有,啊,還要問我在哪,請參考3.2.2節。

3.2.5 不局限於Java

很不幸,很幸運,要學習的東西還有很多。不幸的是因為要學的東西太多且多變,沒時間陪老婆家人或女朋友,導致身心疲憊,嚴重者甚至導致抑鬱症。幸運的是別人要搶你飯碗絕非易事,他們或她們需要付出很多才能達成心願。

Java不要孤立地去學習,需要綜合學習數據結構、OOP、軟體工程、UML、網路編程、資料庫技術等知識,用橫向縱向的比較聯想的方式去學習會更有效。如學習Java集合的時候找數據結構的書看看;學JDBC的時候復習資料庫技術;採取的依然是"需要的時候再學"的原則。

4.結束語

需要強調的是,學習軟體開發確實有一定的難度,也很辛苦,需要付出很多努力,但千萬不要半途而廢。本文如果能對一直徘徊在Java神殿之外的朋友有所幫助的話,筆者也欣慰了。哈哈,怎麼聽起來老氣橫秋呀?沒辦法,在電腦的長期輻射之下,都快變成小老頭了。最後奉勸各位程序員尤其是MM程序員,完成工作後趕快遠離電腦,據《胡播亂報》報道,電腦輻射會在白皙的皮膚上面點綴一些小黑點,看起來鮮艷無比……

F. 請教大智慧編程的問題: 條件:1、前半小時價格有80%的時間在均價線之上;2、開盤價在-1%—2%之間;

這不是編程,只是編選股公式。
個人覺得大智慧對公式的適應性太差,通達信其次,同花順最好。比如我把同樣十個公式,放在大智慧中選股可能全都沒有用;放到通達信中也許有五六個公式生效能正常選股;如果輸入到同花順裡面,只要編寫正確,十個公式十個都能用,全都能正常選股。大智慧的優勢只是在信息及軟體自動分析上面。

我現在用兩個軟體:中信建投通達信分析技術行情,長城通達信公式選股。技術分析嘛,不需要用大智慧。

當前的公式還不能分析日分時數據,只能以日價格及交易量的變化來選股, 是無法根據當天內分時價格變化來選股的。 以前我也同樣的想法,找過有多人請教,結果都一樣。或許真的要找編程人員才能解決了。

G. 人工智慧的編程和一般的計算機編程有什麼不同

人工智慧編程語言是一類適應於人工智慧和知識工程領域的、具有符號處理和邏輯推理能力的計算機程序設計語言。能夠用它來編寫程序求解非數值計算、知識處理、推理、規劃、決策等具有智能的各種復雜問題。

人工智慧編程語言有一個共同的特點,那就是這些語言都是面向所要解決的問題、結合知識表示、完全脫離當代計算機的諾依曼結構特性而獨立設計的;它們又處於比面向過程的高級編程語言更高的抽象層次。因此,用這些語言編寫的程序,在現代計算機環境中,無論是解釋或編譯執行,往往效率很低。尤其當程序規模很大、很復雜時,將浪費大量系統資源(主要指處理機佔用時間和存儲空間佔用量),使系統性能下降到難以容忍的地步。

H. 全國大學生無人機大賽的題目有那些

全國大學生無人機大賽的題目有個人賽、團體賽、團體接力賽、第一視角穿越賽、編程挑戰賽、空中格鬥賽等。

全國青少年無人機大賽由中國航空學會主辦,是青少年教育無人機領域的領先的全國性比賽。活動旨在傳承航空精神,培養航空創新後備人才,激發青少年探索航空未來的創造力與想像力,從而實現中國夢、航空夢。

作為全國青少年無人機及航模STEAM創客教育體系的重要組成部分,從2017年起,由中國航空學會聯合有關單位每年舉辦大賽,並設立分站賽和地區選拔賽。在此基礎上,將聯合有關國家舉辦國際青少年無人機大賽。獲獎學生將獲得相應人才積分。

大賽面自2017年舉辦首屆比賽以來,至今已經舉辦四屆,規模和質量都逐屆穩定提高。共有來自全國26個省、自治區、直轄市的超過3500人次參賽。

加上各地省賽、市賽,總參與人次上萬人次。通過四年四屆的辛勤耕耘,全國青少年無人機大賽成為我國青少年無人機教育領域的一面旗幟,也是國際上首個覆蓋小學、初中、高中、大學全學齡段的無人機專業賽事。

中國航空學會緊盯國家政策導向,在教育部大力推廣人工智慧時代編程教育的大背景下,及時添加賽事內容,加入了大量機器人編程相關的人工智慧的比賽內容,使整個大賽體系更智慧,更創意、更有趣,受到了廣大師生的熱烈歡迎。

全國青少年無人機大賽將以夢為馬,砥礪前行。在致力打造知名賽事活動的同時,更加註重提升青少年自主創新能力和培養青少年團隊協作精神,引導更多青少年關注科學、熱愛科學、走近科學,成為青少年在探索科學道路上的一盞明燈。



I. 怎麼學編程啊

如何學習編程,主要有自學和報班兩種途徑,至於需不需要報班,可以結合自己的實際情況來進行判斷,這里簡單介紹下。

學編程的注意點:

1、要確定好自己一定能學下去,不能是三分鍾的熱度,只是學個熱鬧,這樣永遠沒有辦法學的會。

2、一定要打好基礎,剛開始學習編程的時候可能會很慢,感覺自己沒學會啥,這可能是因為正處於打基礎的階段,只有把基礎打好,未來才可以學得更好。

3、要注意實踐操作,理論知識學得再多,如果不能實際的運用,還是等於0的。

自學還是報班:

1、如果你可以規劃好自己的學習過程,堅持一步步向前走,那麼自學當然是很好的。

2、如果你沒人監督就學不進去,也沒有自己的學習規劃,那麼還是建議你報班,可以少走冤枉路。

不管是自學還是報班,學編程的要注意的點是相差不大的,希望我的回答對你有幫助!

J. 已知三角形三邊 求面積

根據海倫公式求:

已知三角形的三邊分別是a、b、c,求面積。

先算出周長的一半p=1/2(a+b+c),然後根據公式,代入數值即可。


熱點內容
機架式伺服器怎麼操作 發布:2024-04-27 05:19:02 瀏覽:815
我的世界minez網易伺服器 發布:2024-04-27 05:09:26 瀏覽:384
易網頁源碼 發布:2024-04-27 04:51:06 瀏覽:864
攜程伺服器是什麼牌子 發布:2024-04-27 04:31:50 瀏覽:745
醫院新冠肺炎疫情防控演練腳本 發布:2024-04-27 04:04:45 瀏覽:652
天津智慧網關伺服器雲伺服器 發布:2024-04-27 03:56:51 瀏覽:422
移門製作下料尺寸演算法 發布:2024-04-27 03:15:02 瀏覽:641
c語言5常量 發布:2024-04-27 02:38:49 瀏覽:991
源碼怎麼搭建 發布:2024-04-27 02:33:44 瀏覽:97
java獲取參數 發布:2024-04-27 02:22:21 瀏覽:501