Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
CDLE LT会「お試しプログラミング forとifとfunction()」/20200930...
Search
ITO Akihiro
September 30, 2020
Technology
0
13
CDLE LT会「お試しプログラミング forとifとfunction()」/20200930_CDLE_LT
CDLE LT会#2
--
お試しプログラミング forとifとfunction()
プログラミングしたことない人向け。週末にお子さんと一緒にどうぞ。
ITO Akihiro
September 30, 2020
Tweet
Share
More Decks by ITO Akihiro
See All by ITO Akihiro
「重鎮問題」について(軽めに)
akit37
0
43
Software + Hardware = Fun++
akit37
0
19
基本的に "リモートしかない" ワーク/20231128_KBS_LT
akit37
1
17
3つの先端技術が コミュニティ軸で融合した話。/20230615_CMCMeetup
akit37
0
12
Bootleg_越境してみたときのアウェイ感。/20230328_CMCMeetup
akit37
0
19
始まりは2017年のG検定。/20221026_AITable
akit37
0
11
kintone知能化計画/20220902_kintone_and_JPStripes
akit37
0
18
外観検査用画像前処理の_コツをコード解説付きで。/20220810_CDLE_LT
akit37
0
11
サブスク課金に銀行振込を追加してみた。その①/20220713_JPStripes
akit37
0
17
Other Decks in Technology
See All in Technology
Data-centric AI入門第6章:Data-centric AIの実践例
x_ttyszk
1
410
君も受託系GISエンジニアにならないか
sudataka
2
440
アジャイル開発とスクラム
araihara
0
170
飲食店予約台帳を支えるインタラクティブ UI 設計と実装
siropaca
7
1.8k
N=1から解き明かすAWS ソリューションアーキテクトの魅力
kiiwami
0
130
Nekko Cloud、 これまでとこれから ~学生サークルが作る、 小さなクラウド
logica0419
2
970
30分でわかる『アジャイルデータモデリング』
hanon52_
9
2.7k
全文検索+セマンティックランカー+LLMの自然文検索サ−ビスで得られた知見
segavvy
2
110
『衛星データ利用の方々にとって近いようで触れる機会のなさそうな小話 ~ 衛星搭載ソフトウェアと衛星運用ソフトウェア (実物) を動かしながらわいわいする編 ~』 @日本衛星データコミニティ勉強会
meltingrabbit
0
150
スタートアップ1人目QAエンジニアが QAチームを立ち上げ、“個”からチーム、 そして“組織”に成長するまで / How to set up QA team at reiwatravel
mii3king
2
1.5k
ハッキングの世界に迫る~攻撃者の思考で考えるセキュリティ~
nomizone
13
5.2k
目の前の仕事と向き合うことで成長できる - 仕事とスキルを広げる / Every little bit counts
soudai
24
7.2k
Featured
See All Featured
Practical Orchestrator
shlominoach
186
10k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
193
16k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
21
2.5k
Imperfection Machines: The Place of Print at Facebook
scottboms
267
13k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
330
21k
Building a Scalable Design System with Sketch
lauravandoore
461
33k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
7k
Intergalactic Javascript Robots from Outer Space
tanoku
270
27k
Raft: Consensus for Rubyists
vanstee
137
6.8k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
120k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
100
18k
Building an army of robots
kneath
303
45k
Transcript
お試しプログラミング forとifとfunction() ~2020.9.30 CDLE LT会#2~ connectome.design ltd. / Akihiro ITO
プログラミングしたことない人向けです • “世界のナベアツ”を実装してみます。 • Google Apps Script を使います。 • Python
での実装例も。
仕様 • 1から順に数字を表示します。 • 3の倍数、もしくは3を含む数字の場合には、数字の後ろに、” AHO” を付加します。
Google Apps Script の準備 1. Google Driveにアクセスします。 2. Google Spreadsheetを新規作成します。
3. [ツール]→[スクリプトエディタ]を開きます。 4. スクリプトを書く準備ができました。
最初に必ず試すやつ 基本的な動作環境が整っていることを確認するた めに、まずは最初に最小のお約束プログラムを動 かします。 HelloWorld() function helloWorld() { var message
= "Hello World!"; var ui = SpreadsheetApp.getUi(); ui.alert(message); }
Hello World! の実装と実行 1. スクリプトエディタにコードを書きます。 2. プロジェクト名をつけて保存します。 3. 実行します。 4.
Spreadsheetのタブに、メッセージが出力さ れます。
“世界のナベアツ”の実装/Step.1 1. 1から10まで繰り返し処理します。 2. 数字を出力します。 3. そのとき、3の倍数なら、” AHO”を付加しま す。 function
nabeatu() { var ui = SpreadsheetApp.getUi(); for(var i=0; i<10; i++) { var num = i+1; if (num % 3 == 0) { ui.alert(num + " AHO"); } else { ui.alert(num); } } }
“世界のナベアツ”の実装/Step.2 1. 1から10まで繰り返し処理します。 2. 数字を出力します。 3. そのとき、3の倍数なら、” AHO”を付加しま す。 4.
もしくは、3を含む数字なら、” AHO”を付加し ます。 // 3を含むか判定 var j = num; var flag = false; while(j > 0) { k = parseInt(j / 10); if(j - k * 10 == 3) { flag = true; break; } j = k; } if(flag) { ui.alert(num + " AHO"); }
“世界のナベアツ”の実装/Step.3 function nabeatu() { var ui = SpreadsheetApp.getUi(); for(var i=0;
i<10; i++) { var num = i+1; var j = num; var flag = false; while(j > 0) { k = parseInt(j / 10); if(j - k * 10 == 3) { flag = true; break; } j = k; } if(flag) { ui.alert(num + " AHO"); } else if (num % 3 == 0) { ui.alert(num + " AHO"); } else { ui.alert(num); } } } ※全部繋いだだけです。このまま動くはず。
“世界のナベアツ”の実装/Step.4-1 function nabeatu() { var start = 1; var end
= 100; var output = ""; var ui = SpreadsheetApp.getUi(); for(var i = start; i < end+1; i++) { output += i; if(isAho(i)) { output += " AHO"; } output += "\n"; } ui.alert(output); } 初期値化 まとめて出力 関数化 ここから、もっとそれらしく整形します。 • 初期値を指定できるように。 • 始めと終わりの数字を直感的に指定できる ように修正。 • 出力を一回にまとめる。 • 判定部分を関数にまとめて外出し。 • さらに複雑な判定部分は別関数に。 結果、メイン関数はこれだけになりました。 サブ関数は次ページ。
“世界のナベアツ”の実装/Step.4-2 function isAho(number) { var flag = false; if(number %
3 == 0) { flag = true; } else { flag = isIncludeThree(number); } return (flag); } function isIncludeThree(number) { var i = number; var flag = false; while(i > 0) { j = parseInt(i / 10); if(i - j * 10 == 3) { flag = true; break; } i = j; } return(flag); } 3で割り切れるかを判定する。 3を含むかの結果も評価して返す。 3を含むかどうかを判定する。
実行結果
実行結果 • 3を含むかどうかのロジックはいろいろあ るので、他のものも考えてみてください。 • 開始終了の数値をスプレッドシートに書 いた値から取得したり、結果を別シート を作って書き出したりもできるので、いろ いろアイデアを試してみてください。 •
APIリファレンスには「GASで何ができる か」がすべて書かれています。
Pythonで簡単に書くとこんな感じ for num in range(1, 1000, 1): i = num
flag = 0 while i>0: j = (int)(i / 10) if i - j*10 == 3: flag = 1 break i = j if flag == 1 or num % 3 == 0: print(str(num) + " AHO") else: print(str(num)) ※GASでも同じ行数で書けます。
自己紹介など • 伊藤明裕/Akihiro ITO • connectome.design株式会社[JDLA正会員] シニアアーキテクト • CDLEコアメンバー •
情報処理安全確保支援士 No.7287/G2017/E2018 • 前職からのAI人材育成の取り組み、G検定数学対策など https://www.slideshare.net/AkihiroIto1/ 情報処理 安全確保 支援士 第007287号