第2回講義:まとめ

Similar documents
プログラミング実習I

書式に示すように表示したい文字列をダブルクォーテーション (") の間に書けば良い ダブルクォーテーションで囲まれた文字列は 文字列リテラル と呼ばれる プログラム中では以下のように用いる プログラム例 1 printf(" 情報処理基礎 "); printf("c 言語の練習 "); printf

PowerPoint Presentation

講習No.1

JavaプログラミングⅠ

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

プログラミング実習I

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

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

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

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

PowerPoint Presentation

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

8 / 0 1 i++ i 1 i-- i C !!! C 2

Microsoft Word - 3new.doc

Microsoft PowerPoint - lec10.ppt

PowerPoint プレゼンテーション

Microsoft PowerPoint - C1(演算と変数).ppt

PowerPoint プレゼンテーション

C 言語第 3 回 2 a と b? 関係演算子 a と b の関係 関係演算子 等しい a==b 等しくない a!=b より大きい a>b 以上 a>=b より小さい a<b 以下 a<=b 状態 真偽 値 条件が満たされた場合 TRUE( 真 ) 1(0 以外 ) 条件が満たされなかった場合 F

Microsoft Word - no02.doc

gengo1-2

スライド 1

<4D F736F F D20438CBE8CEA8D758DC F0939A82C282AB2E646F63>

ポインタ変数

memo

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

情報処理演習 B8クラス

Microsoft PowerPoint - prog04.ppt

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

C 言語固有の命令で全部で32 個 の関数C 言語第 1 回 C 言語って?( シラバス 1 2 回目 ) 関数型言語 コンピュータに実行してもらう命令はすべて関数の中に記述されている 関数がプロ グラム

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

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

ポインタ変数

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

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

ガイダンス

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

演算増幅器

プログラミング基礎

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

4 月 東京都立蔵前工業高等学校平成 30 年度教科 ( 工業 ) 科目 ( プログラミング技術 ) 年間授業計画 教科 :( 工業 ) 科目 :( プログラミング技術 ) 単位数 : 2 単位 対象学年組 :( 第 3 学年電気科 ) 教科担当者 :( 高橋寛 三枝明夫 ) 使用教科書 :( プロ

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

ポインタ変数

memo

Microsoft PowerPoint - 11.pptx

Microsoft Word - no103.docx

関数の呼び出し ( 選択ソート ) 選択ソートのプログラム (findminvalue, findandreplace ができているとする ) #include <stdiu.h> #define InFile "data.txt" #define OutFile "surted.txt" #def

02: 変数と標準入出力

ファイル入出力

物質工学科 田中晋

cp-7. 配列

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

Microsoft PowerPoint - 第3回目.ppt [互換モード]

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

Microsoft PowerPoint - 09.pptx

講習No.12

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

Microsoft Word - no11.docx

Microsoft PowerPoint - 4.pptx

kiso2-09.key

PowerPoint Presentation

プログラミング基礎

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

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

Microsoft PowerPoint - prog03.ppt

Microsoft PowerPoint - 3.pptx

Microsoft PowerPoint - prog06.ppt

解答編 第 7 章実数型の計算と標準数学関数 演習問題 7.1 文法事項 1 ) 暗黙の型変換とは何か答えなさい 代入演算子 (=) や算術演算子 (+,-,*,/,%) では 2 つの演算項のデータ型が揃っている事が必要です 2 つの演算項のデータ型が異なる場合 可能ならば 演算項のデータ型を変換

Microsoft PowerPoint - prog08.ppt

文字列 2 前回の授業ではコンピュータ内部での文字の取り扱い 文字型の変数 文字型変数への代入方法などを学習した 今回は 前回に引き続き 文字処理を学習する 内容は 標準入出力 ( キーボード ディスプレイ ) での文字処理 文字のファイル処理 文字を取り扱うライブラリ関数である 標準入出力 Lin

ファイル入出力

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

2 ASCII コードと文字型変数 2-1 ASCII コード 文字 コードコードコードコードコードコードコードコード文字文字文字文字文字文字文字 10 進 10 進 10 進 10 進 10 進 10 進 10 進 10 進 0 16 SP P 80 ` 96 p 112

02: 変数と標準入出力

gengo1-11

Microsoft PowerPoint - prog03.ppt

PowerPoint プレゼンテーション

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

7 ポインタ (P.61) ポインタを使うと, メモリ上のデータを直接操作することができる. 例えばデータの変更 やコピーなどが簡単にできる. また処理が高速になる. 7.1 ポインタの概念 変数を次のように宣言すると, int num; メモリにその領域が確保される. 仮にその開始のアドレスを 1

第1回 プログラミング演習3 センサーアプリケーション

Microsoft PowerPoint - kougi6.ppt

gengo1-12

関数の呼び出し ( 選択ソート ) 選択ソートのプログラム (findminvalue, findandreplace ができているとする ) #include <stdio.h> #define InFile "data.txt" #define OutFile "sorted.txt" #def

ポインタ変数

Microsoft PowerPoint - C4(反復for).ppt

memo

講習No.10

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

プログラミング基礎

Microsoft PowerPoint - kougi7.ppt

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

4 分岐処理と繰返し処理 ( 教科書 P.32) プログラムの基本的処理は三つある. (1) 順次処理 : 上から下に順番に処理する ぶんきそろ (2) 分岐処理 : 条件が揃えば, 処理する はんぷく (3) 反復処理 : 条件が揃うまで処理を繰り返す 全てのプログラムは (1) から (3) の

Cプログラミング1(再) 第2回

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

今までの復習 プログラムで最低限必要なもの 入力 ( キーボードから ファイルから ) 出力 ( 画面へ ファイルへ ) 条件分岐 : 条件の成立 不成立により 異なる動作をする 繰り返し : 一定の回数の繰返し 条件成立の間の繰返し 関数の定義 関数の呼び出し C ではそれ以外に ポインタ データ

< F2D837C E95CF CF68A4A94C5816A2E6A>

PowerPoint プレゼンテーション

02: 変数と標準入出力

<4D F736F F D20438CBE8CEA8D758DC03389F0939A82C282AB2E646F63>

Transcription:

C 言語のキーポイント 5=x は NG, x=y=6 は OK. (x=y)=6 は? *ptr=7 は? int x; printf( %d, x) は scanf ( %d, x) は 非 0 が真 0 が偽 for 文は while 文で書き直せる 逆も真 配列は 0- オリジン 関数呼び出しでは 仮引数が実引数で初期化される 式を評価するとき副作用を起こす演算子は ( 複合 ) 代入演算子 増分演算子 減分演算子 ポインタはアドレス 配列名は先頭要素へのポインタ 配列とポインタは似ている

第 1 回講義 >gcc test.c 実行ファイルa.exe 生成 ソースプログラム test.c より 実行プログラム a.exe が作られる >gcc -o test1 test.c オプションoで 実行ファイルtest1.exe 生成 ソースプログラム test.c より 実行プログラム test1.exe が作られる

/* 画面に文字を出力するコード */ #include <stdio.h> int main(void) { printf( ようこそ C 言語へ! n ); printf( C 言語をはじめましょう! n ); return (0); }

#include <stdio.h> int main(void) { } return (0); はおまじない /* /* 画面に文字を出力するコード */ printf( ようこそ C 言語へ! n ); printf( C 言語をはじめましょう! n ); */ はコメント printf を関数呼び出し

プログラムは main から実行される int main(void) { } 文 文 が基本 文が上から順番に実行される 文のおわりは原則としてセミコロン (;) printf( ようこそ C 言語へ! n ); return (0); int main(void) { 1 printf( ようこそ C 言語へ! n ); 2 printf( C 言語をはじめましょう! n ); 3 return (0); }

ブロック ( 文 ): 文を中カッコ { } でまとめたもの { } 文 文 { } { printf( ようこそC 言語へ! n ); printf( C 言語をはじめましょう! n ); } return (0); ブロックは文 ブロックが実行されるとき 内容の文が上から順番に実行される ブロック文の終わりはセミコロン (;) がつかない ブロックの中の文がブロックであることも

コメント :/* から */ までの文字は コンパイル時に無視される /* 画面に文字を出力するコード */ #include <stdio.h> int main(void) { printf( ようこそ C 言語へ! n ); /* printf( C 言語をはじめましょう! n ); */ return (0); } 無視される コメントを用いて プログラムを分かりやすくするために説明を書く 他人に分かりやすく 未来の自分に分かりやすく デバッグ時にコメントを用いることもある プログラムの一部を消すかわりに コメントアウトしておく 後でその部分を復活させるのが楽

stdio.h ファイルのインクルード : /* 画面に文字を出力するコード */ #include <stdio.h> int main(void) { printf( ようこそ C 言語へ! n ); printf( C 言語をはじめましょう! n ); return (0); } stdio.h ファイルを読み込め (include しろ ) という命令 stdio.h を読み込むことにより printf を使うことができる (gcc では なくても OK だが ).h 拡張子をもつファイルをヘッダファイルという # ではじまる命令は コンパイルの前処理部分 : プリプロセッサで実行される

printf 書式化して表示を行う関数 基本画面に文字列を表示する #include <stdio.h> が必要 printf( 文字列リテラル ) 文字列リテラル : 2 重引用符 ( ) で囲まれた文字の並び printf( Hello,World. n ) Hello,World. n 文字列リテラル n 改行を表す拡張表記 ( エスケープシーケンス ) >Hello, World. > ( 改行される )

printf 書式化して表示を行う関数 挿入 - 書式化が行われる場合 printf( 15と37の和は %dです n, 15+37); %d 挿入位置を指定 d 書式 (10 進 (decimal) 表示 ) を指定 printf( あ %d い %d う %d n, 1, 2, 3) > あ 1 い 2 う 3 >

文字列リテラル : 2 重引用符 ( ) で囲まれた文字の並び "Hello,World. n" 文字定数 :1 重引用符 ( ) で囲まれた単独の文字 'H' 'e' ' x48' ' x65' 文字コードでも表せる printf("%c は文字です n", 'A'); %c 挿入位置を指定 c 書式 ( 文字定数表示 ) を指定

エスケープシーケンス : ではじまる特殊な文字 文字定数 文字列リテラルで用いられる n( 改行 ) t( 水平タブ ) 表示の指定 (1 重引用符 ) (2 重引用符 ) 1 重引用符 2 重引用符が 文字定数 文字列リテラルを定義するために使われているため ( 円記号 ) 円記号が エスケープシーケンスを定義するために使われているため printf( 円記号を表示します : %c n, ); > 円記号を表示します : >

整数定数 10 10 進の 10 10 進の10を表す 010 8 進の 10 10 進の8を表す 0x10 16 進の 10 10 進の16を表す 0xF 16 進の F] 10 進の15を表す int x=10; printf("10 進数 %d を 8 進で表すと %o, 16 進で表すと %x である n",x,x,x); >10 進数 10 を 8 進で表すと 12, 16 進で表すと a である

printf( %c は文字です n, A ); %c 挿入位置を指定 c 書式 ( 文字定数表示 ) を指定 printf( %d は整数です n, 567); printf( %f は小数です n, 53.14); printf( %d は整数 %c は文字です n, 567, A );

変数宣言 int num ; char c; double db; 型変数名セミコロン int 型 ( 整数型 ) の変数 num を宣言 int vx, yx; とまとめて宣言できる

変数には値を格納することができる 代入 ( 演算子 ) = 基本 x = 3; /* 変数 x に 3 を代入 */ 変数へ = を使って値を格納 ( 代入 ) 方程式を作るためのものではない int 型変数には整数を格納できる num=234 char 型変数には文字 整数を c= A c=127 double 型変数には ( 浮動 ) 小数点数を db=3.14

変数宣言 int num =234; char c = A ; double db=3.14; 変数宣言と同時に値を指定できる ( 初期化できる ) int num; num = 234; の代わりに 初期化を行わない変数には 何が格納されているかわからない 代入とは異なる

代入 ( 演算子 )= num = 3; /* 変数 num に 3 を代入 */ num=5; /* 変数 num に 5 を代入 */ 代入により 格納される値を変更 ( 上書き ) int num1,num2; num1 = 3; /* 変数 num1 に 3 を代入 */ num2=num1; /* 変数 num1 の値を num2 を代入 */

代入 ( 演算子 )= int num1,num2; num1 = 3; /* 変数 num1 に 3 を代入 */ num2=num1; /* 変数 num1 の値を num2 を代入 */ 右辺の num1 が 3 に置き換わると考える num2=3; と考える

代入 ( 演算子 )= num2=num1; /* 変数 num1 の値を num2 を代入 */ C 言語 ( や それ以後の言語 ) のよくないところ 右辺 :num1 の値を 左辺 :num2 へ格納 変数が場所 ( 右辺 or 左辺 ) によって役割が異なる

printf 書式化して表示を行う関数 int num= 3; printf( 変数 num の値は %d です n, num); /* 変数 num の値を表示 */ > 変数 num の値は 3 です > num が 3 に置き換わると考える printf( 変数 num の値は %d です n, 3); と考える

代入 ( 演算子 )= int num; /*numは整数変数だが */ num = 3.14; /* 変数 numに3.14を代入 */ printf( 変数 numの値は %dです n, num); > 変数 numの値は3です > /* 変数 num の値を表示 */ 3.14 の小数部分を切り捨てた値 3 が格納されている 小数点数から整数への変換が行われている 型を自動的に変換している

scanf 読み込みを行う関数 基本キーボードから数値などを読み込み 変数に格納 #include <stdio.h> が必要 scanf( 書式指定 & 変数名 ) & 変数名 に注意 & はアドレス演算子という 変数のメモリ上の場所 番地 ( アドレス ) を表す scanf("%d",&no) キーボードからの入力を10 進数としてみなして 変数 noへ格納 事前に変数 noが宣言されている必要がある!

scanf 読み込みを行う関数 int no; scanf( %d,&no); キーボードからの入力を10 進数としてみなして 変数 noへ格納 double num; scanf( %lf,&num); キーボードからの入力を小数点数としてみなして 変数 numへ格納

getchar キーボードより文字を読み込む関数 基本文字を読み込む関数 #include <stdio.h> が必要 getchar() 引数をとらない 読み込んだ文字を返却する char ch; ch = getchar(); ch に読み込んだ文字が格納される

( もう一度 ) プログラムは main から実行される int main(void) { 文 文 } が基本 文のおわりは原則としてセミコロン (;) return (0); return 文 int vx; 宣言文 printf( %d, 15+37); vy = 10; printf( 整数 1: ); scanf( %d, &n1); 2 つの文

今日のレポート課題 以下をレポートにまとめてください 次回講義中に回収します 自分の環境の各型 (char, unsigned char,..., long double) のサイズと記憶できる値の範囲を調べよ 2 の補数 ( 表現 ) について調べよ それを用いて unsigned int 変数の格納できる値の範囲と int 変数の格納できる値の範囲の違いについて説明せよ 10 進表示 2 進表示 16 進表示のそれぞれの間の変換方法を調べよ 例も示せ

今日のレポート課題 以下をレポートにまとめてください 次回講義中に回収します プログラム課題 文字 ( アルファベット ) を入力させ その文字そのものとその文字コードを出力させるプログラムを書け >1 文字を入力してください :a > a の文字コードは x61 です 自作問題と解答 2 組の問題と解答

第 1 回大レポート課題 10 月 18 日の講義中に回収 表紙をつける A4 用紙 左上ホチキス ( ステープラー ) 留め 内容 以下の書籍を読み 自分用まとめメモ を A4 用紙 2 枚程度で作成 箇条書きのメモ 戸田山和久 論文の教室 レポートから卒論まで (NHK ブックス ) この本で パラグラフ ライティングを学んでください

戸田山和久 論文の教室 レポートから卒論まで (NHK ブックス ) アウトラインの作り方とパラグラフ ライティングの章が重要

第 2 回大レポート課題 10 月 25 日の講義中に大レポートの構成案を回収 大レポートのアウトライン ( 各セクションのタイトルと サブセクションの見出し ) と各パラグラフに書く内容の概要 (1 行程度 トピックセンテンス ( の候補 )) を提出 11 月 8 日の講義中に大レポートを回収 表紙をつける A4 用紙 左上ホチキス ( ステープラー ) 留め マイクロソフトワードを使用 フォント 12 ポイント以下 5 ページ以上 パラグラフ ライティングの手法に基づいている必要がある ( トピックセンテンスにアンダーラインをすること ) その他の戸田山本の規則に従う 参考文献 引用文献を明記 個人的な意見 感想 アイデアを書いてはいけない

第 2 回大レポート課題 課題内容 C 言語を使用して 方程式 ax 2 bx c を満たす x を求めるプログラムを作成しなさい 実数値 a b c がどのような値 (0 を含む ) になっても正しい値が出るようにしなさい 入力 (a,b,c の指定 ) はプログラム冒頭の代入で行い 様々な入力に関しては全て再コンパイルで対応すること また 全ての条件分岐 (if 文 ) が正常に動作していることを確かめるために それぞれの条件に対応する入力例を作り 実際に動作テストを行った結果も示すこと なお 解が実数の場合のみ考えれば十分である 0

第 2 回大レポート課題 技術的文章は 問い ( 解くべき課題 ) と答え ( 課題に対する解答 ) を含む 技術文章内のすべての文章は上記いずれかを説明するためにある 作成したアウトラインの基づき 全体を構成すること 目次の例 解くべき課題 背景 課題の背景 解決法の背景 ( 課題へのアプローチ ) 解決法 提案方式 評価 ( 今後の課題 ) 参考文献リスト 付録 : プログラム本体等

第 2 回大レポート課題 例えば 以下の内容が含まれている必要がある a=0 の場合の解説 2 次方程式の解の公式の解説 2 次方程式の判別式の解説 作成したプログラムの if 文の条件式の意味の説明 C 言語で利用する機能 (sqrt) の解説 その他 写したと思われるほど酷似したレポートがあった場合には 不合格とします 同じ過去レポートを写した場合や意図せず他人に写されてしまった場合も不合格となります 出典を明記することにより参考文献を利用すること Web 文章の利用は不可 合格するまで再提出をしてもらいます そのため ワードで作成