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
23
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
【NoMapsTECH 2025】AI Edge Computing Workshop
akit37
0
180
エンジニア目線でのテスラ
akit37
0
48
「重鎮問題」について(軽めに)
akit37
0
63
Software + Hardware = Fun++
akit37
0
29
基本的に "リモートしかない" ワーク/20231128_KBS_LT
akit37
1
22
3つの先端技術が コミュニティ軸で融合した話。/20230615_CMCMeetup
akit37
0
19
Bootleg_越境してみたときのアウェイ感。/20230328_CMCMeetup
akit37
0
25
始まりは2017年のG検定。/20221026_AITable
akit37
0
16
kintone知能化計画/20220902_kintone_and_JPStripes
akit37
0
26
Other Decks in Technology
See All in Technology
allow_retry と Arel.sql / allow_retry and Arel.sql
euglena1215
1
170
新規プロダクトでプロトタイプから正式リリースまでNext.jsで開発したリアル
kawanoriku0
1
110
Webアプリケーションにオブザーバビリティを実装するRust入門ガイド
nwiizo
7
830
Rustから学ぶ 非同期処理の仕組み
skanehira
1
140
LLMを搭載したプロダクトの品質保証の模索と学び
qa
0
1.1k
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
9
73k
生成AI時代のデータ基盤設計〜ペースレイヤリングで実現する高速開発と持続性〜 / Levtech Meetup_Session_2
sansan_randd
1
150
AI開発ツールCreateがAnythingになったよ
tendasato
0
130
まずはマネコンでちゃちゃっと作ってから、それをCDKにしてみよか。
yamada_r
2
110
Automating Web Accessibility Testing with AI Agents
maminami373
0
1.3k
AWSで始める実践Dagster入門
kitagawaz
1
620
大「個人開発サービス」時代に僕たちはどう生きるか
sotarok
20
10k
Featured
See All Featured
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.7k
Music & Morning Musume
bryan
46
6.8k
Visualization
eitanlees
148
16k
Why You Should Never Use an ORM
jnunemaker
PRO
59
9.5k
Why Our Code Smells
bkeepers
PRO
339
57k
Designing for Performance
lara
610
69k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
18
1.1k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.4k
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
How STYLIGHT went responsive
nonsquared
100
5.8k
Automating Front-end Workflow
addyosmani
1370
200k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
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号