C#の基本2 ~プログラムの制御構造~

Similar documents
C#の基本

スライド 1

Prog2_15th

Prog2_12th

PowerPoint プレゼンテーション

プロセス間通信

PowerPoint プレゼンテーション

ICONファイルフォーマット

LogisticaTRUCKServer-Ⅱ距離計算サーバ/Active-Xコントロール/クライアント 概略   

VB 資料 電脳梁山泊烏賊塾 音声認識 System.Speech の利用 System.Speech に依るディクテーション ( 音声を文字列化 ).NetFramework3.0 以上 (Visual Studio 2010 以降 ) では 標準で System.Speech が用意されて居るの

Prog2_4th

Microsoft PowerPoint - prog03.ppt

Visual Studio2008 C# で JAN13 バーコードイメージを作成 xbase 言語をご利用の現場でバーコードの出力が必要なことが多々あります xbase 言語製品によっては 標準でバーコード描画機能が付加されているものもあるようで す C# では バーコードフォントを利用したりバー

PowerPoint プレゼンテーション

ウィンドウ操作 応用

グラフィックトレーニング 概要.NET のグラフィック描画は どんなことができるのでしょうか? グラフィックオブジェクトやグラフィック環境 概念を理解するためには クラスを使って馴れることが近道です 本 書に記載されているコードをカットアンドペーストして 一つ一つの機能を体験してください 前提 グラ

// // GENES Version 1.00 突然変異と自然

ファイル操作

PowerPoint プレゼンテーション

Java講座

Java 基礎問題ドリル ~ メソッドを理解する ~ 次のプログラムコードに 各設問の条件にあうメソッドを追加しなさい その後 そのメソッドが正しく動作することを検証するためのプログラムコードを main メソッドの中に追加しなさい public class Practice { // ここに各設問

Prog2_2nd

<4D F736F F D20438CBE8CEA8D758DC F0939A82C282AB2E646F63>

Java プログラミング Ⅰ 3 回目変数 変数 変 数 一時的に値を記憶させておく機能型 ( データ型 ) と識別子をもつ 2 型 ( データ型 ) 変数の種類型に応じて記憶できる値の種類や範囲が決まる 型 値の種類 値の範囲 boolean 真偽値 true / false char 2バイト文

JavaプログラミングⅠ

プログラミング入門1

プログラミング入門1

gengo1-8

講習No.8

Microsoft Word - Training10_プリプロセッサ.docx

Microsoft PowerPoint Java基本技術PrintOut.ppt [互換モード]

Prog1_6th

プログラミングA

Microsoft PowerPoint - prog04.ppt

プログラミング入門1

(1) プログラムの開始場所はいつでも main( ) メソッドから始まる 順番に実行され add( a,b) が実行される これは メソッドを呼び出す ともいう (2)add( ) メソッドに実行が移る この際 add( ) メソッド呼び出し時の a と b の値がそれぞれ add( ) メソッド

D:\Documents\Visual Studio 2015\Projects\MyHomePage 用サンプル \ExcelAndWord\ExcelAndWord\MainForm.cs 1 /* */ Excel や Word とやりとりする ~9,20 仕様 Excel

Visual Studio Do-It-Yourself 第 9 回ユーザーコントロール 第 6 回のリソースから第 8 回のテンプレートで さまざまな方法でコントロールをカスタマズできるこ とを学びました 今回のテーマであるユーザーコントロールは 既存の一つのコントロールをカスタマ ズするのではな

Week 1 理解度確認クイズ解答 解説 問題 1 (4 2 点 =8 点 ) 以下の各問いに答えよ 問題 bit 版の Windows8.1 に Java をインストールする時 必要なパッケージはどれか 但し Java のコンパイルができる環境をインストールするものとする 1. jdk

4-4 while 文 for 文と同様 ある処理を繰り返し実行するためのものだが for 文と違うのは while 文で指定するのは 継続条件のみであるということ for 文で書かれた左のプログラムを while 文で書き換えると右のようになる /* 読込んだ正の整数値までカウントアップ (for

デジタル表現論・第4回

JavaプログラミングⅠ

スライド 1

break 文 switch ブロック内の実行中の処理を強制的に終了し ブロックから抜けます switch(i) 強制終了 ソースコード例ソースファイル名 :Sample7_1.java // 入力値の判定 import java.io.*; class Sample7_1 public stati

ガイダンス

<4D F736F F F696E74202D2097D58FB089E6919C8B5A8F708A E B8CDD8AB B83685D>

Microsoft PowerPoint - CproNt02.ppt [互換モード]

プログラミングA

Microsoft PowerPoint - C言語の復習(配布用).ppt [互換モード]

ガイダンス

...Visual Studio 2015\Projects\MyHomePage 用サンプル \Database(Access2)\Database(Access2)\MainForm.cs 2 れを含めておかないと Database への更新がきかない oadp.fill(dtbl); dgvk

平成 30 年度 プログラミング研修講座 岩手県立総合教育センター

問題1 以下に示すプログラムは、次の処理をするプログラムである

Java プログラミング Ⅰ 7 回目 switch 文と論理演算子 今日の講義講義で学ぶ内容 switch 文 論理演算子 条件演算子 条件判断文 3 switch 文 switch 文 式が case のラベルと一致する場所から直後の break; まで処理しますどれにも一致致しない場合 def

Microsoft PowerPoint - 計算機言語 第7回.ppt

練習問題 1-1 ヒント 解答方針 label1 の値を 10 増やすためには 次のように記述します label1.text = Convert.ToString(Convert.ToInt32(label1.Text) + 10); フォームのデザイン例 button2 button1 label

Microsoft PowerPoint - kougi7.ppt

Microsoft PowerPoint - program.ppt [互換モード]

デジタル表現論・第6回

char int float double の変数型はそれぞれ 文字あるいは小さな整数 整数 実数 より精度の高い ( 数値のより大きい より小さい ) 実数 を扱う時に用いる 備考 : 基本型の説明に示した 浮動小数点 とは数値を指数表現で表す方法である 例えば は指数表現で 3 書く

講習No.9

ポインタ変数

Microsoft Word - no103.docx

ガイダンス

cp-7. 配列

Abstract Kinect for Windows RGB Kinect for Windows v Kinect for Windows v2

DEMO1 まずはやってみよう アクティビティをダブルクリック 作成 - プロジェクト C# => Workflow CodeActivity をぽとぺ シーケンシャルと ステートマシン それぞれのコ ンソールアプリ あとライブラリがある びっくりマークは足りていないあかし プロパティをみると判別で

PowerPoint プレゼンテーション

メソッドのまとめ

C のコード例 (Z80 と同機能 ) int main(void) { int i,sum=0; for (i=1; i<=10; i++) sum=sum + i; printf ("sum=%d n",sum); 2

PowerPoint プレゼンテーション

Prog2_9th

Microsoft Word - 3new.doc

プログラミング基礎

2016 年度 JAVA 講座第六週目 目次 パッケージ... 2 パッケージの作成... 2 パッケージの使用方法... 3 異なるパッケージ同名クラスの宣言... 4 パッケージの側面から見たアクセス修飾子... 4 ラッパークラス... 5 ラッパークラス利用法:キャスト... 5 ラッパーク

JavaプログラミングⅠ

Microsoft Word - VBA基礎(6).docx

Javaによるアルゴリズムとデータ構造

2

Microsoft Word - no202.docx

プログラミングA

目次 はじめに... 3 システムの必要条件... 4 ライセンス認証... 4 アクティベーション... 6 開発... 7 手順 1. アプリケーションの作成... 7 手順 2. データソースの作成と代入... 7 手順 3. テンプレートの作成 手順 4. レポートビューアの追加

PowerPoint Presentation

Java Scriptプログラミング入門 3.6~ 茨城大学工学部情報工学科 08T4018Y 小幡智裕

Microsoft Word - VB.doc

Java プログラミング Ⅰ 3 回目変 数 今日の講義講義で学ぶ内容 変数とは 変数の使い方 キーボード入力の仕方 変 数 変 数 一時的に値を記憶させておく機能 変数は 型 ( データ型 ) と識別子をもちます 2 型 ( データ型 ) 変数に記憶する値の種類変数の型は 記憶できる値の種類と範囲

Microsoft PowerPoint ppt

プログラミング実習I

10/31 Java AWTの基本構造(Frameクラスの継承) 演習課題資料

1. 関数 scanf() 関数 printf() は変数の値を画面に表示しますが それに対し関数 scanf() はキーボードで入力した値を変数に代入します この関数を活用することで対話式 ( ユーザーの操作に応じて処理を行う ) プログラムを作ることができるようになります 整数の和

JavaプログラミングⅠ

PowerPoint プレゼンテーション

JavaプログラミングⅠ

Microsoft PowerPoint - ruby_instruction.ppt

PowerPoint プレゼンテーション

LogisticaTRUCKServer-Ⅱ距離計算サーバ/Active-Xコントロール/クライアント 概略   

Microsoft PowerPoint - prog03.ppt

C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ

Microsoft PowerPoint - 説明2_演算と型(C_guide2)【2015新教材対応確認済み】.pptx


Transcription:

C# の基本 2 ~ プログラムの制御構造 ~

今回学ぶ事 プログラムの制御構造としての単岐選択処理 (If 文 ) 前判定繰り返し処理(for 文 ) について説明を行う また 整数型 (int 型 ) 等の組み込み型や配列型についても解説を行う

今回作るプログラム 入れた文字の平均 分散 標準偏差を表示するプログラム このプログラムでは calc ボタンを押すと計算を行う (value は整数に限る )

フォーム作り まず label button textbox を配置する ツールボックスより左クリックで選択する そのまま フォーム上を左クリックすると設置することができる

フォーム作り配置例 textbox1 textbox5 textbox2 textbox6 textbox3 textbox7 textbox4

コード記述 前回と同様に button をクリックしたときに動作するプログラムを作成する そのため button をダブルクリックしコードを記載する ダブルクリック

コード記述 中央の button をダブルクリックすると以下の様なコードが表示される using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace test { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_click(object sender, EventArgs e) { } } }

コード記述 このコードに以下の様に記述する private void button1_click(object sender, EventArgs e) { int value1, value2, value3, value4; double sum; double ave,v,sd; value1 = int.parse(textbox1.text); value2 = int.parse(textbox2.text); value3 = int.parse(textbox3.text); value4 = int.parse(textbox4.text); sum = value1 + value2 + value3 + value4; ave = sum / 4; sum= (value1-ave)*(value1-ave)+(value2-ave)*(value2-ave)+(value3-ave)*(value3-ave)+(value4- ave)*(value4-ave); v = sum / 4; sd = Math.Sqrt(v); } textbox5.text = ave.tostring(); textbox6.text = v.tostring(); textbox7.text = sd.tostring();

コード解説 int value1, value2, value3, value4; double sum; double ave,v,sd; 今回使う数字の宣言を行う この value1 や sum といった文字に数字を代入することにより計算を行う このように 数字を代入するための文字の事を変数と呼ぶ Int double などは組み込み型と呼ばれるものであり文字が整数や実数であることを示す

コード解説組み込み型とは 以下に代表的な組み込み型を示す byte 型 (1 バイト ) は -128 ~127 の範囲 short 型 (2 バイト ) は -32768 ~32767 の範囲 int 型 (4 バイト ) は -2147483648 ~2147483647 の範囲 float 型は 4 バイトの実数型 double 型は 8 バイトの実数型 他にもさまざまな組み込み型が存在する

コード解説組み込み型とは 基本的には以下の様に宣言する int a; これは int( 整数 ) 型の変数 a を以降のプログラムで用いるという意味になる また 複数の変数を用いる場合には以下の様にも宣言することができる int a,b,c;

コード解説 value1 = int.parse(textbox1.text); value2 = int.parse(textbox2.text); value3 = int.parse(textbox3.text); value4 = int.parse(textbox4.text); このコードでは テキストボックスの内容を変数に代入している int.parse(~) を用いることにより文字で書かれた内容を数字 (int 型 ) に変換することができる

コード解説 sum = value1 + value2 + value3 + value4; ave = sum / 4; このコードでは 1 文目で sum にすべての和を代入している さらに 2 文目で ave に sum 4 の値を代入している つまり ave に平均が入ることが分かる

コード解説 sum= (value1-ave)*(value1-ave)+(value2-ave)*(value2-ave)+(value3-ave)*(value3- ave)+(value4-ave)*(value4-ave); v = sum / 4; 同様にこのコードではvに分散の値が入ることが分かる ここで * は掛け算を示している

コード解説 sd = Math.Sqrt(v); Math.Sqrt(~) は ~ の平方根を返す関数である この関数は Math クラスの Sqrt 関数という意味である つまり sd には 分散の平方根である標準偏差が入ることになる

コード解説 textbox5.text = ave.tostring(); textbox6.text = v.tostring(); textbox7.text = sd.tostring(); ave.tostring() とは 実数型である ave を文字に変換するという意味である これにより テキストボックスに記載することができる

コード改良 例えば 100 個や 1000 個の値の計算を行う時などこのコードでは書くのが面倒である そこで 配列型 for 文と呼ばれる技術によりコードの簡略化を図る 次ページに改良したコードを示す

private void button1_click(object sender, EventArgs e) { int[] value = new int[5]; double sum; double ave,v,sd; int n; value[0] = int.parse(textbox1.text); value[1] = int.parse(textbox2.text); value[2] = int.parse(textbox3.text); value[3] = int.parse(textbox4.text); sum = 0; n = 0; for (int i = 0; i < 4; i++) { sum = value[i] + sum; n=n+1; } ave = sum / n; n = 0; sum = 0; for (int i = 0; i < 4; i++) { sum = (value[i] - ave) * (value[i]- ave)+sum; n=n+1; } v = sum / n; sd = Math.Sqrt(v); textbox5.text = ave.tostring(); textbox6.text = v.tostring(); textbox7.text = sd.tostring(); }

コード解説 int[] value = new int[5]; Int[] は変数が配列型であることを示す この 1 文で int 型の value[0], value[1], value[2], value[3], value[4] の 5 個の変数を宣言したのと同様の意味になる

コード解説配列型 基本形は以下の様な構文である int[] a =new int[( 要素数 )]; double[] a =new double[( 要素数 )]; 配列型では添え字 (Index) によって変数を指定できるため繰り返し処理を行う時に便利 new は配列のメモリ領域を確保するという意味である

コード解説繰り返し処理 sum = 0; n = 0; for (int i = 0; i < 4; i++) { sum = value[i] + sum; n++; } ave = sum / n;

コード解説繰り返し処理 for(int i=0;i<n;i++){~} 変数 i が 0 から N-1(i<N であるため ) まで 1 ずつ増加しながら N 回実行する int i の様に C# では同時に宣言を行うことができる (C 言語ではできなかった ) 画像処理では最も良く使う構文の一つである

sum = 0; n = 0; for (int i = 0; i < 4; i++) { sum = value[i] + sum; n=n+1; } ave = sum / n; つまりこのプログラムではsumにvalue[0]~ value[3] までの和が nには繰り返し回数 ( 今回は4) が入ることになる よって aveには平均が入ることが分かる

sum = 0; n = 0; for (int i = 0; i < 4; i++) { sum = value[i] + sum; n=n+1; } ave = sum / n; また 変数は宣言された時点では0が入っているとは限らない sum nが0でないと困るため始めに0を代入しておく この作業を初期化と呼ぶ

n = 0; sum = 0; for (int i = 0; i < 4; i++) { sum = (value[i] - ave) * (value[i]- ave)+sum; n=n+1; } v = sum / n; sd = Math.Sqrt(v); 同様に ここでは分散を算出する際にfor 文を用いていることが分かる v sdを求める作業は同じである

プログラムの追加 次に value1~value4 までのうち最大値となる値を求めるプログラムを作る (value は整数に限る )

フォーム作り textbox label を配置する ツールボックスより左クリックで選択する そのまま フォーム上を左クリックすると設置することができる

配置例 textbox8

コードの記載 ここまでのコードの textbox7.text = sd.tostring(); の下に以下のコードをそのまま追加する int max=value[0]; for (int i = 0; i < 4; i++) { if (max < value[i]) max = value[i]; } textbox8.text = max.tostring();

int max=value[0]; for (int i = 0; i < 4; i++) { if (max < value[i]) max = value[i]; } textbox8.text = max.tostring(); ここでは if 文が用いられている if 文の基本構文は以下の様になる if ( A ) B ; この文はAが正しければ Bを行うという意味になる また Bが複数の文に分かれる場合には このような 書き方もできる if( A ){B; C;}

int max=value[0]; for (int i = 0; i < 4; i++) { if (max < value[i]) max = value[i]; } textbox8.text = max.tostring(); つまり このコードでは すべての value について比較を行い今までの最大値 (max) より大きければ max に新しく代入しなさい という意味になる

まとめ 今回は繰り返し処理として for 文 選択処理として if 文を取り上げた C# には今回取り上げた制御構文以外にも while 文 do~while 文 switch case 文等様々な制御構文があるため各自調べてください また 組み込み型 配列型に関しても解説を行った