FC2ブログ
 

米国株テクニカル分析ブログ ソシアルアドバンテージ 香港株、米国株、エリオット波動のブログ

swiftの学習でわかったこと Swiftの初心者向け解説

プログラミング言語スイフトを学習している

ここ数ヶ月の悪戦苦闘の結果ようやく自分でまともなプログラムを書けるようになったと思った

そこでSWIFTを使っているプログラミングの初心者の人に私から言いたいことがある

それはswitch文やif文やfor文などのそれぞれについての概念の捉え方だ

私の理解によれば、プログラムはある種の製造ラインのようなものである

そして処理を書く上でそれぞれの文はまるで人間のように振る舞う

では以下に書いていく


変数定数について

varやletで宣言されるSwiftの変数と定数はコンビニ弁当の製造ラインで言えばごはんとおかずのようなものであると言える

例えばコンビニの弁当は季節がいくら変わってもごはんが入っている
つまりコンビニ弁当で言えばごはんは定数なのだ

一方でコンビニ弁当のおかずは季節や商品開発の人たちの気分やアイデアでどんどん変化していく
だからコンビニ弁当で言うならおかずは変数だ


コンビニ弁当はいくら時間や季節が変化してもごはんと〇〇(おかず)という組み合わせは変化しない

同様にプログラムを書くときに変化しないものはletである定数で宣言する


ならもし筍の炊き込みごはんは変数では無いのか?
というと筍の炊き込みごはんを分解すれば

ごはん(定数)+筍(変数)+だし汁(変数)

となり、ごはんは定数のままであることがわかる


文字列String整数Intについて

Swiftではデータを文字列であるStringと整数Intそして小数点以下も表示できるDouble・Floatが使われている


文字列はiPhoneの画面に表示する文字を指定するあるいは文と文を足し合わせる時につかうもので前と後ろに"をつけてプログラムに書くことになる

プログラムとして重要なのは文字列Stringは名詞と状態を書く時に使い、整数Intや小数点付き整数のDouble・Floatは数字を処理したり数量を扱う時に使うという点だ


つまりコンビニ弁当で言えば商品名「唐揚げ弁当」は文字列であり、名詞であるもし「おいしい唐揚げ弁当」と商品名が変化してもそれは状態をあらわすので文字列Stringである

一方で唐揚げ5個、唐揚げ4個は数量であり、5個入りが4個入りになってもそれは数字の変化である

弁当のカロリーである1食450kcalも同様にカロリーの数量であるので整数である



Switch文について

Switch文は搬入口であり仕分け係である

唐揚げ弁当で例えるならもし唐揚げ弁当の製造ラインに豚肉を持ってこられてもそれで唐揚げ弁当を作ることができないように、プログラムの文でも違うものを持ってこられても困ってしまう

また、この場合はどうすればいいか?というのを前もって指示しておくことも大事だ
例えば天気がいい日は唐揚げ弁当を多めに店舗に配送するだとか、逆に雨なら製造を絞るなどだ

SwiftのSwitch文はcaseとdefaultが必要(defaultは省略できる)なのだが、これはSwitch文の性格を示しているといえる

つまりcase(~の場合は?)とdefault(基本的には)というものだからだ


これによるならSwitch文を使うと

default 基本は100個作る
case 天気が晴れなら110個作る
case 天気が雨なら90個作る

という風に命令を条件で変化させることと普段はどうするか?を決めることができる

上ではSwiftのSwitch文の書き方を取っていないが実際には

Switch FriedChikenLunch {
case "晴れ":
処理
case "晴れ":
処理
default "普段"
処理
}
という風に書く

また、唐揚げ弁当の製造ラインに豚肉を持ってこられたらとんかつ弁当の製造ラインに持って行けという命令も出せる



for文について

for文はプログラミング初心者には何のことやらわかりにくいが、実はforこそ自動化の要であり言うなればプログラミングにとってfor文こそ主役であり作業員であると言える

for文は同じことを決められた回数こなす役目を持っていて、忠実であるが気はきかないw

例えば1から1000まで順番に足して行けという人間なら意味が見出せずうんざりすることもforなら文句を言わずやってくれるw

ただ生来受け身なので「そう言われると思ってこれやっておきました!」とは言ってくれないw

for文はforとinで書かれているが、forとinの間に処理する対象を入れてinの後ろに回数を書く
この時、処理する対象を前もって宣言することと回数を間違えないことが大事だ

なお、回数は1...5という風に書いても良いし定数か変数で指定できる


var 鶏肉 = 200
var 唐揚げ粉 = 20

for i in 1...5{
//処理


}

funcについて

funcは関数とも言われる

funcは役割的にはリーダー付きのチームでありfuncの中には前述のSwitch文for文そして定数変数を内包することができる

funcは関数と言われているが機能という意味もあり、内包されているforやSwitch文あるいは単純な足し算引き算掛け算割り算を特定の目的のために使うことができる


軍隊で言うなら機関銃チーム、対戦車ミサイルチームであり、一度作った関数は定数や変数と違い特定の目的にしか使えないが使いようによってはとても効果的な道具になりうる

関数は関数名()というふうに呼び出したり、戻り値がある場合はそれぞれ文字列や数値IntやDoubleの型を指定して処理させることができる


Swiftの場合はテキストフィールドの数字同士を足し合わせたり複雑な計算をするときに使ったり文字列を加工するときに使う




注意点はしばしば関数の中身や型について考えながら書いていると、関数名を付け忘れてしまうということだ

スポンサーサイト



アツーいアツーい!プログラミング with Swift5 株式チャート閲覧アプリ作りました

最近プログラミングを熱心にやっているせいでブログの記事があまり思いつかない

わたしは本質的には社会に不満抱いているタイプ(やべーやつじゃんw)なのだが、プログラミングで頭の脳みその普段使わない部分を使っているせいか、最近はあんまり社会に不満を抱かない(ホッ)


数ヶ月前に始めた個人用の株式チャート閲覧アプリは数週間の悪戦苦闘の末、ようやく実を結んだ


私の株式チャート閲覧アプリは、NASDAQの52週高値の銘柄を次々と見せてくれるというアプリなのだが、私にとっては自分で作っただけあって最適なアプリで、このアプリをつかっていると、エクスカリバーを手に入れたばかりのアーサー王や、六韜を手に入れた張良みたいにわくわくしてくる

もちろんユーザーインターフェイスは洗練されていないし時代遅れそのもので、インターネット創世記の個人のHPみたいに不格好だ

だけど私に最適化されている

だから良い


しかし、当然私の作った素人のアプリには問題点もある



それは私の作ったアイフォーン用のアプリを操作しているとめっちゃスマホが熱くなるのだ

そのアツさと言ったら桐灰貼るとかロッテのホカロン並だ


初めて起動したとき、私は思わず「なんてこった!俺が作ってたのは株式チャート閲覧アプリじゃなくてホッカイロアプリだったのか!?」と思ったほどだ

iPhoneは動画を長い時間見ていると厚くなるが、アプリ起動して数分後にあんなに熱くなったのは初めてだ

そして、その後恐る恐るアプリを強制終了させ、もう一度Xcode(Swift用のアプリ開発ソフト)を開いて自分で書いたプログラミングのコードを1から10まで確認すると、計算処理の一部が無限ループを描いていて、そのアクションのボタンを押したが最後、バッテリーの切れるまで永久に計算を続けてしまうという恐ろしいプログラムがそこにあった


私はこれを見たとき子供の頃に見た魔法使いの弟子という物語を思い出した


その魔法使いの弟子という物語は、魔法使いに留守番を頼まれた弟子がならったばかりの魔法で、ほうきに魔法をかけ「水を井戸から汲んで水瓶をいっぱいにしろ」という命令を出すのだが、弟子は魔法を解く魔法の呪文を知らず魔法をかけられたほうきは魔法使いの家を水浸しにしてしまうというものがたりだ


私も覚えたばかりの呪文であつWhile文を使っていたのだが、処理を抜けるのを、ガバガバに書いていたのがよくなかった


だから私のアプリはホッカイロアプリになってしまっていたのだ


そしてWhile文を書き直し、私の株式チャート閲覧アプリは完成した




~~~~~~~~~~~~~~~~~~~~~~~
にほんブログ村 株ブログ 米国株へ
にほんブログ村←ここクリックおねがいします

ブログを続けるテンションをくださいクリック投票とブックマークお願いします(´・ω・`)ノシ

いつもありがとうございMAZDA


以下は推薦図書です


エリオット波動入門 (ウィザードブックシリーズ) 単行本 – 2009/8/5
ロバート・R・プレクター・ジュニア (著)
新品
¥ 6,264
ポイント: 188pt (3%)




ファイナンシャル・マネジメント 改訂3版---企業財務の理論と実践 ハードカバー – 2015/2/27
ロバート・C・ヒギンズ (著), グロービス経営大学院 (翻訳)
¥ 4,752
ポイント: 143pt (3%)



フィボナッチトレーディング (ウィザードブックシリーズ) 単行本 – 2010/2/12
キャロリン・ボロディン (著), 長尾慎太郎 (監修), 山口雅裕 (翻訳)

新品
¥ 6,264
ポイント: 188pt (3%)

プログラミング教育はコードを書かせたら失敗すると思う

プログラミングの教育は世界では教育の新しいトレンドになっていて、海外では日本に先駆けて子供たちにプログラミングの教育を施しているそうだ


そして日本でもプログラミング教育を文部省が始めるそうだ、そこで、私はプログラミングの初心者として、初心者からの目線での意見を書いてみたいと思う


たまたま見てくれた人がプログラミングを始める興味の入り口になってほしいし、子供に教えるときの参考にしてほしい


目次
1.私はなんでプログラミングを始めたのか?なんのプログラミング言語を使っているか?
2.プログラミングでやりたいことのレベルはどのくらいだったか?
3.なにがわからなかったか?
4.わからないことをどう解決しようとしたか?
5.誰と一緒に学習したか?
6.始めてから半年、今何ができて何をしているか?
7.何を準備したか


1.私はなんでプログラミングを始めたのか?なんのプログラミング言語を使っているか?

私がプログラミングを始めようと思ったのは、持っていたスマートフォンであるiphoneを使う中で、独自の自家製アプリを作り、iphoneにインストールして、自分の目的どおりにアプリを使い自分の副業である株取引をある程度簡単にしたかったからだ


今、株取引の世界ではアルゴリズム取引というコンピューターを使った取引が全盛を迎えていて、以前のようにコンピューターを補助に使い人間が取引を執行するやり方を進化させ判断と取引の執行すらコンピューターにさせるというやり方が取り入れられている

私達がイメージする金融機関(投資銀行、証券会社)などのディーリングルームのイメージはブルームバーグやロイターの金融情報ベンダーの画面と特製のキーボードを前にスーツを来た人が電話機を持っているイメージがある
しかし、今や判断も取引の執行も事前に決められたルールがコンピューターに入れられていて、人間はそれを監視する役目になってしまっている

私はただの個人投資家だが、もしプログラミングを覚えれば株取引に費やす労力を半分あるいは4分の1以下にできるのではないかと考え、プログラミング学習を始めることにした


私が学習しているSwiftはiphoneのアプリを制作するときに使うプログラミング言語で、私の知る範囲だとPythonと書き方が似ている気がする

また、なぜ今はやりのPythonにしなかったかといえば私はスマホ上で気軽に使えるという前提があったからで、なおかつPythonと違いGUI(グラフィックユーザーインターフェイス:アプリのボタンやテキストのデザイン)を自分のMacの中にインストールしている統合開発環境ソフトであるXcodeの中で学級新聞を作るみたいに簡単につくることができるというのも良いと思った

注:PythonはSwiftと違って、GUIがそもそも無くライブラリという出来合いの追加ソフト(ライブラリをうまく説明できない)を使ってGUIを作ることが初心者には難しそうに見えたのでPythonを使うのはやめた


私がやろうとしたのはいつも使っているMarketWatchというアメリカ株のニュースサイトとIRR(内部収益率)とPV(現在価値)を計算できる簡単な計算機能を搭載するというものだった

2.プログラミングでやりたいことのレベルはどのくらいだったか?

ウェブサイトにアクセスする方法を知るのは意外と簡単でswift4 website accessと検索すると外人が紹介しているやり方をそのまま転用してアクセスすることが可能だった

また、計算機能で必要なたぬきの皮算用の近代化版であるIRR(内部収益率)は投資の初期投資とその後のキャッシュフローが暫定的にわかっているとき(あるいは想定のなかで)に、それをもとに投資の収益性を計算するというものだ
計算方法は簡単で、いろいろなウェブサイトで説明されているので割愛するが、ようは割り算と足し算しかしないので簡単だと思った


3.なにがわからなかったか?

初心者である私は「こうしたいときはこうしなさい」という答えを求めてウェブサイトや初心者用のSwiftの解説本を読んでいたが、ウェブサイトや本には文法はこうですとかプロパティはこうです、というように知っている人向けの解説が多く、わかりにくかった


つまり、私が求めていたのはワンフレーズで伝わる外国での会話集だったのだが、ウェブサイトや本にはSwiftという言語についての文法や書式の解説が載っていた

例えば〇〇という外国語は主語述語動詞という順で話しますよと言われてもその外国語の学習者にはなんの役にも立たないが、中国語の場合トイレがどこか聞きたいときは「洗手间在哪里(シーショウジェンザイナリ)」と言いなさいと解説してくれたほうがわかりやすいのだ、つまりプログラミングのように普段の生活でなんら基礎知識を身につけることのないような学習は一言英会話のように「こうしたいときはこう方式」で教えたほうが逆にわかりやすいのだ

私達は普段テレビや本でカタカナ化された外国語に触れていて、エスカルゴがカタツムリということやペスカトーレは魚介類とトマトのスパゲッティだということを知っている

しかし、プログラミングは普段の生活でかかわらないので、未知の言語を学ぶようなやり方で学ぶほうがわかりやすい

プログラミングを子供たちに学ばせようとして「さあ考えてごらん」と言ってもそれは無意味で、これをこうこうこうすればこれができるよ!さあこれを使ってなにかしなさいという方が正しい




4.わからないことをどう解決しようとしたか?

プログラミングに関する質問は私の好きなヤフー知恵袋ではなかなか適切な回答が得られなかったため日本国内外のプログラミング用の質問サイトに質問して疑問の答えを手に入れた

私にとって未知の領域であるプログラミングは初めてエイリアンの住む惑星に降り立った宇宙人のように、あれをこれと〇〇〇〇というようにこれが何なのかもわからないしあれが何なのかもなんの役割なのかもわからないため質問することすら難儀した、なぜならあまりに知らないため「おれあれとこれしたい」みたいな片言外人みたいなようわからん質問文になってしまうことも多く「何が聞きたいのかわからない」というコメントをよくもらった

今思うとそれは当然だなぜならプログラミングの質問サイトはAAAとBBBをあわせて使うとエラーがでるからどうすればいいかを知りたい人が使うものであり、そもそもSwitch文やfor文について質問に来る素人そのものの私など、場違いも良いところだったからだ

5.誰と一緒に学習したか?
私の友人にはプログラミングに興味を持っている人はいなかった

私の住む田舎ではプログラミングに興味を持つのは新興宗教にハマる人と同じくらい少数派で、何やっているのかわからない趣味であると考えられている
なんなら、この地域にはヤマダ電機やケーズデンキにならんでいるPanasonicのマッサージ機のリモコンすら満足に操作できない人が多い(Panasonicのマッサージ椅子のリモコンは宇宙船の操縦機かというくらいボタンが多い)

パチンコ屋で週3回以上スロットのボタンを押す人は数千人いるがパソコンで言語を問わずプログラミングをする人は200人いれば多い方だと思う



6.本格的に始めてから半年、今何ができて何をしているか?


悪戦苦闘の結果、私がプログラミングを上達したと感じるのは質問がうまくなったこと、と、調べ方がうまくなったという点だ


プログラミングを学ぶとやればやるほど新しい機能や表現を使いたくなるし、思いつくわけだが、問題はそれがほとんど常に既存の知識の範疇の外であるという点だ

だから私はプログラミングを学ぶ、あるいは教えるときにはコードの書き方を学ぶよりもうまい質問のやり方やうまい調べ方を教えるべきだと思う



何事も上達が上手い人を要領がいいというが、プログラミングに関しても要領を掴むことが大事でありそれには一体なにがコツなのか、なにを知れば良いのかにたどり着く技術を上達させることが重要であると思う


最終的に私達はプログラミングを面白いと感じれるようになれたかというと、その答えはYesだ

私はMacをネットサーフィン、株取引、表計算ソフト、それ以外にカンパニー・オブ・ヒーローズというリアルタイムストラテジーのゲーム、シムシティというシュミレーションゲームを遊ぶのにも使っているのだが、プログラミングを始めてから、いつのまにかゲームを遊ぶ割合が減り、プログラミングをする時間が増えたことに気づいた

ということはいちおう「面白い」と感じているのかなぁと思っている



~~~~~~~~~~~~~~~~~~~~~~~
にほんブログ村 株ブログ 米国株へ
にほんブログ村←ここクリックおねがいします

ブログを続けるテンションをくださいクリック投票とブックマークお願いします(´・ω・`)ノシ

いつもありがとうございMAZDA


以下は推薦図書です


エリオット波動入門 (ウィザードブックシリーズ) 単行本 – 2009/8/5
ロバート・R・プレクター・ジュニア (著)
新品
¥ 6,264
ポイント: 188pt (3%)




ファイナンシャル・マネジメント 改訂3版---企業財務の理論と実践 ハードカバー – 2015/2/27
ロバート・C・ヒギンズ (著), グロービス経営大学院 (翻訳)
¥ 4,752
ポイント: 143pt (3%)



フィボナッチトレーディング (ウィザードブックシリーズ) 単行本 – 2010/2/12
キャロリン・ボロディン (著), 長尾慎太郎 (監修), 山口雅裕 (翻訳)

新品
¥ 6,264
ポイント: 188pt (3%)

続きを読む

Swiftの初心者!ここをこうこうこう!だよ💗

NOTICE)プログラミング言語のSwift を始めたばかりの人に向けてこの記事を書いています

Swift を学習中の方にむけて今回は知っておいたら学習が捗るいくつかのショートカットについて書いていこうと思います

1)Xcodeのショートカットで覚えるべきは3つ!
SwiftのIDE(統合開発環境)であるXcodeにはパソコンソフトらしくショートカットがいくつか設定されています
Macのアプリに普遍的な⌘コマンドボタン+Cでコピー、⌘コマンドボタン+Vでペーストのように他のソフトと共通のものもありますが、Xcode独特のものもあります。私がショートカットで便利だと感じたものを3つ紹介します

⌘コマンド+0
⌘コマンドボタンと0(ゼロ)のショートカットでユーティリティエリアを表示非表示できます
このユーティリティエリアはプロジェクトナビゲーターがあり、ViewControlle.swiftやMain,storyboardなどデリゲートやデータソースの設定のときに使います
右手のみで開閉できるため便利です
また、画面が小さいMacBook Airのときなど便利です

⌘コマンド+K
この⌘コマンドボタンとKのショートカットはXcodeでとても重要なショートカットで選択中のカーソルの右側すべてを削除してくれます
Xcodeではコードを入力するのをサポートしてくれるのですが不要なコードが表示されたときややたら長い違うコードを選んでしまったときなどがあり、それをShiftキーで選んだりマウスで選ぶのはめんどくさいのですが、この⌘コマンドボタン+Kのショートカットを使えば、いまカーソルがある場所から右側のテキストを削除してくれます
これがあればデリートキーを連打する必要はありません

⌘コマンド+/
⌘コマンドボタンと/(スラッシュ)の組み合わせは選択中の範囲をコメント化してくれるショートカットです
Xcodeは対話式の仕組みで自分が打ち込んだコードに問題が有るときに赤い!マークで問題点を浮かび上がらせてくれるのですが、どこがまちがっているかわからないときがあります
そういうときはこの⌘コマンドボタンと/キーでコメント化してみると良いです
なぜならコメント化した瞬間に赤い!マークが消えればそこが問題点だからです

コメント化されると行の左端に//というダブルスラッシュ(正式名不明)が現れ、グレーになります


以上の3つのショートカットがXcodeでやくに立ちました

他にも⌘コマンド+Fのページ内検索や⌘コマンド+Zの直前の操作取り消しもやくに立ちました

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜
おすすめ記事

飲み屋で嫌われるパターン(居酒屋 スナック )

http://dispatchtomain.blog116.fc2.com/blog-date-201602.html

日本にイノベーションがおきないのは「できない理由」「危ない理由」を並べて自分でやらないからだ
http://dispatchtomain.blog116.fc2.com/blog-category-12.html

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

にほんブログ村 株ブログ 米国株へ
にほんブログ村

ブログを続けるテンションをくださいクリックとブックマークお願いします(´・ω・`)ノシ