プログラミングの基礎
2020/08/03 たなかひかる
Holyday技術基礎勉強会
前回のお話まとめ
・コミュニケーションは自身も半分の責を負う
・身振り手振りと声の抑揚で伝える効果は上がる
・記憶を辿れる鍵を作る
今日のお話
・「プログラミング」の基礎能力
・フローチャートの簡単な説明
・実習
・まとめ
・質疑応答
今日のお話
今日は実習がメインです
「プログラミング」の基礎能力
webシステムを構築する上で、プログラミングは必要な要素ですが
プログラミングを覚える際には、プログラムでの実現可否を検証する能力も非常に重要になります
コンピューターは人間ほど賢く無い?!
コンピューターは0と1でお仕事をしています
そのため、0と1で判断出来ないものについてとても弱いです
プログラムを書く上では常に「Closed Question」を意識しなければなりません
「プログラミング」の基礎能力
webシステムを構築する上で、プログラミングは必要な要素ですが
プログラミングを覚える際には、プログラムでの実現可否を検証する能力も非常に重要になります
コンピューターに出来る仕事かどうかを判断する
つまり「0と1の世界」で表現する能力が必要になります
「プログラミング」の基礎能力
webシステムを構築する上で、プログラミングは必要な要素ですが
プログラミングを覚える際には、プログラムでの実現可否を検証する能力も非常に重要になります
コンピューターに出来る仕事かどうかを判断する
つまり「0と1の世界」で表現する能力が必要になります
今日はその力を養うために「フローチャート」を作っていきます
フローチャートの簡単な説明
そもそもフローチャートって?
フローチャートの簡単な説明
そもそもフローチャートって?
困った時のwikipedia
フローチャート (flowchart、流れ図) は、プロセスの各ステップを箱で表し、流れをそれらの箱の間の矢印で表すこと
で、アルゴリズムやプロセスを表現する図である。アルゴリズムやプロセスについて、単にその順序だけを示すもので
あり、全体から詳細へというような「段階的」な説明ではない(ないし、記述者が意識してそのような階層を作る必要が
ある)[1]
。また、データフロー図と対比すると、より重要である、データの流れをフローチャートは表すことがなく、操作を
順に示すことでデータの流れを暗示する。しかし、フローチャートは様々な分野の工程の解析・設計・文書化・管理に用
いられている[2]
。
フローチャートの簡単な説明
そもそもフローチャートって?
困った時のwikipedia
フローチャート (flowchart、流れ図) は、プロセスの各ステップを箱で表し、流れをそれらの箱の間の矢印で表すこと
で、アルゴリズムやプロセスを表現する図である。
フローチャートの簡単な説明
今日は3種類の箱を使ってフローチャートを作成します
フローチャートの簡単な説明
定義済み処理
今回はスタートとゴールに使います
スタート
フローチャートの簡単な説明
処理
何かしらの処理をする時に使います
右手を上げる
フローチャートの簡単な説明
判定
処理の分岐を行う時に使います
右手が
上がっ
ている
フローチャートの簡単な説明
判定
処理の分岐を行う時に使います
右手が
上がっ
ている
YES
NO
例題)ASHIM●を歩かせる
本D技研が開発した二足歩行型ロボットASHIM●を10歩あるかせます
- 左右交互に足を出してください
- 10歩まで行ったら処理を終了してください
例題)ASHIM●を歩かせる
スタート
右足が前
左足を前にだす 右足を前にだす
10歩目?
ゴール
演習1)FizzBuzz問題
なんか偉い人が考えた問題
http://vipprog.net/wiki/exercise.html#t52e5a48
- 1から100までの数字を出力
- その数が3で割り切れるなら数字の代わりに「Fizz」を出力
- その数が5で割り切れるなら数字の代わりに「Buzz」を出力
- その数が3でも5でも割り切れるなら数字の代わりに「FizzBuzz」を出力
回答時間は10分間
演習1)FizzBuzz問題
なんか偉い人が考えた問題
http://vipprog.net/wiki/exercise.html#t52e5a48
- 1から100までの数字を出力
- その数が3で割り切れるなら数字の代わりに「Fizz」を出力
- その数が5で割り切れるなら数字の代わりに「Buzz」を出力
- その数が3でも5でも割り切れるなら数字の代わりに「FizzBuzz」を出力
回答時間は10分間
皆様の回答を見ていきましょう
演習1)FizzBuzz問題
なんか偉い人が考えた問題
http://vipprog.net/wiki/exercise.html#t52e5a48
- 1から100までの数字を出力
- その数が3で割り切れるなら数字の代わりに「Fizz」を出力
- その数が5で割り切れるなら数字の代わりに「Buzz」を出力
- その数が3でも5でも割り切れるなら数字の代わりに「FizzBuzz」を出力
回答時間は10分間
解説していきます
演習2)うるう年判定
与えられた「ある数」がうるう年かどうか判定する
https://ja.wikipedia.org/wiki/%E9%96%8F%E5%B9%B4
- 西暦1年から西暦2022年までのいずれかが与えられる
- 4で割り切れる年は原則うるう年
- ただし、100で割り切れる年は原則平年
- ただし、400で割り切れる年は必ずうるう年
回答時間は10分間
演習2)うるう年判定
与えられた「ある数」がうるう年かどうか判定する
https://ja.wikipedia.org/wiki/%E9%96%8F%E5%B9%B4
- 西暦1年から西暦2022年までのいずれかが与えられる
- 4で割り切れる年は原則うるう年
- ただし、100で割り切れる年は原則平年
- ただし、400で割り切れる年は必ずうるう年
回答時間は10分間
皆様の回答を見ていきましょう
演習2)うるう年判定
与えられた「ある数」がうるう年かどうか判定する
https://ja.wikipedia.org/wiki/%E9%96%8F%E5%B9%B4
- 西暦1年から西暦2022年までのいずれかが与えられる
- 4で割り切れる年は原則うるう年
- ただし、100で割り切れる年は原則平年
- ただし、400で割り切れる年は必ずうるう年
回答時間は10分間
解説していきます
演習3)素数判定
素数については以下
https://ja.wikipedia.org/wiki/%E7%B4%A0%E6%95%B0
- 1から100,000までの数字が対象
- 1は素数に含まない
- その数が「1とその数以外では割り切れない」素数であれば出力
- 素数で無い場合は出力をしない
回答時間は15分間
演習3)素数判定
素数については以下
https://ja.wikipedia.org/wiki/%E7%B4%A0%E6%95%B0
- 1から100,000までの数字が対象
- 1は素数に含まない
- その数が「1とその数以外では割り切れない」素数であれば出力
- 素数で無い場合は出力をしない
回答時間は15分間
皆様の回答を見ていきましょう
演習3)素数判定
素数については以下
https://ja.wikipedia.org/wiki/%E7%B4%A0%E6%95%B0
- 1から100,000までの数字が対象
- 1は素数に含まない
- その数が「1とその数以外では割り切れない」素数であれば出力
- 素数で無い場合は出力をしない
回答時間は15分間
解説していきます
まとめ
・プログラミングをする上ではフローチャートが作れるようになる事は非常に重要
・フローチャート次第では実行速度に大きく差が出る事もある
・日常の事をフローチャートにするのは非常に難しい
質疑応答

20200803 プログラミングの基礎