Swift / X-code Playground Coding練習

開始接觸程式的部分了,還好剛開始作業比較單純,主要都是For迴圈跟Function練習,外加還有很多大神級的同學參考,那接下來就讓我們一一來解題吧。

//====作業1. 計算全部格子的總合====

剛開始看到會有點亂,不過想一下就是『行』乘以『列』的數字再做總和。

那就宣告兩個變數來相乘再把數字做相加就好。

(其實我的K可以不用宣告… 直接sum1 = sum1 + i * j 就好了,不過練習就....沒關係囉^_^)

var sum1 = 0
for i in 0…7 {
for j in 0…7 {
var k = i * j
sum1 = sum1 + k
}
}
print(“EX.1 = \(sum1)”)

//====作業2. 計算奇數行數字的總合====

延伸上一題的題目,只加總奇數行的數字總和,所以只要把其一的變數做% 2 取餘數餘1的就是奇數排。(相反,如果餘數為0 那就是偶數排) 再用if判斷式判斷就可以了。

另外課堂上Peter有講,有for in & where 的用法(簡報就透露答案了呀^_^)就可以少寫一個if判斷式判斷

<法一>

var sum2 = 0
for i in 0…7 {
for j in 0…7 {
if i % 2 == 1 {
var k = i * j
sum2 = sum2 + k
}
}
}
print(“EX.2 = \(sum2)”)

<法二>

var sum2 = 0
for i in 0…7 where i % 2 == 1{
for j in 0…7 {
var k = i * j
sum2 = sum2 + k
}
}
print(“EX.2 = \(sum2)”)

//====作業3. 所有格子的總合,除了列數 >= 行數的格子====

看圖說故事、列>=行,也就是i > = j 但是題目說『 除了』,表示=的部分不能做加總,所以判斷式就訂為 i < j。

★ P.S. 一樣能用for in & where的方法,所以就不多作說明嚕~(and…K的宣告可以拿掉==)

var sum3 = 0
for i in 0…7 {
for j in 0…7 {
if i < j {
var k = i * j
sum3 = sum3 + k
}
}
}
print(“EX.3 = \(sum3)”)

/* 作業4.

定義function,接受3個參數,起始值,最大值和決定數字倍數的number,回傳運算結果 比方起始值3,最大值98,決定數字倍數的number為5時,(只包含5的倍數) 運算結果為 5 + 10 + 15 + ….. + 95 */

第四題開始練習 Function,那就借用一下Peter 的簡報說明最清楚了。

如題所示、設定三個參數mix , max , 跟倍數 multiple,在做運算只要是倍數的數字全做加減,那判斷式就設定==0 再去加總就好。

func showNumberAdd(min: Int, max: Int, multiple: Int) -> Int {
var sum = 0
for i in min…max {
if i % multiple == 0 {
sum = sum + i
}
}
return sum
}
var sum4 = showNumberAdd(min: 3, max: 98, multiple: 5)
print(“EX.4 = \(sum4)”)

/* 作業5.

定義function,接受3個參數,起始值,最大值和決定數字倍數的number,回傳運算結果 比方起始值3,最大值11,決定數字倍數的number為5時,(不包含5的倍數) 運算結果為 3 + 4 + 6 + 7 + 8 + 9 + 11 */

這題就很簡單了,跟前一題一樣,只是改成『不包含』,判斷式改成!=0就好。

func showNoNumberAdd(min: Int, max: Int, multiple: Int) -> Int {
var sum = 0
for i in min…max {
if i % multiple != 0 {
sum = sum + i
}
}
return sum
}
var sum5 = showNoNumberAdd(min: 3, max: 11, multiple: 5)
print(“EX.5 = \(sum5)”)

/* 作業6.

奇數行的數字總合, 定義function,接受2個參數,分別代表行數和列數 */

作業6,7 跟前面第2,3題雷同,細節就不多說 ,直接看程式碼囉~

func oddNumberAdd(columns: Int, rows: Int) -> Int {
var sum = 0
for i in 0…columns {
for j in 0…rows {
if j % 2 == 1 {
let k = i * j
sum = sum + k
}
}
}
return sum
}
var sum6 = oddNumberAdd(columns: 7, rows: 7)
print(“EX.6 = \(sum6)”)

/* 作業7.

所有格子的總合,除了列數>=行數的格子, 定義function,接受2個參數,分別代表行數和列數 */

func allNumberAdd(columns: Int, rows: Int) -> Int {
var sum = 0
for i in 0…columns {
for j in 0…rows {
if i < j {
let k = i * j
sum = sum + k
}
}
}
return sum
}
var sum7 = allNumberAdd(columns: 7, rows: 7)
print(“EX.7 = \(sum7)”)

/* 作業8.

定義一個function,接受一個參數代表華式溫度 , 回到攝式溫度 */

一整路做下來,應該也習慣這樣的模式了首先就需要先上網找公式了…(小時候不好好讀書)

感謝作者:Dana !!!

//攝氏 = (華氏-32)*5/9 & 華氏 = 攝氏*(9/5)+32
func degreeFtoC(degreeF: Int) -> Int {
let degreeC = (degreeF — 32) * 5 / 9
return degreeC
}
var degreeC = degreeFtoC(degreeF: 40)
print(“EX.8 = \(degreeC)”)

以上就是Coding體驗囉~最後做了這麼多運算 總還是需要PO一下答案。

最後還是感謝神級的同學們,小的也是經由同學的開示才寫出來的。 ^_^

The END…

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.