ã¯ããã«
ã¿ãªããããã«ã¡ã¯ïŒïŒæ ªåŒäŒç€ŸLITALICOã§ãšã³ãžãã¢ãããŠããçŠå¶ã§ãïŒãã®èšäºã¯ãLITALICO Advent Calendar 2021ã20æ¥ç®ã®èšäºã§ãïŒð¥
ãèšäºã®ããŒãã 26æ³ã§æªçµéšãããšã³ãžãã¢ã«ãªã£ãèªåããã£ãŠããã£ããšæãããš3éž
ãç®æ¬¡ã
1.åæ
2.WEBãšã³ãžãã¢ãšããŠã®åºç€ç¥èãå©ã蟌ã
3.åå°ãšãªããèãæ¹ãã«ç£šããããã
4.ãšã«ããéçºéãå¢ãããŠãã
5.ãŸãšã
1.åæ
èªåã®çµæŽ
èªåã®çµæŽãšããŠã¯ããã£ãããããªæãã§ãã
- å€§åŠ : ææ系倧åŠ
- 1ç€Ÿç® : å¡Ÿè¬åž«
- 2ç€Ÿç® : ããã°ã©ãã³ã°ã®è¬åž«(ããã¯ãã£ã³ããšããå Žæ)
- ä» : ãšã³ãžãã¢
å ã æç³»ãªäžã«ãå°±è·ããæ¥çãITã«ã¯å šãçžããªããããïŒããã°ã©ãã³ã°ã£ãŠäœïŒããšããç¶æ ã§ãããããããããã¯ãã£ã³ãã®ã¡ã³ã¿ãŒãçµéšããããã°ã©ãã³ã°ã®é¢çœãã«æ°ã¥ãããšã³ãžãã¢ã«ãªãããšã決æããŸããã
èªåã¯äžå©ã ãšæã£ãŠãã
èªåã®å Žåã26æ³ã§æ¥çæªçµéšã§æç³»ãšããããªããã³ããããç¶æ³ã§ãšã³ãžãã¢ã«ãªã£ããšæããŸããåããå幎代ããè¥ãæ¹ã§ãçžåœãªã¹ãã«ãæã¡ãå£çæãæããããšã沢山ãããŸããã
ããããæãæ©ãã§ãä»æ¹ãããŸããããå°ãã§ããšã³ãžãã¢ãšããŠã¹ãã«ã磚ããŠåžå ŽäŸ¡å€ãé«ããããšæããŸããããåšãã®äººãããªã«èšã£ãŠãããããããªããããðããã³ãŒãå šç¶æžããªãããããããïŒèšèšããã®ïŒïŒããšããæ®å¿µãªæ¯æ¥ãè±ããããã«ãã£ãããšãã玹ä»ããŸããw
2-WEBãšã³ãžãã¢ãšããŠã®åºç€ç¥èãå©ã蟌ã
WEBãšã³ãžãã¢ãšããŠã®åºç€ç¥èãšã¯ïŒ
äžèšã®3ã€ãããWEBãšã³ãžãã¢ãšããŠã®åºç€ç¥èããšããŠå®çŸ©ããŸããã
- WEB/ã¢ããªã±ãŒã·ã§ã³ã®ä»çµã¿
- ãšã³ãžãã¢ãšããŠã®å ±éèšèª
- çæ³ãšããã³ãŒãã£ã³ã°ææ³/èšèšææ³
ããããäœç³»çã«åŠã¶ããã«ã¯ãæ¬ãèªãã®ãäžçªæã£åãæ©ããšæããŸãããããããç§å人çãªåé¡ã§ããèªæžã¯éåžžã«èŠæã§ãwããã§ã5åã«çŠç¹ãçµã£ãŠèªã¿ãŸããããããã玹ä»ããããšæããŸãã
ã€ã©ã¹ãå³è§£åŒ ãã®äžåã§å šéšãããWebæè¡ã®åºæ¬
æ¬ã®é¡åéããWEBæè¡ã®åºæ¬ãå³è§£ãšã»ããã§è§£èª¬ãããŠããŸãããã®æ¬ã®ç¹åŸŽã¯ãèŠéãã§ã·ã³ãã«ãªèª¬æãšå³è§£ã§å±éãããŠãããé ã§ã€ã¡ãŒãžããªããèªã¿é²ããããããšã§ãããããã¯ãŒã¯/ã·ã¹ãã ã®åºæ¬èšèš/ã»ãã¥ãªãã£ã«é¢ããŠäœç³»ç«ãŠãŠåŠããã®ã§ãå¿ èŠæäœéã®ç¥èãã€ã³ãããããã«ã¯æé©ã ãšèããŠããŸãã
ãªãŒããã«ã³ãŒã
ã©ããªããšãåŠã¹ããããã£ãã説æãããšäžèšã®éãã§ãã
- èªã¿ãããã³ãŒããšã¯ïŒ
- é©åãªã³ã¡ã³ããæžãããš
- çŸããã³ãŒããæžãã«ã¯ïŒ
- èªã¿ãããæ¡ä»¶åŒ
- é©åãªå€æ°åã®ä»ãæ¹
- é·ãããã³ãŒããã©ãçããããïŒ
ãªã©ã§ããåã¿ããã«ãç¬åŠã ãã§ããã°ã©ãã³ã°ãå匷ãã人ã¯çµ¶å¯Ÿèªãã¹ãã ãšæã£ãŠããŸãããåäžè²¬ä»»ã®ååãã»ãæœè±¡åºŠãæããããªã©ããããããã³ãŒããæžãããã®ããã¯ã説æãããŠããŸããèªåã®ã³ãŒããä»ã®äººã«ãšã£ãŠãããããããã®ã«ãªã£ãŠãããïŒãæ¯ãè¿ãããã«æã èªã¿çŽãããã«ããŠããŸãã
äŸãã°ã以äžã®ããã«åãã«ã¬ãŒãç¯(returnã§è¿ã)ã§ãã¹ããæµ ãåºæ¥ããããšãã£ããã³ãŒããããããããããããã®ããŠããŠãè©°ãŸã£ãŠããŸãã
# ãããã¥ãã
def judge_discounted_price(person, price)
if person[:member] == 1
price = if person[:times] == 1
price * 0.9 - 1000
else
price * 0.9
end
else
price
end
end
# ãããããã
def judge_discounted_price(person, price)
return price if person[:member] != 1
if person[:times] == 1
price * 0.9 - 1000
else
price * 0.9
end
end
ãªããžã§ã¯ãæåèšèšå®è·µã¬ã€ã
ãã®æ¬ã¯ãšãŠãååãã®ã§ãç§ã¯ãé称éåšãšåŒãã§ããŸãw
ããŠããªããžã§ã¯ãæåãšã¯ãã·ã¹ãã æ§æã®èãæ¹ã®ããšã§ãã詳ããããšãç¥ãããæ¹ã¯äžèšã®èšäºããåèãã ããã
>>åå¿è
åãã«åŸ¹åºè§£èª¬ïŒãªããžã§ã¯ãæåãšã¯ïŒ
ãã®æ¬ãèªãã çç±ã¯ãïŒã€ãããŸãã
-
ãšã³ãžãã¢ãšããŠã®å
±éèšèªãåŠã¶ãã
- ã¢ãžã¥ãŒã«ã»äŸåã»åäžè²¬ä»»ã»ããã¯ã¿ã€ãã»ã€ã³ã¿ãŒãã§ã€ã¹ãªã©ãããã®æŠå¿µãã€ã³ããããã
- Rubyãªã©ãªããžã§ã¯ãæåèšèªã®çæ³çãªèšèšææ³ãäœç³»çã«åŠã³ãããã
- çæ³çãªèšèšææ³ããã€ãã©ãèšã£ãå Žé¢ã§äœ¿ãã®ãçæ³çãªã®ãïŒ
ãã®æ¬ãèªãã ãããã§ããšã³ãžãã¢å士ã®è©±ã«ã€ããŠãããããã«ãªã£ãã ãã§ãªããèªåã§ã³ãŒãã£ã³ã°ã»èšèšããéã«èªç¶ãšæèåºæ¥ãæ§ã«ãªããŸããã
ãªããžã§ã¯ãæåã«ãããåå©çšã®ããã®ãã¶ã€ã³ãã¿ãŒã³
ãªããžã§ã¯ãæåãåŠãã åŸã«èªã¿ãŸããããªããžã§ã¯ãæåèšèªã«ãããŠãèšèšæžã®ã«ã¿ãã°ã¿ãããªã€ã¡ãŒãžãæã£ãŠããŸãã
ã¡ãã£ãšãããã¥ãããšæãã®ã§ãDecoratorãã¿ãŒã³ãšãããã®ã玹ä»ããŠã¿ãŸãã
# Decoratorãã¿ãŒã³ã䜿çšããªãäŸ
class User < ApplicationRecord
def name_with_prefix
prefix = gender == 'ç·æ§' ? 'Mr.' : 'Ms.'
name + prefix
end
end
# Decoratorãã¿ãŒã³ã䜿çšããäŸ
class User < ApplicationRecord
end
class UserDecorator
attr_reader :user
def initialize(user)
@user = user
end
def name_with_prefix
prefix = @user.gender == 'ç·æ§' ? 'Mr.' : 'Ms.'
name + prefix
end
end
Decoratorãã¿ãŒã³ã䜿çšããäºã§ãUserã¢ãã«ãæžãæããšä¿åã©ã¡ããå®è£
ããŠããŸã£ãŠããç¶æ
ãåãé¢ããŸããããã®çµæãåŸã«æ§ã
ãªæ©èœãè¿œå ã§ãããããšããæãã§ãã
äžäŸã§ããããããã£ããªããžã§ã¯ãæåã䜿ãããªãããã®ã«ã¿ãã°ã®ãããªãã®ãå€æ°çŽ¹ä»ãããŠããŸãããã®ããããªããžã§ã¯ãæåã®æèŠã磚ãã«ã¯æé©ã®æ¬ã§ããã
ã¢ã«ãŽãªãºã å³é çµµã§èŠãŠããã26ã®ã¢ã«ãŽãªãºã
ç°¡åã«ãããšãã¢ã«ãŽãªãºã ã¯ãæé ãèšç®æ¹æ³ãã®ããšã§ãã
>>ã¢ã«ãŽãªãºã ãšã¯ïŒ
ã¢ã«ãŽãªãºã ãšããååãçµæ§ãããã€ãã§ãããã»ã»ã»w
ãããããã®æ¬ã§ã¯ãé
åã»ã¹ã¿ãã¯ãªã©ã®ããŒã¿æ§é ãªã©ã®è©±ããå§ãŸãããœãŒããæ¢çŽ¢ã®æ¹æ³ãªã©ãå³è§£ã§ãããããã説æãããŠããŸãã
äŸãã°ãäžèšã®èšè¿°ãèŠãŠãã ããã
å€ãæ¢ãæ¹æ³ãšããŠãç·åœ¢æ¢çŽ¢ãšäºåæ¢çŽ¢ããããŸããèšè¿°ã®ä»æ¹ãšããŠã¯ãç·åœ¢æ¢çŽ¢ã®æ¹ãã·ã³ãã«ã§ããã1å1åãããããæ°åãæ¢ãããèšç®éãå€ããªã£ãŠããŸããŸãã
ããããäºåæ¢çŽ¢ã®ãããªæ¢ãæ¹ã ãšãå
šãŠãæ¯èŒããå¿
èŠããªããããèšç®éãç·åœ¢æ¢çŽ¢ããå°ãªããªããŸããããèšã£ãæé ãèšç®æ¹æ³ããåºç€ç¥èãšããŠæã€ã®ã¯ãšã³ãžãã¢ãšããŠéèŠã ãšèããŠããŸãã
# ç·åœ¢æ¢çŽ¢
def linear_search(array, target)
array.each.with_index(1) do |num, index|
if num == target
puts "æ¢ããŠããå€ã¯#{index}çªç®ã«ãããŸã"
return
end
end
puts "#{target}ã¯èŠã€ãããŸããã§ãã"
end
array = [14, 32, 45, 67, 89, 122, 245, 367]
puts 'æ¢çŽ¢ãããå€ã以äžããéžãã§ãå
¥åããŠãã ãã'
puts array.join(' , ')
target = gets.to_i
linear_search(array, target)
# äºåæ¢çŽ¢
def binary_search(array, target)
head = 0
tail = array.length - 1
while head <= tail
center = (head + tail) / 2
if array[center] == target
puts "#{target}ã¯#{center + 1}çªç®ã«ãããŸãã"
return
elsif array[center] < target
head = center + 1
else
tail = center - 1
end
end
end
array = [14, 32, 45, 67, 89, 122, 245, 367]
puts 'æ¢çŽ¢ãããå€ã以äžããéžãã§ãå
¥åããŠãã ãã'
puts array.join(' , ')
target = gets.to_i
binary_search(array, target)
以äžããç§ãèªãã æ¬ã«ãªããŸãã
3-åå°ãšãªããèãæ¹ãã«ç£šããããã
ç®å ã®çããæ±ããŠãæå³ã¯ãªãã
æ£è§£ãæçµçãªã¢ãŠããããã ããå®æã«æ±ããããšããããšã¯ãçæçã«ã¯è¯ããŠãé·æçã«ã¯è¯ããªããšæã£ãŠããŸãããåå°ãšãªãããšã³ãžãã¢ãšããŠã®èãæ¹ãã®éšåã«ç£šãããããããšã§ãã©ããªå Žé¢ã§ãèªåã§èãæããããåãåãçãã®ã§ã¯ãªãããšèããŸãããé·æçã«èŠããšããããã£ãæ¯ãèãæ¹ã®æ¹ãã¡ãªããããããšèããŸããã
身ã«ã€ããããã«æèããŠããããšã¯ïŒã€ãããŸãã
- å
茩ãšã³ãžãã¢ã«ç©äºãèãéã¯å¿
ããèªåã®ã仮説ããè©ŠããããšããäŒãããåºæ¥ãã ããããã¹ãããŒã¹ã§ãŸãšããããšã§ãèªåã®èãããŸãšãŸã£ãŠããã
- çç± : èªåã®èãæ¹ãè¡åã«å¯ŸããŠFBãããããããã«ãããã
-
ä»ã®ãšã³ãžãã¢ã®æ¹ã®å®è£
ãèšèšã®èæ¯ãçç±ãå¿
ãèã
- çç± : èªåããçµéšãç©ãã§ããæ¹ã®æèåè·¯ã奪ãããšã§ãèªåã®èãæ¹ã«ç£šãããããããã
4-ãšã«ããéçºéãå¢ãããŠãã
å¯æ¥ã¯èªåã®ã¹ãã«ãæ¡åŒµããçµéšãå¢ããããŒã«
ããã¯å®å šã«æè«ã§ãããçµå±ã¯ãçµéšã®éÃFBã®éããåšããšå·®ãã€ããã®ã§ã¯ãªãããšèããŠããŸããèªåã¯ã26æ³ã§ãšã³ãžãã¢ã«ãªããããã«ãç¹æ®µãšã³ãžãã¢ãšããŠã®ã»ã³ã¹ã¯ãªããšæã£ãŠããŸãã®ã§ãåšãã®æ°åæ©ãããŒã¹ã§çµéšãå¢ãããããšèããŸããã
ããã§ãç§ã¯å¯æ¥ã§ãéçºããããšã§ãšã«ããéãããªãããšãæèããŸããã
ã€ã³ããã << ã¢ãŠãããã
ã€ã³ããããæªãšã¯èšããŸãããããããçµå±ã¯çŸå Žã§ã®å®æŠã®æ°ãå€ãã»ã©åŒ·ããšã³ãžãã¢ã«ãªããšæã£ãŠãŸãããå®æŠã®å Žã§ç¥èã足ããªãã£ãããããã§ã€ã³ãããããã°è¯ãããããšããçºæ³ãªã®ã§ãç§ã¯åŠäœã«ã¢ãŠããããããç°å¢ãå¢ãããã«éç¹ããããŠãããŸãã
5-ãŸãšã
ãŸãšãã«å ¥ããŸããèªåãæªçµéšãããšã³ãžãã¢ã«ãªã£ãŠãã£ãŠããã£ããšæãããš3éžã¯äžèšã®éãã§ãã
- WEBãšã³ãžãã¢ãšããŠã®åºç€ç¥èãå©ã蟌ãã ããš
- åå°ãšãªããèãæ¹ãã«ç£šãããããããš
- å¯æ¥ãªã©ãéããŠéçºéãå¢ãããŠãã£ãããš
ãããå°ãã§ãåèã«ãªããŸãããããããé¡ãããŸãïŒ
ææ¥ã¯ã@kazuisããã«ãã5段éã¢ãã«ã«ããã·ã¹ãã ãã¶ã€ã³ã®é²ãæ¹ã«ãªããŸãïŒ