More Related Content Similar to 20200930 CDLE LT#2_COD_AkihiroITO (20) More from Akihiro ITO (16) 20200930 CDLE LT#2_COD_AkihiroITO4. Google Apps Script の準備
1. Google Driveにアクセスします。
2. Google Spreadsheetを新規作成します。
3. [ツール]→[スクリプトエディタ]を開きます。
4. スクリプトを書く準備ができました。
6. Hello World! の実装と実行
1. スクリプトエディタにコードを書きます。
2. プロジェクト名をつけて保存します。
3. 実行します。
4. Spreadsheetのタブに、メッセージが出力さ
れます。
8. “世界のナベアツ”の実装/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");
}
9. “世界のナベアツ”の実装/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);
}
}
}
※全部繋いだだけです。このまま動くはず。
10. “世界のナベアツ”の実装/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);
}
初期値化
まとめて出力
関数化
ここから、もっとそれらしく整形します。
● 初期値を指定できるように。
● 始めと終わりの数字を直感的に指定できる
ように修正。
● 出力を一回にまとめる。
● 判定部分を関数にまとめて外出し。
● さらに複雑な判定部分は別関数に。
結果、メイン関数はこれだけになりました。
サブ関数は次ページ。
11. “世界のナベアツ”の実装/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を含むかどうかを判定する。
14. 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でも同じ行数で書けます。
15. 自己紹介など
● 伊藤明裕/Akihiro ITO
● connectome.design株式会社[JDLA正会員]
シニアアーキテクト
● CDLEコアメンバー
● 情報処理安全確保支援士 No.7287/G2017/E2018
● 前職からのAI人材育成の取り組み、G検定数学対策など
https://www.slideshare.net/AkihiroIto1/
情報処理
安全確保
支援士
第007287号