日々、徒然プログラミング。

都内のIT系専門学校に通う、一人暮らし女子学生chocoffeeの、 日々の気づきと学び、たまにほっこりを綴るブログ。

エンジニアのみなさま、エンジニアの卵のみなさま、IT業界のみなさまが
わたしの「チームってなんだ?」というぼやきに反応してくださることを祈って。

覚え書き

こんにちは!
明日が楽しみでワクワクしてるちょこひです。

明日は通っている学校の体育祭のような何かがあるんですー!
あんまり運動しないでお菓子ポリポリしてるだけですが
楽しいもんは楽しい。うん。


浮動小数

今回はちょっと久しぶりに基本情報ネタを。 
小数のある数値の保持の方法についてまとめます。

浮動小数。
浮いて動く小数。

これだけ見ると訳がわかりませんが
本当に動くんですー!ほんとにー!

浮動小数に対して固定小数というのもあるんですが
浮動小数表示は固定小数表示に比べて精度が高いという特徴があります。 


まずは固定小数点についてさらっと。

kotei

四角いのはメモリひとつひとつの部屋のイメージです。
矢印のところを小数点と固定しています。

常に小数点の位置が決まっているので
2進数をそのままぶちこめます。


ただ、一つ問題があって。

hainnee


小数点が固定されているせいで、
小さな数を扱う場合は有効桁数が減少して入りきらなくなります

浮動小数は小数点を動かすことで、
より広い範囲の数字を保持する仕組みです。


浮動小数点の仕組み

では浮動小数表示の仕組みについて書いていきます。

まず、保持する数値を以下のように変形します。

kisuu


このとき、M(仮数部)は「0.xxxx」という表示にします。
これを正規化といいます。


725


基数は進数に合わせます。PCの場合は2です。
0.xxxxという表示にしたとき、ずれた桁を指数として保持します。


メモリのイメージは以下です。

memori

数値の正負を保持する符号部(0は正、1は負)
指数を保持する指数部
0.xxxxのxxxxを保持する仮数部 とあらかじめ決めておきます。

今回はそれぞれ1つ、3つ、4つと表現していますが
実際は環境により異なります。


どう保持していくかというと

setumei


こう。

仮数部は上位ビットから順に数字をいれ、空いたところには0を入れます。
こうすることで、先ほどの固定小数点表示よりも有効桁数が確実に増え、
メモリの省略に成功しています。

ちなみに、指数部が負になる場合(-5乗など)は
以前書いた補数表現で指数を保持します。

指数部によって小数点がどこに来るか変わっていくので
小数点がフワフワ移動するイメージです。

 
まとめ


必殺!画像でやっつけ大作戦!
実際これを文章で説明するのは私の語彙では無理でした・・・

画像作りに悪戦苦闘。
イラストレーター、いつになっても慣れない・・・



ちょこひ

 



こんにちは!
週末のお出かけが楽しみなちょこひです。

家族の夏の旅行といえば、ざっくり分けて
山で避暑派と、海で暑さをエンジョイ派とあると思いますが、
我が家はがっつり避暑でした。暑がり家族。

長野県は安曇野にお蕎麦を食べに行きたい!と父に伝えたところ
週末連れて行ってくれるようで。今から楽しみです。
わさび菜の天ぷら本当に美味しいんですよ・・・


このテーマを選んだ理由


と、いうわけで
おいしいお蕎麦によだれを垂らしながら今回も書いていきます。

私のクラスは、今日Swiftの課題提出日でして。
今がっつり授業中ですが(先生ごめんなさい)一通り終わってるので余裕ぶっこいてます。

昨日の残業中、クラスメートに
TableViewの背景をこの画像にしたいんだけど・・・」と 相談されまして。

ちょこひ「それならTableViewのbackgroundに画像設定してrowItemのbackgroundをalphaにFFいれt 」

ちょこひ「・・・・・」

ちょこひ「Androidの話じゃんこれ。Swiftなら〜(storyboardみる)」

ちょこひ「(やべえbackgroundにimage設定できなさそう)」

友達「storyboardで imageView後ろに入れたいんだけど入れられなくてさ〜」

ちょこひ「じゃあソースコードで無理くりいれてみるか」


という背景があり。

無事設定できたので、またまた覚書として。 


やってみる

 
手順としては、
①ソースコードでimageViewを作成
②imageViewにimageを設定
③tableViewのbackgroundViewにimageViewを設定


・まずはシンプルなTableViewControllerをつくる

story

見栄えのためにまったく意味をなさないNavigationViewControllerをEmbed inしてます
実機はこんな感じ。


31



ひたすらに眠い文字列たちは
ソースコード内で用意した配列を使用しています。

 import UIKit

class TableViewController: UITableViewController {
    let array = ["眠い", "ほんと眠い", "とてつもなく眠い", "尋常じゃなく眠い", "寝ながら寝るくらい眠い"]

    override func viewDidLoad() {
        super.viewDidLoad()
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }

    override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
        return 1
    }

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int { return array.count } override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) cell.textLabel!.text = array[indexPath.row] return cell } }
cellのidentifier設定をお忘れなく(わたしは忘れてました)

cellIdentifier




・ソースコードでimageViewを生成 

今回背景に選んだフリー素材は

black

こちら。黒くてかっこいい!

みなさんプログラミングするときの背景色にこだわりはありますか?
TwitterClientのときも少し話しましたが、私は断然黒背景派です。
白かったり明るかったりすると目が痛くなってしまう。

この画像を「black.png」として
プロジェクトにぶっこんでます。

//	tableViewController.swift
override func viewDidLoad() { super.viewDidLoad() let image = UIImage(named: "black.png") let imageView = UIImageView(frame: CGRectMake(0, 0, self.tableView.frame.width, self.tableView.frame.height)) imageView.image = image self.tableView.backgroundView = imageView }

UIImageと用意した画像を紐付けて
tableViewのサイズのUIImabeViewをつくり
UIImageViewにUIImageをぶっこんで
それをtableViewの背景にぶっこんでいます。 

こうしてみると全然難しくない。
むしろ簡単。


この時点で実機は

00

こうなります。
アレ?


犯人はcell


tableViewの背景は無事に反映されています。
なぜ行があるところが白くなってしまうのか?

理由は簡単で、
cellにも背景があるからです。
そしてdefaultは白
背景画像の上に白いcellが乗っかってる感じです。

・cellのbackgroundを変更

clearColor

storyboardからcellのbackgroundをclearcolorに設定。


よっしゃこれででk・・・

14


なんもみえねえ。


・cellの文字色を変更
//	tableViewController.swift
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) cell.textLabel!.text = array[indexPath.row] cell.textLabel?.textColor = UIColor.whiteColor() return cell }

今回は白に設定。



できたー!.。゚+.(・∀・)゚+.゚

05


かっこよろしい!
スタイリッシュ!


まとめ

普段storyboardを使ってレイアウト等は決めているので、
ソースコードでViewを生成するのに少し手間取りました。

あれ?これでいいよな?あれ?ってなった。

tableViewの背景画像を入れている状態ってなかなかみないけど
これはこれでかっこいいですね!


ねむい。お蕎麦食べたい。




ちょこひ


 


こんにちは!
プログラミング楽しい!!!!と発狂しそうになったちょこひです。

最近頭打ちの感覚があって結構焦っていたんですが
さっきすんなり課題クリアできてしまって。
嬉しさのあまり叫びそうになりました。

先生が近くにいたので小声で自慢しに行きました(ご満悦)


 
画面を閉じる


さて、今回は画面を閉じるメソッド
navigationcontroller?.popViewControllerAnimated(Bool)」と
dismissViewControllerAnimated(Bool, completion)」の違いを
おぼえがきします。

どちらも「自分自身を閉じる(Viewを閉じる)」
という動きに変わりはないのですが、ちょっとだけ用途が違います。

これ忘れてるといつかハマりそうだったのでちゃんと勉強し直しました。 



結論から言うと
・navigationController?.popViewControllerAnimated(Bool)
 →navigationControllerの階層を一つ戻る
・dismissViewControllerAcnimated(Bool, completion)
 → モーダルビューを閉じる
こうなります。


以下でちょっと詳しい話をしていこうと思います。



NavigationContoller


iOSエンジニアならかなりの頻度で目にするであろうコイツ。
便利ですよね、本当。
TableViewControllerとの相性がほんとにいいと思っています。

NavigationControllerはViewとViewの階層構造を管理してくれるので
・画面遷移の管理が比較的楽になる
・Segueで「show」を選ぶと、そのViewはNavigationControllerの支配下に入る
・ツリー構造で奥へ奥へ入っていく時は無敵
こんな特徴があります。


blog0710_1


こんな感じ。
popViewControllerAnimatedは、Viewを閉じるというより
一つ前の階層に戻るといった感じ。


ModalViewController


対して、モーダルビューは
Segueを設定するときに「present Modaly」を選択します。
これを選択すると、NavigationControllerの支配下に入らず、
ツリー構造とは別に独立して存在するイメージ。

ツリー構造は詳細へ、さらに詳細へ・・・といった場面で使うことが多いですが
モーダルはオプションだったり、詳細ではない画面を設定するときに使用します。

blog0710_2


先ほどの図と組み合わせるとこんな感じ。
dismissViewControllerはpopViewControllerよりも
「自分自身を閉じる」という要素が大きいです。

NavigationController内でdismissViewControllerを書いても全く反応しません。
逆に、モーダルビューでpopViewControllerを書いても反応しません。

同じ動きに見えますが、実際は用途が違います。


まとめ


今回は画面を閉じるときのメソッドについて
ちょこっとまとめました。

実はこれ、さっき課題をやっているときに3分くらいハマりました。
画面を閉じるとき→dismiss、とすぐ出てくるタイプだったので
もう一つのpopViewと両者の違いをおさらいできてよかった。

他にも閉じるメソッドってあったかしら・・・?

何か見つけたらまた追記します。



さて!吉祥寺に予約してたゲーム用品を受け取りに行くぞ〜!


ちょこひ

 

こんばんは!

オリジン弁当のサラダむしゃむしゃして
ご満悦のちょこひです。 

本当はいつものカフェでこの記事を書こうと思ったんですが
あいにく満員で・・・
雨パラパラ来てたし混むタイミングだったし、仕方ないかな。

帰宅して、シャワー浴びて、
サラダむしゃむしゃしながらの執筆です。


基本情報処理技術者試験

 
っていう国家試験があって。

車を運転するには免許が必要なように
エンジニアとしては基本の資格、とされることも多々あるものなんですが。

まー。難しいんですわ。


まず範囲がアホほど広い。
プログラミング系ももちろん出るし、
ハードウェアとか、ソフトウェアとか、広義のIT分野からちょこちょこ出てくる感じ。

CPUの処理性能による応答時間の計算であったり(白目)
記憶媒体の容量計算であったり(吐血)
タスク管理の処理計算であったり(昇天)

普段勉強している世界って本当にITの端っこでしかないんだなあ、
と嫌という程わからせて絶望させてくれる試験です。

しかも暗記系が本当に多くて

以前から暗記科目や暗記の勉強がだいっきらいなわたしは
買った参考書を燃やしたいと考えながらペンを握ってるわけです。


自分で解法や公式の理屈を理解してゴリゴリ解くような勉強は大好き。
なんぼでもできる。
だから数学とか化学は好き。大好き。

でも歴史系とか生物のような暗記系は本当にだめ!楽しくない!
基本情報もこっちに近いんじゃー!やめてけろー!


さらに国家試験故に
年間2回しかチャンスがありません

他のベンダー資格という
どっかの企業が営利目的でやってる資格(小声)は
いつでも受けられるものが多いんです。

有名どころで言えば、
Oracle Javaとか〜、LPICの何やとか〜。

その分受験料がぶっ飛んでますが・・・(3ゆきちとか余裕で飛びます)

なので相当厳しい。



とかなんとかいっても持ってるに越したことはないので
嫌々ながらも(大声)
勉強してます。


その中でつまづいたとことか、
ややこいわ!ってなったことをちまちま書いていこうかと。

丁寧な覚書のようなものですね。
合格したら、新しくブログを作って
基本情報のみの記事を投稿してもいいかもしれん。



 
情報量の接頭語


「えー!そこからかよー!」
というツッコミは勘弁してください。


・・・



だってややこいんだもん!
メガとかギガはまだわかる!!
ちっちゃい方むりだもん!!!わかんないもん!!!!!!
覚えらんないんだもん!!!!普段PCでも見ないし!!!!!!ねえ!!!!!!!




8bit = 1byte


これはさすがに覚えとります。


おっきくなるほうまとめ
-------------------------------------------------
1k(キロ) = 10^3倍 ≒ 2^10

1M(メガ) = 10^6倍 ≒ 2^20 

1G(ギガ) = 10^9倍 ≒ 2^30

1T(テラ) = 10^12倍 ≒ 2^40

--------------------------------------------------

キロ、メガ、ギガ、テラ にはそれぞれ
10の3乗、6乗、9乗、12乗、という意味がある。3の倍数ですね。
そしてそれはほぼ
2の10乗、20乗、30乗、40乗 に相当する。
覚えられる気がしてきた!!

わたしの家には3TBの外付けHDDがあります。
こう見ると相当でかい。

ちなみに、1Kバイト = 1024バイト と表されることもあるようです。
まあほぼ一緒ですね。


そういや、「x^2」のことを皆さん何と言います?
「にじょう」派ですか?「じじょう(自乗)」派ですか?

わたしは階乗を最初に習った先生が自乗派だったので今でも自乗派です。


続いて、

ちっちゃくなるほうまとめ
-------------------------------------------------
1m(ミリ) = 10^-3倍

1μ(マイクロ) = 10^-6倍 

1n(ナノ) = 10^-9倍

1p(ピコ) = 10^-12倍

--------------------------------------------------
 
あれ?

おっきくなる方と絶対値一緒なん?
今気づきました。

おっきい方の指数さえ覚えられればなんとかなりそう。
あとは
ミリ→マイクロ→ナノ→ピコ
の順番さえ覚えられれば・・・


さっきのおっきくなるほうは
データ量の計算問題で頻出するんですが、

こっちの小さい方は
処理時間とかの時間計算で頻出するんです。

「答え:10μ秒」
とか余裕であるんですが、何言ってんのかわからんです。
どんくらいの速さなのかわからんし、
それが他に比べて早いのかもわからん。

勉強すればするほど嫌いになっていく資格は初めてだ・・・
どSすぎるよ・・・(´;ω;`)



まとめ


てな感じで、
言語に比べてちんぷんかんぷんな勉強を
死んだ魚の眼で頑張っている今日この頃です。

次回試験は10月です。
たぶん落ちます。普通に無理だと思います。

本当に狙っているのは、春試験です。
秋はその前の予行演習というか、なんというか。

場慣れしておきたいなーと。

でももし秋で受かったらそれに越したことはないので
本気で勉強します。
夏休みは基本情報勉強に溺れます。グッバイわたしの人生最後の夏休み・・・



ちょこひ

 

↑このページのトップヘ