Thuta Learning
ရှာဖွေရန်
ExercisesProgrammingbeginner

Practice Exercises 1

စိတ်လျှော့ပါ။ ဒီခန်းကို စာအုပ်လိုမဟုတ်ဘဲ စကားပြောသလိုပဲ၊ နားလည်လွယ်အောင် ရှင်းပါမယ်။

ဒီခန်းပြီးရင် ဘာတတ်သွားမလဲ

  • Practice Exercises 1 ကို ကိုယ်တိုင် လေ့ကျင့်ကြည့်မယ်
  • သင်ခဲ့ပြီးသား skill တွေကို practice လုပ်ပြီး ခိုင်မာအောင်လုပ်မယ်
  • အမှားရှာ၊ ပြင်တတ်၊ ကိုယ်တိုင် check လုပ်တတ်မယ်

ခဏလေး ဒီလိုပဲ စဉ်းစားကြည့်

ဒီ lesson ဟာ teaching content အသစ် မဟုတ်ဘဲ Basic chapter မှာ သင်ခဲ့တဲ့ variable, method, conditional (if-else), array concept တွေကို hands-on practice နဲ့ ပြန်လည် အားစမ်းကြည့်ဖို့ ဖြစ်ပါတယ်။ task တစ်ခုချင်းစီကို ကိုယ်တိုင် method အနေနဲ့ ရေးကြည့်ပြီး Ruby syntax ကို လက်ထောက် အလေ့အကျင့်ဖြစ်အောင် ရည်ရွယ်ထားပါတယ်။ ဒီလို short exercise တွေကို regular ကျင့်သားနေတာဟာ Ruby syntax ကို muscle memory ဖြစ်စေဖို့ အထောက်အကူပြုပါတယ်။

လေ့ကျင့်ခန်းများ

Task 1: even_or_odd(n) ဆိုတဲ့ method ရေးပြီး n ဟာ even ဆိုရင် "Even", odd ဆိုရင် "Odd" ဆိုတဲ့ string ကို modulo operator (%) နဲ့ if-else သုံးပြီး ပြန်ပေးပါ။ Task 2: sum_numbers(numbers) ဆိုတဲ့ method ရေးပြီး integer array တစ်ခုကို parameter အနေနဲ့ ယူကာ each loop ဒါမှမဟုတ် sum method နဲ့ စုစုပေါင်းကို ပြန်ပေးပါ။ Task 3: reverse_words(sentence) ဆိုတဲ့ method ရေးပြီး "Ruby is fun" ကို "fun is Ruby" အဖြစ် split, reverse, join method သုံးကာ ပြောင်းလဲပေးပါ။ task တစ်ခုစီကို method သီးခြားစီ ရေးပြီး sample input အနည်းငယ်နဲ့ puts နဲ့ ခေါ်ပြီး result ကို စစ်ဆေးပါ။

Code နမူနာ

ruby
# Task 1: Even or Odd
def even_or_odd(n)
  # TODO: n ဟာ even ဆိုရင် "Even", odd ဆိုရင် "Odd" ပြန်ပေးပါ
end

# Task 2: Sum of an array
def sum_numbers(numbers)
  # TODO: numbers array ရဲ့ ပေါင်းလဒ်ကို ပြန်ပေးပါ
end

# Task 3: Reverse the word order in a sentence
def reverse_words(sentence)
  # TODO: "Ruby is fun" -> "fun is Ruby"
end

puts even_or_odd(7)
puts sum_numbers([1, 2, 3, 4, 5])
puts reverse_words("Ruby is fun")
You should see
even_or_odd(7) က "Odd", sum_numbers([1,2,3,4,5]) က 15, reverse_words("Ruby is fun") က "fun is Ruby" ကို output အနေနဲ့ ပြန်ပေးသင့်ပါတယ်။

၅ မိနစ် စမ်းကြည့်

task 3 ကို ဆင်တူတဲ့ palindrome?(word) ဆိုတဲ့ method အသစ်တစ်ခု ထပ်ရေးပြီး word ကို ရှေ့ကနေဖတ်တာနဲ့ နောက်ကနေဖတ်တာ တူညီမတူညီ true/false ပြန်ပေးအောင် 5 minutes အတွင်း စမ်းကြည့်ပါ။

သတိလေးတစ်ချက်

method တစ်ခုစီကို ရေးပြီးတိုင်း puts ဒါမှမဟုတ် p နဲ့ result ကို ချက်ချင်း test လုပ်ကြည့်ပါ - method အားလုံးရေးမှ တစ်ခါတည်း test လုပ်ရင် error ဘယ်နေရာက ဖြစ်တာမှန်း ရှာရခက်ပါတယ်။

ဒီနေရာမှာ လူအများမှားတတ်တယ်

  • n % 2 == 0 အစား n / 2 == 0 လို့ ရေးမိပြီး even/odd logic လုံးဝ မှားသွားတတ်ပါတယ်
  • sentence.split ရဲ့ default delimiter က space ဖြစ်တာကို မသတိထားဘဲ split("") လို့ ရေးမိပြီး word အစား character တွေကို reverse လုပ်မိတတ်ပါတယ်

အခု ကိုယ်တိုင် စမ်းကြည့်

task 3 ကို ဆင်တူတဲ့ palindrome?(word) ဆိုတဲ့ method အသစ်တစ်ခု ထပ်ရေးပြီး word ကို ရှေ့ကနေဖတ်တာနဲ့ နောက်ကနေဖတ်တာ တူညီမတူညီ true/false ပြန်ပေးအောင် 5 minutes အတွင်း စမ်းကြည့်ပါ။

You'll know it worked when: even_or_odd(7) က "Odd", sum_numbers([1,2,3,4,5]) က 15, reverse_words("Ruby is fun") က "fun is Ruby" ကို output အနေနဲ့ ပြန်ပေးသင့်ပါတယ်။

Practice Exercises 1 | Thuta Learning