




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、.課堂作業模塊1 Java編程邏輯【第1課】【作業1】編寫一個Java程序,在控制臺上輸出如下兩行信息:Hello,World!Hello,Java!考核點1:了解一個Java程序的啟動位置(即程序入口)。考核點2:掌握基本輸出語句:System.out.println(字符串)【第2課】【作業1】從鍵盤輸入3個整數a、b、c,計算a+b*c的結果后輸出,驗證計算結果是否遵循運算符的優先級順序。考核點1:使用Scanner類獲取鍵盤輸入。考核點2:基本運算符及其優先級順序。【作業2】從鍵盤輸入1個實數r,計算以r為半徑的圓的面積并輸出結果,要求將定義為符號常量。考核點:符號常量的基本用法。【第
2、3課】【作業1】從鍵盤輸入3個整數,比較大小后輸出最大者。考核點:if-else語句的運用。【作業2】從鍵盤輸入一個3位數,判斷其是否為水仙花數。所謂“水仙花數”是指一個三位整數,其各位數字立方和等于該數本身。例如:153=13+53+33,所以153是一個水仙花數。考核點:基本數學運算符和邏輯運算符的用法。【第4課】【作業1】從鍵盤輸入3個整數,比較大小后按由小到大的順序輸出。考核點:if-else語句嵌套運用。【作業2】從鍵盤輸入一個年份和一個月份,輸出此月份有多少天(考慮閏二月的情況)。考核點:使用switch-case多分支語句。【第5課】【作業1】從鍵盤輸入一個正整數,判斷其是否為素
3、數。素數指只有1和它本身兩個因子的整數。考核點:基本循環語句的用法。【作業2】輸出100-999之間的全部水仙花數。考核點:基本循環語句的用法。【作業3】從鍵盤輸入一個正整數,判斷并輸出該正整數是幾位數。考核點1:基本循環語句的用法。考核點2:分離一個整數各個位數字的方法。【第6課】【作業1】編寫一個Java程序,輸出如下圖案,圖案的行數由鍵盤輸入。(1)觀察圖案中行、列及星星個數之間的關系。(2)擴展練習,輸出如下圖案,圖案的行數由鍵盤輸入。(3)擴展練習,輸出如下圖案,圖案的行數由鍵盤輸入。考核點1:發現圖案中的變化規律(即邏輯)。考核點2:循環嵌套的用法。【作業2】從鍵盤輸入一個正整數n
4、,利用求的近似值,n為求和的總項數。考核點:發現公式中的計算規律(即計算邏輯)。【作業3】百錢百雞問題:公雞每只5元、母雞每只3元、小雞3只1元,用100元錢買100只雞,求公雞、母雞、小雞的只數。考核點1:多重循環的使用。考核點2:提煉和化簡計算邏輯,將多重循環改進為單重循環。【第7課】【作業1】將輸入的一個偶數n(n>=6)分解為兩個素數之和。例如8=5+3。【作業2】有n個人圍成一圈,順序排號。從第一個人開始報數(從1到3報數),凡報到3的人退出圈子,請輸出這n個人退出圈子的整個次序。【第8課】【作業1】將一個n×n方陣就地轉置,即行列元素互換。(1)擴展成矩陣轉置,將一
5、個矩陣a(m×n)轉置成一個新矩陣b(n×m)。【作業2】建立如下的楊輝三角,行數n由鍵盤輸入。(1)分析出楊輝三角形中每個元素的計算邏輯。(2)使用System.out.printf()方法進行格式化輸出。【第9課】【作業1】回文串:輸入一個字符串,判斷其是否為回文串并輸出結果。回文串是指從左向右讀與從右向左讀都相同的一個字符串,如12a3a21就是一個回文串。【作業2】超大整數求和:編寫一個Java程序,能對輸入的兩個超大非負整數求和。例如:輸入“12345678”和“111”,其和為“12345789”。(1)每個超大非負整數以字符串形式存儲。(2)求和的結果也以字符
6、串形式存儲。【作業3】將一個正整數(萬以內的數字)的每一位數值轉換成中文中的數值表示(如將 5036 轉換成“伍仟零叁拾陸”)。(1)使用數據表來簡化轉換邏輯。(2)注意邏輯思維的嚴密性。一組轉換數據樣例(萬以內的數字)數字串漢字串0零100壹佰90000玖萬90001玖萬零壹90500玖萬零伍佰91002玖萬壹仟零貳90070玖萬零柒拾90055玖萬零伍拾伍90909玖萬零玖佰零玖90990玖萬零玖佰玖拾【第10課】【作業1】編寫一個Java程序,定義Java靜態方法實現下面數學分段函數并進行驗證。【作業2】編寫一個Java靜態方法,將一個m*n矩陣轉置成一個n*m矩陣。【作業3】輸入一個數
7、字a,求S=a+aa+aaa+aaaa+aaaaa的和。例如,a=2,則S=2+22+222+2222+22222。(1)學會發現問題中的共性以分解問題。(2)理解解決同一問題的多種邏輯思維。【第11課】【作業1】編寫一個Java程序,輸出21000以內的全部完數。一個完數恰好等于其全部因子之和。例如6=1+2+3,故6是一個完數,28=1+2+4+7+14,故28也是一個完數。要求采用模塊化程序設計解決此類問題。【作業2】編寫函數完成下列每種數制轉換:(1)十進制正整數à二進制正整數。(2)十進制正整數à十六進制正整數。(3)十進制正整數à八進制正整數。要求采用
8、模塊化程序設計解決此類問題,發現數制轉換中的共性規律。【作業3】從鍵盤輸入一個棋盤的行數和列數,打印出棋盤的樣子。(1) 分析打印棋盤的整個過程,發現其中的邏輯步驟。(2) 編寫方法實現不同的邏輯步驟。【第12課】【作業1】漢諾塔問題:有n個盤子依其半徑大小套在柱子A上,其中半徑大的在底下,柱子B和C沒套盤子。現要將A上的盤子全部搬運到C上(借助B),移動規則是每次只能移動一個盤子,并且不允許將大盤子壓在小盤子的上面。(1)分析歸納出搬運n個盤子的遞歸規律,編寫遞歸方法。(2)輸出完整的搬運過程以及移動盤子的總次數。【作業2】編寫一個Java程序,輸入兩個正整數m和n,輸出m和n的最大公約數(
9、greatest common divisor)和最小公倍數(Least Common Multiple)。(1)最大公約數gcd是指m和n的全部公共因子之積,最小公倍數lcm為m和n之積除以最大公約數gcd。(2)掌握計算最大公約數的遞推方法:輾轉相除法。【作業3】天平稱物:有四個砝碼,總重量是40克,砝碼的質量是整數,且各不相等。請確定它們的質量,使之能稱出1到40克之間任何整數質量的物體。【作業4】一個整數除以3余2,除以5余3,除以7余2,求這個整數。【第13課】【作業1】將二分查找算法改寫為遞歸形式。【作業2】編寫一個Java程序,從一個字符串中S中刪除所有和字符串T相同的子串,輸出
10、刪除后的結果。例如:S=“abcdabef”,T="ab",則刪除后的結果S="cdef"。【作業3】編寫一個Java程序,求得所有包含在串S中而不包含在串T中的字符構成的新串R。例如:S=“aabcddef”,T="cf",則R="aabdde"。【作業4】編寫一個Java程序,求得串S和串T中的一個最長公共子串R。例如:S=“aabcddef”,T="bcbcdd",則R="bcdd"。【第14課】【作業1】改進冒泡排序算法,只要在一趟冒泡排序過程中不發生相鄰記錄的交換,
11、則整個排序過程就可以立即結束。【作業2】荷蘭國旗問題:設有一個僅由紅、白、藍三種顏色的條塊組成的條塊序列。請編寫一個時間復雜度為O(n)的算法,使得這些條塊按紅、白、藍的順序排好,即排成荷蘭國旗圖案。【作業3】烙餅排序問題(1)一次烙餅翻轉過程:(2)將最大的烙餅調整到最底端:(兩次翻轉)(3)對于n塊烙餅,最多翻轉2(n-1)即可排好順序。(4)假設一疊烙餅的半徑分別為20,22,30,18,19,25,20,則要翻轉多少次才能排好順序?請編寫出烙餅排序算法。【第15課】分治算法(任選一個作業)【作業1】給定由n個整數(可能有負整數)組成的序列(a1, a2, , an),最大子段和問題要求
12、該序列形如 的最大值(1ijn),例如,序列(-20, 11, -4, 13, -5, -2)的最大子段和為 【作業2】在一個2k×2k 個方格組成的棋盤中,恰有一個方格與其他方格不同,稱該方格為一特殊方格,且稱該棋盤為一特殊棋盤。在棋盤覆蓋問題中,要用圖示的4種不同形態的L型骨牌覆蓋給定的特殊棋盤上除特殊方格以外的所有方格,且任何2個L型骨牌不得重疊覆蓋。要求輸出棋盤覆蓋后的效果。【第16課】減治算法(任選一個作業)【作業1】應用堆排序方法對一個記錄序列進行升序排列。其基本思想是:首先將待排序的記錄序列構造成一個堆,此時,堆頂記錄是堆中所有記錄的最大者,將它從堆中移走(通常將堆頂記
13、錄和堆中最后一個記錄交換),然后將剩余記錄再調整成堆,這樣又找出了次大記錄,以此類推,直到堆中只有一個記錄為止。【作業2】在n枚外觀相同的硬幣中,有一枚是假幣,并且已知假幣較輕。通過一架來任意比較兩組硬幣,從而得知兩組硬幣的重量是否相同,或者哪一組更輕一些,假幣問題要求設計一個高效的算法來檢測出這枚假幣。(1)一分為二想法:把n枚硬幣分成兩組,每組有n/2枚硬幣,如果n為奇數,就留下一枚硬幣,然后把兩組硬幣分別放到天平的兩端。如果兩組硬幣的重量相同,那么留下的硬幣就是假幣;否則,用同樣的方法對較輕的那組硬幣進行同樣的處理,因為假幣一定在較輕的那組里。(2)一分為三想法:【作業3】將數字旋轉方陣
14、的遞歸算法改為非遞歸算法。【第17課】動態規劃算法(任選一個作業)【作業1】數塔問題:從數塔的頂層出發,在每一個結點可以選擇向左走或向右走,一直走到最底層,要求找出一條路徑,使得路徑上的數值和最大。 【作業2】最長遞增子序列問題:在數字序列A=a1, a2, , an中按遞增下標序列(i1, i2, ik)(1i1< i2<< ikn)順序選出一個子序列B,如果子序列B中的數字都是嚴格遞增的,則子序列B稱為序列A的遞增子序列。最長遞增子序列問題就是要找出序列A的一個最長的遞增子序列。例如,對于序列A=5, 2, 8, 6, 3, 6, 9, 7,其最長遞增子序列分別是2, 3
15、, 6, 9和2, 3, 6, 7。【作業3】0/1背包問題:給定n種物品和一個背包,物品i的重量是wi,其價值為vi,背包的容量為C。背包問題是如何選擇裝入背包的物品,使得裝入背包中物品的總價值最大?如果在選擇裝入背包的物品時,對每種物品i只有兩種選擇:裝入背包或不裝入背包,即不能將物品i裝入背包多次,也不能只裝入物品i的一部分,則稱為0/1背包問題。例如,有5個物品,其重量分別是2, 2, 6, 5, 4,價值分別為6, 3, 5, 4, 6,背包的容量為10,則能裝入到背包中的物品為第1,2,5三個物品,最大價值為15。【第18課】貪心算法(任選一個作業)【作業1】背包問題:給定n種物品
16、和一個容量為C的背包,物品i的重量是wi,其價值為vi,背包問題是如何選擇裝入背包的物品,使得裝入背包中物品的總價值最大? (1)注意背包問題與0/1背包問題的區別。(2)貪心策略:優先選擇單位重量價值最大的物品。【作業2】多機調度問題:設有n個獨立的作業1, 2, , n,由m臺相同的機器M1, M2, , Mm進行加工處理,作業i所需的處理時間為ti(1in),每個作業均可在任何一臺機器上加工處理,但不可間斷、拆分。多機調度問題要求給出一種作業調度方案,使所給的n個作業在盡可能短的時間內由m臺機器加工處理完成。(1)貪心策略:按照最長處理時間作業優先。(2)例如,設7個獨立作業1, 2, 3, 4, 5, 6, 7由3臺機器M1, M2, M3加工處理,各作業所需的處理時間分別為2, 14, 4, 16, 6, 5, 3。則調度過程如下圖:【第19課】回溯算法(任選一個作業)【作業1】素數環問題:把整數1, 2, , 20填寫到一個環中,要求每個整數只填寫一次,并且相鄰的兩個整數之和是一個素數。1234【作業2】批處理作業調度問題:n個作業1, 2, , n要在兩臺機器上處理,每個作業必須先由機器1處理,然后再由機器2
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基因工程基礎
- 盾構機吊裝吊拆安全協議出井模板
- 領導力培訓提升企業核心競爭力
- 音樂與光影文化節的視聽盛宴設計
- 項目管理方法與實施策略培訓
- 非物質文化遺產在旅游業中的價值挖掘
- 顧客服務與無縫購物流程的深度融合
- 項目管理中的時間與資源分配策略
- 防空防災知識的普及與教育
- 零售業中增強現實AR的顧客體驗優化策略
- 2024年江西省水利投資集團有限公司招聘考試真題
- 2024年貴州省普通高校招生信息表(普通類本科批-物理組合)
- 2025年防疫員筆試題庫及答案
- TCNCIA 01036-2024 變壓器用無溶劑防腐涂料
- 2025年個人與企業投資合同模板
- 2025甘肅省安全員B證考試題庫及答案
- 《中南大學》課件
- 醫療器械使用錯誤評估報告-可用性工程
- 北師版七年級數學下冊期末復習課件2024版
- 醫院反腐倡廉廉潔行醫專題黨課宣講課件
- 2025版《VOCs廢氣處理設施安全檢查表》(全)
評論
0/150
提交評論