pg06
iPad のショートカットによるプログラミング(補足編)
前回(第5回)の課題作成のヒントを掲載しておく。
ショートカットユーザーガイド https://support.apple.com/ja-jp/guide/shortcuts/welcome/ios
ショートカットApp アクションリファレンス https://350ml.net/shortcuts/
スクリプティング アクション 計算式 https://note.com/u2_note/n/n3bc4c2311adf
例)
金額を入力して10%を加え端数を四捨五入する
金額を入力する計算アクション
計算の「数字」の部分を長押しするとメニューが表示されるので、「毎回尋ねる」を選ぶ
マジック変数を表示させた状態
消費税率をメニューから選択できるようにした例。
大学のWebから教員の氏名を取得して一覧表示する例)
URL https://www.nagoya-bunri.ac.jp/cgi-bin/teacher/index.cgi
←実行例)
関連事項:
テキスト処理
正規表現 (パターンマッチ)
←で表示されている名前は教員のメールアドレスにも使われている。
@nagoya-bunri.ac.jp を名前に結合したものが教員用メールアドレス。
メールアドレスを結合するアクションを追加したバージョン
Swift Playgrounds(続き)
コードを学ぼう1 の 「for ループ」 に取り組む。
課題1
コードを学ぼう1の目次を表示して進めたところまでが分かるような画面(目次にチェックマークが付く)のスクリーンショットを撮りWebclassにアップロードする。
課題2
テンプレート「図形」を利用して、以下のコードを作成する。
Circle の プロパティを 制御変数 i を利用して 適当に変更してみる。
基本形 同じ場所に円が重なっている。
ドラッグして移動してみること。
for の制御変数 i がInt型(整数型)で値が 0 1 2 となるため、図形の座標用の値 0.0 1.0 2.0 (Double型)として使用できない。
そのため、Double(i) を利用してDouble型に変換してから座標 Point に使用している。
color をランダムに設定する例。 Color.random() を使用した。
第6回の内容はここまで。
以下に for ループの応用例について記載する。
興味がわいた受講生は取り組んでみて欲しい。
テンプレートの図形に他の図形コードのサンプルが記載されているのでコピーして利用するとよい。
メニューの 「>」をタップして表示。
forループの応用例
2重ループで内側のfor の処理を外側の for の処理で繰り返す。下の例では「y 方向に縦に並べる」内側の処理を外側のforでx方向に横に並べている
circle.center.x や circle.center.y で 〇の中心座標の x y を直接指定できる。Point(x: 0, y: 0 )で座標を作成しなくて済む。
次のコードでは関数 gap を定義して利用している。
gap関数 は i: でスキマを開ける回数、gap: でスキマ1個の大きさ(x方向なら幅、Y方向なら高さ)を引数で指定するとスキマ全体の距離を計算(掛け算)する。
i: がマイナスの値の場合、スキマを開ける方向は逆転する。
gap(i: 1, gap: 10) なら サイズ10の隙間を1個分を計算する。
func gap(i: Int, gap: Double) -> Double の関数宣言部分について:
末尾の -> Double は関数の返却値の型の宣言。
関数の計算結果を返却値として関数を呼び出した(利用した)側のプログラムで使用することができる。
以下のコードでは〇の座標の設定にgap関数を使用している。
let で〇などのオブジェクト名前を付けたように var でデータに名前を付けることができる。
下のコードで
var spread = 0.0
の部分は 変数名 spread で 初期値 0.0 の変数を宣言している。変数の型の宣言は省略されているが、初期値と同じDouble型になる。
for の x も var と同じく値の変更が可能な変数である。型はInt型。
この x はループが繰り返されるたびに自動的に+1されて増えて行く。
var で宣言された変数の値を変更するにはコードで、
spread += 0.5
と書けばよい。このコードで spread は元の値から 0.5 増えた値に変化する。
for ループの制御変数 i を利用して色を変更する例を示す。
Color( red: 0 , green: b, blue: 0 , alpha: 1)
red: 0 赤色成分の値 0~1を指定。
green: ここに 0.1 * Double(i) と書くと以下のコードでは 0.1 0.2 ... 1.0 と変化することになる。
blue: 0 青色成分の値 0~1を指定。
alpha: 1 透過度の指定。1で不透過。0で透明。0.5なら半透明。
circle.center.y = Double(2*i) の部分は、 2*Double(i) と書いてもよい。
for ループの処理が終了すると、各図形を処理していた変数名 circle は利用できなくなる(変数名の有効範囲外)。
そこで、ループが終わった後でも 生成した各図形を処理するために 配列と呼ばれるデータ保存領域を用意しておき、各図形を登録しておくとよい。
以下のコードでは 配列 を利用した例。詳細は次回に解説。
課題3
チャレンジ の ブロック崩し に取り組む(次回の予習)