PHP 文法 担当 岡村耕二 月曜日 2限 平成21年度 情報科学III (理系コア科目・2年生)

Slides:



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

1 PHP 文法 担当 岡村耕二 月曜日 2限 平成 20 年度 情報科学 III (理系コア科目・2年生) 本資料の一部は、堀良彰准教授、天野浩文准教授等による 以前の講義資料をもとにしています。
情報アプリケーション1 2006 年 10 月 12 日 第四回資料 担当 重定 如彦. 目次 データの送信とフォーム クイズ CGI 複数のパーツのデータの分割方法 配列変数.
1 PHP プログラムの実行(まと め) 担当 岡村耕二 月曜日 2限 平成 22 年度 情報科学 III (理系コア科目・2年生) 本資料の一部は、堀良彰准教授、天野浩文准教授、菅沼明 准教授等による以前の講義資料をもとにしています。
復習 配列変数の要素 5は配列の要素数 これらの変数をそれぞれ配列の要素と呼ぶ この数字を配列の添え字,またはインデックスと呼ぶ
復習 配列変数の要素 5は配列の要素数 これらの変数をそれぞれ配列の要素と呼ぶ この数字を配列の添え字,またはインデックスと呼ぶ
初年次セミナー 第8回 データの入力.
プログラミング演習II 2004年11月 30日(第6回) 理学部数学科・木村巌.
JavaScript プログラミング入門 2006/11/10 神津.
PHP 文法 担当 岡村耕二 月曜日 2限 平成22年度 情報科学III (理系コア科目・2年生)
情報・知能工学系 山本一公 プログラミング演習Ⅱ 第4回 配列(2) 情報・知能工学系 山本一公
第13回構造体.
ファーストイヤー・セミナーⅡ 第8回 データの入力.
第12回構造体.
システムプログラミング 第5回 情報工学科 篠埜 功 ヒアドキュメント レポート課題 main関数の引数 usageメッセージ
PHP 概要 担当 岡村耕二 月曜日 2限 平成21年度 情報科学III (理系コア科目・2年生)
Webコミュニケーショングループ ~PHPの基礎~ M1 宮崎 真.
第4回 個人の動画配信補足のためのWeb構築
Bottle/Pythonによる Webアプリ入門
PHP プログラムの実行 担当 岡村耕二 月曜日 2限 平成22年度 情報科学III (理系コア科目・2年生)
情報科学1(G1) 2016年度.
第6章 2重ループ&配列 2重ループと配列をやります.
構造体.
4-3.基本的なPHPスクリプト 2004年6月24日(木) 大北高広 01T6010F.
PHP プログラムの実行 担当 岡村耕二 月曜日 2限 平成20年度 情報科学III (理系コア科目・2年生)
PHP 概要 担当 岡村耕二 月曜日 2限 平成20年度 情報科学III (理系コア科目・2年生)
HTTPプロトコル J2EE I 第7回 /
プログラミング演習Ⅰ 課題2 10進数と2進数 2回目.
初年次セミナー 第2回 文字の出力.
09 06/23 PHP と SQL (MySQL) の連携 その2
データベース設計 第9回 Webインタフェースの作成(1)
第7回 条件による繰り返し.
岩村雅一 知能情報工学演習I 第8回(後半第2回) 岩村雅一
情報工学科 3年生対象 専門科目 システムプログラミング 第5回、第6回 ヒアドキュメント レポート課題 情報工学科 篠埜 功.
ちょっとした練習問題① 配列iroを['R', 'W', 'R', 'R', 'W' , 'W' , 'W']を宣言して、「W」のときの配列の番号をprintfで表示するようなプログラムを記述しなさい。
プログラミング2 関数
プログラミング応用 printfと変数.
第10回関数 Ⅱ (ローカル変数とスコープ).
独習XML 第2章 XML文書の構成要素 2.1 XMLの文字と文字列 2.2 コメント
09 06/23 PHP と SQL (MySQL) の連携 その1
前回の練習問題.
第7回 条件による繰り返し.
第9回関数Ⅰ (簡単な関数の定義と利用) 戻り値.
復習 前回の関数のまとめ(1) 関数はmain()関数または他の関数から呼び出されて実行される.
第11回 プログラミングⅡ 第11回
PHP と SQL (MySQL) の連携 大量のデータを扱う
コンピュータ プレゼンテーション.
PHP 概要 担当 岡村耕二 月曜日 2限 平成22年度 情報科学III (理系コア科目・2年生)
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
プログラミング言語論 第六回 理工学部 情報システム工学科 新田直也.
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) の連携 日本語のデータを扱う
例題のプログラムを通して JavaScriptの仕組みを理解することとします。
情報処理Ⅱ 2005年11月25日(金).
15.1 文字列処理の基本 15.2 文字列処理用ライブラリ関数
プログラミング入門2 第5回 配列 変数宣言、初期化について
第4回 配列.
第5回 配列.
プログラミング演習I 補講用課題
岩村雅一 知能情報工学演習I 第7回(後半第1回) 岩村雅一
オブジェクト指向言語論 第六回 知能情報学部 新田直也.
Presentation transcript:

PHP 文法 担当 岡村耕二 月曜日 2限 平成21年度 情報科学III (理系コア科目・2年生) 2007/5/2 平成21年度 情報科学III (理系コア科目・2年生) PHP 文法 担当 岡村耕二 月曜日 2限 http://okaweb.ec.kyushu-u.ac.jp/lectures/jk3/ 本資料の一部は、堀良彰准教授、天野浩文准教授等による 以前の講義資料をもとにしています。 情報科学III(4)

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

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

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

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

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

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

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

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

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

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

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

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

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

配列(7) 多次元配列 キーを複数指定することで要素を特定するような配列も作れる. array() 関数の呼び出しが「入れ子」になっている. $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 ), ... );

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

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

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

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

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

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

値を入力して、足し算を行う main.htm <form method="POST" ACTION=“plus.php"><p> <input type="text" name="a" size="4"> <input type="text" name="b" size="4"> <input type="submit" value="Plus"> <input type="reset" value="clear"> </form> plus.php <?php $a=$_POST["a"]; $b=$_POST["b"]; printf("%d + %d = %d",$a,$b,$a+$b); ?>

入力フィールド テキスト入力フィールド (<input type=text) 2007/5/2 入力フィールド テキスト入力フィールド (<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 ... ) 情報科学III(4) 23

2007/5/2 入力フィールド(例) 情報科学III(4) 24

練習問題 100個の乱数を発生させ、並び換えるプログラムを作成しなさい。 発生させる乱数の 最小値 最大値 個数 を、入力し、乱数を発生させ、それを並び換えるプログラムを作成しなさい。

演習問題 a, b, c を入力して、2次方程式を解くプログラムを作成せよ。 aX^2 + bX = C 入力画面および入力例 Hakozaki 12 Ropponmatsu 9 Maidashi 22 Ito 4 Ohashi 29

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