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

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

gengo1-2

数値計算

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

‚æ4›ñ

PowerPoint プレゼンテーション

バイオプログラミング第 1 榊原康文 佐藤健吾 慶應義塾大学理工学部生命情報学科

<4D F736F F D20438CBE8CEA8D758DC F0939A82C282AB2E646F63>

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

Microsoft PowerPoint - lec10.ppt

untitled

Microsoft PowerPoint - C_Programming(3).pptx

Microsoft Word - Cプログラミング演習(12)

memo

Prog1_10th

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

講習No.12

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

Microsoft Word - no11.docx

RX ファミリ用 C/C++ コンパイラ V.1.00 Release 02 ご使用上のお願い RX ファミリ用 C/C++ コンパイラの使用上の注意事項 4 件を連絡します #pragma option 使用時の 1 または 2 バイトの整数型の関数戻り値に関する注意事項 (RXC#012) 共用

株式会社アルウィン C 言語コーディング規約 ver.0.1

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

ポインタ変数

slide5.pptx

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

Microsoft PowerPoint - 11.pptx

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

第 2 章インタフェース定義言語 (IDL) IDL とは 言語や OS に依存しないインタフェース定義を行うためのインタフェース定義言語です CORBA アプリケーションを作成する場合は インタフェースを定義した IDL ファイルを作成する必要があります ここでは IDL の文法や IDL ファイ

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

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

<4D F736F F D2091E63589F182628CBE8CEA8D758DC08E9197BF2E646F6378>

PowerPoint Presentation

ファイル入出力

ファイル入出力

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

プログラミング実習I

* ライブラリ関数 islower(),toupper() を使ったプログラム 1 /* 2 Program : trupper.c 3 Student-ID : K 4 Author : TOUME, Kouta 5 Comments : Used Library function i

Microsoft Word - Cプログラミング演習(3)

Microsoft Word - no02.doc

Microsoft Word - no202.docx

Taro-ファイル処理(公開版).jtd

Microsoft Word - no15.docx

C 言語の式と文 C 言語の文 ( 関数の呼び出し ) printf("hello, n"); 式 a a+4 a++ a = 7 関数名関数の引数セミコロン 3 < a "hello" printf("hello") 関数の引数は () で囲み, 中に式を書く. 文 ( 式文 ) は

Taro-ポインタ変数Ⅰ(公開版).j

関数の動作 / printhw(); 7 printf(" n"); printhw(); printf("############ n"); 4 printhw(); 5 関数の作り方 ( 関数名 ) 戻り値 ( 後述 ) void である. 関数名 (

kiso2-06.key

ポインタ変数

gengo1-11

プログラミング実習I

SuperH RISC engineファミリ用 C/C++コンパイラパッケージ V.7~V.9 ご使用上のお願い

計算機プログラミング

ポインタ変数

Java講座

Microsoft Word - 3new.doc

Microsoft Word - Cプログラミング演習(11)

gengo1-10

Microsoft PowerPoint - 09.pptx

ポインタ変数

memo

PowerPoint プレゼンテーション

Microsoft Word - Cプログラミング演習(8)

問 2 ( 型変換 ) 次のプログラムを実行しても正しい結果が得られない 何が間違いかを指摘し 正しく修正せよ ただし int サイズが 2 バイト long サイズが 4 バイトの処理系での演算を仮定する #include <stdio.h> int main( void ) { int a =

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

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

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

数値計算

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

PowerPoint プレゼンテーション

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

memo

gengo1-8

/*Source.cpp*/ #include<stdio.h> //printf はここでインクルードして初めて使えるようになる // ここで関数 average を定義 3 つの整数の平均値を返す double 型の関数です double average(int a,int b,int c){

Cコンパイラパッケージお知らせ

JavaプログラミングⅠ

R2.7 ポインタの型に気を付ける R2.7.1 (1) ポインタ型は 他のポインタ型及び整数型と相互に変換してはならない ただし データへのポインタ型における void* 型との相互変換は除く (2) ポインタ型は 他のポインタ型 及びポインタ型のデータ幅未満の整数型と相互に変換してはならない た

計算機プログラミング

Microsoft PowerPoint - exp2-02_intro.ppt [互換モード]

Taro-リストⅢ(公開版).jtd

PowerPoint プレゼンテーション

gengo1-12

memo

< F2D837C E95CF CF68A4A94C5816A2E6A>

Microsoft Word - no204.docx

JavaプログラミングⅠ

6 関数 6-1 関数とは少し長いプログラムを作るようになると 同じ処理を何度も行う場面が出てくる そのたびに処 理を書いていたのでは明らかに無駄であるし プログラム全体の見通しも悪くなる そこで登場す るのが 関数 である 関数を使うことを 関数を呼び出す ともいう どのように使うのか 実際に見て

第2回講義:まとめ

情報処理演習 B8クラス

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

本サンプル問題の著作権は日本商工会議所に帰属します また 本サンプル問題の無断転載 無断営利利用を厳禁します 本サンプル問題の内容や解答等に関するお問 い合わせは 受け付けておりませんので ご了承ください 日商プログラミング検定 STANDARD(C 言語 ) サンプル問題 知識科目 第 1 問 (

コマンドラインから受け取った文字列の大文字と小文字を変換するプログラムを作成せよ 入力は 1 バイトの表示文字とし アルファベット文字以外は変換しない 1. #include <stdio.h> 2. #include <ctype.h> /*troupper,islower,isupper,tol

Microsoft Word - 03

Microsoft Word - Cプログラミング演習(10)

関数の中で宣言された変数の有効範囲はその関数の中だけです さっきの rectangle _s で宣言されている変数 s は他の関数では使用できません ( 別の関数で同じ名前の変数を宣言することはできますが 全く別の変数として扱われます このように ある関数の中で宣言されている変数のことをその関数の

プログラミング入門1

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

gengo1-12

PowerPoint Presentation

Prog1_15th

program7app.ppt

ゲームエンジンの構成要素

Transcription:

第 2 章 C プログラムの書き方 CPro:02-01 概要 C プログラムの構成要素は関数 ( プログラム = 関数の集まり ) 関数は, ヘッダと本体からなる 使用する関数は, プログラムの先頭 ( 厳密には, 使用場所より前 ) で型宣言 ( プロトタイプ宣言 ) する 関数は仮引数を用いることができる ( なくてもよい ) 関数には戻り値がある ( なくてもよい void 型 ) コメント ( 注釈行 ) は /* と */ で囲む コメントはできる限り詳しく, たくさん残す ( 英語で. 多バイト言語は使わない ) ブロック ( 複数の文を一まとまりとする ) は中括弧 { } で囲む C プログラムのデータには定数と変数がある 定数や変数の値は演算子で操作する 2.1 プログラムの動作 02-02 C のプログラムは, 必ず main という名前の関数から実行を開始する 基本は上から下へ ( 逐次実行 ) 飛び越し, 条件判断 (if else 等 ) ループ ( 繰り返し ) 関数の呼出 1

test2_1.c (p.33) 1 main() { main 関数の定義 02-03 2 printf( Now I m in main. n ); 3 func(); 4 printf( nnow, I m back in main. n ); 5 printf( And that s all I m going to do for now n ); 6 } 7 空行 ( あってもなくても良い ) 8 func() 9 { 10 関数の定義 printf( Now I m not in main. In func sub. n ); 11 } cc test2_1.c コンパイル a.out 実行 ( cygwinの場合は a ) Now I'm in main. Now I'm not in main, but in func sub. Now I'm back in main. And that's all I'm going to do for now! 実行結果 2.2 C の関数 02-04 Cの関数は call by value 入出力はライブラリ関数として用意されている putchar getchar printf scanf fputs fgets 2

test2_2.c 02-05 1 int addup(); /* test2_2.c (p.37) */ 2 main() 3 { 4 int i; 5 int sum; 6 7 i = 0; 8 sum = 0; 9 sum = addup(i); 10 printf("i was squared - it now equals to d n", sum); 11 } 12 /* 13 * add 1 to i if result is less than or equals 5, and then squar 14 */ 15 int 16 addup(i) 17 int i; 18 { 19 while (i <= 5) { 20 i = i + 1; 21 printf("i is d n", i); 22 } 23 i = i * i; 24 return i; 25 } cc test2_2.c a.out i is 1 i is 2 i is 3 i is 4 i is 5 i is 6 i was squared - it now equals to 36 02-06 3

2.3 関数の定義 CPro:02-07 ライブラリ関数の利用以外に 自分で関数を定義することができる. 名前 引数の個数と型 戻り値 test2_3.c 1 /* test2_3.c (p.40) 2 * Convert 1776 into Roman Number 3 */ 4 int romanize(); 5 main() 6 { 7 int a = 1776; 8 9 a = romanize(a, 1000, 'm'); 10 a = romanize(a, 500, 'd'); 11 a = romanize(a, 100, 'c'); 12 a = romanize(a, 50, 'l'); 13 a = romanize(a, 10, 'x'); 14 a = romanize(a, 5, 'v'); 15 romanize(a, 1, 'i'); 16 putchar(' n'); 17 } 18 /* 19 * 20 */ 02-08 4

21 int 22 romanize(i, j, c) 23 int i, j; 24 char c; 25 { 26 while (i >= j) { 27 putchar(c); 28 i = i - j; 29 } 30 return i; 31 } cc test2_3.c a.out mdcclxxvi 02-09 C の演算子 02-10 + & * - ^? : ( 三項 ) -- / == > >= ++!= << < <= &&! ~ >> *( 単項 ) ( ポインタ ) &( 単項 ) ( アドレス ). ( 構造体のメンバ ) -> ( 構造体のメンバ : ポインタのとき ) -( 単項 ) = 5

2.4 識別子 ( 名前 ) について 02-11 予約語 ( キーワード ) を除く 英字数字の組み合わせ 先頭は必ず英字 大文字, 小文字を区別 有効な文字数は処理系により異なる? [ 予約語 ] auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void while 等 C 言語入門問題集ー若林研究室ー 基本かつ重要問題, 無印 ふつうの問題, 難易度高の問題 02-12 2-1 2 つの引数 ( 整数 ) をそれぞれ, 足す ( 関数名 addi), 引く ( 関数名 subi), 掛ける ( 関数名 muli), 割る ( 関数名 divi) の結果を返す 4 つの関数を作成し, それらを 1 個のソースファイルとし prog02-1sub.c という名前で保存せよ. 各関数における計算処理は ( 除算も含め ) 整数演算でよい. そのソースファイルのみを先にコンパイルしてオブジェクトファイルを作れ (main 関数はなし ). つぎに, これら 4 つの関数を含んだファイルとは別に prog02-1main.c という名前で, それぞれの関数の実行を試すための main 関数を含んだプログラムを作成してコンパイルし, 先にコンパイルしておいた 4 つの関数を含むオブジェクトファイルと併せて ( リンクして ),1 つの実行プログラムを生成し, 実行せよ. 2-2 円の半径 ( 実数 ) を与えて ( 読み込んで ), 円周の長さを計算する関数と, 円の面積を計算する関数をそれぞれ ( 別の関数として ) 作成せよ. それらの関数を実行するメインプログラムも作り, 動作を確認せよ. ( ヒント ) 実数値を標準入力から読み込むには scanf 関数を用いる. [ 例 ] scanf("f", &radius); ( 入力する変数の前に "&" を付ける ) これを実行すると,float 型の変数 radius に値が 1 つ読み込まれる. 6

2-3 つぎのプログラム ("test2_3.c") 1 /* 2 * Convert 1776 into Roman Number and print 3 */ 4 int romanize(); 5 main() 6 { 7 int a = 1776; 8 9 a = romanize(a, 1000, 'm'); 10 a = romanize(a, 500, 'd'); 11 a = romanize(a, 100, 'c'); 12 a = romanize(a, 50, 'l'); 13 a = romanize(a, 10, 'x'); 14 a = romanize(a, 5, 'v'); 15 romanize(a, 1, 'i'); 16 putchar(' n'); 17 } 18 /* 19 * 20 */ 21 int 22 romanize(i, j, c) 23 int i, j; 24 char c; CPro:02-13 25 { 26 while (i >= j) { 27 putchar(c); 28 i = i - j; 29 } 30 return i; 31 } 02-14 を変更して, 整数 ( 例えば 1776) を引数として与えると, ローマ数字に変換した文字列 ( 例 mdcclxxvi) を返す関数 ( 関数名 i2roman) を作れ ( 関数の仕様を工夫すること ). その関数の実行を試すプログラムも作成し, いろいろな値を入力して実行してみること. 2-4 前問 (2-3) の関数とは逆に, ローマ数字の文字列 ( 例えば mdcclxxvi) を引数として与えると, 整数 ( 例 1776) に変換した結果を返す関数 ( 関数名 roman2i) を作れ. 7