課堂作業(yè)模塊Java編程邏輯_第1頁
課堂作業(yè)模塊Java編程邏輯_第2頁
課堂作業(yè)模塊Java編程邏輯_第3頁
課堂作業(yè)模塊Java編程邏輯_第4頁
課堂作業(yè)模塊Java編程邏輯_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、課堂作業(yè)模塊1 Java編程邏輯【第1課】【作業(yè)1】編寫一個(gè)Java程序,在控制臺(tái)上輸出如下兩行信息:Hello,World!Hello,Java!考核點(diǎn)1:了解一個(gè)Java程序的啟動(dòng)位置(即程序入口)??己它c(diǎn)2:掌握基本輸出語句:System.out.println(字符串)【第2課】【作業(yè)1】從鍵盤輸入3個(gè)整數(shù)a、b、c,計(jì)算a+b*c的結(jié)果后輸出,驗(yàn)證計(jì)算結(jié)果是否遵循運(yùn)算符的優(yōu)先級(jí)順序??己它c(diǎn)1:使用Scanner類獲取鍵盤輸入。考核點(diǎn)2:基本運(yùn)算符及其優(yōu)先級(jí)順序。【作業(yè)2】從鍵盤輸入1個(gè)實(shí)數(shù)r,計(jì)算以r為半徑的圓的面積并輸出結(jié)果,要求將定義為符號(hào)常量??己它c(diǎn):符號(hào)常量的基本用法?!镜?

2、課】【作業(yè)1】從鍵盤輸入3個(gè)整數(shù),比較大小后輸出最大者。考核點(diǎn):if-else語句的運(yùn)用?!咀鳂I(yè)2】從鍵盤輸入一個(gè)3位數(shù),判斷其是否為水仙花數(shù)。所謂“水仙花數(shù)”是指一個(gè)三位整數(shù),其各位數(shù)字立方和等于該數(shù)本身。例如:153=13+53+33,所以153是一個(gè)水仙花數(shù)??己它c(diǎn):基本數(shù)學(xué)運(yùn)算符和邏輯運(yùn)算符的用法?!镜?課】【作業(yè)1】從鍵盤輸入3個(gè)整數(shù),比較大小后按由小到大的順序輸出。考核點(diǎn):if-else語句嵌套運(yùn)用?!咀鳂I(yè)2】從鍵盤輸入一個(gè)年份和一個(gè)月份,輸出此月份有多少天(考慮閏二月的情況)。考核點(diǎn):使用switch-case多分支語句?!镜?課】【作業(yè)1】從鍵盤輸入一個(gè)正整數(shù),判斷其是否為素?cái)?shù)

3、。素?cái)?shù)指只有1和它本身兩個(gè)因子的整數(shù)。考核點(diǎn):基本循環(huán)語句的用法?!咀鳂I(yè)2】輸出100-999之間的全部水仙花數(shù)??己它c(diǎn):基本循環(huán)語句的用法。【作業(yè)3】從鍵盤輸入一個(gè)正整數(shù),判斷并輸出該正整數(shù)是幾位數(shù)??己它c(diǎn)1:基本循環(huán)語句的用法??己它c(diǎn)2:分離一個(gè)整數(shù)各個(gè)位數(shù)字的方法。【第6課】【作業(yè)1】編寫一個(gè)Java程序,輸出如下圖案,圖案的行數(shù)由鍵盤輸入。(1)觀察圖案中行、列及星星個(gè)數(shù)之間的關(guān)系。(2)擴(kuò)展練習(xí),輸出如下圖案,圖案的行數(shù)由鍵盤輸入。(3)擴(kuò)展練習(xí),輸出如下圖案,圖案的行數(shù)由鍵盤輸入。考核點(diǎn)1:發(fā)現(xiàn)圖案中的變化規(guī)律(即邏輯)??己它c(diǎn)2:循環(huán)嵌套的用法?!咀鳂I(yè)2】從鍵盤輸入一個(gè)正整數(shù)n,

4、利用求的近似值,n為求和的總項(xiàng)數(shù)。考核點(diǎn):發(fā)現(xiàn)公式中的計(jì)算規(guī)律(即計(jì)算邏輯)?!咀鳂I(yè)3】百錢百雞問題:公雞每只5元、母雞每只3元、小雞3只1元,用100元錢買100只雞,求公雞、母雞、小雞的只數(shù)。考核點(diǎn)1:多重循環(huán)的使用??己它c(diǎn)2:提煉和化簡計(jì)算邏輯,將多重循環(huán)改進(jìn)為單重循環(huán)?!镜?課】【作業(yè)1】將輸入的一個(gè)偶數(shù)n(n=6)分解為兩個(gè)素?cái)?shù)之和。例如8=5+3?!咀鳂I(yè)2】有n個(gè)人圍成一圈,順序排號(hào)。從第一個(gè)人開始報(bào)數(shù)(從1到3報(bào)數(shù)),凡報(bào)到3的人退出圈子,請輸出這n個(gè)人退出圈子的整個(gè)次序?!镜?課】【作業(yè)1】將一個(gè)nn方陣就地轉(zhuǎn)置,即行列元素互換。(1)擴(kuò)展成矩陣轉(zhuǎn)置,將一個(gè)矩陣a(mn)轉(zhuǎn)置成

5、一個(gè)新矩陣b(nm)?!咀鳂I(yè)2】建立如下的楊輝三角,行數(shù)n由鍵盤輸入。(1)分析出楊輝三角形中每個(gè)元素的計(jì)算邏輯。(2)使用System.out.printf()方法進(jìn)行格式化輸出。【第9課】【作業(yè)1】回文串:輸入一個(gè)字符串,判斷其是否為回文串并輸出結(jié)果。回文串是指從左向右讀與從右向左讀都相同的一個(gè)字符串,如12a3a21就是一個(gè)回文串?!咀鳂I(yè)2】超大整數(shù)求和:編寫一個(gè)Java程序,能對輸入的兩個(gè)超大非負(fù)整數(shù)求和。例如:輸入“12345678”和“111”,其和為“12345789”。(1)每個(gè)超大非負(fù)整數(shù)以字符串形式存儲(chǔ)。(2)求和的結(jié)果也以字符串形式存儲(chǔ)?!咀鳂I(yè)3】將一個(gè)正整數(shù)(萬以內(nèi)的數(shù)

6、字)的每一位數(shù)值轉(zhuǎn)換成中文中的數(shù)值表示(如將 5036 轉(zhuǎn)換成“伍仟零叁拾陸”)。(1)使用數(shù)據(jù)表來簡化轉(zhuǎn)換邏輯。(2)注意邏輯思維的嚴(yán)密性。一組轉(zhuǎn)換數(shù)據(jù)樣例(萬以內(nèi)的數(shù)字)數(shù)字串漢字串0零100壹佰90000玖萬90001玖萬零壹90500玖萬零伍佰91002玖萬壹仟零貳90070玖萬零柒拾90055玖萬零伍拾伍90909玖萬零玖佰零玖90990玖萬零玖佰玖拾【第10課】【作業(yè)1】編寫一個(gè)Java程序,定義Java靜態(tài)方法實(shí)現(xiàn)下面數(shù)學(xué)分段函數(shù)并進(jìn)行驗(yàn)證?!咀鳂I(yè)2】編寫一個(gè)Java靜態(tài)方法,將一個(gè)m*n矩陣轉(zhuǎn)置成一個(gè)n*m矩陣?!咀鳂I(yè)3】輸入一個(gè)數(shù)字a,求S=a+aa+aaa+aaaa+aaa

7、aa的和。例如,a=2,則S=2+22+222+2222+22222。(1)學(xué)會(huì)發(fā)現(xiàn)問題中的共性以分解問題。(2)理解解決同一問題的多種邏輯思維?!镜?1課】【作業(yè)1】編寫一個(gè)Java程序,輸出21000以內(nèi)的全部完數(shù)。一個(gè)完數(shù)恰好等于其全部因子之和。例如6=1+2+3,故6是一個(gè)完數(shù),28=1+2+4+7+14,故28也是一個(gè)完數(shù)。要求采用模塊化程序設(shè)計(jì)解決此類問題?!咀鳂I(yè)2】編寫函數(shù)完成下列每種數(shù)制轉(zhuǎn)換:(1)十進(jìn)制正整數(shù)二進(jìn)制正整數(shù)。(2)十進(jìn)制正整數(shù)十六進(jìn)制正整數(shù)。(3)十進(jìn)制正整數(shù)八進(jìn)制正整數(shù)。要求采用模塊化程序設(shè)計(jì)解決此類問題,發(fā)現(xiàn)數(shù)制轉(zhuǎn)換中的共性規(guī)律?!咀鳂I(yè)3】從鍵盤輸入一個(gè)棋盤

8、的行數(shù)和列數(shù),打印出棋盤的樣子。(1) 分析打印棋盤的整個(gè)過程,發(fā)現(xiàn)其中的邏輯步驟。(2) 編寫方法實(shí)現(xiàn)不同的邏輯步驟?!镜?2課】【作業(yè)1】漢諾塔問題:有n個(gè)盤子依其半徑大小套在柱子A上,其中半徑大的在底下,柱子B和C沒套盤子?,F(xiàn)要將A上的盤子全部搬運(yùn)到C上(借助B),移動(dòng)規(guī)則是每次只能移動(dòng)一個(gè)盤子,并且不允許將大盤子壓在小盤子的上面。(1)分析歸納出搬運(yùn)n個(gè)盤子的遞歸規(guī)律,編寫遞歸方法。(2)輸出完整的搬運(yùn)過程以及移動(dòng)盤子的總次數(shù)。【作業(yè)2】編寫一個(gè)Java程序,輸入兩個(gè)正整數(shù)m和n,輸出m和n的最大公約數(shù)(greatest common divisor)和最小公倍數(shù)(Least Comm

9、on Multiple)。(1)最大公約數(shù)gcd是指m和n的全部公共因子之積,最小公倍數(shù)lcm為m和n之積除以最大公約數(shù)gcd。(2)掌握計(jì)算最大公約數(shù)的遞推方法:輾轉(zhuǎn)相除法?!咀鳂I(yè)3】天平稱物:有四個(gè)砝碼,總重量是40克,砝碼的質(zhì)量是整數(shù),且各不相等。請確定它們的質(zhì)量,使之能稱出1到40克之間任何整數(shù)質(zhì)量的物體?!咀鳂I(yè)4】一個(gè)整數(shù)除以3余2,除以5余3,除以7余2,求這個(gè)整數(shù)。【第13課】【作業(yè)1】將二分查找算法改寫為遞歸形式?!咀鳂I(yè)2】編寫一個(gè)Java程序,從一個(gè)字符串中S中刪除所有和字符串T相同的子串,輸出刪除后的結(jié)果。例如:S=“abcdabef”,T=ab,則刪除后的結(jié)果S=cdef

10、?!咀鳂I(yè)3】編寫一個(gè)Java程序,求得所有包含在串S中而不包含在串T中的字符構(gòu)成的新串R。例如:S=“aabcddef”,T=cf,則R=aabdde?!咀鳂I(yè)4】編寫一個(gè)Java程序,求得串S和串T中的一個(gè)最長公共子串R。例如:S=“aabcddef”,T=bcbcdd,則R=bcdd?!镜?4課】【作業(yè)1】改進(jìn)冒泡排序算法,只要在一趟冒泡排序過程中不發(fā)生相鄰記錄的交換,則整個(gè)排序過程就可以立即結(jié)束?!咀鳂I(yè)2】荷蘭國旗問題:設(shè)有一個(gè)僅由紅、白、藍(lán)三種顏色的條塊組成的條塊序列。請編寫一個(gè)時(shí)間復(fù)雜度為O(n)的算法,使得這些條塊按紅、白、藍(lán)的順序排好,即排成荷蘭國旗圖案?!咀鳂I(yè)3】烙餅排序問題(1

11、)一次烙餅翻轉(zhuǎn)過程:(2)將最大的烙餅調(diào)整到最底端:(兩次翻轉(zhuǎn))(3)對于n塊烙餅,最多翻轉(zhuǎn)2(n-1)即可排好順序。(4)假設(shè)一疊烙餅的半徑分別為20,22,30,18,19,25,20,則要翻轉(zhuǎn)多少次才能排好順序?請編寫出烙餅排序算法?!镜?5課】分治算法(任選一個(gè)作業(yè))【作業(yè)1】給定由n個(gè)整數(shù)(可能有負(fù)整數(shù))組成的序列(a1, a2, , an),最大子段和問題要求該序列形如 的最大值(1ijn),例如,序列(-20, 11, -4, 13, -5, -2)的最大子段和為 【作業(yè)2】在一個(gè)2k2k 個(gè)方格組成的棋盤中,恰有一個(gè)方格與其他方格不同,稱該方格為一特殊方格,且稱該棋盤為一特殊棋

12、盤。在棋盤覆蓋問題中,要用圖示的4種不同形態(tài)的L型骨牌覆蓋給定的特殊棋盤上除特殊方格以外的所有方格,且任何2個(gè)L型骨牌不得重疊覆蓋。要求輸出棋盤覆蓋后的效果?!镜?6課】減治算法(任選一個(gè)作業(yè))【作業(yè)1】應(yīng)用堆排序方法對一個(gè)記錄序列進(jìn)行升序排列。其基本思想是:首先將待排序的記錄序列構(gòu)造成一個(gè)堆,此時(shí),堆頂記錄是堆中所有記錄的最大者,將它從堆中移走(通常將堆頂記錄和堆中最后一個(gè)記錄交換),然后將剩余記錄再調(diào)整成堆,這樣又找出了次大記錄,以此類推,直到堆中只有一個(gè)記錄為止。【作業(yè)2】在n枚外觀相同的硬幣中,有一枚是假幣,并且已知假幣較輕。通過一架來任意比較兩組硬幣,從而得知兩組硬幣的重量是否相同,

13、或者哪一組更輕一些,假幣問題要求設(shè)計(jì)一個(gè)高效的算法來檢測出這枚假幣。(1)一分為二想法:把n枚硬幣分成兩組,每組有n/2枚硬幣,如果n為奇數(shù),就留下一枚硬幣,然后把兩組硬幣分別放到天平的兩端。如果兩組硬幣的重量相同,那么留下的硬幣就是假幣;否則,用同樣的方法對較輕的那組硬幣進(jìn)行同樣的處理,因?yàn)榧賻乓欢ㄔ谳^輕的那組里。(2)一分為三想法:【作業(yè)3】將數(shù)字旋轉(zhuǎn)方陣的遞歸算法改為非遞歸算法?!镜?7課】動(dòng)態(tài)規(guī)劃算法(任選一個(gè)作業(yè))【作業(yè)1】數(shù)塔問題:從數(shù)塔的頂層出發(fā),在每一個(gè)結(jié)點(diǎn)可以選擇向左走或向右走,一直走到最底層,要求找出一條路徑,使得路徑上的數(shù)值和最大。 【作業(yè)2】最長遞增子序列問題:在數(shù)字序

14、列A=a1, a2, , an中按遞增下標(biāo)序列(i1, i2, ik)(1i1 i2 ikn)順序選出一個(gè)子序列B,如果子序列B中的數(shù)字都是嚴(yán)格遞增的,則子序列B稱為序列A的遞增子序列。最長遞增子序列問題就是要找出序列A的一個(gè)最長的遞增子序列。例如,對于序列A=5, 2, 8, 6, 3, 6, 9, 7,其最長遞增子序列分別是2, 3, 6, 9和2, 3, 6, 7。【作業(yè)3】0/1背包問題:給定n種物品和一個(gè)背包,物品i的重量是wi,其價(jià)值為vi,背包的容量為C。背包問題是如何選擇裝入背包的物品,使得裝入背包中物品的總價(jià)值最大?如果在選擇裝入背包的物品時(shí),對每種物品i只有兩種選擇:裝入背

15、包或不裝入背包,即不能將物品i裝入背包多次,也不能只裝入物品i的一部分,則稱為0/1背包問題。例如,有5個(gè)物品,其重量分別是2, 2, 6, 5, 4,價(jià)值分別為6, 3, 5, 4, 6,背包的容量為10,則能裝入到背包中的物品為第1,2,5三個(gè)物品,最大價(jià)值為15?!镜?8課】貪心算法(任選一個(gè)作業(yè))【作業(yè)1】背包問題:給定n種物品和一個(gè)容量為C的背包,物品i的重量是wi,其價(jià)值為vi,背包問題是如何選擇裝入背包的物品,使得裝入背包中物品的總價(jià)值最大? (1)注意背包問題與0/1背包問題的區(qū)別。(2)貪心策略:優(yōu)先選擇單位重量價(jià)值最大的物品?!咀鳂I(yè)2】多機(jī)調(diào)度問題:設(shè)有n個(gè)獨(dú)立的作業(yè)1,

16、2, , n,由m臺(tái)相同的機(jī)器M1, M2, , Mm進(jìn)行加工處理,作業(yè)i所需的處理時(shí)間為ti(1in),每個(gè)作業(yè)均可在任何一臺(tái)機(jī)器上加工處理,但不可間斷、拆分。多機(jī)調(diào)度問題要求給出一種作業(yè)調(diào)度方案,使所給的n個(gè)作業(yè)在盡可能短的時(shí)間內(nèi)由m臺(tái)機(jī)器加工處理完成。(1)貪心策略:按照最長處理時(shí)間作業(yè)優(yōu)先。(2)例如,設(shè)7個(gè)獨(dú)立作業(yè)1, 2, 3, 4, 5, 6, 7由3臺(tái)機(jī)器M1, M2, M3加工處理,各作業(yè)所需的處理時(shí)間分別為2, 14, 4, 16, 6, 5, 3。則調(diào)度過程如下圖:【第19課】回溯算法(任選一個(gè)作業(yè))【作業(yè)1】素?cái)?shù)環(huán)問題:把整數(shù)1, 2, , 20填寫到一個(gè)環(huán)中,要求每個(gè)整數(shù)只填寫一次,并且相鄰的兩個(gè)整數(shù)之和是一個(gè)素?cái)?shù)。1234【作業(yè)2】批處理作業(yè)調(diào)度問題:n個(gè)作業(yè)1, 2, , n要在兩臺(tái)機(jī)器上處理,每個(gè)作業(yè)必須先由機(jī)器1處理,然后再由機(jī)器2處理,機(jī)器

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論