コンピュータープログラミング(C言語)(2) 1.文字列出力と四則演算 (復習) 2.関数と分割コンパイル

Slides:



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

配列の宣言 配列要素の初期値 配列の上限 メモリ領域 多次元配列 配列の応用
演算、整数型と浮動小数点型 第3回目 [4月27日、H.16(‘04)] 本日のメニュー 1)前回の課題・宿題 2)ファイルサーバの利用
コンピュータープログラミング(C言語)(1) 仮想コンピュータでのプログラム環境 第一歩:「Hello world!」と四則演算
コンピュータープログラミング(C言語)(3) 1.関数と分割コンパイル (復習) 2.キーボード入力
コンピュータープログラミング(C言語)(2) 1.文字列出力と四則演算 (復習) 2.関数と分割コンパイル
情報基礎演習B 後半第5回 担当 岩村 TA 谷本君.
初年次セミナー 第4回 整数と実数の取り扱い.
情報・知能工学系 山本一公 プログラミング演習Ⅱ 第7回 データの基本型 情報・知能工学系 山本一公
演算、整数型と浮動小数点型 第3回[平成16年4月27日(火)]:PN04ー03.ppt 今日の内容 1 復習 2 加減・乗除演算子
岩村雅一 知能情報工学演習I 第9回(C言語第3回) 岩村雅一
x y 復習 変数とその種類 変数名 数学の場合 未知数 「変数xに‥を代入し‥」 x = 5 x = 1.3
C言語 第2講 生物機能制御学講座 濱田 農学部7号館209室.
基礎プログラミング (第五回) 担当者: 伊藤誠 (量子多体物理研究室) 内容: 1. 先週のおさらいと続き (実習)
コンピュータープログラミング (C言語)(6) 1.条件分岐2(switch文、復習) 2.繰り返し処理(for文、while文)
コンピュータープログラミング (C言語)(9) 1.これまでの復習
プログラミング演習Ⅰ 課題2 10進数と2進数 2回目.
精密工学科プログラミング基礎 第9回資料 (12/11 実施)
岩村雅一 知能情報工学演習I 第8回(後半第2回) 岩村雅一
第二回 VB講座 電卓を作ろう.
関数の定義.
プログラミング応用 printfと変数.
基本骨格 #include #include : int main(void) { 変数の宣言 実行すること return 0; } #include int main(void) { int i; printf(”Hello world!\n”);
プログラミング演習I 2003年5月7日(第4回) 木村巌.
プログラミング入門2 第2回 型と演算 条件分岐 篠埜 功.
岩村雅一 知能情報工学演習I 第9回(後半第3回) 岩村雅一
岩村雅一 知能情報工学演習I 第8回(C言語第2回) 岩村雅一
コンピュータープログラミング(C言語)(4) 1.キーボード入力(復習) 2.条件分岐(if文)
高度プログラミング演習 (02).
知能情報工学演習I 第8回( C言語第2回) 課題の回答
コンピュータープログラミング (C言語)(5) 1.条件分岐1(if文、復習) 2.条件分岐2(switch,case文)
コンピュータープログラミング(C言語)(2) 1.文字列出力と四則演算 (復習) 2.関数と分割コンパイル
地域情報学 C言語プログラミング 第1回 導入、変数、型変換、printf関数 2016年11月11日
岩村雅一 知能情報工学演習I 第9回(後半第3回) 岩村雅一
2013年度 プログラミングⅡ ~ 計算してみよう ~.
2015年度 プログラミングⅡ ~ 計算してみよう ~.
整数データと浮動小数データ.
岩村雅一 知能情報工学演習I 第9回(C言語第3回) 岩村雅一
情報処理Ⅱ 第2回:2003年10月14日(火).
岩村雅一 知能情報工学演習I 第12回(C言語第6回) 岩村雅一
東京工科大学 コンピュータサイエンス学部 担当 亀田弘之
C言語 はじめに 2016年 吉田研究室.
岩村雅一 知能情報工学演習I 第9回(後半第3回) 岩村雅一
C言語ファミリー C# 高級言語(抽象的) Java オブジェクト指向 C++ C 機械語(原始的)
プログラミング演習I 2003年4月30日(第3回) 木村巌.
地域情報学 C言語プログラミング 第1回 導入、標準出力、変数 2017年10月13日
地域情報学 C言語プログラミング 第2回 変数・配列、型変換、入力 2017年10月20日
東京工科大学 コンピュータサイエンス学部 担当 亀田弘之
C言語① 開発環境とプログラムの記述方法 2011.04.22 2011.04.22 C言語① 開発環境とプログラムの記述方法.
x y 復習 変数とその種類 変数とは何か? →データ(数値)を入れておく箱 変数名 変数名とは何か?
情報処理Ⅱ 第2回 2005年10月14日(金).
情報処理Ⅱ 第2回 2006年10月13日(金).
標準入出力、変数、演算子、エスケープシーケンス
cp-3. 計算 (C プログラミング演習,Visual Studio 2019 対応)
オブジェクト指向言語論 第二回 知能情報学部 新田直也.
岩村雅一 知能情報工学演習I 第8回(後半第2回) 岩村雅一
岩村雅一 知能情報工学演習I 第8回(C言語第2回) 岩村雅一
情報処理Ⅱ 第2回 2004年10月12日(火).
第3回簡単なデータの入出力.
四則演算,変数 入力文,出力文,代入文, ライブラリ関数
コンピュータープログラミング (C言語)(10) 1.ファイル入出力
printf・scanf・変数・四則演算
知能情報工学演習I 第11回(後半第5回) 課題の回答
知能情報工学演習I 第9回(後半第3回) 課題の回答
復習 いろいろな変数型(2) char 1バイト → 英数字1文字を入れるのにぴったり アスキーコード → 付録 int
C言語講座 四則演算  if ,  switch 制御文.
岩村雅一 知能情報工学演習I 第7回(後半第1回) 岩村雅一
第1章 文字の表示と計算 printfと演算子をやります 第1章 文字の表示と計算.
第1章 文字の表示と計算 printfと演算子をやります.
岩村雅一 知能情報工学演習I 第9回(C言語第3回) 岩村雅一
Presentation transcript:

コンピュータープログラミング(C言語)(2) 1.文字列出力と四則演算 (復習) 2.関数と分割コンパイル コンピュータ基礎実験 第5回 コンピュータープログラミング(C言語)(2) 1.文字列出力と四則演算 (復習) 2.関数と分割コンパイル

簡単な計算(四則演算)の復習 プログラムの基本骨格:「main()」関数 文字列出力関数:「printf()」 四則演算と変数の型 四則演算:「+,-,*,/,%」「(,)」 変数の型:「int」、「float」他

変数の型と表記 型 扱える範囲(gcc-cygwin) printf 中の表記 文字型 char -127 〜 128 (文字) -127 〜 128 (文字) %c(文字), %d(値) 整数型  int -2147483648 〜 2147483647 %d 倍長整数型  long - 9223372036854775808 〜 9223372036854775807 %ld 単精度浮動小数点型  float 有効数字6桁の実数 3.4E-38 〜 3.4E+38 %f 倍精度浮動小数点型  double 有効数字15桁の実数 1.7E-308 〜 1.7E+308 変数の名付け規則: 先頭文字は英字(a-z, A-Z)または下線( _ ) 2文字目以降は英字,下線,数字 大文字と小文字は区別 先頭から31文字までが有効,予約語(do, for, …)などは不可

算術演算子 意味 数学記号 C言語での書き方 加算 + 減算 - 乗算 × * 除算 ÷ / あまり … % (例1)  (例2)  あるいは

2つの整数11と3の和,差,積,商,あまり,を計算するプログラムを作成し,結果を示せ.  前回:課題 4-4  2つの整数11と3の和,差,積,商,あまり,を計算するプログラムを作成し,結果を示せ. ただし,結果は (1)2つの整数a,bが 11 と 3 として 2つの整数 a=11, b=3 和 a+b= … 差 a-b= … 積 a*b= …   商 a/b= … あまり …     と出力するよう工夫せよ. (2)2つの整数が 2012 と 510 の場合について同様に計算し,   結果を示せ. 2つの整数 a=11, b=3 和 a+b=14 差 a-b=8 積 a*b=33 商 a/b=3 あまり 2 2つの整数 a=2012, b=510 和 a+b=2522 差 a-b=1502 積 a*b=1026120 商 a/b=3 あまり 482  ファイル名は ex4-4.c として下さい.

解答例1:整数型の四則演算: ex4-4.c #include <stdio.h> int main(void) { int a,b; a=11; b=3; printf(”2つの整数 a=%d, b=%d\n”,a,b); printf(” 和 a+b=%d\n”,a+b); printf(” 差 a-b=%d\n”,a-b); printf(” 積 a*b=%d\n”,a*b); printf(” 商 a/b=%d あまり %d\n”,a/b,a%b); return 0; }

2つの実数11と3の和,差,積,商を計算するプログラムを作成し,結果を示せ.  前回課題 4-5 2つの実数11と3の和,差,積,商を計算するプログラムを作成し,結果を示せ. ただし,結果は (1)2つの実数a,bが 11 と 3 として 2つの実数 a=… , b=… 和 a+b= … 差 a-b= … 積 a*b= …   商 a/b= … と出力するよう工夫せよ. 2つの実数 a =11.000000, b =3.000000 和 a+b = 14.000000 差 a-b = 8.000000 積 a*b = 33.000000 商 a/b = 3.666667  ファイル名は ex4-5.c として下さい.

解答例2:実数型の四則演算: ex4-5.c #include <stdio.h> int main(void) { float a,b; a=11; b=3; printf(”2つの整数 a=%f, b=%f\n”,a,b); printf(” 和 a+b=%f\n”,a+b); printf(” 差 a-b=%f\n”,a-b); printf(” 積 a*b=%f\n”,a*b); printf(” 商 a/b=%f\n”,a/b); return 0; }

さまざまな出力形式(printfの応用) 整数型 実数型 様々な形式で、整数と実数を出力してみよう

出力の方法 printf() (注)後述の scanf() も同様 変換指定文字 意味 使われるデータ型 %c 1文字として出力 文字型 %d (%ld) 10進数で出力 (long型のデータの場合) 整数型 %x 16進数で出力 %o 8進数で出力 %f (%lf) [-]dddd.dddddの形式で出力 (double型のデータの場合) 浮動小数点型 %e 指数形式で出力 %s 文字列として出力 (注)後述の scanf() も同様

出力幅の指定 (例) int a=123; の場合 (例) float x=123.4567890; の場合 プログラム 実行結果 printf(“%d\n”,a); 123 (指定のない場合) printf(“%5d\n”,a); ..123 スペースを含めて5文字 printf(“%10d\n”,a); …….123 スペースを含めて10文字 (例) float x=123.4567890; の場合 プログラム 実行結果 printf(“%f\n”,x); 123.456787 (指定のない場合) printf(“%12f\n”,x); ..123.456787 小数点を含めて12桁,    小数点以下は標準の桁数 printf(“%9.2f\n”,x); …123.46 小数点を含めて9桁,小数点以下2桁

例題1:様々な出力形式: ex5-1.c #include <stdio.h> int main(void) { int a=123; float b=123.4567890; printf(”整数の出力例 a=11\n”); printf(” %d\n”,a); printf(” %5d\n”,a); printf(”実数の出力例 b=123.4567890”); printf(”%f\n”,b); printf(”%9.2f\n”,b); return 0; }

関数 C言語では、データ処理の「ひとまとまり」を「関数」という言葉で表現します 「f(a,b)」は、データa,bに対して決まった処理(計算や文字出力等)をすることを表します たくさんの、a,bの値に対して、同じ処理を繰り返したいとき、「関数」を利用すればプログラムをシンプルに、見やすくすることができます

例題2:関数: ex5-2.c #include <stdio.h> int main(void) { int a,b; a=11; b=3; basiccalc(a,b); a=2014; b=508; baciccalc(a,b); a=314; b=271; baciccalc(a,b); a=123; baciccalc(a,456); basiccalc(321,654); return 0; } void basiccalc(int a, int b) { int c,d; c=a+b; b=a-b; printf(”a=%d b=%d の時、”,a,b); printf(”和%d 差%d\n”,c,d); }

課題1:関数: ex5-3.c (a,b)=(1,2)、(3,4)、(5,6)…(19,20)の10個の実数の組に対し、積a*b、商a/bを計算するプログラムを作成せよ a=1 b=2 の時、積*** 商*** a=3 b=4 の時、積*** 商*** a=19 b=20 の時、積*** 商*** 注 「int」→「float」、「%d」→「%f」

分割コンパイル 大規模なプログラムでは、プログラムを一個のソースファイルに記述すると、巨大なファイルになり、編集が大変になります ソースファイルを複数に分割すれば、編集や変更が容易になります 分割した個々のファイルを別々にコンパイルできるので、一度全てのファイルをコンパイルすれば、その後編集、変更を行ったファイルのみコンパイルすればよく、時間の短縮になります

例題3:分割コンパイル ex5-4-1.c, ex5-4-2.c 「printf()」は、このファイル内で使う ex5-4-1.c: ex5-4-2.c: void basiccalc(int a, int b); int main(void) { int a,b; a=11; b=3; basiccalc(a,b); a=2014; b=508; baciccalc(a,b); a=314; b=271; baciccalc(a,b); a=123; baciccalc(a,456); basiccalc(321,654); return 0; } #include <stdio.h> void basiccalc(int a, int b) { int c,d; c=a+b; b=a-b; printf(”a=%d b=%d の時、”,a,b); printf(”和%d 差%d\n”,c,d); } このファイル内では定義されていない「basiccalc」 という関数を使うことを宣言 2つのファイルに分ける 2つのファイルに分ける

分割コンパイルの手順 「ex-5-4-1.c」をコンパイル 「ex-5-4-2.c」をコンパイル $ cc -c ex-5-4-1.c ⇒「ex-5-4-1.o」というオブジェクトファイル(プログラムのパーツ)ができる 「ex-5-4-2.c」をコンパイル $ cc -c ex-5-4-2.c ⇒「ex-5-4-2.o」ができる 「ex-5-4-1.o, ex-5-4-2.o」をリンク $ cc ex-5-4-1.o ex-5-4-2.o ⇒「a.exe」ができる

課題2:分割コンパイル: ex5-5-1.c, ex-5-5-2.c,ex5-5-3.c (a,b)=(1,2)、(3,4)、(5,6)…(19,20)の10個の実数の組に対し、積a*b、商a/bを計算するプログラムを、「main()」(ex5-5-1.c)と「basiccalc()」(ex5-5-2.c)の2つのソースファイルに分けて、分割コンパイルせよ。 「ex5-5-2.c」をコピーして「ex5-5-3.c」というソースファイルを作り、これを改造して和、差を計算するプログラムを作れ(課題ex5-3.cと同じ動作)

実習結果のレポート 3つのソースファイル「ex5-5-1.c」、「ex5-5-2.c」、「ex5-5-3.c」を添付ファイルにしてメールを送ってください。 宛先: muroo@cc.tuat.ac.jp 件名:コンピューター基礎実験5 本文:感想および一言