1 PHP 文法 担当 岡村耕二 月曜日 2限 平成 20 年度 情報科学 III (理系コア科目・2年生) 本資料の一部は、堀良彰准教授、天野浩文准教授等による 以前の講義資料をもとにしています。

Slides:



Advertisements
Similar presentations
C 言語講座第 5 回 構造体. 構造体とは ... 異なる型の値をまとめて新しい型とする 機能がある . つまり , 複数の変数を 1 つのまとまりにできる . 配列と違って同じ型でデータをまとめるのではな く違った型のデータをまとめられる .
Advertisements

2.5 プログラムの構成要素 (1)文字セット ① ASCII ( American Standard Code for Interchange ) JIS コードと同じ ② EBCDIC ( Extended Binary Coded Decimal for Information Code ) 1.
情報アプリケーション1 2006 年 10 月 12 日 第四回資料 担当 重定 如彦. 目次 データの送信とフォーム クイズ CGI 複数のパーツのデータの分割方法 配列変数.
1 PHP プログラムの実行(まと め) 担当 岡村耕二 月曜日 2限 平成 22 年度 情報科学 III (理系コア科目・2年生) 本資料の一部は、堀良彰准教授、天野浩文准教授、菅沼明 准教授等による以前の講義資料をもとにしています。
オブジェクト指向言語・ オブジェクト指向言語演習 中間試験回答例. Jan. 12, 2005 情報処理技術基礎演習 II 2 オブジェクト指向言語 中間試験解説 1  (1) 円柱の体積(円柱の体積 = 底面の円の面積 x 高さ) を求めるプログラムを作成しなさい。ただし、出力結果は、入 力した底面の円の半径.
復習 配列変数の要素 5は配列の要素数 これらの変数をそれぞれ配列の要素と呼ぶ この数字を配列の添え字,またはインデックスと呼ぶ
復習 配列変数の要素 5は配列の要素数 これらの変数をそれぞれ配列の要素と呼ぶ この数字を配列の添え字,またはインデックスと呼ぶ
初年次セミナー 第8回 データの入力.
プログラミング演習II 2004年11月 30日(第6回) 理学部数学科・木村巌.
JavaScript プログラミング入門 2006/11/10 神津.
PHP 文法 担当 岡村耕二 月曜日 2限 平成22年度 情報科学III (理系コア科目・2年生)
情報・知能工学系 山本一公 プログラミング演習Ⅱ 第4回 配列(2) 情報・知能工学系 山本一公
プログラミング言語としてのR 情報知能学科 白井 英俊.
第13回構造体.
ファーストイヤー・セミナーⅡ 第8回 データの入力.
第12回構造体.
システムプログラミング 第5回 情報工学科 篠埜 功 ヒアドキュメント レポート課題 main関数の引数 usageメッセージ
PHP 概要 担当 岡村耕二 月曜日 2限 平成21年度 情報科学III (理系コア科目・2年生)
Webコミュニケーショングループ ~PHPの基礎~ M1 宮崎 真.
第4回 個人の動画配信補足のためのWeb構築
PHP プログラムの実行 担当 岡村耕二 月曜日 2限 平成22年度 情報科学III (理系コア科目・2年生)
情報科学1(G1) 2016年度.
第6章 2重ループ&配列 2重ループと配列をやります.
構造体.
PHP プログラムの実行 担当 岡村耕二 月曜日 2限 平成20年度 情報科学III (理系コア科目・2年生)
プログラミング演習II 2004年12月 21日(第8回) 理学部数学科・木村巌.
PHP 文法 担当 岡村耕二 月曜日 2限 平成21年度 情報科学III (理系コア科目・2年生)
PHP 概要 担当 岡村耕二 月曜日 2限 平成20年度 情報科学III (理系コア科目・2年生)
プログラミング演習Ⅰ 課題2 10進数と2進数 2回目.
09 06/23 PHP と SQL (MySQL) の連携 その2
データベース設計 第9回 Webインタフェースの作成(1)
第10回 プログラミングⅡ 第10回
第7回 条件による繰り返し.
岩村雅一 知能情報工学演習I 第8回(後半第2回) 岩村雅一
ちょっとした練習問題① 配列iroを['R', 'W', 'R', 'R', 'W' , 'W' , 'W']を宣言して、「W」のときの配列の番号をprintfで表示するようなプログラムを記述しなさい。
プログラミング2 関数
第10回関数 Ⅱ (ローカル変数とスコープ).
Cプログラミング演習 第7回 メモリ内でのデータの配置.
独習XML 第2章 XML文書の構成要素 2.1 XMLの文字と文字列 2.2 コメント
前回の練習問題.
第7回 条件による繰り返し.
第9回関数Ⅰ (簡単な関数の定義と利用) 戻り値.
第11回 プログラミングⅡ 第11回
PHP と SQL (MySQL) の連携 大量のデータを扱う
PHP 概要 担当 岡村耕二 月曜日 2限 平成22年度 情報科学III (理系コア科目・2年生)
情報処理Ⅱ 第2回:2003年10月14日(火).
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
プログラミング言語論 第六回 理工学部 情報システム工学科 新田直也.
C言語 はじめに 2016年 吉田研究室.
15.1 文字列処理の基本 15.2 文字列処理用ライブラリ関数
統計ソフトウエアRの基礎.
アルゴリズムとプログラミング (Algorithms and Programming)
Webアプリケーションと JSPの基本 ソフトウェア特論 第4回.
復習 breakとcontinueの違い int i; for (i = 1; i <= 100; i++) { ・・・処理1・・・・
復習 Cにおけるループからの脱出と制御 break ループを強制終了する.if文と組み合わせて利用するのが一般的. continue
復習 breakとcontinueの違い int i; for (i = 1; i <= 100; i++) { ・・・処理1・・・・
情報処理Ⅱ 2005年10月28日(金).
09 06/23 PHP と SQL (MySQL) の連携 その3
PHP と SQL (MySQL) の連携 日本語のデータを扱う
プログラミング入門2 第6回 関数 情報工学科 篠埜 功.
関数と再帰 教科書13章 電子1(木曜クラス) 2005/06/22(Thu.).
モバイルプログラミング第2回 C言語の基礎 (1).
情報処理Ⅱ 2005年11月25日(金).
15.1 文字列処理の基本 15.2 文字列処理用ライブラリ関数
プログラミング入門2 第5回 配列 変数宣言、初期化について
第4回 配列.
第5回 配列.
プログラミング演習I 補講用課題
岩村雅一 知能情報工学演習I 第7回(後半第1回) 岩村雅一
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
Presentation transcript:

1 PHP 文法 担当 岡村耕二 月曜日 2限 平成 20 年度 情報科学 III (理系コア科目・2年生) 本資料の一部は、堀良彰准教授、天野浩文准教授等による 以前の講義資料をもとにしています。

2 演習問題の回答例 問題1) PHP を用いて、 1, 2, 3,...., 99 と、カンマで区切られた 1 から 99 までの数字をすべ て表示するプログラムを作成せよ。 <?php for ($i=1;$i<100;$i++){ printf("%d",$i); if($i!=99) printf(", "); } printf("\n"); ?>

3 演習問題の回答例 問題2) 上の問題1の出力について、2の倍数は赤で、3の倍数は青で、6の倍数は緑で表示するよう にプログラムを改良せよ。 <?php for ($i=1;$i<100;$i++){ if($i%6==0) printf(" "); else if($i%2 ==0) printf(" "); else if($i%3==0) printf(" "); printf("%d",$i); if($i%2==0 ||$i%3==0) printf(" "); if($i!=99) printf(", "); } printf("\n"); ?>

4 前回のおさらい(1) PHP: Hypertext Preprocessor HTML で書かれた普通の web ページの中に, PHP プログラ ムを埋め込むことができる. –PHP で書かれた部分を で囲む. –web サーバ上に置くファイルの拡張子 HTML のみのファイル:.htm または.html PHP を含むファイル:.php

5 前回のおさらい(2) ブラウザ HTML PHP web サーバ PHP 処理用 モジュール ①ページのリクエスト ②ページの取り出し ③ PHP 部分の処理 (結果は HTML に 埋め込み) HTML ④ HTML のみと なったページが ブラウザに返信 される (サーバサイドでの処理となっている)

6 前回のおさらい(3) PHP の文法(基礎編) – 関数の呼び出し – 文と文の区切り –PHP からの「脱出」 – コメント – 変数とデータ型 – 演算子 – 制御構文 if , else , elseif , while , for 文など

7 今日やること PHP の文法(基礎編)-つづき – 配列 – 関数のいろいろ – データを入力して計算する 練習問題 演習問題(宿題)

8 PHP の文法(基礎編) (つづき)

9 配列(1) 前回扱った変数はすべて,1つの変数が1つの値しか持たなかった. – スカラー型 配列( array ) – 複数の値をリストとしてまとめて格納する. ひとつひとつの値を要素( element )と呼ぶ. – ( PHP では)要素の個数を後から勝手に増やすことができる. C では,格納できる要素の最大個数をあらかじめ宣言しなくて はならない. – ( PHP では)配列の要素を,番号(添え字)の代わりに名前(文 字列)で区別することもできる. 名前で要素を区別するような配列を連想配列と呼ぶ. C にはこのような配列はない. – ( PHP では)異なる型の要素が混在する配列も作れる. C では構造体( struct )にするしかない.

10 配列(2) 配列を作る・修正する方法 –array() 関数を使う 要素を最初に全部一括登録したいときに便利 – 角括弧( [ ] )構文で作成・修正する 要素をひとつずつ登録・変更したいときに便利

11 配列(3) array() 関数による配列の作成・代入 array( key => value,... ) key は、文字列または非負の整数.文字列の大文字小文字は区別される. key の順序は任意. value にも制約はない. $fruit = array( 0 => "apple", 1 => "banana", 2 => " みかん "); "apple" 0 "banana" 1 " みかん " 2 例1 $fruit $fruit[0 ]

12 配列(4) 角括弧( [ ] )構文による作成・修正 $fruit[] = "apple"; $fruit[] = "banana"; $fruit[] = " みかん "; 添え字ゼロから順に,自動的に詰めていく $fruit[1] = "banana"; $fruit[0] = "apple"; $fruit[2] = " みかん "; 添え字(または名前)を陽に指定して この方法では,添え字 0,1,2, … という 順序で欠番無しに詰め られる. この方法では,任意の順 序で要素を格納すること ができる.また,欠番が あってもよい. array() 関数の実行結果(配列)を配列変数に代入する場合と異なり,角括弧が 必要であることに注意!

13 配列(5) 連想配列の例 $profile["sex"] = " 男 "; $profile["age"] = 20; $profile["country"] = "Japan"; $profile = array( "sex" => " 男 ", "age" => 20, "country" => "Japan" ); 連想配列では,任意 の順序で要素を格納 することができる. ただし,番号の場 合と異なり,文字 列のキーは省略不 可.

14 配列(6) 番号によるキーと名前によるキーが混在する配列も可能で あるが,よほど必要でない限り,あまり使わないほうが無 難であろう.

15 配列(7) 多次元配列 – キーを複数指定することで要素を特定するような配列 も作れる. $two_dimensional_array = array( key1 => array(... ), key2 => array(... ),... ); $one_dimensional_array1 = array (... ); $one_dimensional_array2 = array (... );... $two_dimensional_array = array( key1 => $one_dimensional_array1 ), key2 => $one_dimensional_array2 ),... ); array() 関数の呼 び出しが「入れ 子」になっている. 配列の要素に他の 配列を入れている.

16 関数 ( )で囲まれたデータ(引数)を受け取り,何かの処理 をして,結果を返す. – 「引数」は「ひきすう」と読む. ほとんどの場合,実行結果は,変数に直接代入できる. – 実行結果として返される値は,「戻り値」と呼ばれる. – 戻り値がのちのち必要になる場合は,いったん変数で 受け取っておいて,その変数を利用するとよい. 戻り値を受け取る変数 = 関数名 ( 引数 );

17 関数のいろいろ ここまでに出てきた関数 –print() :実は,論理型の値( TRUE/FALSE )を返す. –array() :配列を返す. その他にも,たくさんの定義済み関数がある.たとえば: –PHP 処理系の情報を表示する関数 – 文字列を操作する関数 – 日付・時刻を得る関数 – 数学関数 詳細は, PHP に関する書籍や,下記の URL を参照するとよ い

18 PHP 処理系の情報を表示する関数 (論理型変数) = phpinfo( オプション ); – オプション(省略可)の例 INFO_ALL :すべての情報(デフォルト) INFO_GENERAL : PHP 処理系をサーバにインス トールしたときの状況 世界でもっとも単純な PHP プログラム? phpinfo() 関数が 正当な HTML 文書に必要 なすべてのタグを作って くれるので, HTML デー タの中に埋め込まなくて もよい.

19 文字列を操作する関数の例 (整数型変数) = strlen( 文字列 ); – 文字列の長さを返す. (文字列変数) = strchop( 文字列 ); – 文字列の末尾にある空白文字(スペース,タブ,改行 文字その他)を取り除く. ASCII コードのような 1 バイト文字コードの場合と, EUC_JP ・ UTF-8 などのよ うな多バイト長コードの場合とで,実行結果が異なる(あるいは多バイトで は正しく実行できない)関数もある. そのような関数については,レファレンスマニュアル等で,同じ関数名の頭 に「 mb_ 」のついたものが用意されているかどうか,探して機能を比較して みるとよい. なお, mb は「 multi-byte 」の略である.

20 日付・時刻を得る関数の例 (文字列) = date( 書式文字列, タイムスタンプ ) ; – 書式文字列の例 (実に詳細な指定法が可能だが,ここでは例を2つだ け) "r" … 「 Wed, 2 May :01: 」のような 形式 "F j, Y, g:i a" … 「 March 10, 2001, 5:16 pm 」のような形式 – タイムスタンプ(省略したときは現在の日時) UNIX では,通常,グリニッジ標準時の 1970 年 1 月 1 日 00:00:00 からの通算秒数で表現される.普通は あまり考える必要なし. 現在の時刻は:

21 数学関数の例 (整数型または浮動小数点型変数) = abs( 整数または実数 ); – 絶対値を求める. (浮動小数点型変数) = sqrt( 浮動小数点型デー タ ); – 平方根を求める.

22 値を入力して、足し算を行う main.htm plus.php <?php $a=$_POST["a"]; $b=$_POST["b"]; printf("%d + %d = %d",$a,$b,$a+$b); ?>

23 入力フィールド テキスト入力フィールド (<input type=text) パスワード入力フィールド (<input type=password) チェックボックス (<input type=checkbox) ラジオボタン (<input type=radio) 提出ボタン (<input type=submit) リセットボタン (<input type=reset) イメージ上の座標入力 (<input type=image) ファイル名入力フィールド (<input type=file) 隠しフィールド (<input type=hidden) 選択メニュー (<select... ) テキストエリア (<textarea... )

24 入力フィールド(例)

25 練習問題 現在の日時を「ただいまの日時は Mon, 12 May :00: です.」のような形式で表示するプログラ ムを作成せよ。 日数を入力し、現在の日付にその日数を足した日付を表示 するプログラムを作成せよ。 – 今日の日付は Mon, 12 May 2008 です. 10 日後は、 Thu, 22 May 2008 です。 ヒント : PHP の関数は、 C 言語とよく似ています。 – 関数 time(); 現在時刻を Unix エポック (1970 年 1 月 1 日 00:00:00 GMT) からの通算秒として返します。

26 a, b, c を入力して、 2 次方程式を解くプログラムを作成せよ。 –aX^2 + bX = C 名前、数字を5名分入力し、数字の順に並び替えるプログラムを作成 せよ。 – 入力画面および入力例 – 出力例 大橋 29 馬出 22 箱崎 12 六本松 9 伊都 4 演習問題 箱崎 12 六本松 9 馬出 22 伊都 4 大橋 29

27 うまく表示できないときのチェックリスト HTML の開始タグ・終了タグはきちんと対応が取れている か? – 例: ~ PHP の開始タグ・終了タグはきちんと対応が取れている か? – ( ~ ) , { ~ } , " ~ " ,などの対応は取れている か? あるべきところにセミコロンがあるか? 連想配列に値をセットするとき/値を読むとき,キーの名 前を打ち間違えていないか? – 例: $message["Wed"] と $message["Wen"];