数はファイル内のどの関数からでも参照できるので便利ではありますが 変数の衝突が起こったり ファイル内のどこで値が書き換えられたかわかりづらくなったりなどの欠点があります 複数の関数で変数を共有する時は出来るだけ引数を使うようにし グローバル変数は プログラムの全体の状態を表すものなど最低限のものに留
|
|
|
- たしろう あいしま
- 7 years ago
- Views:
Transcription
1 第 10 章分割コンパイル 1 ソースを分割する今まで出てきたソースは全て一つのソースファイルにソースを記述してきました しかし ソースが長くなっていくと全てを一つのファイルに書くと読みづらくなります そこで ソースを複数のファイルに分割してコンパイルを行う分割コンパイルをします 今章は章名にもなっている 分割コンパイルの方法についてやります 分割コンパイルする時は大抵 関連性のある機能ごとにファイルにまとめます そうすることによって ソースが長くなった時に複数のファイルに分け 更に機能ごとにまとまるので修正する時など読みやすくなります 良く使う処理を別のファイルにしていろんなプログラムで使いまわすということも考えられます また 変更を加えたファイルだけコンパイルすることが出来るので コンパイルの時間を減らすことが出来ます 更に 現在プログラムが作られる時は大抵複数人で行います そういう時ももちろん分割コンパイルします 分割コンパイルは次のセクションで述べる変数のスコープ ( 有効範囲 ) をしっかり把握していれば難しいものではありません 2 変数のスコープ変数はどこで宣言するかによってどこで使えてどこで使えないかが決まります 例えば今まで関数内で宣言した変数は関数内でしか使えませんでした これに対し 関数の外で宣言するとそのファイル内全体で使用することができます 関数内でしか使えないような変数をローカル変数 ファイル内全体で使用することが出来る変数をグローバル変数と呼びます 変数のスコープ int a; int b; void func(void){ int c; 上のようなソースだった場合 a は main 関数でも func 関数でも使うことが出来ます それに対し b は main 関数のみ c は func 関数のみで使うことが出来ます グローバル変 1
2 数はファイル内のどの関数からでも参照できるので便利ではありますが 変数の衝突が起こったり ファイル内のどこで値が書き換えられたかわかりづらくなったりなどの欠点があります 複数の関数で変数を共有する時は出来るだけ引数を使うようにし グローバル変数は プログラムの全体の状態を表すものなど最低限のものに留めておきましょう ( 最初はよく使うことになるでしょうが ) 先ほどグローバル変数の説明にファイル内全体で使えると書きました 今章ではソースの分割を行いますが 複数のファイルで変数を共有する時も出てきます その場合はどうするかというと その変数を共有したいファイル内で extern 宣言と呼ばれる宣言をします 複数のファイルで変数を共有する ファイル 1 int a; void func1(void){ ファイル 2 void func2(void){ ファイル 3 extern int a; void func3(void){ main 関数内や func1 関数内では当然変数 a は使うことが出来ます func2 では宣言がされていないので a は使うことは出来ません func3 ではファイル 3 内で extern 宣言をしているのでファイル 3 内では普通にグローバル変数として用いることが出来ます int a; と書くと a という変数のためにメモリ領域を取るなどが行われます extern int a; と書くと他のファイルにある a という変数をこのファイル内で用いるということを宣言しています 関数のプロトタイプ宣言も本来は頭に extern をつけるのを省略しているだけで 意味合いは同じです 2
3 3 Makefile それでは 具体的に分割コンパイルをする方法を見てみましょう 分割コンパイルを行うには Make と呼ばれる作業が必要です Make を行うには何通りか方法があります まずは 全てを手作業で行う方法です これについては後ほど触れます 他に Makefile と呼ばれるものを使う方法があります Visual C++ などの統合環境を用いると勝手に作ってくれるのですが まずは自分で書いてみましょう それでは例を示します Makefile を使った分割コンパイルの方法 ( プログラム ) ファイル名 :main.c void func(void); func(); return(0); ファイル名 :func.c void func(void){ printf(" 関数が呼び出されました "); まずはコンパイルするソースを作ります 今までと違って今回はファイル名を指定していますが 別の名前でもかまいません ( その場合は次に示す Makefile の所でファイル名を用いますので各自ファイル名を置き換えてください ) main 関数内で func 関数を呼び出すので関数のプロトタイプ宣言を行います これはファイルを分割してもしなくても同じことです また それぞれのファイルで stdio.h をインクルードしています ヘッダーファイルをインクルードする時はそれぞれのファイル内で使う関数を使うのに必要なヘッダーファイルをそれぞれインクルードします ( この例だと main 関数では必要ないですが ) 分割したファイルのどこかでインクルードしたら別のファイルでも使えるということは無いので注意してください それでは次に Makefile の作り方を示します ファイル名は makefile にしておいて下さい 3
4 Makefile を使った分割コンパイルの方法 ( プログラム ) # makefile for main # target : main.exe all : main.exe main.exe: main.obj func.obj bcc32 -emain.exe main.obj func.obj main.obj: main.c bcc32 -c main.c func.obj: func.c bcc32 -c func.c # から始まる行はコメント文を表します target は CPad に実行ファイルがどれかを知らせるための文で Make には関係ありません all はシンボリックターゲットと言って その後ろにあるファイル名が最終的に作られるファイルです 二つ以上の実行ファイルを作る時はその数だけ実行ファイル名を書きます その下からは実際に Make する時のファイルの依存関係と Make するためのコマンドです 依存関係は必ず行頭から書き コマンドは行頭に必ずタブ文字を入れてから書きます スペースを入れても動きません ところで.obj という拡張子があります これはオブジェクトファイルと言うものです 今まで特に触れませんでしたが C のソースを実行形式にする場合二つの手順が踏まれています コンパイラがソースをコンパイルした物がオブジェクトファイルです ソース内で使われているライブラリ関数を使用するのに必要なものと先ほどのオブジェクトファイルをつなげて実行形式にするのがリンクと言う作業です これが今までコンパイルと呼んでいた作業です main.exe: main.obj func.obj は main.exe が main.obj と func.obj から出来ているというファイル同士の依存関係を示します bcc32 -emain.exe main.obj func.obj はコマンドです 今まで CPad を使っていて意識していませんでしたが 本来 bcc はコマンドラインで使うコンパイラです このコマンドは実際に Make する時のコマンドと同じです -emain.exe はコンパイルする時のオプションで main.exe という名前の実行ファイルを生成するという意味になります この時 -e と main.exe の間にスペースを入れると動作しません 残りの二つは引数で main.obj と func.obj を用いると言うことを意味します 残りの文も基本的には同じ意味です -c は C のソースからオブジェクトファイルを生成するためのオプションです ちなみに この Makefile は BCC を用いた場合の物で他のコンパイラを使うと少し書き方が変わります 4
5 先ほど Make は全て手作業で行えるといいましたが Makefile に書いたコマンドを実際にコマンドラインで実行すると Make することが出来ます 今回の場合は bcc32 -c main.c と bcc32 -c func.c を実行した後に bcc32 -emain.exe main.obj func.obj を実行すると Makefile を用いた時と同じ実行ファイルが出来ます 4 自作ヘッダーファイルヘッダーファイルは自分で作ることが出来ます ヘッダーファイルは関数や変数の宣言のみが記載されたもので ファイルの分割を行う際に用います 先ほどの例だと main.c の void func(void); の宣言は普通ヘッダーファイルに書きます それではヘッダーファイルを用いた場合の分割例と Makefile の書き方を示します Makefile を使った分割コンパイルの方法 2( プログラム ) ファイル名 :main.c #include func.h func(); return(0); ファイル名 :func.c void func(void){ printf(" 関数が呼び出されました "); ファイル名 :func.h void func(void); 先ほどの例と違う点は main.c で読み込むヘッダーファイルが増えている点と 関数の宣言がヘッダーファイルに移っただけです ヘッダーファイルをダブルクォーテーションで囲んでいますがこれは自作ヘッダーファイルをインクルードする時は普通ダブルクォーテーションで囲みます これは コンパイラが<>で囲んだ場合は標準ライブラリから探し で囲んだ場合は同じフォルダないから探すといった動作をするからです また 見てすぐに自作なのか標準ライブラリにあるのかわかりやすくする意味もあります ヘッダーファイルはこのように関数の宣言をそのまま書いたものです しかし 普通は関数の宣言が 2 重にならないようにプリプロセッサを用いて条件コンパイルさせます 5
6 多重インクルードを防ぐヘッダーの書き方 ( プログラム ) ファイル名 :func.h #ifndef _func #define _func void func(void); #endif //_func 一見意味のないように見えるかもしれませんが こうする事によって同じヘッダーファイルを分割コンパイルする複数のファイル内で宣言されても関数の宣言が 2 重になりません stdio.h 等最初から用意されているヘッダーを見てみれば似たような記述があるはずです 条件コンパイルを忘れているかもしれませんので軽く復習すると意味は 1 行目が _func がマクロ定義されていなければコンパイルすると言う意味で 2 行目は普通のマクロの定義です 最後の行は条件分岐の最後につけるものでした これで このヘッダーファイルが呼び出されたのが 2 回目であれば既に _func がマクロ定義されていてインクルードされません ところで #endif の後ろにコメントがありますが マクロは大抵入れ子になってもインデントしないので どれと対応するのかがわからなくなるためこのように書くことがあります このような短いヘッダーファイルならあまり意味はありませんが 長くなった時には必須とも言えます それでは次に Makefile の書き方を見てみましょう Makefile を使った分割コンパイルの方法 ( プログラム ) # makefile for main # target : main.exe all : main.exe main.exe: main.obj func.obj bcc32 -emain.exe main.obj func.obj main.obj: main.c func.h bcc32 -c main.c func.obj: func.c bcc32 -c func.c 先ほどと違うのは main.obj のファイルの依存関係に func.h が追加されているだけです これは書かなくても動きますが 普通はファイルの依存関係を示すために書きます 6
7 5 統合開発環境分割コンパイルを行う際に Makefile を自動的に作ってくれるソフトがあります 統合環境には有名なもので VisualC++ があります 他にも今まで使ってきたコンパイラを使う BCC Developer があります 別途使い方を示しますので今回のサンプルプログラムをコンパイルして使い方を確かめてください 6 10 章のまとめ大きなプログラムを組む時に分割コンパイルは必須になります 今のうちにある程度なれていた方がいいかもしれません また 変数のスコープの考え方は大変大事な物なので忘れないようにして下さい 確認問題 分割コンパイルを用いたプログラムを作りなさい (Makefile 統合環境両方でやる事 ) 余談とおまけ分割コンパイルとヘッダーファイルを使うと 実際のソースを隠す事が出来ます 実際標準ライブラリ関数はオブジェクトファイルの状態で提供されています その時に関数の仕様を表すのがヘッダーファイルです ヘッダーファイルはソースを読む時の手がかりにもなるのでそういう事を意識して書くようにしましょう また分割コンパイルがなくても出来ますが 関数ラッパという手法があります これは 既にある標準ライブラリ関数に引数を渡す前に自分で処理を挟む事が出来ます 標準ライブラリ関数は渡す引数によっては問題を起こす時もあるので引数のチェックをするべきですが それを関数として作ってライブラリにしておくと 再利用する事が出来て便利です 関数ラッパの詳しい事については自分で調べて見てください 7
プログラミング実習I
プログラミング実習 I 05 関数 (1) 人間システム工学科井村誠孝 [email protected] 関数とは p.162 数学的には入力に対して出力が決まるもの C 言語では入出力が定まったひとまとまりの処理 入力や出力はあるときもないときもある main() も関数の一種 何かの仕事をこなしてくれる魔法のブラックボックス 例 : printf() 関数中で行われている処理の詳細を使う側は知らないが,
memo
数理情報工学演習第一 C プログラミング演習 ( 第 5 回 ) 2015/05/11 DEPARTMENT OF MATHEMATICAL INFORMATICS 1 今日の内容 : プロトタイプ宣言 ヘッダーファイル, プログラムの分割 課題 : 疎行列 2 プロトタイプ宣言 3 C 言語では, 関数や変数は使用する前 ( ソースの上のほう ) に定義されている必要がある. double sub(int
分割コンパイル (2018 年度 ) 担当 : 笹倉 佐藤 分割コンパイルとは 一つのプログラムのソースを複数のソースファイルに分けてコンパイルすること ある程度大きなプログラムの場合ソースファイルをいくつかに分割して開発するのが普通 1
分割コンパイル (2018 年度 ) 担当 : 笹倉 佐藤 2018.12.20 分割コンパイルとは 一つのプログラムのソースを複数のソースファイルに分けてコンパイルすること ある程度大きなプログラムの場合ソースファイルをいくつかに分割して開発するのが普通 1 なぜ分割コンパイルするのか 1. コンパイル時間を短縮するため 2. ソースコードを見やすくするため 3. ソースコードを再利用しやすくするため
/*Source.cpp*/ #include<stdio.h> //printf はここでインクルードして初めて使えるようになる // ここで関数 average を定義 3 つの整数の平均値を返す double 型の関数です double average(int a,int b,int c){
ソフトゼミ A 第 6 回 関数 プログラムは関数の組み合わせでできています 今までのゼミAでも printf や scanf など様々な関数を使ってきましたが なんと関数は自分で作ることもできるのです!! 今日は自作関数を中心に扱っていきます ゲーム制作でも自作関数は避けては通れないので頑張りましょう そもそもまず 関数とは 基本的には 受け取った値に関数によって定められた操作をして その結果の値を返す
(1) プログラムの開始場所はいつでも main( ) メソッドから始まる 順番に実行され add( a,b) が実行される これは メソッドを呼び出す ともいう (2)add( ) メソッドに実行が移る この際 add( ) メソッド呼び出し時の a と b の値がそれぞれ add( ) メソッド
メソッド ( 教科書第 7 章 p.221~p.239) ここまでには文字列を表示する System.out.print() やキーボードから整数を入力する stdin.nextint() などを用いてプログラムを作成してきた これらはメソッドと呼ばれるプログラムを構成する部品である メソッドとは Java や C++ などのオブジェクト指向プログラミング言語で利用されている概念であり 他の言語での関数やサブルーチンに相当するが
Microsoft Word - VBA基礎(6).docx
あるクラスの算数の平均点と理科の平均点を読み込み 総点を計算するプログラムを考えてみましょう 一クラスだけ読み込む場合は test50 のようなプログラムになります プログラムの流れとしては非常に簡単です Sub test50() a = InputBox(" バナナ組の算数の平均点を入力してください ") b = InputBox(" バナナ組の理科の平均点を入力してください ") MsgBox
書式に示すように表示したい文字列をダブルクォーテーション (") の間に書けば良い ダブルクォーテーションで囲まれた文字列は 文字列リテラル と呼ばれる プログラム中では以下のように用いる プログラム例 1 printf(" 情報処理基礎 "); printf("c 言語の練習 "); printf
情報処理基礎 C 言語についてプログラミング言語は 1950 年以前の機械語 アセンブリ言語 ( アセンブラ ) の開発を始めとして 現在までに非常に多くの言語が開発 発表された 情報処理基礎で習う C 言語は 1972 年にアメリカの AT&T ベル研究所でオペレーションシステムである UNIX を作成するために開発された C 言語は現在使われている多数のプログラミング言語に大きな影響を与えている
PowerPoint Presentation
プログラミング基礎 第 2 週 (4,5,6 回 ) 2011-10-07 出村公成 この資料の再配布を禁止します 予定 プログラミング入門 (45 分 ) 変数 入出力 分岐 演習 (90 分 ) タッチタイプ練習 統合開発環境 Codeblocksの使い方 教科書例題の打ち込みと実行 プログラミング入門 C 言語の簡単な例を体験 変数 入出力 分岐 プログラムの例リスト 2.1 改 #include
プログラミング及び演習 第1回 講義概容・実行制御
プログラミング及び演習 第 12 回大規模プログラミング (2015/07/11) 講義担当情報連携統轄本部情報戦略室大学院情報科学研究科メディア科学専攻教授森健策 本日の講義 演習の内容 大きなプログラムを作る 教科書第 12 章 make の解説 プログラミングプロジェクト どんどんと進めてください 講義 演習ホームページ http://www.newves.org/~mori/15programming
C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ
C プログラミング演習 1( 再 ) 2 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ 今回のプログラミングの課題 次のステップによって 徐々に難易度の高いプログラムを作成する ( 参照用の番号は よくわかる C 言語 のページ番号 ) 1. キーボード入力された整数 10 個の中から最大のものを答える 2. 整数を要素とする配列 (p.57-59) に初期値を与えておき
Microsoft PowerPoint ppt
基礎演習 3 C 言語の基礎 (5) 第 05 回 (20 年 07 月 07 日 ) メモリとポインタの概念 ビットとバイト 計算機内部では データは2 進数で保存している 計算機は メモリにデータを蓄えている bit 1bit 0 もしくは 1 のどちらかを保存 byte 1byte 1bitが8つ集まっている byte が メモリの基本単位として使用される メモリとアドレス メモリは 1byte
PowerPoint プレゼンテーション
講座準備 講座資料は次の URL から DL 可能 https://goo.gl/jnrfth 1 ポインタ講座 2017/01/06,09 fumi 2 はじめに ポインタはC 言語において理解が難しいとされる そのポインタを理解することを目的とする 講座は1 日で行うので 詳しいことは調べること 3 はじめに みなさん復習はしましたか? 4 & 演算子 & 演算子を使うと 変数のアドレスが得られる
Fortran 勉強会 第 5 回 辻野智紀
Fortran 勉強会 第 5 回 辻野智紀 今回のお品書き サブルーチンの分割コンパイル ライブラリ 静的ライブラリ 動的ライブラリ モジュール その前に 以下の URL から STPK ライブラリをインストールしておいて下さい. http://www.gfd-dennou.org/library/davis/stpk 前回参加された方はインストール済みのはず. サブルーチンの分割コンパイル サブルーチンの独立化
PowerPoint プレゼンテーション
プログラマー勉強会 1 回 basic.h 補足 [ 修飾子 ] const 付けた変数は初期化以外で値を設定することができなくなる 定数宣言に使う unsigned 付けた変数は符号がなくなり 正の値しか設定できない [ 条件コンパイル ] #ifdef M ここ以前に M がマクロとして定義されていれば ここ以下をコンパイルする #ifndef M ここ以前に M というマクロが定義されていなければ
Microsoft PowerPoint - å®�æ−•試é¨fi3ㆮ対ç�Œ.pptx
C言語の繰り返し処理 for文と while文と do文 臼杵 潤 0) 準備 変数の加減算 int a, b=10; // a= a = 0; a = a+1; // a= a += 1; // a= // a= a ++; a = a + b; // a= a += b; // a= // a= a --; 下を1行ずつ実行すると それぞれ aの値はどう変わるか 0 1 2 3 13 23 22
Microsoft PowerPoint - 09.pptx
情報処理 Ⅱ 第 9 回 2014 年 12 月 22 日 ( 月 ) 関数とは なぜ関数 関数の分類 自作関数 : 自分で定義する. ユーザ関数 ユーザ定義関数 などともいう. 本日のテーマ ライブラリ関数 : 出来合いのもの.printf など. なぜ関数を定義するのか? 処理を共通化 ( 一般化 ) する プログラムの見通しをよくする 機能分割 ( モジュール化, 再利用 ) 責任 ( あるいは不具合の発生源
Microsoft PowerPoint - CproNt02.ppt [互換モード]
第 2 章 C プログラムの書き方 CPro:02-01 概要 C プログラムの構成要素は関数 ( プログラム = 関数の集まり ) 関数は, ヘッダと本体からなる 使用する関数は, プログラムの先頭 ( 厳密には, 使用場所より前 ) で型宣言 ( プロトタイプ宣言 ) する 関数は仮引数を用いることができる ( なくてもよい ) 関数には戻り値がある ( なくてもよい void 型 ) コメント
ブート領域、フラッシュ領域の分割方法 RL78ファミリ用Cコンパイラ CC-RL
ブート領域 フラッシュ領域の分割方法 RL78 ファミリ用 C コンパイラ CC-RL 2016 年 10 月 5 日 Rev.2.00 ソフトウエア事業部 ソフトウエア技術部 ルネサスシステムデザイン株式会社 R20UT3475JJ0200 アジェンダ はじめにページ 3 概要ページ 4 ブート領域 フラッシュ領域共通ページ 12 ブート領域ページ 19 フラッシュ領域ページ 38 デバッグツールページ
Microsoft Word - CygwinでPython.docx
Cygwin でプログラミング 2018/4/9 千葉 数値計算は計算プログラムを書いて行うわけですが プログラムには様々な 言語 があるので そのうちどれかを選択する必要があります プログラム言語には 人間が書いたプログラムを一度計算機用に翻訳したのち計算を実行するものと 人間が書いたプログラムを計算機が読んでそのまま実行するものとがあります ( 若干不正確な説明ですが ) 前者を システム言語
ガイダンス
情報科学 B 第 2 回変数 1 今日やること Java プログラムの書き方 変数とは何か? 2 Java プログラムの書き方 3 作業手順 Java 言語を用いてソースコードを記述する (Cpad エディタを使用 ) コンパイル (Cpad エディタを使用 ) 実行 (Cpad エディタを使用 ) エラーが出たらどうしたらよいか??? 4 書き方 これから作成する Hello.java 命令文 メソッドブロック
プログラミング基礎
C プログラミング Ⅰ 授業ガイダンス C 言語の概要プログラム作成 実行方法 授業内容について 授業目的 C 言語によるプログラミングの基礎を学ぶこと 学習内容 C 言語の基礎的な文法 入出力, 変数, 演算, 条件分岐, 繰り返し, 配列,( 関数 ) C 言語による簡単な計算処理プログラムの開発 到達目標 C 言語の基礎的な文法を理解する 簡単な計算処理プログラムを作成できるようにする 授業ガイダンス
PowerPoint プレゼンテーション
プログラミング応用演習 第 4 回再帰的構造体 プログラミングを 余談 : 教えることの難しさ 丁寧に説明しないと分かってもらえない 説明すると 小難しくなる学生が目指すべきところプログラム例を説明されて理解できる違うやり方でも良いので自力で解決できる おっけー 動けば良い という意識でプログラミング 正しく動くことのチェックは必要 解答例と自分のやり方との比較が勉強になる 今日のお題 再帰的構造体
C#の基本
C# の基本 ~ 開発環境の使い方 ~ C# とは プログラミング言語のひとつであり C C++ Java 等に並ぶ代表的な言語の一つである 容易に GUI( グラフィックやボタンとの連携ができる ) プログラミングが可能である メモリ管理等の煩雑な操作が必要なく 比較的初心者向きの言語である C# の利点 C C++ に比べて メモリ管理が必要ない GUIが作りやすい Javaに比べて コードの制限が少ない
3-4 switch 文 switch 文は 単一の式の値によって実行する内容を決める ( 変える ) 時に用いる 例えば if 文を使って次のようなプログラムを作ったとする /* 3 で割った余りを求める */ #include <stdio.h> main() { int a, b; } pri
3-4 switch 文 switch 文は 単一の式の値によって実行する内容を決める ( 変える ) 時に用いる 例えば if 文を使って次のようなプログラムを作ったとする /* 3 で割った余りを求める */ int a, b; b = a % 3; if (b== 0) printf( %d は 3 で割り切れます n, a); if (b == 1) printf( %d を 3 で割った余りは
た場合クラスを用いて 以下のように書くことが出来る ( 教科書 p.270) プログラム例 2( ソースファイル名 :Chap08/AccountTester.java) // 銀行口座クラスとそれをテストするクラス第 1 版 // 銀行口座クラス class Account String name
クラス ( 教科書第 8 章 p.267~p.297) 前回は処理をまとめる方法として メソッドについて学習した 今回はメソッドとその処理の対象となるデータをまとめるためのクラスについて学習する このクラスはオブジェクト指向プログラミングを実現するための最も重要で基本的な技術であり メソッドより一回り大きなプログラムの部品を構成する 今回はクラスにおけるデータの扱いとクラスの作成方法 使用方法について説明していく
講習No.1
プログラムはどこに保存され, どこで実行されるのか? 復習 ハードディスク キーボード Central Processing Unit 例えば i7, ARM, Cortex-A17 ディスプレイ 例えば 4G バイト メモリ プログラムは, ワープロ文章などと同様, ハードディスクなどにファイルとして保存されている. プログラムは, メモリ上に呼び出されて ( ロード ) 実行される. プログラムの作成
Microsoft Word - C言語研修 C++編 3.doc
2006/05/10 オブジェクト指向... 3 1 クラスの継承... 3 2 継承の書式... 3 3 protected... 5 4 メンバ関数のオーバーライド... 6 5 クラスの型キャスト... 7 6 仮想関数... 8 2 オブジェクト指向 1 クラスの継承 クラスには 継承 という機能があります 継承とは 既にあるクラスを元に 新しいクラスを作る 機能です 継承元のクラスを 親クラス
Undestand の解析 Understand の C 言語で抽出できない依存関係について サンプルコードを用いて説明します 確認バージョン Understand 3.0 (Build 640) Understand 3.1 (Build 700) Understand 4.0 (Build 78
Undestand の解析 Understand の C 言語で抽出できない依存関係について サンプルコードを用いて説明します 確認バージョン Understand 3.0 (Build 640) Understand 3.1 (Build 700) Understand 4.0 (Build 788) 抽出できない依存関係 Understand の C 言語の解析 (Fuzzy/Strict) で
Si 知識情報処理
242311 Si, 285301 MS 第 12 回 竹平真則 [email protected] 2015/12/21 1 本日の内容 1. 先週のおさらい 2. PHP のスクリプトを実際に動かしてみる 3. RDB についての説明 2015/12/21 2 資料の URL http://peacenet.info/m2is 2015/12/21 3 注意事項 ( その
プレポスト【問題】
コース名 : 基礎から学ぶ!Excel VBA による業務の自動化 受講日 氏名 1 Excel VBA を使用するメリットとして誤っているものを 1 つ選びなさい 1. 手作業では手間のかかる作業も プログラムに記述した処理は一括して実行されるため 何段階ものメニュー操作を行う必要がなくなる 2. プログラムに書いた処理は記述どおりに実行されるため だれがいつ何回行っても確実な処理がなされ 誤動作を防ぐことができる
プログラミングI第10回
プログラミング 1 第 10 回 構造体 (3) 応用 リスト操作 この資料にあるサンプルプログラムは /home/course/prog1/public_html/2007/hw/lec/sources/ 下に置いてありますから 各自自分のディレクトリにコピーして コンパイル 実行してみてください Prog1 2007 Lec 101 Programming1 Group 19992007 データ構造
コマンドラインから受け取った文字列の大文字と小文字を変換するプログラムを作成せよ 入力は 1 バイトの表示文字とし アルファベット文字以外は変換しない 1. #include <stdio.h> 2. #include <ctype.h> /*troupper,islower,isupper,tol
コマンドラインから受け取った文字列の大文字と小文字を変換するプログラムを作成せよ 入力は 1 バイトの表示文字とし アルファベット文字以外は変換しない 1. #include 2. #include /*troupper,islower,isupper,tolowerを使うため宣言*/ 3. 4. int get_n(char *); 5. void replace(char
アクション講座 第1回目
アクション講座第 1 回目 講師 : ウェンディアーサー (WENDY ARTHUR) 講座資料のプロジェクトファイル (zip ファイル ) はソフメ wiki にアップしてますので予めダウンロードしておいてください 講座資料のプロジェクトファイル (zip ファイル ) は解凍してソリューションファイルを開く URL は下記 http://softmedia.sakura.ne.jp/wiki/2017%e5%b9%b4%e5%ba%a6_%e3%82%a2%e3
Microsoft PowerPoint - 第5章補足-DB2組み込みSQL.ppt
開発編第 5 章補足 DB2 組み込み SQL 本書に含まれている情報は 正式な IBM のテストを受けていません また 明記にしろ 暗黙的にしろ なんらの保証もなしに配布されるものです この情報の使用またはこれらの技術の実施は いずれも 使用先の責任において行われるべきものであり それらを評価し 実際に使用する環境に統合する使用先の判断に依存しています それぞれの項目は
PowerPoint プレゼンテーション
講座を行う前に 自己紹介 僕と上回生について 1 年生同士で少しお話しよう! オリエンテーションの宿題 アルゴロジック http://home.jeita.or.jp/is/highschool/algo/index3.html どこまでできましたか? あまりできなかった人はこれから全部クリアしよう! 2016 年度 C 言語講座 第一回目 2016/6/11 fumi 今回の目標 プログラムを書いて実行するやり方を覚える
今回のプログラミングの課題 ( 前回の課題で取り上げた )data.txt の要素をソートして sorted.txt というファイルに書出す ソート (sort) とは : 数の場合 小さいものから大きなもの ( 昇順 ) もしくは 大きなものから小さなもの ( 降順 ) になるよう 並び替えること
C プログラミング演習 1( 再 ) 4 講義では C プログラミングの基本を学び 演習では やや実践的なプログラミングを通して学ぶ 今回のプログラミングの課題 ( 前回の課題で取り上げた )data.txt の要素をソートして sorted.txt というファイルに書出す ソート (sort) とは : 数の場合 小さいものから大きなもの ( 昇順 ) もしくは 大きなものから小さなもの ( 降順
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,
情報処理 Ⅱ 2007 年 11 月 26 日 ( 月 )
情報処理 Ⅱ 2007 年 11 月 26 日 ( 月 ) 本日学ぶこと 関数と変数 目的 関数を自分で定義し, 変数の利用方法 範囲を明示的に制限することで, 適切な機能分割 ( モジュール化, 再利用 ) を図る. してはいけないこと main 関数のみで 100 行以上のプログラム グローバル変数を駆使するプログラム プログラムを読みやすくする 保守性向上 入 p.109 2 関数 (Function)
<4D F736F F D20438CBE8CEA8D758DC F0939A82C282AB2E646F63>
C 言語講座第 2 回 作成 : ハルト 前回の復習基本的に main () の中カッコの中にプログラムを書く また 変数 ( int, float ) はC 言語では main() の中カッコの先頭で宣言する 1 画面へ出力 printf() 2 キーボードから入力 scanf() printf / scanf で整数を表示 / 入力 %d 小数を表示 / 入力 %f 3 整数を扱う int 型を使う
3.Cygwin で日本語を使いたい Cygwin で以下のコマンドを実行すると それ以降 メッセージが日本語になります export LANG=ja_JP.UTF-8 これは 文字コードを日本語の UTF-8 に設定することを意味しています UTF-8 は Cygwin で標準の文字コードで, 多
Cygwin 使いこなしマニュアル 2011/10/17 1.Cygwin の起動 Cygwin のインストールが完了したら 一般ユーザーで Windows にログインし Cygwin を起動してみましょう 下の図は ユーザー名 densan でログインして Cygwin を起動した後 いくつかコマンドを実行してみたところです 2.Cygwin のファイルはどこにある? Windows から Cygwin
Microsoft PowerPoint - kougi2.ppt
C プログラミング演習 第 2 回 Microsoft Visual Studio.NET を使ってみよう 説明 例題 1. プログラム実行の体験 コンピュータを役に立つ道具として実感する 次ページのプログラムを使って, Microsoft Visual Studio.NETでの C++ ソースファイル編集, ビルド, テスト実行の一連の過程を体験する 例題 1 のプログラムの機能 計算の繰り返し
Microsoft PowerPoint - Borland C++ Compilerの使用方法(v1.1).ppt [互換モード]
Borland C++ Compiler の 使用方法 解説書 (v1.1) 1 準備 (1/2) 1. スタートメニューから コントロールパネル を開いて その中に デスクトップのカスタマイズ フォルダーオプション があるので開く エクスプローラー内の ツール フォルダーオプション などからも開ける 2. 表示 タブにある 登録されている拡張子は表示しない のチェックを外して OKを押す これでファイルの拡張子が表示されるようになった
WinAPIOverride32 入門
投稿者 : 手賀 2009 年 7 月 17 日 ( 金曜日 ) 21:35 当サイトのコラムで現在 マケスピで見るネイティブコード解析 というシリーズを書いていますが その中で紹介した WinAPIOverride32 に関する日本語の情報があまりないようですので 初めて利用する方のために簡単なステップバイステップをまとめておくことにします マケスピで見るネイティブコード解析 を読んでいない方には何の話か分からないと思いますので
マクロの実行許可設定をする方法 Excel2010 で 2010 でマクロを有効にする方法について説明します 参考 URL:
マクロの実行許可設定をする方法 Excel2010 で 2010 でマクロを有効にする方法について説明します 参考 URL: http://excel2010.kokodane.com/excel2010macro_01.htm http://span.jp/office2010_manual/excel_vba/basic/start-quit.html Excel2010 でマクロを有効にする
cp-7. 配列
cp-7. 配列 (C プログラムの書き方を, パソコン演習で学ぶシリーズ ) https://www.kkaneko.jp/cc/adp/index.html 金子邦彦 1 本日の内容 例題 1. 月の日数配列とは. 配列の宣言. 配列の添え字. 例題 2. ベクトルの内積例題 3. 合計点と平均点例題 4. 棒グラフを描く配列と繰り返し計算の関係例題 5. 行列の和 2 次元配列 2 今日の到達目標
プログラミング基礎I(再)
山元進 クラスとは クラスの宣言 オブジェクトの作成 クラスのメンバー フィールド 変数 配列 メソッド メソッドとは メソッドの引数 戻り値 変数の型を拡張したもの 例えば車のデータベース 車のメーカー 車種 登録番号などのデータ データベースの操作 ( 新規データのボタンなど ) プログラムで使う部品の仕様書 そのクラスのオブジェクトを作ると初めて部品になる 継承 などの仕組みにより カスタマイズが安全
デバッグの工夫
バグを減らす デバッグの工夫 ~ プログラミング実習で生き残るために ~ 2013/02/12 金森由博 よくあるプログラミングの風景 課題めんどくさい とりあえず適当に書くか エラーチェック めんどくさい あとまわし ちゃんと動くかわかんないけど全部書いちゃお ふー やっと全部書けた コンパイルしよ!? エラーメッセージの意味がわからん!! はぁ やっとコンパイルが通った 実行しよ えっ!? なんでセグメンテーション違反!?
JavaプログラミングⅠ
Java プログラミング Ⅰ 2 回目 ようこそ Java へ 今日の講義で学ぶ内容 画面へのメッセージの表示 文字や文字列 数値を表現するリテラル 制御コードを表すエスケープシーケンス 画面出力の基本形 ソースファイル名 : クラス名.java class クラス名 System.out.println(" ここに出力したい文字列 1 行目 "); System.out.println(" ここに出力したい文字列
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 日分と書いてある部分が 本日の教材です 本日の内容
