Microsoft PowerPoint - bp02.ppt

Similar documents
Microsoft PowerPoint - bp01.ppt

PowerPoint Presentation

PowerPoint プレゼンテーション

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

Microsoft PowerPoint - kougi2.ppt

Microsoft PowerPoint - kougi4.ppt

kiso2-03.key

講習No.1

memo

slide5.pptx

02: 変数と標準入出力

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

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

Microsoft PowerPoint - kougi6.ppt

プログラミング基礎

ポインタ変数

PowerPoint プレゼンテーション

memo

プログラミング実習I

Microsoft Word - no11.docx

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

PowerPoint プレゼンテーション

ガイダンス

Microsoft PowerPoint - kougi7.ppt

<4D F736F F D20438CBE8CEA8D758DC F0939A82C282AB2E646F63>

スライド 1

ポインタ変数

JavaプログラミングⅠ

講習No.12

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

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

ポインタ変数

Microsoft PowerPoint - guidance.ppt

第2回講義:まとめ

ポインタ変数

プログラミング 1 プログラミング演習 I プログラミングの重要性 プログラミング言語をなぜ勉強するのか? 世界的に有名な日本のある IT 企業の社長が求める人材に 必要なスキル 1. プログラミング (C 言語 ) 2. 数学 3. 英語 #-1 #-2 プログラミングはどこで使えるのか? 1.

3.Cygwin で日本語を使いたい Cygwin で以下のコマンドを実行すると それ以降 メッセージが日本語になります export LANG=ja_JP.UTF-8 これは 文字コードを日本語の UTF-8 に設定することを意味しています UTF-8 は Cygwin で標準の文字コードで, 多

Microsoft Word - CygwinでPython.docx

02: 変数と標準入出力

C#の基本

デバッグの工夫

memo

デジタル表現論・第6回

講習No.9

kiso2-09.key

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

Microsoft PowerPoint - å®�æ−•è©¦é¨fi3ㆮ対ç�Œ.pptx

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

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

Microsoft PowerPoint - prog03.ppt

第 1 回 C 言語講座 1. コンピュータって? だいたいは 演算装置 制御装置 記憶装置 入出力装置から構成されている 演算装置 CPU の一部で実際に計算を行う装置 制御装置 CPU の一部で演算装置や入出力装置 記憶装置の読み書きなどを制御する装置 記憶装置プログラムや情報 データを一時的

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

B演習(言語処理系演習)第一回

PowerPoint Presentation

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

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

Microsoft PowerPoint - prog08.ppt

PowerPoint Presentation

講習No.10

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

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

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

PowerPoint プレゼンテーション

Microsoft PowerPoint - 10Com2.ppt

PowerPoint プレゼンテーション

FORTRAN( と C) によるプログラミング 5 ファイル入出力 ここではファイルからデータを読みこんだり ファイルにデータを書き出したりするプログラムを作成してみます はじめに テキスト形式で書かれたデータファイルに書かれているデータを読みこんで配列に代入し 標準出力に書き出すプログラムを作り

のプログラムはそのままでは 人間は理解できても コンピュータは理解できません 皆さんが作るプログラムはソースプログラム ( ソースファイル ) と呼ばれます C 言語では *.c という形式にファイルで作成します そのソースプログラムをコンピュータが理解できるようなデータ形式に変換することをコンパイ

Microsoft Word - java a.doc

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

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

Microsoft PowerPoint - visualprogram.ppt

PowerPoint プレゼンテーション

PowerPoint プレゼンテーション - 物理学情報処理演習

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

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

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

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

memo

計算機プログラミング

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

2 / 26 平成 26 年 4 月 11 日 ( 金 ) 午後 1 時 9 分 Visual C Express の使用法 ( 東海大学理学部物理学科 ) 無償で利用できる開発環境 (Windows XP 以降 ) Visual Studio 2010 Express

Microsoft PowerPoint - kougi10.ppt

COMET II のプログラミング ここでは機械語レベルプログラミングを学びます 1

Microsoft PowerPoint - prog04.ppt

ゲームプログラミング講習 第0章 導入

C言語入門

cp-7. 配列

実習を行う上での心構えについて

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

#include<math.h> 数学関係の関数群で sin() cos() tan() などの三角関数や累乗の pow() 平方根を求める sqrt() 対数 log() などがあります #include<string.h> 文字列を扱う関数群 コイツもまた後日に 4. 自作関数 実は 関数は自分

C言語入門

PowerPoint プレゼンテーション - 物理学情報処理演習

Microsoft PowerPoint - 11.pptx

gengo1-12

1. 入力した文字列を得る 1.1. 関数 scanf() を使う まずは関数 scanf() を使ったプログラムを作ってみましょう 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: #include<stdio.h> #define SIZE 128 main(

Microsoft Word - macマニュアル【 】.doc

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

プログラミング基礎

プログラミング実習I

情報処理演習 B8クラス

Transcription:

University of Electro-Communications Human Interface section 基礎プログラミングおよび演習 第 2 回 担当 : 長谷川晶一 @5 階 522/520

復習 C 言語の基本 #include <stdio.h> int main(int argc, const char* argv[]){ // insert code here printf ( Hello, World! n ); return 0; } // insert code here printf ( Hello, World! n ); return 0; C 言語では この部分に書いたプログラムが上から順に実行されます // から行末までは コメントコンパイラはコメントを読みません 他の人がプログラムを読むときに助けなるようなことや 自分のためのメモを書くために使います このコメントは Xcode が書いたコメントで ここにコードを挿入してください ということです

復習 C 言語の書き方 // insert code here printf ( Hello, World! n ); return 0; printf という関数 (function: 機能 ) を呼び出しています printf( 出力したい文字列 ) ; 関数の名前 関数の引数 文の終わりをあらわすセミコロン 関数 printf は文字列を出力します n は表示すると 改行になります Mac と PC でフォントが違うので Mac では n の代わりに n= バックスラッシュ n になります

復習上から順に実行される 上から順に実行されることを確かめるために もう 1 つだけ関数を覚えましょう #include <stdio.h> int main(){ printf ( Plase hit ENTER key n ); getchar(); printf ( Thankyou n ); } 上から順に実行されます 1 文字入力 [ENTER] キーが押されるまで キーボードからの文字入力を待ちます [ENTER] が押されたら 最初に入力されたキーを読み出します

式と関数 University of Electro-Communications Human Interface section

式と printf() C 言語は 式が計算できます #include <stdio.h> int main(){ 10+20*3; } 20 を 3 倍して 10 足す計算をしてくれますが これでは結果がわかりません printf() は式の計算結果を表示できます #include <stdio.h> int main(){ printf( 計算結果は %d です n, 10 + 20*3); } 出力 : 計算結果は 70 です printf( 文字列, 式 ) として 文字列の中に %d を書くと %d が 式の値で置き換えられて表示されます

式と printf() %d をいくつも書くと printf( 文字列, 式 1, 式 2, 式 3 ) の式 1 式 2 が順番に %d に入ります #include <stdio.h> int main(){ printf( 式 1: %d 式 2:%d n, 13, 10 + 20*3); } 出力 : 式 1:13 式 2:70

整数の式 C 言語の計算では 自動で実数になりません 計算結果が実数になる場合は 小数点以下を切捨てます printf( %d n, 5 / 2 ); printf( %d n, 5 / 2 *2 ); 5/2 は 2.5 だけれども 小数は切り捨て 5/2*2 は 切り捨ててから 2 倍するので 出力 : 2 4

式の例と値 式の例 5 2*(2+8)+(5-3) 9/2 (9/2-3)*2 値 5 22 4 2

実数の式 実数を計算したいときは 5.0/2 か 5/2.0ように 最初から2つの数のどちらかを実数にします 実数を表示するためには %f を使います printf( %f n, 5.0 / 2 ); printf( %f n, 5 / 2.0 *3 ); printf( %f n, 5 / 2*3.0 ); %d と %f を間違えてもエラーメッセージは出ません printf( %d n, 2.5 ); printf( %f n, 2 ); printf( %f %d %d n, 1, 2, 3, 4 ); ですが出力は変になります 出力 : 1074003968 0.000000 0.000000 3 4 5.0/2 は 2.5 5/2.0 も 2.5 で 2.5 * 3 は 7.5 5/2 は 整数なので切り捨てで 2 なので 2*3.0 は 6.0 整数 2を %fで表示しようとしたので変にその後の %d にまで影響が (0.000000 2 3 になりそうなものですよね ) %fは整数を2 個食べちゃいます

式の計算の順番は 式の計算の順番 数学と一緒 a+b*c なら まず b*c をしてから aを足す 左から右 a+b+cは aとbを足してから cを足す 順番を変えたいときは () を使う printf( %f n, 5 / (2*3.0) ); 2*3.0 は 6.0 5 /6.0 は 0.8333333

式の例と値 式の例 値 型 5 2*(2+8)+(5-3) 9/2 5 22 4 整数整数整数 整数か実数かの区別を C 言語では型と言います (9/2-3)*2 2 整数 2.3 2.3 実数 4.0/2 2.0 実数 9.0/2 4.5 実数 1.0*5 5.0 実数 5.0/2-5/2 0.5 実数 1+9 + 0.0 10.0 実数

関数と式 式には 関数も使えます 数学関数を使うには #include が 1 行増えます #include <stdio.h> #include <math.h> int main(int argc, const char* argv[]){ // insert code here printf ( sin 1.5 = %f n, sin(1.5)); return 0; } 0.997495 標準入出力を使うことを宣言数学関数を使うことを宣言 無くても動きますが ないとコンパイラは printf() や sin() がどんな関数か知らない状態になります その結果 エラーメッセージが不親切になってしまいます sin(θ) の θ=1.5 のときの値を計算してくれます

関数いろいろ C 言語で使える数学の関数とその意味 上記は どれも実数値をとります 関数はとてもたくさんあります 自分で作ることもできます printf ( %f n, sin(1.5)/2); printf ( %f n, cos(1.5)/2); 0.498747 0.035369 1.5 は π /2 よりちょっと小さいので sin(π /2)=1.0 /2 に近い値のはず cos(1.5) は 0 に近い値でしょう

乱数を返す関数 rand() 整数値をとる関数 0~2147483647 の間のランダムな整数値を取ります #include <stdio.h> #include <stdlib.h> int main(int argc, const char* argv[]){ printf ( %d n, rand()); printf ( %d n, rand()); printf ( %d n, rand()); return 0; } rand() を使うことを宣言 ランダムな整数を表示 16807 282475249 1622650073

整数値をとる関数 0.0~1.0 を得るには printf ( %d n, rand() / 2147483647); printf ( %f n, rand() / 2147483647.0); 0 0.131538 これだと 0 ばっかり 1/2147483647 の確率で 1 が出る 0.0~1.0 が出る

式の例 式の例 2*(2+8)+(5-3) 9/2 1.0*5 sin(1.5) * 2 asin(1.0)*2 rand()*2 rand() / 2147483647.0 値 22 4 5.0 1.994990 3.141593 ランダムランダム (0.0~1.0) 型整数整数実数実数実数整数実数

課題 3 次のことをプログラムで確かめてください 整数同士の計算で 小数点以下が切捨られること 実数と整数の計算では 結果が実数になること printf() の %f, %d と引数の対応がおかしくてもコンパイルエラーにはならないことと 出力が変になること cos -1 (0)*2が π = 大体 3.14になること sin(π/4) と の数値が等しいこと プログラムができたら デバッガで 1 行ずつ実行してみてください

課題 4 実は,getchar() は 整数値をとる関数です getchar() が取る整数値を10 回表示するプログラムを作り 実行して様子を見てください [Enter] 以外のキーも押してみてください

ビルドがうまくいかない? いろいろ書いていると ビルドがうまくいかないことが起こりえます たとえば 次の例では #include <stdio.h> int main(int argc, const char* argv[]){ // insert code here machigai printf ( Hello, World! n ); return 0; } なぞの machigai という文字列があります コンパイラ (gcc) がその旨を伝えるためにエラーメッセージを出します (xcode が表示します )

ビルド時のエラー プロジェクト のエラーと警告を見るか main.c の赤丸 印にマウスをあわせるとメッセージが見られます

エラーメッセージを読もう 先ほどの例では error: `machigai undeclared (first use in this function) エラー :machigai は宣言されていません ( この関数の中では ここで初めて使われました ) と出ています C 言語には まだお話していない文法がたくさんあるので 意味が取りにくいと思います ですが コンパイラ (gcc) が machigai をどう解釈してよいかわからず なにか言っている この行の machigai のあたりに何か問題があるようだ ということは判ると思います メッセージはいろいろありますが 必ずよく読んで 意味を考えてください

エラーメッセージの例 #include <stdio.h> int main(){ printf ( Hello, World! n ); printf ( Hello, World! n ) } error:parse error before } token エラー : 語 } の前で構文解析エラーが起きました } の前に 何かが足りないために コンパイラ (gcc) がC 言語の解析 ( 解釈 ) ができなくなったと言っています この場合前の文の最後に足りない文字がありますね

エラーメッセージの例 #include <stdio.h> int main(){ printf ( Hello, World! n ); printf ( Hello, World! n); } error: missing terminating character エラー : 終わりの文字 が必要です error:parse error before } token エラー : 語 } の前で構文解析エラーが起きました 文字列の終わりの がないと言っています コンパイラは ); も表示する文字列 (Hello World! n) の続きだと思ったようです このため構文解析エラーも起きています このように ひとつの原因で複数エラーが出ることもあります エラーメッセージは最初の方から見て行きましょう ひとつ直すと全部直ることもあります こまめにビルドしましょう

エラーメッセージの意味 そのほかのエラーメッセージについては C 科大久保先生のページ http://www.tnlab.ice.uec.ac.jp/~sokubo/class/language/ref /error.html を見てください MacOS の gcc は日本語のエラーメッセージを出し てくれません Windows の場合 Visual C++ / Borland C++ / cygwin の gcc で日本語のメッセージが出ます

プログラムのデバッグ ビルドがうまくいっても プログラムが思ったよう に動作しないこともあります デバッグ デバッガとは? デバッグ : プログラムが正しく動作するように修正すること デバッガ : 修正を助けるプログラム プログラムを1 行ずつ実行 動作の様子をゆっくり見ることなどができる

デバッグの実際 メニューからデバッガを選んでデバッガを起動

ブレークポイントを設定 デバッグ ブレークポイントを設定してデバッグを始めると プログラムがブレークポイントのところで止まる int main(. の行にブレークポイントを設定して デバッグを開始してみてください

デバッグ ステップ実行 ブレークポイントで止まった後は ステップオーバーで 1 行ずつ実行して様子を見る ことができます 参考 main が終わってもしばらくプログラムは続きます C 言語のソースがないので アセンブリ言語やマシン語が表示されます 驚かないで ステップインを選ぶと関数の中にどんどん入っていきます printf の中身が全部わかるためには結構勉強が必要です

課題提出 Web サイト 課題と提出 http://haselab.hi.mce.uec.ac.jp/class/basic/ ここをクリックして指示に従って Web のアカウントを作る パスワードを設定させられます 一度ログアウトしてからログインしなおすよう指示されます