基礎プログラミング 第3回(2007年4月16日) はじめてのプログラミング プログラムを少しずつ実行する方法 プログラム実行の流れ プログラムを指定した時間一時停止する 数値の記述と計算 ユーザからの入力を受け付ける 文字列の長さを得る 文字列を数値に変換する 1 前回のおさらい 「拡張子」は重要 (#02-p2-s11) Windowsの場合,拡張子が起動するアプリ ケーションを決定する Visual Studio .NET 2005でプログラム作成 1. Hello.sln から起動 2. VS2005内からProgram.cs ファイルを開いて, 編集する 3. ビルド>デバッグ開始 で実行 SVN4Lec (課題提出用SVNクライアント) 更新 (Update), 差分提出 (Commit) 2 コンソール(Console)とは テキストによる入出力を行うための仕組み キーボードからの入力を受け付けたり,処理結果 を画面に表示したりする 元々の意味は,(大型)計算機に直接接続された 入出力装置,制御卓 遠隔地から接続する入出力装置は「ターミナル (端末)」と呼ぶ 3 コンソールアプリケーションとは テキスト中心(Character-based User Interface:CUI)のアプリケーション ウィンドウアプリケーション(Graphical User Interface:GUI) 画面にはテキストしか表示できない 短いプログラムで簡単に書ける プログラミングの基礎を学ぶには最適 「基礎プログラミング」ではコンソールアプリケー ションを作りながら学んでいく 4 コメント (//… , /* … */ ) をつけよう コメント:ソースコード内に記す覚え書き 自分がプログラムを修正するときに,どこを直 せばよいか思い出しやすい 自分で書いたプログラムでも,時間が経つと「さっ ぱり分からない」ということがよくある 他の人に,プログラムの中身を理解してもら いやすくする コメントをつける2つの理由:(1)未来の自分 のため,(2)他人のため 5 少しずつ実行(ステップ実行) プログラムを1行ずつ実行するには,[F10]を押しま す. ウィンドウが重なるので並べて配置してください VS2005ウィンドウがアクティブになっているときに, [F10]をおすと,1行実行し,次の行に移動する 以下を調べてください 最初は,どこからスタートしていますか?(どこが黄色く なっていますか?) Console.ReadLine();で止まったときは,コンソールで キー入力(+Enter)すれば,×ボタンに頼らずに [F10]の みで最後まで実行・終了できます. 6 最後(終了する直前)に黄色くなるのはどこですか? プログラム「実行」の流れ プログラムを実行すると, Program.Main(){…} の ...(中身)を,1行 ずつ実行する ; (セミコロン)で区切られた内容が「1行」 上から下へ () の中から順番に実行される コメント部分は無視される 7 実行途中での一時停止と,終了 Console.ReadLine(); と書くと,Enterが押されるま で一時停止 System.Threading.Thread.Sleep(ミリ秒数);と書く と,指定したミリ秒だけ一時停止 Environment.Exit(0);と書くと,プログラムの 途中でも終了 8 数値の記述と計算 「文字列」以外にも,計算結果を表示できる 「3割る5」は0.6だが,3と書くと小数点切り捨て 3.0 と書けば小数点以下も計算してくれる ( ) で囲まないと,エラーとなる 9 計算結果を使った待ち秒数指示 Thread.Sleep() メソッドの引数に,計算結果 を入れる (メソッド=よく使う,便利な処理をひとかたま りにして,少しの記述で使えるようにしたもの)10 これまでに作ったプログラムの欠点 あらかじめプログラムに書いておいた文字列 や,計算の結果しか表示できなかった 自己紹介の表示 計算結果の表示 ユーザの反応によって振る舞いを変えたい ユーザからの入力を受け取るにはどうしたら よいか? 11 キーボード入力文字列を受け取る Console.ReadLine()を使うと,ユーザがキー ボードで入力した文字列に置き換えられる 12 文字列に含まれる「文字の数」 [文字列].Length と書くと,文字列の文字数 を表す「数値」に置き換わる 13 文字列を数値に変換 int.Parse([文字列]);と書くと,数字を表す文 字列を数値(整数)に変換できる int は Integer の略 int.Parse(”100”); → 100 int.Parse(”-30”); → -30 14 提出課題A (第1回),課題1 (課題1)以下の内容をすべて盛り込んだプ ログラムを作れ(Hello.csに追記で作成) 1. 自己紹介文の表示(前回課題のままでよい) 2. 1日24時間は「何秒」かを「計算して」表示 3. ユーザに名前を入力してもらい,それを使って 「こんにちは、○○さん」と表示 4. ユーザの名前をもう一度尋ね,その名前に含ま れる文字数を表示 1~2の間と,4の後で,それぞれ3秒待つこと ユーザに入力させる場所では,入力を促すメッ セージを表示し,親切なプログラムにすること 15 提出課題A (第1回),課題2 02WaitSecを配布します(Updateしてください) (課題2)ユーザに数値(整数)を入力してもら い,その秒数だけ待ってから終了するプログ ラムを作れ ユーザに待ち秒数の入力を促すメッセージを表 示すること 待った後,「指定した秒数が過ぎました」といった メッセージを表示すること 02WaitSec\WaitSec.sln を開き,WaitSec.cs の // (write your code here) の部分にプログラムを書いてコミットすること 16 コミット時のログメッセージ 2つの課題を,それぞれコミットする場合は Report-A(1) Report-A(2) 2つの課題をまとめてコミットする場合, Report-A(1)(2) という半角英数文字列をログメッセージに 含めてコミットすること (例:Report-A(1) 案内メッセージをわかりやすく修正) 締切前であれば再提出(コミット)可能.ただし 上記の半角英数文字列を毎回含めること 17 Report-A(1)(2) 締切 4月17日(火曜日) 23:59 提出課題(A~F)の締切日を過ぎ て提出した場合,超過日数を減 点します 4月18日に提出した場合,-1点 不明点はなるべく授業時間中に 18 解決するようにしてください 今日のポイント プログラムが動く順番 Main(){…} の中 上から下,1行ずつ () の中を先に計算 プログラムの一時停止 Thread.Sleep() メソッド 文字列の長さ,文字→数値の変換 文字数を得る: ”hoge”.Length 数値に変換する: int.Parse(”100”) 19 次回(4/18)予定 演算子,変数の導入 入力された文字列の「保持」と「再利用」の方 法 データ型の種類と,取り扱い方法の違い 20 21 SVN4Lec過去に戻るときの注意 02WaitSecを編集中に,“distribute 02WaitSec” よりも前の過去に戻らないこと 02WaitSecが存在しなかった過去に戻ると,SVN の管理下から外れる 一旦管理下から外れた状態で,現在に戻ろうと すると,フォルダが既にあるため Failed to add directory '02WaitSec': object of the same name already exists というエラーになる エラーから復旧するには,(1)VS2005終了(2) 02WaitSecフォルダを削除(3)Update で復活 22 フォルダ毎に過去に戻りたいとき (例えば,01Helloの配布時に戻るとき) 01Helloフォルダに,SVN4Lec.jar をコピーす るか,もしくはショートカットを作成し,そこから 実行する ショートカットを作成した場合は,ファイルのプロ パティの作業フォルダを”…\01Hello”に変更して おく 下のように,Directory:表示が個別フォルダ になっていることを確認してから,過去に戻る 23 (再掲)拡張子,隠しフォルダを 表示する設定 「マイドキュメント」を開く(ダブルクリック) 「ツール」「フォルダオプション」を選ぶ 「表示」タブを選ぶ (1)「ファイルとフォルダの表示」の「すべての ファイルとフォルダを表示する」に◎ (2)「登録されている拡張子は表示しない」の チェックを外す 最後に,上の「すべてのフォルダに適用」ボタ ンを押す 24
© Copyright 2024 ExpyDoc