プログラミング演習I 2003年5月7日(第4回) 木村巌.

Slides:



Advertisements
Similar presentations
プログラミング論 第八回数字の計算,整数の入出力. 本日の内容 前回の課題(続き) 前回の課題(続き) 数字の計算をする 数字の計算をする – 加減乗除を行う – インクリメント演算子とデクリメン ト演算子.
Advertisements

7章 情報の表現と基礎理論. 数の表現(書き方) 「数」と「数の書き方」をわけて考える 「数の書き方」と,「数そのものの性質」は別のもの 例:13 は素数・・・”13”という書き方とは無関係 ここでは書き方(表現方法)について考える 567.
配列の宣言 配列要素の初期値 配列の上限 メモリ領域 多次元配列 配列の応用
コンピュータープログラミング(C言語)(2) 1.文字列出力と四則演算 (復習) 2.関数と分割コンパイル
プログラミング演習II 2004年11月 30日(第6回) 理学部数学科・木村巌.
演算、整数型と浮動小数点型 第3回目 [4月27日、H.16(‘04)] 本日のメニュー 1)前回の課題・宿題 2)ファイルサーバの利用
コンピュータープログラミング(C言語)(2) 1.文字列出力と四則演算 (復習) 2.関数と分割コンパイル
プログラミング入門2 第7回 情報工学科 篠埜 功.
情報・知能工学系 山本一公 プログラミング演習Ⅱ 第7回 データの基本型 情報・知能工学系 山本一公
演算、整数型と浮動小数点型 第3回[平成16年4月27日(火)]:PN04ー03.ppt 今日の内容 1 復習 2 加減・乗除演算子
基礎プログラミングおよび演習 第9回
第5回 ディジタル回路内の数値表現 瀬戸 ディジタル回路内部で,数を表現する方法(2進数)を学ぶ 10進数⇔2進数⇔16進数の変換ができる
岩村雅一 知能情報工学演習I 第9回(C言語第3回) 岩村雅一
C言語 第2講 生物機能制御学講座 濱田 農学部7号館209室.
第2回:Javaの変数と型の宣言 プログラミングII 2007年10月2日.
プログラミング演習II 2004年10月19日(第1回) 理学部数学科・木村巌.
プログラミング演習II 2004年12月 21日(第8回) 理学部数学科・木村巌.
プログラミング演習Ⅰ 課題2 10進数と2進数 2回目.
情報処理Ⅱ 第4回 2007年10月29日(月).
演習問題の答え #include #include #define NUM 5 typedef struct { // 構造体の定義 float shincho; // 身長 float taiju; // 体重 } shintai; void hyouji(shintai.
情報基礎及び演習 プログラミング基礎① 電気・佐藤亮一.
岩村雅一 知能情報工学演習I 第8回(後半第2回) 岩村雅一
ちょっとした練習問題① 配列iroを['R', 'W', 'R', 'R', 'W' , 'W' , 'W']を宣言して、「W」のときの配列の番号をprintfで表示するようなプログラムを記述しなさい。
情報処理Ⅱ 第2回 2007年10月15日(月).
プログラミング応用 printfと変数.
Cプログラミング演習 第7回 メモリ内でのデータの配置.
プログラミング演習I 2003年6月25日(第10回) 木村巌.
プログラミング入門2 第2回 型と演算 条件分岐 篠埜 功.
岩村雅一 知能情報工学演習I 第9回(後半第3回) 岩村雅一
岩村雅一 知能情報工学演習I 第8回(C言語第2回) 岩村雅一
知能情報工学演習I 第12回(後半第6回) 課題の回答
プログラミング入門2 第11回 情報工学科 篠埜 功.
コンピュータープログラミング(C言語)(2) 1.文字列出力と四則演算 (復習) 2.関数と分割コンパイル
岩村雅一 知能情報工学演習I 第9回(後半第3回) 岩村雅一
2013年度 プログラミングⅡ ~ 計算してみよう ~.
2015年度 プログラミングⅡ ~ 計算してみよう ~.
岩村雅一 知能情報工学演習I 第9回(C言語第3回) 岩村雅一
フロントエンドとバックエンドのインターフェース
情報処理Ⅱ 第2回:2003年10月14日(火).
岩村雅一 知能情報工学演習I 第12回(C言語第6回) 岩村雅一
プログラミング演習I 2004年5月19日(第5回) 理学部数学科・木村巌.
岩村雅一 知能情報工学演習I 第9回(後半第3回) 岩村雅一
C言語ファミリー C# 高級言語(抽象的) Java オブジェクト指向 C++ C 機械語(原始的)
プログラミング演習I 2003年4月30日(第3回) 木村巌.
地域情報学 C言語プログラミング 第1回 導入、標準出力、変数 2017年10月13日
地域情報学 C言語プログラミング 第2回 変数・配列、型変換、入力 2017年10月20日
ポインタとポインタを用いた関数定義.
第13章 文字の取り扱い方 13.1 文字と文字型変数 13.2 文字列 13.3 文字型配列への文字列の代入
コンパイラ 2012年10月29日
情報処理Ⅱ 第2回 2005年10月14日(金).
情報処理Ⅱ 第2回 2006年10月13日(金).
情報処理Ⅱ 2005年10月28日(金).
オブジェクト指向言語論 第二回 知能情報学部 新田直也.
岩村雅一 知能情報工学演習I 第8回(後半第2回) 岩村雅一
岩村雅一 知能情報工学演習I 第8回(C言語第2回) 岩村雅一
プログラミング演習I 数値計算における計算精度と誤差
プログラミング入門2 第6回 関数 情報工学科 篠埜 功.
プログラミング演習I 2003年6月11日(第9回) 木村巌.
情報処理Ⅱ 第2回 2004年10月12日(火).
モバイルプログラミング第2回 C言語の基礎 (1).
第3回簡単なデータの入出力.
プログラミング演習II 2003年11月19日(第6回) 木村巌.
プログラミング演習II 2003年12月10日(第7回) 木村巌.
プログラミング演習II 2004年11月 2日(第3回) 理学部数学科・木村巌.
printf・scanf・変数・四則演算
復習 いろいろな変数型(2) char 1バイト → 英数字1文字を入れるのにぴったり アスキーコード → 付録 int
C言語講座 四則演算  if ,  switch 制御文.
プログラミング演習II 2003年10月29日(第2,3回) 木村巌.
岩村雅一 知能情報工学演習I 第7回(後半第1回) 岩村雅一
岩村雅一 知能情報工学演習I 第9回(C言語第3回) 岩村雅一
Presentation transcript:

プログラミング演習I 2003年5月7日(第4回) 木村巌

知識編:C言語の初等文法 いくつかの型の詳細 条件文

実践編:条件文、ループ構文を 用いたプログラミング If文をつかったプログラミング

いくつかの型の詳細 前回、整数型、浮動小数点数型、文字型について学んだ それらの型が表現できる範囲をはっきりさせておこう!

ビットとバイト 1bitとは、2進表記一桁で表現できる情報量のこと 端的にいうと、0か1. 1byteとは、8bitのこと.つまり、0, 1が8桁. (00000000)から、(11111111)まで、256通りの組み合わせがある キロバイト、メガバイト、ギガバイト、テラバイト

整数型の詳細 int型は、short, 指定なし, longの三種類の大きさと、signed, unsignedの符号の有無の区別がある. 略記:short intはshort, long intはlongと略記可能 sizeof 演算子……sizeof(型名)で、型が占めるメモリの大きさを返す

整数型の大きさ #include <stdio.h> int main(void) { printf (“short %d\nint %d\nlong %d\n”, sizeof (short), sizeof (int), sizeof (long)); return 0; } sizeofint.cとして保存し、コンパイル&実行してみよう.

整数型の大きさ(続き) 現在の主要な環境では limits.hに個々の値の上下限が定義されている(ANSI Cの要請) short 2byte, int 4byte, long int 4byte C99ではlong longも定義されており、8byte となることが多い. 個々のサイズがANSI Cで定義されているわけではない!定義では、 2≦sizeof(short)≦sizeof(int)≦4≦sizeof(long) limits.hに個々の値の上下限が定義されている(ANSI Cの要請)

2の補数表現 符号付整数のビット列としての表現法 正の整数:単純に2進表現する 例:0 = (0), 1 = (1), 2 = (10), 3 = (11), …… nビットでのとき、n-1ビット使える.0~2n-1-1 負の整数:すべてのビットの補数を取り(1を0に、0を1にする)、更に1加える 例:-1→(000…0001)ー補数→(111…1110)ー1加える→(111…1111) = -1.

2の補数表現(続き) 負の最大値(100…000)または-2^(n-1)に相当する正の整数は存在しない.この値が負にされても、同じ値になる. 符号付整数のビット列としての表現には、他に 1の補数表現 符号ビットを独立に持つ表現 がある.正の整数の表現はどれも同じ.

符号なし整数 unsignedを指定すると、正の整数のみあらわす:unsigned short, unsigned int, unsigned long. n bitで0から(2^n)-1までを表現 (111…111)は符号なしの場合(2^n)-1.符号付で2の補数表現なら、-1である. 符号なし整数に対する算術演算は、すべて2^nを法として行われる.

符号なし整数(続き) #include <stdio.h> int main (void) { printf ("%u\n", 0xffffffff + 0x1); return 0; } uint.cとして保存、コンパイルして実行すると幾つになるか?

文字型 char型.char, signed char, unsigned charの3つ 占めるメモリは同じ.多くの場合、sizeof(char) = sizeof (signed char) = sizeof (unsigned char) = 1. ANSI Cで定義されているわけではない.limits.hのCHAR_BITという定数を参照. getchar()を使うときに、戻り値をcharとするとトラブルの元(intとすべき).詳細は後述.

浮動小数点数型 float, double, long doubleの3種類 それぞれの大きさはANSI Cでは規定されていない sizeof()演算子でバイト幅を調べよ! floatで表せる範囲はdoubleでも表せ、doubleで表せる範囲はlong doubleでも表せる doubleとlongとは多くの場合相互変換可能(だが、ANSI Cでは規定されていない)

浮動小数点型(続き)

浮動小数点数型(続き) 32bit doubleの場合、符号に1bit, 指数に7bit, 仮数部に24bit使う. 64bit long doubleの場合、符号に1bit, 指数に10bit, 仮数部に53bit使う.

条件文 すでに何回か使ったように、if文によって、プログラムの実行を制御できる. if (式) 文 式が0でないときのみ、文を実行する.

条件文(続き) if (式) { 文 } 複数の文を実行したいときは、複数の文を{} で囲う.複合文という.

条件文(続き3) if (式) 文1 else 文2 式が0でなければ、文1が、そうでない(式が0)なら、文2が実行される.

まとめ 数値型の詳細(表現できる数の範囲)について学んだ 条件文について学んだ

レポート課題 問1 16bitで何通りの情報が表現できるか? 問2 同じく4byteで何通りの情報が表現できるか? 別紙資料「浮動小数点数」の問を解け 締め切り:2003年5月6日一杯(日本時間で) 提出先:メールで木村(iwao@sci.toyama-u.ac.jp)まで.