情報基礎Ⅱ (第2回) 月曜4限 担当:北川 晃 Visual Studio 2015を使ってみよう ファイルメニューから,新規作成→プロジェクトを選ぶ. Visual Basicからコンソールアプリケーションを選び, ’Hello’と名前をつける.(保存箇所にも注意) プログラミングの第一歩 ここにプログラムを書く. Sub:サブルーチン, ひとかたまりのプログラム (値を返さない) プログラミングの第一歩(続き) Sub Main() Dim s As String s = "Hello world" Console.WriteLine(s) End Sub 左のプログラムを入力して保存 プログラミングの第一歩(続き) 「デバッグ」タブから, 「デバッグなしで開始」を選ぶ. コンソールに結果が表示される. プロジェクトとソリューション プロジェクト: • フォームやプログラムなどを含む1つの アプリケーション全体を指す. • プロジェクトごとにプログラムを作成して保存. • プログラムを作成する=プロジェクトを作成する ソリューション: • 1つまたは複数のプロジェクトと,それ全体を含む. • C#など,Visual Studioの他の言語の プロジェクトを含むことができる. • 当面,1つのソリューションに1つのプロジェクトを作成 コード記述の基本 • ステートメント(文)は1行に1つが基本. • 長い文の場合は,文末にスペースと アンダースコアを書くことで,次の行に継続できる. • 各行でアポストロフィ(’)をつけた箇所以降は, コメント扱いとなる(何も処理されない). コメントは,プログラムを見る人間向けの説明書き. プログラムのうち,半分程度がコメントであるプログラム がよいとされる. 折に触れ,コメントをつけるよう心がけるとよい. 定数と変数 • 定数:プログラムで扱うデータを定数という. (プログラム実行中に,その値は変わらない) • 変数:データを記憶する場所を変数という. (その値は計算中に変化する場合がある) 変数名の付け方 頭文字は英字. 英字,数字,アンダースコア(_)を使用する. 大文字,小文字の区別はない. 字数は16383字以内. 定数と変数の型 いろいろな型のデータがあるが, 基本的には以下のものを用いる. • 整数型:Integer • 単精度実数型:Single • 倍精度実数型:Double • 文字列:String • ブール型(論理型):Boolean • 日付型:Date 変数の宣言 プログラムの最初に,必ず変数の型宣言を行う. Dim文 Dim 変数名, … As 型名, 変数名, … As 型名 例: Dim Gokei As Integer Dim a As Single, b As Double Dim moji5 As String Dim L As Boolean Dim sum As Integer=100 宣言時に任意の 初期データを設定可能 四則演算,様々な演算 • 変数にデータや式の計算結果を 記憶させるには,代入文を用いる. • 等号“=”は,右辺の式の計算結果を 左辺の変数に代入するという意味である. • 式に用いることのできる演算子は,次の通り. ():かっこ \:整数除算の商 ^:べき乗 Mod:整数除算の余り -:負符号 +, -:加算,減算 *, /:乗算,除算 &:文字の結合 プログラムの例 二つの整数の和,差,積,商,余りを計算するプログラム Dim m, n, wa, sa, seki, sho, amari As Integer ’値を代入する m=7 整数型の変数宣言 n=3 値を代入 wa=m+n sa=m-n seki=m*n 演算の実行 sho=m\n amari=m-(m\n)*n コメント文 文の継続 Console.WriteLine( _ “和={0},差={1},積={2},商={3},余り={4}”, _ wa, sa, seki, sho, amari) プログラミング演習 • 二つの整数m,nの和,差,積,商,余りを計算する プログラムにおいて,mおよびnの値をキーボードから 入力する形式に変更してみよ. • 円の半径rを読み込んで,円周の長さLと 面積Sを計算して表示させるプログラムを作れ. 解答例:m, nの和,差,積,商,余り Console.Title=“m, nの和,差,積,商,余り” Dim m, n, wa, sa, seki, sho, amari As Integer Console.Write(“m=”) m=Console.ReadLine() Console.Write(“n=”) n=Console.ReadLine() 入力に先立って“m=”と 表示させることで,次に 何をすればよいかわかり やすくなる. wa=m+n sa=m-n seki=m*n sho=m\n amari=m-(m\n)*n Console.WriteLine( _ “和={0},差={1},積={2},商={3},余り={4}”, _ wa, sa, seki, sho, amari) 出力例:m, nの和,差,積,商,余り 解答例:円の円周,面積の計算 Console.Title = "円の円周,面積の計算" 単精度実数型 Dim r, pi, L, S As Single Console.WriteLine("半径を入力して下さい") Console.Write("r=") “WriteLine”と r = Console.ReadLine() “ Write”の使い pi = 3.1415926 L = 2 * pi * r S = pi * r ^ 2 πの近似値を代入 分けに注意 べきの計算 文字列の途中で改行する方法 Console.WriteLine("円周の値は{0}," _ & "円の面積は{1}", L, S) 出力例:円の円周,面積の計算 判断と飛び越し1 WHILE型 IF文 条件成立? NO 繰り返して 実行する部分 GoTo文 次の処理へ YES If文の基本的な表式1 条件式: •条件式が満たされれば文1を実行 •満たされないときは文2を実行 [ ]で囲まれたElse句は省略可. If 条件式 Then 文1 [Else 文2] 条件式(比較演算子)の書き方 • • • • • • < <= > >= = <> (より小さい) (以下) (より大きい) (以上) (等しい) (等しくない) If If If If If If a<100 Then …… a<=100 Then …… a>100 Then …… a>=100 Then …… a=100 Then …… a<>100 Then …… 1行のIf文の例文 Dim a, b, c, d, As Integer Dim flag As Boolean If a > b Then c = 100 Else c = -100 If a <= b Then c = 125 If flag Then c = d • 条件式は論理型の変数として扱われる. • 満たされた場合は「真」(True), 満たされない場合は「偽」(False)という. • 条件式に,論理型の変数を用いることも可能. 例題:ユークリッドの互除法 ユークリッドの互除法を用いて,2つの正整数a,b (a>b)の最大公約数を求めるプログラムを作れ. あまり と の最大公約数は 例:1058と943の最大公約数 •1058÷943=1 あまり 115 (943と115の最大公約数) •943÷115=8 あまり 23 (115と23の最大公約数) •115÷23=5 あまり 0 と のとき, の最大公約数に等しい. •あまりが0になるまで この作業を繰り返す. •あまりが0になったときの 割る数が最大公約数 ユークリッドの互除法:出力例 ユークリッドの互除法のアルゴリズム 1. 2つの整数aとbを読み込む. 2. a→m,b→nを代入. 3. ℓ=(m÷nのあまり)を計算. 4. (n,ℓ)を新たな(m,n)として代入. 5. 手順3と4を,あまりℓが0になるまで繰り返す. 6. このときのnを最大公約数として書き出す. プログラム例:ユークリッドの互除法 Dim a, b, ℓ, m, n As Integer ℓ=lと読み替えてください Console.Write("一つ目の整数を入力して下さい") a = Console.ReadLine() Console.Write("二つ目の整数を入力して下さい") b = Console.ReadLine() GoTo で m = a 飛ぶ先 n = b 余りを計算して,0なら ‘point2’へ飛べ,という命令 point1: ℓ = m - (m \ n) * n If ℓ = 0 Then GoTo point2 m = n この二つの行を n = ℓ GoTo point1 逆にしてはならない 条件成立? NO 繰り返して 実行する部分 point2: Console.WriteLine("最大公約数は{0}", n) 次の処理へ YES Whileループを用いた条件分岐 • While……End While文 ある条件によって繰り返しを続けるかどうかを判断するループ While 条件式 文ブロック End While • 条件式が真(True)の間はループを繰り返す. • 条件が最初から偽(False)の場合は, ループを1回も実行しない. While文の例文 Dim sum As Integer = 0, i As Integer i = 1 While i <= 10 sum = sum + i i = i + 1 End While iが11を越えるまで, 以下の命令を繰り返せ. 変数’sum’に’i’を加えた ものを新たな’sum’とする. Console.WriteLine(“合計は{0}”, sum) While文の条件式を誤れば,ループが 無限に繰り返されることにもなる. 演習:ユークリッドの互除法 ユークリッドの互除法を用いて,2つの正整数a,b (a>b)の最大公約数を求めるプログラムを作れ. ただし,While文によるループを用いること. あまり と の最大公約数は 例:1058と943の最大公約数 •1058÷943=1 あまり 115 (943と115の最大公約数) •943÷115=8 あまり 23 (115と23の最大公約数) •115÷23=5 あまり 0 と のとき, の最大公約数に等しい. •あまりが0になるまで この作業を繰り返す. •あまりが0になったときの 割る数が最大公約数 プログラム例:ユークリッドの互除法 Dim a, b, ℓ, m, n As Integer Console.Write("一つ目の整数を入力して下さい") a = Console.ReadLine() Console.Write("二つ目の整数を入力して下さい") b = Console.ReadLine() m = a n = b 余りが0かどうかを判定 ℓ = m - (m \ n) * n While ℓ <> 0 m = n n = ℓ ℓ = m - (m \ n) * n End While この二つの行を 逆にしてはならない 余りを計算し直して もう一度評価 Console.WriteLine("最大公約数は{0}", n) プログラミング演習 整数𝑛を一つキーボードから読み込み,1から𝑛までの 和を計算するプログラムを作れ. 𝑛 = 8の場合: 1から1までの和は,1 1から2までの和は,3 1から3までの和は,6 1から4までの和は,10 1から5までの和は,15 1から6までの和は,21 1から7までの和は,28 1から8までの和は,36 計算終了! プログラミング演習:プログラム例 Dim i, n, s As Integer s = 0 Console.Write("n=") n = Console.ReadLine() i = 0 point1: i = i + 1 If i > n Then GoTo point2 s = s + i Console.WriteLine("1から{0}までの和は,s={1}", i, s) GoTo point1 point2: Console.WriteLine("計算終了!")
© Copyright 2024 ExpyDoc