作業三 2~9程式作業

3–2

關於這題,只要稍微觀察題目,就不難發現這是一個類似於9x9乘法表

只不過他是7x7 而且從0~7

題目要我們把所有的數字加起來 我們當然不是笨笨的就真的給他一個數字一個數字的加起來

既然已經知道了我們現在需要做的就是找到題目的規律 然後把它程式化

仔細點觀察可以發現第一行是 0x0 0x1 0x2… 0x7

第二行則是1x0 1x1 1x2 … 1x7

這時候我們就可以用到上課所教的for迴圈去寫

不過這次要一次用兩個 一個for迴圈控制行 另一個控制列

這樣就可以達到題目的要求 寫出來就會像下面一樣

var total = 0
for i in 0...7 {   //控制行0~7
for j in 0...7{ //控制列0~7
total += i*j //每一格都是行X列 再把每隔加起來
}
}

3–3

關於這題我們可以觀察出這跟上題只差在所需要是奇數行的數字

所以我們只需要在相加的地方稍微修改 我直接在程式說明 如下

var total = 0
for i in 0...7 {
for j in 0...7{
if i%2 == 1{ //我們只需要基數行的 所以我們可以用取餘數的方式 如果行(i)取餘數等於1  代表是奇數行 我們才做相加  
total += i*j
}
}
}

3–4

關於這題也是3–2的變化題

老師很好心 已經把關鍵答案打在了題目裡

他只要 “除了” 列數>=行數的質相加

列數>=行數的質相加-> j(列)>= i(行)

除了就是 -> j(列)<i(行)

所以把 if的條件改成 j<i 即可

var total = 0
for i in 0...7 {
for j in 0...7{
if j<i{   //除了列數>=行數的條件才相加
total += i*j
}
}
}

3–5

這題要用到老師上課教的function來寫 題目要求傳進去3個值 算出結果

一樣我們稍微觀察題目可以發現 他是 3~98內

所以我們可以用給予的起始值到最大值中 只要是5的倍數就相加

這樣我們就可以用 for迴圈 程式如下

var total = 0
func caclute(startNumber:Int,max:Int,number:Int)->Int{//function 3個Int傳入值 回傳一個Int
for i in startNumber...max {
if i%5 == 0{  total += i } //如題目 3~98 取5的餘數為0的相加
}
return total
}
caclute(startNumber: 3, max: 95, number: 5  )//傳入題目所需要的3個值

3–6

這也算是上一題的變化 只是把條件改成 不要5的倍數 程式如下

var total = 0
func caclute2(startNumber:Int,max:Int,number:Int)->Int{
for i in startNumber...max{
if i%number != 0{ //如題目只要不是5的倍數
total += i
}
}
return total
}
caclute2(startNumber: 3, max: 11, number: 5 )

3–7

關於這題一看 疑 這不就是我前面寫的3–3作業嗎 只是需要改成function 接受行與列 兩個參數

這時候就要發揮工程師要多懶有多懶的精神 把前面的的3–3的for迴圈過來放進function 再把i j的最大範圍改成輸入的兩個參數 大功告成 程式如下

var total = 0
func caclute3(row:Int,column:Int)->Int{
for i in 0...row{ //最大範圍改成輸入的row
for j in 0...column{//最大範圍改成輸入的column
if i%2 == 1{ //跟3-3完全一樣
total += i*j
}
}
}
return total
}
caclute3(row: 7, column: 7)

3–8

這題也不用我多贅述了 跟3–4一樣 懶惰也一樣 把3–4搬過來放進function

把i和j的範圍改成row和column 程式如下

var total = 0
func caclute4(row:Int,column:Int)->Int{
for i in 0...row {//最大範圍改成row
for j in 0...column{//最大範圍改成column
if j<i{ //和3-4一樣
total += i*j
}
}
}
return total
}
caclute4(row: 7, column: 7)

3–9

好了 終於來到最後一題了 這題也不會太困難 傳入華氏溫度到function

轉成攝氏溫度

所我我們需要轉換公式 這時候我們就需要Google大神了

因為我早就把公式忘得一乾二淨了 給記住了人拍拍手

c = (f — 32) * 5/9 公式來了

接下來我們只要丟進function就完成了 程式如下

func translate(f:Int)->Int{
var c = 0
c = (f - 32) * 5/9
return c
}
translate(f: 50 )

最後附上我的github

Show your support

Clapping shows how much you appreciated AnD’s story.