SlideShare a Scribd company logo
2017/6/17 Ver.1.1
Hirotaka Ichimura
1
プログラム、基本の「き」
 プログラムって何だ?
 プログラムで必要な事
 変数、配列
 制御構文
 関数
 その他
2
アジェンダ
プログラムって何だ?
3
01
4
今回はプログラムについて
改めて再整理
5
そもそも
プログラムって何だ?
6
世の中には
たくさんのコンピュータ機器
で溢れている
7
いわゆる
IoT
(モノのインターネット)
8
これら機器は
そのままでは動かない
9
動かすためには
人が指示を出す
10
この指示の書き方に
ルールがある
11
これが
プログラム
これね
12
世の中にある
様々なシステムを
動かすために指示書
13
ただこいつらには
使用用途によって
種類がある
JavaScript
PHP
Java
C#
C++
Python
14
自分が目指す
業種に合わせて
選んでいこう
15
また
プログラムを覚えるとき
たとえる事が多い
あれは
こう こうは
あれ
それは
どれ
こういう
ときは
これこれ
やっぱり
こう
16
プログラムは
あくまでプログラム
現実世界とは違う
17
書籍やネット
人によって
例え方も様々
18
情報の
曖昧さに
惑わされないように
プログラムで必要な事
19
02
20
プログラムを覚える中で
重要な事は結構ある
21
その中から
簡単なモノを
いくつか挙げる
22
目的をしっかり
決めていこう
1
23
プログラミング
するとき
行き当たりばったりはNG
24
作るモノが
分からなくなる
?
?
?
25
完成したら何ができるのか
最初に考えよう
26
道筋を
決めていこう
2
27
上で説明した
途中の部分の話
ここの話
28
ここも決まらないと
詰まりやすい
X
◎
X
29
目的が決まったら
途中で何をやるか
確定していく
30
やりたい事を
箇条書きにすると
整理しやすいが
分かりづらい
31
何をやるかを
図解で見せるのが
「フローチャート」
32
図解だと
見てすぐ理解しやすい
33
ちょっと書いてみる
34
目的地まで
上手に進んでいこう
35
中に何が入るか
考えよう
3
36
今のシステムは
ネットワークを介して
情報を受け渡す
37
この情報に
変なモノが入っていると
さあ大変
38
そのため
どんな情報が入っているか
あらかじめ
考える必要がある
39
あとで
もう少し詳しく
説明します
40
目的と道筋と
入っているモノについて
考える
変数、配列
41
03
42
ここからは
プログラムの基本的な
記述を見ていく
43
まずは変数
変数は
色々なものが
入る箱
44
入る値(情報)を
「リテラル」と呼ぶ
箱に入れる事を
代入と呼ぶ
45
配列は値を
一括で管理する
0 1 2
番号は「添字」
と呼ぶ
46
連想配列になると
添字が「キー」に変わる
'a' 'b' 'c'
47
さらに配列、連想配列は
次元を扱える
0,01次元
2次元
0,1 0,2
1,0 2,1 3,2
48
プログラムでは基本
変数を使って
情報をやり取りを行う
49
そのため
どんな情報が入っているか
あらかじめ
考える必要がある
50
情報は
どんなものが入ってるか
分からない
?
51
プログラミングの時点で
どんな情報が入るか
考えておく
?
52
その中の一つが
「型」
53
値には内部で
型を持っている
代表的なものが
整数型(INTEGETR)
文字列型(STRING)
1
'あ'
54
何が入ってるか想定して
間違っている型があれば
対処する
?
55
変数や配列は
基本中の基本だけど
扱いに注意
制御構文
56
04
57
次は制御構文
58
制御構文とは
構造化プログラミングで
導入された仕組み
59
1. 順次処理
2. 条件分岐
3. 反復処理
下2つが
命令として使える
60
まずは条件分岐から
もし~ならば~する
そうでないならば
~する
61
条件分岐は
条件式により分岐
2択以上を
選択します
62
if (条件式A) {
処理A
} elseif (条件式B) {
処理B
} else {
処理C
}
63
if else elseif
の構文を
覚えておけばOK
64
つぎは反復処理
条件が成立している間
処理を行う
成立しなかったら終了
65
いわゆる
繰り返し(ループ)
何回も同じ処理
を行う
66
for (初期化式; 条件式; 変化式) {
処理;
}
67
ちょっと面倒くさいけど
for構文を
覚えておけばOK
68
反復処理には
配列を取り出すモノもある
foreach (配列変数 as 変数) {
処理;
}
69
さらに
連想配列を取り出せる
foreach (配列変数 as キー変数 => 値変数) {
処理;
}
70
if文と
for文を覚えよう
関数
71
05
72
最後の項目は関数
73
関数は
プログラミング言語に
用意されているものが
あるが
74
今回は自分で作るモノ
これを
「ユーザー定義関数」
と呼ぶ
75
ユーザー定義関数は
自分がやりたい処理を
まとめて管理する
76
使いたいときに
呼び出す
77
ここら辺を
もう一回使いたい
複数回やりたい事を
書くのは面倒
78
まとめて
呼び出す
79
function 関数名(引数1,引数2) {
処理;
return 戻り値;
}
関数名(引数1,引数2);
80
補足
• 引数は複数書く事ができる
• 引数は書かないこともある
• 戻り値は書かない事もある
81
記述量の減少
ソースコードの見やすさ
修正箇所
など様々なメリット
82
関数の基本的な
使い方を覚えよう
その他
83
Ex
84
型を調べる関数について
• gettype()を使う
• is_XX()系を使う
• http://php.net/manual/ja/function.gettype.php
85
 http://wwwpat.eng.u-toyama.ac.jp/flowchart/fc_sct.html
 https://cacoo.com/lang/ja/home
 http://php.net/manual/ja/
 http://qiita.com/shuntaro_tamura/items/784cfd61f355516df
ff0
 https://techacademy.jp/magazine/4789
 http://www.phpbook.jp/tutorial/for/index6.html
 https://www.scollabo.com/banban/php/php_10.html
参考
86
以上!!

More Related Content

Similar to Webの勉強会#12

『これからはじめるプログラミング基礎の基礎』 のエッセンス
『これからはじめるプログラミング基礎の基礎』 のエッセンス『これからはじめるプログラミング基礎の基礎』 のエッセンス
『これからはじめるプログラミング基礎の基礎』 のエッセンス
Ayumu Kohiyama
 
Android勉強会第二回-非同期処理-
Android勉強会第二回-非同期処理-Android勉強会第二回-非同期処理-
Android勉強会第二回-非同期処理-Hiroki Sakamoto
 
いろいろ見せますLord of Knightsのクライアント開発事例紹介
いろいろ見せますLord of Knightsのクライアント開発事例紹介いろいろ見せますLord of Knightsのクライアント開発事例紹介
いろいろ見せますLord of Knightsのクライアント開発事例紹介
Kouji Hosoda
 
非エンジニアのためのIT勉強会 ハイブリッドフレームワーク
非エンジニアのためのIT勉強会 ハイブリッドフレームワーク非エンジニアのためのIT勉強会 ハイブリッドフレームワーク
非エンジニアのためのIT勉強会 ハイブリッドフレームワーク
Kaz Furukawa
 
クロスプラットフォーム開発環境のすヽめ
クロスプラットフォーム開発環境のすヽめクロスプラットフォーム開発環境のすヽめ
クロスプラットフォーム開発環境のすヽめ
Yuki Yazaki
 
UnityでのLINQ活用例
UnityでのLINQ活用例UnityでのLINQ活用例
UnityでのLINQ活用例
Ryota Murohoshi
 
「ディープラーニングでは、エコシステムが大切よ!」
 「ディープラーニングでは、エコシステムが大切よ!」 「ディープラーニングでは、エコシステムが大切よ!」
「ディープラーニングでは、エコシステムが大切よ!」
Mr. Vengineer
 
今さら聞けないITエンジニアのための7つの習慣
今さら聞けないITエンジニアのための7つの習慣今さら聞けないITエンジニアのための7つの習慣
今さら聞けないITエンジニアのための7つの習慣
Keisuke Tameyasu
 
運用管理を楽にしたいという話
運用管理を楽にしたいという話運用管理を楽にしたいという話
運用管理を楽にしたいという話Hisashi HATAKEYAMA
 
DevOpsのはじめの一歩 〜監視の変遷〜
DevOpsのはじめの一歩 〜監視の変遷〜DevOpsのはじめの一歩 〜監視の変遷〜
DevOpsのはじめの一歩 〜監視の変遷〜Akihiro Kuwano
 
150310 flash001 プログラムとは
150310 flash001 プログラムとは150310 flash001 プログラムとは
150310 flash001 プログラムとは
elephancube
 
皆で考えるDevOps
皆で考えるDevOps皆で考えるDevOps
皆で考えるDevOps
Ryotaro Kobayashi
 
Hour of-code-2016冬-シンポジウム
Hour of-code-2016冬-シンポジウムHour of-code-2016冬-シンポジウム
Hour of-code-2016冬-シンポジウム
Yuta Tonegawa
 
Sapporo Open Seminar 2
Sapporo Open Seminar 2Sapporo Open Seminar 2
Sapporo Open Seminar 2
Hiro Yoshioka
 
インフラざっくり会
インフラざっくり会インフラざっくり会
インフラざっくり会
祐磨 堀
 
Jubatusの紹介@第6回さくさくテキストマイニング
Jubatusの紹介@第6回さくさくテキストマイニングJubatusの紹介@第6回さくさくテキストマイニング
Jubatusの紹介@第6回さくさくテキストマイニングYuya Unno
 
コンピューターが扱う浮動小数点の話
コンピューターが扱う浮動小数点の話コンピューターが扱う浮動小数点の話
コンピューターが扱う浮動小数点の話
yoshirofujimaki
 
KANAZAWA アプリ開発塾 2015 アプリ制作マスターへの道
KANAZAWA アプリ開発塾 2015 アプリ制作マスターへの道KANAZAWA アプリ開発塾 2015 アプリ制作マスターへの道
KANAZAWA アプリ開発塾 2015 アプリ制作マスターへの道
Masayuki KaToH
 
Introduction to programming
Introduction to programmingIntroduction to programming
Introduction to programming
keki3
 
ゲーム業界から見たアジャイル開発
ゲーム業界から見たアジャイル開発ゲーム業界から見たアジャイル開発
ゲーム業界から見たアジャイル開発Masaru Nagaku
 

Similar to Webの勉強会#12 (20)

『これからはじめるプログラミング基礎の基礎』 のエッセンス
『これからはじめるプログラミング基礎の基礎』 のエッセンス『これからはじめるプログラミング基礎の基礎』 のエッセンス
『これからはじめるプログラミング基礎の基礎』 のエッセンス
 
Android勉強会第二回-非同期処理-
Android勉強会第二回-非同期処理-Android勉強会第二回-非同期処理-
Android勉強会第二回-非同期処理-
 
いろいろ見せますLord of Knightsのクライアント開発事例紹介
いろいろ見せますLord of Knightsのクライアント開発事例紹介いろいろ見せますLord of Knightsのクライアント開発事例紹介
いろいろ見せますLord of Knightsのクライアント開発事例紹介
 
非エンジニアのためのIT勉強会 ハイブリッドフレームワーク
非エンジニアのためのIT勉強会 ハイブリッドフレームワーク非エンジニアのためのIT勉強会 ハイブリッドフレームワーク
非エンジニアのためのIT勉強会 ハイブリッドフレームワーク
 
クロスプラットフォーム開発環境のすヽめ
クロスプラットフォーム開発環境のすヽめクロスプラットフォーム開発環境のすヽめ
クロスプラットフォーム開発環境のすヽめ
 
UnityでのLINQ活用例
UnityでのLINQ活用例UnityでのLINQ活用例
UnityでのLINQ活用例
 
「ディープラーニングでは、エコシステムが大切よ!」
 「ディープラーニングでは、エコシステムが大切よ!」 「ディープラーニングでは、エコシステムが大切よ!」
「ディープラーニングでは、エコシステムが大切よ!」
 
今さら聞けないITエンジニアのための7つの習慣
今さら聞けないITエンジニアのための7つの習慣今さら聞けないITエンジニアのための7つの習慣
今さら聞けないITエンジニアのための7つの習慣
 
運用管理を楽にしたいという話
運用管理を楽にしたいという話運用管理を楽にしたいという話
運用管理を楽にしたいという話
 
DevOpsのはじめの一歩 〜監視の変遷〜
DevOpsのはじめの一歩 〜監視の変遷〜DevOpsのはじめの一歩 〜監視の変遷〜
DevOpsのはじめの一歩 〜監視の変遷〜
 
150310 flash001 プログラムとは
150310 flash001 プログラムとは150310 flash001 プログラムとは
150310 flash001 プログラムとは
 
皆で考えるDevOps
皆で考えるDevOps皆で考えるDevOps
皆で考えるDevOps
 
Hour of-code-2016冬-シンポジウム
Hour of-code-2016冬-シンポジウムHour of-code-2016冬-シンポジウム
Hour of-code-2016冬-シンポジウム
 
Sapporo Open Seminar 2
Sapporo Open Seminar 2Sapporo Open Seminar 2
Sapporo Open Seminar 2
 
インフラざっくり会
インフラざっくり会インフラざっくり会
インフラざっくり会
 
Jubatusの紹介@第6回さくさくテキストマイニング
Jubatusの紹介@第6回さくさくテキストマイニングJubatusの紹介@第6回さくさくテキストマイニング
Jubatusの紹介@第6回さくさくテキストマイニング
 
コンピューターが扱う浮動小数点の話
コンピューターが扱う浮動小数点の話コンピューターが扱う浮動小数点の話
コンピューターが扱う浮動小数点の話
 
KANAZAWA アプリ開発塾 2015 アプリ制作マスターへの道
KANAZAWA アプリ開発塾 2015 アプリ制作マスターへの道KANAZAWA アプリ開発塾 2015 アプリ制作マスターへの道
KANAZAWA アプリ開発塾 2015 アプリ制作マスターへの道
 
Introduction to programming
Introduction to programmingIntroduction to programming
Introduction to programming
 
ゲーム業界から見たアジャイル開発
ゲーム業界から見たアジャイル開発ゲーム業界から見たアジャイル開発
ゲーム業界から見たアジャイル開発
 

More from MarlboroLand

Gitの使い方
Gitの使い方Gitの使い方
Gitの使い方
MarlboroLand
 
web開発環境
web開発環境web開発環境
web開発環境
MarlboroLand
 
Webの勉強会#14
Webの勉強会#14Webの勉強会#14
Webの勉強会#14
MarlboroLand
 
Webの勉強会#11
Webの勉強会#11Webの勉強会#11
Webの勉強会#11
MarlboroLand
 
Webの勉強会#10
Webの勉強会#10Webの勉強会#10
Webの勉強会#10
MarlboroLand
 
Webの勉強会#9
Webの勉強会#9Webの勉強会#9
Webの勉強会#9
MarlboroLand
 
Webの勉強会#8
Webの勉強会#8Webの勉強会#8
Webの勉強会#8
MarlboroLand
 
Webの勉強会#6
Webの勉強会#6Webの勉強会#6
Webの勉強会#6
MarlboroLand
 
Webの勉強会#5
Webの勉強会#5Webの勉強会#5
Webの勉強会#5
MarlboroLand
 
Webサイト制作の環境構築(for Windows)
Webサイト制作の環境構築(for Windows)Webサイト制作の環境構築(for Windows)
Webサイト制作の環境構築(for Windows)
MarlboroLand
 
CSS設計のお勉強
CSS設計のお勉強CSS設計のお勉強
CSS設計のお勉強
MarlboroLand
 

More from MarlboroLand (11)

Gitの使い方
Gitの使い方Gitの使い方
Gitの使い方
 
web開発環境
web開発環境web開発環境
web開発環境
 
Webの勉強会#14
Webの勉強会#14Webの勉強会#14
Webの勉強会#14
 
Webの勉強会#11
Webの勉強会#11Webの勉強会#11
Webの勉強会#11
 
Webの勉強会#10
Webの勉強会#10Webの勉強会#10
Webの勉強会#10
 
Webの勉強会#9
Webの勉強会#9Webの勉強会#9
Webの勉強会#9
 
Webの勉強会#8
Webの勉強会#8Webの勉強会#8
Webの勉強会#8
 
Webの勉強会#6
Webの勉強会#6Webの勉強会#6
Webの勉強会#6
 
Webの勉強会#5
Webの勉強会#5Webの勉強会#5
Webの勉強会#5
 
Webサイト制作の環境構築(for Windows)
Webサイト制作の環境構築(for Windows)Webサイト制作の環境構築(for Windows)
Webサイト制作の環境構築(for Windows)
 
CSS設計のお勉強
CSS設計のお勉強CSS設計のお勉強
CSS設計のお勉強
 

Recently uploaded

JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさJSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
0207sukipio
 
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
harmonylab
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
Toru Tamaki
 
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
Matsushita Laboratory
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
CRI Japan, Inc.
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
Matsushita Laboratory
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
chiefujita1
 
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
t m
 

Recently uploaded (8)

JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさJSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
 
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
 
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
論文紹介:When Visual Prompt Tuning Meets Source-Free Domain Adaptive Semantic Seg...
 
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
 
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
 
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
 

Webの勉強会#12