Microsoft PowerPoint pptx[読み取り専用]
|
|
|
- まいか かがんじ
- 7 years ago
- Views:
Transcription
1 情報処理 Ⅱ 第 8 回 2009 年 12 月 7 日 ( 月 )
2 本日学ぶこと 関数と変数 目的 関数を自分で定義し, 変数の利用方法 範囲を明示的に制限することで, 適切な機能分割 ( モジュール化, 再利用 ) を図る. してはいけないこと 問題 main 関数のみで 100 行以上のプログラム グローバル変数を駆使するプログラム プログラムを読みやすくする 保守性向上 多項式関数 f(x) = c 0 + c 1 x + c 2 x c n x n と実数 a が与えられたときに,f(a) を計算できる? 次数 nの異なる様々な関数に対して, 求められる? 入 p.109 2
3 関数 (Function) 関数の分類 自作関数 : 自分で定義する. 本日のテーマ ライブラリ関数 : 出来合いのもの.printf など. なぜ関数を定義するのか? 処理を共通化 ( 一般化 ) する プログラムの見通しをよくする main 関数がないとプログラムは動かない 入 pp リ p.346 3
4 関数定義の方法 構文 : 型名関数名 ( 引数並び ) { 文...} 型名は, 関数の戻り値の型. 値を返さないときは,void と書く. 引数並びは, 型名変数名 をカンマで区切ったもの. 引数がないときは,void と書く. 例 : double myatof(const char *str0) { } 例 : void procedure(int x, int y) { } 一括の変数宣言と異なり, このintは省略できない. リ pp
5 void 型 voidは 何もない や 無効な値 を表す型名 void x; 用途 void *x; 関数が引数や戻り値を持たないことを明示するとき void exit(int status); void procedure(void); 任意のポインタ型を表現するとき void *p; void *malloc(size_t size); プログラムを終了するライブラリ関数. 通常,exit(0); もしくは exit(1); のいずれかで呼び出す. 入 p.274 リ p.349, p.300, p.498, p.501 5
6 関数の呼び出し 関数定義の例 : double f(double x) {return x+1;} 関数呼び出しの例 :b=f(a); 変数 aの値を引数として, 関数 f を呼び出し, その戻り値を, 変数 bに代入する. x を関数 f の仮引数 (parameter), a を関数 f の実引数 (argument) という. これらを区別する必要のないときは, ともに引数引数という. 仮引数の宣言には型名も書く. 実引数には書かない. x = a; の代入を行ってから, 関数本文の処理に入る. 関数の処理が終われば, 変数 x ( のオブジェクト ) は消滅する. x = f(x); と書いてもよい. このとき, 仮引数の x と, 実引数の x ( あらかじめ定義しておく ) は, 別のオブジェクトである. 入 pp リ pp
7 return 関数処理中に return 値 ; があれば, そこで関数の処理を終え, 値を戻り値 (return value) とする. 値の前後にカッコは不要. 戻り値の型が void なら, return; と書ける. 戻り値の型がvoid 以外なら, 必ずreturn 値 ; で処理を終えるように書く. リ p.267 7
8 引数の授受 Cの関数呼び出しでは必ず値渡し (call by value) になる. 値渡し : 実引数のコピーコピーが仮引数に格納される. その後, 仮引数の値を変更しても, 実引数の値には影響しない. 参照渡し (call by reference) をしたければ, ポインタ値を引数とすればよい. 参照渡し : 仮引数の値を変更すれば, 実引数の値もそれに変わる.CC ではこの意味での参照渡しをすることができないが, ポインタ値を渡すことで, その参照先の値を変えることができる. アドレス渡しともいう. 入 p.277, p.285 リ pp
9 二つの値を交換する関数 値渡し 失敗 引数は関数内の仮引数にコピーされる. 関数内の仮引数の中で, 値を交換しても, 関数の外のオブジェクトは変更されない. 参照渡し 成功 関数の仮引数は, 指し示す先を持つ. * ポインタ変数 = 値 とすることで, ポインタ変数が指し示す ( 関数の外の ) オブジェクトに値を代入する. swapint.c 9
10 値渡しで失敗する理由 (1) コード ( 抜粋 ) void swapint_bad(int x, int y) { int tmp; swapint _ bad tmp = x; x = y; y = tmp; } x = 1, y = -1; swapint_bad(x, y); x = 1 y =-1 main 入 p
11 値渡しで失敗する理由 (2) コード ( 抜粋 ) void swapint_bad(int x, int y) { int tmp; tmp = x; x = y; y = tmp; } swapint _ bad x = 1 y = -1 x = 1, y = -1; swapint_bad(x, y); x = 1 y =-1 main 入 p
12 値渡しで失敗する理由 (3) コード ( 抜粋 ) void swapint_bad(int x, int y) { int tmp; tmp = x; x = y; y = tmp; } swapint _ bad x = 1 y = -1 tmp x = 1, y = -1; swapint_bad(x, y); x = 1 y =-1 main 入 p
13 値渡しで失敗する理由 (4) コード ( 抜粋 ) void swapint_bad(int x, int y) { int tmp; } tmp = x; x = y; y = tmp; swapint _ bad x = 1 tmp=1 y = -1 x = 1, y = -1; swapint_bad(x, y); x = 1 y =-1 main 入 p
14 値渡しで失敗する理由 (5) コード ( 抜粋 ) void swapint_bad(int x, int y) { int tmp; } tmp = x; x = y; y = tmp; swapint _ bad x = -11 tmp=1 y = -1 x = 1, y = -1; swapint_bad(x, y); x = 1 y =-1 main 入 p
15 値渡しで失敗する理由 (6) コード ( 抜粋 ) void swapint_bad(int x, int y) { int tmp; } tmp = x; x = y; y = tmp; swapint _ bad x = -11 y = -11 tmp=1 x = 1, y = -1; swapint_bad(x, y); x = 1 y =-1 main 入 p
16 値渡しで失敗する理由 (7) コード ( 抜粋 ) void swapint_bad(int x, int y) { int tmp; } tmp = x; x = y; y = tmp; swapint _ bad x = -11 y = -11 tmp=1 x = 1, y = -1; swapint_bad(x, y); x = 1 y =-1 main 入 p
17 参照渡しで成功する理由 (1) コード ( 抜粋 ) void swapint_good(int *px px, int *py py) { int tmp; swapint_good tmp = *px px; *px = *py py; *py = tmp; } x = 1, y = -1; swapint_good(&x, &y); x = 1 y =-1 main リ p
18 参照渡しで成功する理由 (2) コード ( 抜粋 ) void swapint_good(int *px px, int *py py) { int tmp; tmp = *px px; *px = *py py; *py = tmp; } swapint_good px py x = 1, y = -1; swapint_good(&x, &y); x = 1 y =-1 main リ p
19 参照渡しで成功する理由 (3) コード ( 抜粋 ) void swapint_good(int *px px, int *py py) { int tmp; tmp = *px px; *px = *py py; *py = tmp; } swapint_good px py tmp x = 1, y = -1; swapint_good(&x, &y); x = 1 y =-1 main リ p
20 参照渡しで成功する理由 (4) コード ( 抜粋 ) void swapint_good(int *px px, int *py py) { int tmp; } tmp = *px px; *px = *py py; *py = tmp; swapint_good px tmp=1 x = 1, y = -1; swapint_good(&x, &y); x = 1 y =-1 py main リ p
21 参照渡しで成功する理由 (5) コード ( 抜粋 ) void swapint_good(int *px px, int *py py) { int tmp; } tmp = *px px; *px = *py py; *py = tmp; swapint_good px tmp=1 x = 1, y = -1; swapint_good(&x, &y); x =-1= y =-1 py main リ p
22 参照渡しで成功する理由 (6) コード ( 抜粋 ) void swapint_good(int *px px, int *py py) { int tmp; } tmp = *px px; *px = *py py; *py = tmp; swapint_good px tmp=1 x = 1, y = -1; swapint_good(&x, &y); x =-1= y =-1= 1 py main リ p
23 参照渡しで成功する理由 (7) コード ( 抜粋 ) void swapint_good(int *px px, int *py py) { int tmp; } tmp = *px px; *px = *py py; *py = tmp; swapint_good px tmp=1 x = 1, y = -1; swapint_good(&x, &y); x =-1= y =-1= 1 py main リ p
24 main 関数の型 main 関数の ( 戻り値の ) 型は,int とする. void main とする本も多いが, 規格上適切ではない. 正常終了は return 0; と書き, 異常終了は return 1; と書くのが一般的. main 関数が返す値, およびexit 関数の引数は, 終了ステータス (exit status) と呼ばれる. Linuxなら, コマンド実行後, echo $? を実行することでその値を確認できる. コンパイルが成功したときに限り, ファイルを実行する が一つのコマンドで書ける リ pp
25 関数定義の順番 呼び出す関数は, 呼び出す前に ( プログラムファイルの上のほうで ) 宣言されていなければならない. 対策 宣言や定義がない場合は,int 関数名 (); とみなして呼び出しを試みる. 呼び出す順序に注意して関数を並べる. 関数プロトタイプを使用する. 25
26 関数プロトタイプ (Function prototype) 関数原型 ともいう 構文 : 型名関数名 ( 引数の型の並び ); セミコロンを忘れずに 引数の型の並び は, 引数 ( 型と変数 ) の並び でもよい. このとき変数名は無視される. 一般に, 各関数の定義より前 ( 上 ) に記述する. 例 : int swapint_good(int *, int *); 関数プロトタイプを用いることで, 関数定義の順番を気にすることなくプログラムを記述できる. 関数の入出力が明確になる. 入 pp リ pp
27 変数 (Variable) 識別子 オブジェクト 識別子 (Identifier): 変数名, 関数名, 型定義名などの 名前 識別子とオブジェクト (Object) の違い 識別子は, プログラムファイル ( 静的 ) で記述される ラベル オブジェクトは, プログラム実行中 ( 動的 ) に生成される 実体 同一の識別子に対して複数のオブジェクトが生成されることもある. 宣言により, 変数ならそのオブジェクト, 関数ならその実行コードが, 記憶域 ( メモリ ) 上に割り当てられるとき, その宣言を特に定義定義という. 関数プロトタイプや,externを用いた変数や関数の宣言, 構造体などの独自型定義は, この意味で定義ではない. 入 p.223 リ p.37, pp
28 変数を宣言 定義する際の注意点 型は何か? グローバルかローカルか? auto( 自動 ) か static( 静的 ) か extern( 外部 ) か? リ pp
29 グローバル変数とローカル変数 各変数は, 定義された位置によって, 有効範囲 (scope) を持つ. グローバル変数 あらゆるブロックの外で定義された変数. 有効範囲はファイル末尾まで. ローカル変数 ブロックの中で定義された変数. 有効範囲はブロック終了まで. ブロックの中 とは, { と } で挟まれた領域のこと 関数の仮引数もローカル変数 グローバル - global l - 大域的 - あらゆるブロックの外 ローカル - local - 局所的 - あるブロックの中 入 pp リ pp
30 識別子の宣言に関するルールル グローバルに同一の識別子を複数宣言できない. 一つのブロック内に, 同一の識別子を複数宣言できない. 関数はブロック内で定義できない. 必ずグローバル区間での定義となる. GCC( 演習室のコンパイラ ) では, 関数の中に関数を定義できるが, 使用しないこと! ブロック内に変数を定義するときは, それより外にある同一の識別子と重複してもよい. ただし, 外にある同一の識別子は参照できない. モジュール化に関して有用なルール. リ p.114, p
31 型の属性 記憶域クラス extern, static, auto, register 型修飾子 const, volatile 例 : extern void function1(const char *); int x(void) {static ti int c=0;...} リ p
32 記憶域クラス (1) auto: そのオブジェクトの生存期間は自動記憶域期間である. 積極的に auto を書くことはない. static: そのオブジェクトの生存期間は静的記憶域期間である. 必要なときに使う. extern: 他の場所で宣言された識別子を使用する. 分割コンパイルで不可欠. プログラムが複数のソースファイルで構成されることがある. 大規模プログ externとstaticは, 関数にラミングでは当たり前だが, 本授業で対しても指定できる. は実例を出さない. リ p
33 記憶域クラス (2) 静的記憶域期間 ( 静的変数,static 変数 ) static を指定した変数と, グローバル変数が該当する. プログラムの実行に先立ち, オブジェクトが生成され, 初期値が設定される. プログラム終了まで破棄されない. 初期値を指定しないオブジェクトには 0 が代入される. 初期値は, コンパイル時に計算可能な定数式でなければならない. 自動記憶域期間 ( 自動変数,auto 変数 ) auto を指定した変数,static や extern の指定なくブロック内で定義した変数と, 関数の仮引数が該当する. 宣言文を実行するたびに, オブジェクトが生成され, 初期値があれば毎回初期化される. ブロックを終えると, 破棄される. 初期値を指定しないオブジェクトの初期値は不定. 初期値は任意の計算式でよい. 入 pp リ p.110, pp
34 有効範囲? 記憶域クラス? ここで問題 ( 小テストではありません ) グローバルな静的変数は, 定義 できる できない. グローバルな自動変数は, 定義 できる できない. ローカルな静的変数は, 定義 できる できない. ローカルな自動変数は, 定義 できる できない. ローカルな静的変数の用途 ブロック内で情報を保存しておき, あとで利用する. 動的に確保することなく, 配列領域を戻り値とする. 自動変数では扱いきれない大容量オブジェクト (100 万個の int 配列など ) を取り扱う. リ pp
35 配列の自動変数 (1) 関数の中で配列変数を定義すれば, 関数処理の中で確保され, 関数処理が終わると破棄されるような配列が作られる. void print_message(void) { } char message[] = "Wakayama"; printf("%s n" n", message); print_message message 'W' 'a' 'k' 'a' 'y' 'a' 'm' 'a' ' 0' 35
36 配列の自動変数 (2) 関数の仮引数に配列変数を書けば, その配列と型が適合するポインタ変数になる. void print_message(char message[]) { printf("%s n", message); } 宣言の形は不完全型実体はポインタ変数 要素数 ( 多次元配列の場合は左端のみ ) は無視される. 要素数なし 初期化なし ( 不完全型 ) でもよい. print_message message 'W' 'a' 'k' 'a' 'y' 'a' 'm' 'a' ' 0' リ pp
37 多項式の計算 仕様 多項式関数 f(x) = c n n-1 n x + c n-1 x + + c 1 x + c 0 と実数 aが与えられたときに,f(a) を計算する. 考え方 係数 c 0, c 1, c 2, c n を, 配列変数で保持する. c i は,xx の i 次の係数 f(a) = ( (c n * a) + c n-1 ) * a + ) + c 0 により求め ( ホーナー法 ), 乗算の回数を減らす. v 0 = c n v 1 = v 0 * a + c n-1 v 2 = v 1 * a + c n-2 = c n *a*a + c n-1 *a + c n-2 v i = v i-1 * a + c n-i polynomial1.c 37
38 コード ( 抜粋 ) 多項式の計算を行う関数 係数の配列 ( の先頭を指し示すポインタ変数 ) double calc(double f[], int size, double x) { f の配列の要素数 double val; (xの次数 +1) int i; val = f[size - 1]; v c n for(i = size - 2; i >= 0; i--){ val = val * x + f[i]; } return val; } f(x) を求める (xの次数 + 1) ためのx の値 v v*x + c n-i v = f(x) = c n x n + c n-1 x n c n x+c 0 関数定義の効果 : 異なる次数の多項式でも, 一つの (Cの) 関数 calc により, 値を求められる. polynomial2.c 38
39 変数の有効範囲の補足 破棄されるまでは, ブロックの外からでも ( ポインタなどで間接的に ) オブジェクトの参照や値の書き換えができる. ポインタによる参照渡しが可能となる. 関数内の自動変数に対応するオブジェクトは, 関数処理が行われるたびに生成される. 再帰呼び出しをする関数 が構成できる. 何らかの関数の中 message message[0] = 'w'; としてよい wakayama 'W' 'a'' 'k' 'a'' 'y'' 'a'' 'm'' 'a'' ' 0' リ p
40 まとめ 関数を自分で定義し呼び出すとき, どのような点に注意しなければならないか? 参照渡しにはポインタが不可欠であるのはなぜか? グローバル変数とローカル変数, 静的変数と自動変数の違いは何か? グローバルな自動変数は存在するか? 関数の中で配列を扱うとき, どのような点に注意しなければならないか? 40
Microsoft PowerPoint - 09.pptx
情報処理 Ⅱ 第 9 回 2014 年 12 月 22 日 ( 月 ) 関数とは なぜ関数 関数の分類 自作関数 : 自分で定義する. ユーザ関数 ユーザ定義関数 などともいう. 本日のテーマ ライブラリ関数 : 出来合いのもの.printf など. なぜ関数を定義するのか? 処理を共通化 ( 一般化 ) する プログラムの見通しをよくする 機能分割 ( モジュール化, 再利用 ) 責任 ( あるいは不具合の発生源
情報処理 Ⅱ 2007 年 11 月 26 日 ( 月 )
情報処理 Ⅱ 2007 年 11 月 26 日 ( 月 ) 本日学ぶこと 関数と変数 目的 関数を自分で定義し, 変数の利用方法 範囲を明示的に制限することで, 適切な機能分割 ( モジュール化, 再利用 ) を図る. してはいけないこと main 関数のみで 100 行以上のプログラム グローバル変数を駆使するプログラム プログラムを読みやすくする 保守性向上 入 p.109 2 関数 (Function)
プログラミング実習I
プログラミング実習 I 05 関数 (1) 人間システム工学科井村誠孝 [email protected] 関数とは p.162 数学的には入力に対して出力が決まるもの C 言語では入出力が定まったひとまとまりの処理 入力や出力はあるときもないときもある main() も関数の一種 何かの仕事をこなしてくれる魔法のブラックボックス 例 : printf() 関数中で行われている処理の詳細を使う側は知らないが,
/*Source.cpp*/ #include<stdio.h> //printf はここでインクルードして初めて使えるようになる // ここで関数 average を定義 3 つの整数の平均値を返す double 型の関数です double average(int a,int b,int c){
ソフトゼミ A 第 6 回 関数 プログラムは関数の組み合わせでできています 今までのゼミAでも printf や scanf など様々な関数を使ってきましたが なんと関数は自分で作ることもできるのです!! 今日は自作関数を中心に扱っていきます ゲーム制作でも自作関数は避けては通れないので頑張りましょう そもそもまず 関数とは 基本的には 受け取った値に関数によって定められた操作をして その結果の値を返す
gengo1-11
関数の再帰定義 自然数 n の階乗 n! を計算する関数を定義してみる 引数は整数 返却値も整数 n! = 1*2*3*... * (n 1)*n である ただし 0! = 1 とする int factorial(int n) int i, tmp=1; if( n>0 ) for(i=1; i
(1) プログラムの開始場所はいつでも main( ) メソッドから始まる 順番に実行され add( a,b) が実行される これは メソッドを呼び出す ともいう (2)add( ) メソッドに実行が移る この際 add( ) メソッド呼び出し時の a と b の値がそれぞれ add( ) メソッド
メソッド ( 教科書第 7 章 p.221~p.239) ここまでには文字列を表示する System.out.print() やキーボードから整数を入力する stdin.nextint() などを用いてプログラムを作成してきた これらはメソッドと呼ばれるプログラムを構成する部品である メソッドとは Java や C++ などのオブジェクト指向プログラミング言語で利用されている概念であり 他の言語での関数やサブルーチンに相当するが
02: 変数と標準入出力
C プログラミング入門 基幹 2 ( 月 4) 11: 動的メモリ確保 Linux にログインし 以下の講義ページを開いておくこと http://www-it.sci.waseda.ac.jp/ teachers/w483692/cpr1/ 2014-06-22 1 まとめ : ポインタを使った処理 内容 説明 呼び出し元の変数を書き換える第 9 回 文字列を渡す 配列を渡す 第 10 回 ファイルポインタ
Microsoft PowerPoint ppt
基礎演習 3 C 言語の基礎 (5) 第 05 回 (20 年 07 月 07 日 ) メモリとポインタの概念 ビットとバイト 計算機内部では データは2 進数で保存している 計算機は メモリにデータを蓄えている bit 1bit 0 もしくは 1 のどちらかを保存 byte 1byte 1bitが8つ集まっている byte が メモリの基本単位として使用される メモリとアドレス メモリは 1byte
02: 変数と標準入出力
C プログラミング入門 基幹 7 ( 水 5) 13: 構造体 Linux にログインし 以下の講義ページを開いておくこと http://www-it.sci.waseda.ac.jp/ teachers/w483692/cpr1/ 2016-07-06 1 例題 : 多角形の面積 n = 5 (5 角形 ) の例 n 1 n 1 1 p 1 T 0 S = i=0 p 0 T i = i=0 2
バイオプログラミング第 1 榊原康文 佐藤健吾 慶應義塾大学理工学部生命情報学科
バイオプログラミング第 1 榊原康文 佐藤健吾 慶應義塾大学理工学部生命情報学科 ポインタ変数の扱い方 1 ポインタ変数の宣言 int *p; double *q; 2 ポインタ変数へのアドレスの代入 int *p; と宣言した時,p がポインタ変数 int x; と普通に宣言した変数に対して, p = &x; は x のアドレスのポインタ変数 p への代入 ポインタ変数の扱い方 3 間接参照 (
RX ファミリ用 C/C++ コンパイラ V.1.00 Release 02 ご使用上のお願い RX ファミリ用 C/C++ コンパイラの使用上の注意事項 4 件を連絡します #pragma option 使用時の 1 または 2 バイトの整数型の関数戻り値に関する注意事項 (RXC#012) 共用
RX ファミリ用 C/C++ コンパイラ V.1.00 Release 02 ご使用上のお願い RX ファミリ用 C/C++ コンパイラの使用上の注意事項 4 件を連絡します #pragma option 使用時の 1 または 2 バイトの整数型の関数戻り値に関する注意事項 (RXC#012) 共用体型のローカル変数を文字列操作関数で操作する場合の注意事項 (RXC#013) 配列型構造体または共用体の配列型メンバから読み出した値を動的初期化に用いる場合の注意事項
PowerPoint プレゼンテーション
講座準備 講座資料は次の URL から DL 可能 https://goo.gl/jnrfth 1 ポインタ講座 2017/01/06,09 fumi 2 はじめに ポインタはC 言語において理解が難しいとされる そのポインタを理解することを目的とする 講座は1 日で行うので 詳しいことは調べること 3 はじめに みなさん復習はしましたか? 4 & 演算子 & 演算子を使うと 変数のアドレスが得られる
02: 変数と標準入出力
C プログラミング入門 総機 1 ( 月 1) 11: 動的メモリ確保 Linux にログインし 以下の講義ページを開いておくこと http://www-it.sci.waseda.ac.jp/ teachers/w483692/cpr1/ 2015-06-22 1 まとめ : ポインタを使った処理 内容 説明 呼び出し元の変数を書き換える第 9 回 文字列を渡す 配列を渡す 第 10 回 ファイルポインタ
Microsoft PowerPoint - CproNt02.ppt [互換モード]
第 2 章 C プログラムの書き方 CPro:02-01 概要 C プログラムの構成要素は関数 ( プログラム = 関数の集まり ) 関数は, ヘッダと本体からなる 使用する関数は, プログラムの先頭 ( 厳密には, 使用場所より前 ) で型宣言 ( プロトタイプ宣言 ) する 関数は仮引数を用いることができる ( なくてもよい ) 関数には戻り値がある ( なくてもよい void 型 ) コメント
memo
数理情報工学演習第一 C プログラミング演習 ( 第 5 回 ) 2015/05/11 DEPARTMENT OF MATHEMATICAL INFORMATICS 1 今日の内容 : プロトタイプ宣言 ヘッダーファイル, プログラムの分割 課題 : 疎行列 2 プロトタイプ宣言 3 C 言語では, 関数や変数は使用する前 ( ソースの上のほう ) に定義されている必要がある. double sub(int
プログラミング及び演習 第1回 講義概容・実行制御
プログラミング及び演習 第 7 回ポインタ ( 教科書第 10 章 ) (2014/05/23) 講義担当情報連携統轄本部情報戦略室大学院情報科学研究科メディア科学専攻教授森健策 本日の講義 演習の内容 ポインタ ポインタ第 10 章 講義 演習ホームページ http://www.newves.org/~mori/14programming ところで, さあ いよいよポインタです コツさえわかれば難しくないので安心してください
Microsoft PowerPoint - lec10.ppt
今日の内容, とポインタの組み合わせ, 例題 1. 住所録例題 2. と関数とは. を扱う関数. 例題 3. のリスト とポインタの組み合わせ 今日の到達目標 自分で を定義する 自分で定義したについて, 配列やポインタを作成する データ型 基本データ型 char 文字 (1 文字 ) int 整数 double 浮動小数など その他のデータ型配列 データの並び ( 文字列も, 文字の並び ) ポインタ
第 2 章インタフェース定義言語 (IDL) IDL とは 言語や OS に依存しないインタフェース定義を行うためのインタフェース定義言語です CORBA アプリケーションを作成する場合は インタフェースを定義した IDL ファイルを作成する必要があります ここでは IDL の文法や IDL ファイ
第 2 章インタフェース定義言語 (IDL) IDL とは 言語や OS に依存しないインタフェース定義を行うためのインタフェース定義言語です CORBA アプリケーションを作成する場合は インタフェースを定義した IDL ファイルを作成する必要があります ここでは IDL の文法や IDL ファイルの作成方法 コンパイル方法について説明します IDL ファイルの作成にあたっては INTERSTAGE
プログラミング基礎I(再)
山元進 クラスとは クラスの宣言 オブジェクトの作成 クラスのメンバー フィールド 変数 配列 メソッド メソッドとは メソッドの引数 戻り値 変数の型を拡張したもの 例えば車のデータベース 車のメーカー 車種 登録番号などのデータ データベースの操作 ( 新規データのボタンなど ) プログラムで使う部品の仕様書 そのクラスのオブジェクトを作ると初めて部品になる 継承 などの仕組みにより カスタマイズが安全
数はファイル内のどの関数からでも参照できるので便利ではありますが 変数の衝突が起こったり ファイル内のどこで値が書き換えられたかわかりづらくなったりなどの欠点があります 複数の関数で変数を共有する時は出来るだけ引数を使うようにし グローバル変数は プログラムの全体の状態を表すものなど最低限のものに留
第 10 章分割コンパイル 1 ソースを分割する今まで出てきたソースは全て一つのソースファイルにソースを記述してきました しかし ソースが長くなっていくと全てを一つのファイルに書くと読みづらくなります そこで ソースを複数のファイルに分割してコンパイルを行う分割コンパイルをします 今章は章名にもなっている 分割コンパイルの方法についてやります 分割コンパイルする時は大抵 関連性のある機能ごとにファイルにまとめます
cp-7. 配列
cp-7. 配列 (C プログラムの書き方を, パソコン演習で学ぶシリーズ ) https://www.kkaneko.jp/cc/adp/index.html 金子邦彦 1 本日の内容 例題 1. 月の日数配列とは. 配列の宣言. 配列の添え字. 例題 2. ベクトルの内積例題 3. 合計点と平均点例題 4. 棒グラフを描く配列と繰り返し計算の関係例題 5. 行列の和 2 次元配列 2 今日の到達目標
第1回 プログラミング演習3 センサーアプリケーション
C プログラミング - ポインタなんて恐くない! - 藤田悟 [email protected] 目標 C 言語プログラムとメモリ ポインタの関係を深く理解する C 言語プログラムは メモリを素のまま利用できます これが原因のエラーが多く発生します メモリマップをよく頭にいれて ポインタの動きを理解できれば C 言語もこわくありません 1. ポインタ入門編 ディレクトリの作成と移動 mkdir
PowerPoint Presentation
工学部 6 7 8 9 10 組 ( 奇数学籍番号 ) 担当 : 長谷川英之 情報処理演習 第 7 回 2010 年 11 月 18 日 1 今回のテーマ 1: ポインタ 変数に値を代入 = 記憶プログラムの記憶領域として使用されるものがメモリ ( パソコンの仕様書における 512 MB RAM などの記述はこのメモリの量 ) RAM は多数のコンデンサの集合体 : 電荷がたまっている (1)/ いない
Java 基礎問題ドリル ~ メソッドを理解する ~ 次のプログラムコードに 各設問の条件にあうメソッドを追加しなさい その後 そのメソッドが正しく動作することを検証するためのプログラムコードを main メソッドの中に追加しなさい public class Practice { // ここに各設問
Java 基礎問題ドリル ~ メソッドを理解する ~ 次のプログラムコードに 各設問の条件にあうメソッドを追加しなさい その後 そのメソッドが正しく動作することを検証するためのプログラムコードを main メソッドの中に追加しなさい public class Practice { // ここに各設問のメソッドを追加する public static void main(string[] args) {
ファイル入出力
C プログラミング Ⅱ の基礎 とは ファイルへデータを書き込んだり ( 出力 ), ファイルからデータを読み込んだり ( 入力 ) する C 言語では キーボードからの入力 画面への出力と同じようなコードで 処理を実現できる プログラム 入力 出力 ファイル 出力 入力 2 入出力の基本 ストリーム プログラム上で様々な装置への入出力を行う機構様々な入出力装置を統一的な方法で扱うことができる ハードディスクなどではファイルデータによって入出力が行われる
PowerPoint Presentation
ファイルの入出力 芝浦工業大学情報工学科 青木義満 今回の講義内容 ファイル入出力 ファイルからのデータ読込み ファイルと配列 2 1 ファイルへのデータ書き込み ( 復習 ) ソースファイル名 :fileio1.c データをファイルに書き込み #include int main(void) { ファイルポインタ宣言 int student_id = 100; char name[
PowerPoint プレゼンテーション
プログラミング応用演習 第 4 回再帰的構造体 プログラミングを 余談 : 教えることの難しさ 丁寧に説明しないと分かってもらえない 説明すると 小難しくなる学生が目指すべきところプログラム例を説明されて理解できる違うやり方でも良いので自力で解決できる おっけー 動けば良い という意識でプログラミング 正しく動くことのチェックは必要 解答例と自分のやり方との比較が勉強になる 今日のお題 再帰的構造体
Microsoft PowerPoint - chap10_OOP.ppt
プログラミング講義 Chapter 10: オブジェクト指向プログラミング (Object-Oriented Programming=OOP) の入り口の入り口の入り口 秋山英三 F1027 1 例 : 部屋のデータを扱う // Test.java の内容 public class Test { public static void main(string[] args) { double length1,
た場合クラスを用いて 以下のように書くことが出来る ( 教科書 p.270) プログラム例 2( ソースファイル名 :Chap08/AccountTester.java) // 銀行口座クラスとそれをテストするクラス第 1 版 // 銀行口座クラス class Account String name
クラス ( 教科書第 8 章 p.267~p.297) 前回は処理をまとめる方法として メソッドについて学習した 今回はメソッドとその処理の対象となるデータをまとめるためのクラスについて学習する このクラスはオブジェクト指向プログラミングを実現するための最も重要で基本的な技術であり メソッドより一回り大きなプログラムの部品を構成する 今回はクラスにおけるデータの扱いとクラスの作成方法 使用方法について説明していく
char int float double の変数型はそれぞれ 文字あるいは小さな整数 整数 実数 より精度の高い ( 数値のより大きい より小さい ) 実数 を扱う時に用いる 備考 : 基本型の説明に示した 浮動小数点 とは数値を指数表現で表す方法である 例えば は指数表現で 3 書く
変数 入出力 演算子ここまでに C 言語プログラミングの様子を知ってもらうため printf 文 変数 scanf 文 if 文を使った簡単なプログラムを紹介した 今回は変数の詳細について習い それに併せて使い方が増える入出力処理の方法を習う また 演算子についての復習と供に新しい演算子を紹介する 変数の宣言プログラムでデータを取り扱う場合には対象となるデータを保存する必要がでてくる このデータを保存する場所のことを
JavaプログラミングⅠ
Java プログラミング Ⅰ 12 回目クラス 今日の講義で学ぶ内容 クラスとは クラスの宣言と利用 クラスの応用 クラス クラスとは 異なる複数の型の変数を内部にもつ型です 直観的に表現すると int 型や double 型は 1 1 つの値を管理できます int 型の変数 配列型は 2 5 8 6 3 7 同じ型の複数の変数を管理できます 配列型の変数 ( 配列変数 ) クラスは double
Microsoft Word - Cプログラミング演習(12)
第 12 回 (7/9) 4. いくつかのトピック (5)main 関数の引数を利用したファイル処理 main 関数は, 起動する環境から引数を受け取ることができる 例えば 次に示すように,main 関数に引数を用いたプログラムを作成する 01 /* sample */ 02 /* main 関数の引数 */ 03 #include 04 05 main(int argc, char
Microsoft PowerPoint - prog06.ppt
プログラミング言語 2 第 06 回 (2007 年 06 月 11 日 ) 今日の配布物 片面の用紙 1 枚 今日の課題が書かれています 本日の出欠を兼ねています 1 今日やること http://www.tnlab.ice.uec.ac.jp/~s-okubo/class/language/ にアクセスすると 教材があります 2007 年 06 月 11 日分と書いてある部分が 本日の教材です 本日の内容
Javaプログラムの実行手順
戻り値のあるメソッド メソッドには 処理に使用する値を引数として渡すことができました 呼び出し 側からメソッドに値を渡すだけでなく 逆にメソッドで処理を行った結果の値を 呼び出し側で受け取ることもできます メソッドから戻してもらう値のことを もどりち戻り値といいます ( 図 5-4) 図 5-4. 戻り値を返すメソッドのイメージ 戻り値を受け取ることによって ある計算を行った結果や 処理に成功したか失
Taro-ポインタ変数Ⅰ(公開版).j
0. 目次 1. ポインタ変数と変数 2. ポインタ変数と配列 3. ポインタ変数と構造体 4. ポインタ変数と線形リスト 5. 問題 問題 1 問題 2-1 - 1. ポインタ変数と変数 ポインタ変数には 記憶領域の番地が格納されている 通常の変数にはデータが格納されている 宣言 int *a; float *b; char *c; 意味ポインタ変数 aは 整数型データが保存されている番地を格納している
PowerPoint プレゼンテーション
2018/10/05 竹島研究室創成課題 第 2 回 C 言語演習 変数と演算 東京工科大学 加納徹 前回の復習 Hello, world! と表示するプログラム 1 #include 2 3 int main(void) { 4 printf("hello, world! n"); 5 return 0; 6 } 2 プログラム実行の流れ 1. 作業ディレクトリへの移動 $ cd
メソッドのまとめ
メソッド (4) 擬似コードテスト技法 http://java.cis.k.hosei.ac.jp/ 授業の前に自己点検以下のことがらを友達に説明できますか? メソッドの宣言とは 起動とは何ですか メソッドの宣言はどのように書きますか メソッドの宣言はどこに置きますか メソッドの起動はどのようにしますか メソッドの仮引数 実引数 戻り値とは何ですか メソッドの起動にあたって実引数はどのようにして仮引数に渡されますか
プログラミング入門1
プログラミング入門 2 第 4 回クラスとインスタンス (2) クラスとインスタンスの詳細 テーマ : クラスとインスタンス (2) インスタンス生成とその利用 ( 詳細 ) インスタンス ( 実体 ) と参照 メソッドの参照呼び インスタンスを生成するメソッド インスタンスを要素に持つ配列 本日の主な題材 2 つの MyCircle 変数にインスタンスを代入して インスタンスフィールドを変更してみよ
講習No.1
プログラムはどこに保存され, どこで実行されるのか? 復習 ハードディスク キーボード Central Processing Unit 例えば i7, ARM, Cortex-A17 ディスプレイ 例えば 4G バイト メモリ プログラムは, ワープロ文章などと同様, ハードディスクなどにファイルとして保存されている. プログラムは, メモリ上に呼び出されて ( ロード ) 実行される. プログラムの作成
