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

Slides:



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

配列の宣言 配列要素の初期値 配列の上限 メモリ領域 多次元配列 配列の応用
コンピュータープログラミング(C言語)(2) 1.文字列出力と四則演算 (復習) 2.関数と分割コンパイル
演算、整数型と浮動小数点型 第3回目 [4月27日、H.16(‘04)] 本日のメニュー 1)前回の課題・宿題 2)ファイルサーバの利用
コンピュータープログラミング(C言語)(1) 仮想コンピュータでのプログラム環境 第一歩:「Hello world!」と四則演算
コンピュータープログラミング(C言語)(3) 1.関数と分割コンパイル (復習) 2.キーボード入力
初年次セミナー 第4回 整数と実数の取り扱い.
ファーストイヤー・セミナーⅡ 第8回 データの入力.
情報・知能工学系 山本一公 プログラミング演習Ⅱ 第7回 データの基本型 情報・知能工学系 山本一公
プログラミング論 I 行列の演算
演算、整数型と浮動小数点型 第3回[平成16年4月27日(火)]:PN04ー03.ppt 今日の内容 1 復習 2 加減・乗除演算子
岩村雅一 知能情報工学演習I 第9回(C言語第3回) 岩村雅一
C言語 第2講 生物機能制御学講座 濱田 農学部7号館209室.
プログラミング入門2 第1回 導入 情報工学科 篠埜 功.
基礎プログラミング (第五回) 担当者: 伊藤誠 (量子多体物理研究室) 内容: 1. 先週のおさらいと続き (実習)
コンピュータープログラミング (C言語)(6) 1.条件分岐2(switch文、復習) 2.繰り返し処理(for文、while文)
コンピュータープログラミング (C言語)(9) 1.これまでの復習
プログラミング演習Ⅰ 課題2 10進数と2進数 2回目.
精密工学科プログラミング基礎 第9回資料 (12/11 実施)
岩村雅一 知能情報工学演習I 第8回(後半第2回) 岩村雅一
第2回 Microsoft Visual Studio C++ を使ってみよう
第二回 VB講座 電卓を作ろう.
関数の定義.
プログラミング応用 printfと変数.
第10回関数 Ⅱ (ローカル変数とスコープ).
基本骨格 #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回) 岩村雅一
精密工学科プログラミング基礎Ⅱ 第4回資料 今回の授業で習得してほしいこと: 文字列の扱い ファイル入出力の方法 コマンドライン引数の使い方
2013年度 プログラミングⅡ ~ 計算してみよう ~.
2015年度 プログラミングⅡ ~ 計算してみよう ~.
整数データと浮動小数データ.
岩村雅一 知能情報工学演習I 第9回(C言語第3回) 岩村雅一
情報処理Ⅱ 第2回:2003年10月14日(火).
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日(金).
標準入出力、変数、演算子、エスケープシーケンス
プログラミング基礎a 第3回 C言語によるプログラミング入門 データ入力
cp-3. 計算 (C プログラミング演習,Visual Studio 2019 対応)
情報実習I (第1回) 木曜4・5限 担当:北川 晃.
岩村雅一 知能情報工学演習I 第8回(後半第2回) 岩村雅一
岩村雅一 知能情報工学演習I 第8回(C言語第2回) 岩村雅一
情報処理Ⅱ 第2回 2004年10月12日(火).
第3回簡単なデータの入出力.
四則演算,変数 入力文,出力文,代入文, ライブラリ関数
コンピュータープログラミング (C言語)(10) 1.ファイル入出力
プログラミング基礎a 第3回 C言語によるプログラミング入門 データ入力
printf・scanf・変数・四則演算
第2章 数値の入力と変数 scanfと変数をやります.
復習 いろいろな変数型(2) char 1バイト → 英数字1文字を入れるのにぴったり アスキーコード → 付録 int
C言語講座 四則演算  if ,  switch 制御文.
岩村雅一 知能情報工学演習I 第7回(後半第1回) 岩村雅一
岩村雅一 知能情報工学演習I 第9回(C言語第3回) 岩村雅一
Presentation transcript:

コンピュータープログラミング(C言語)(2) 1.文字列出力と四則演算 (復習) 2.関数と分割コンパイル コンピュータ基礎実験 第4回 コンピュータープログラミング(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の和,差,積,商,あまり,を計算するプログラムを作成し,結果を示せ.  前回課題 EX3-5  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を忘れるな) 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  プロジェクト名は「EX3-5」として下さい.

解答例1:整数型の四則演算: EX3-5.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の和,差,積,商を計算するプログラムを作成し,結果を示せ.  前回課題 EX3-6 2つの実数11と3の和,差,積,商を計算するプログラムを作成し,結果を示せ. ただし,結果は (1)2つの実数a,bが 11 と 3 として 2つの実数 a=… , b=… 和 a+b= … 差 a-b= … 積 a*b= …   商 a/b= … と出力するよう工夫せよ.(日本語設定その2を忘れるな) 2つの実数 a =11.000000, b =3.000000 和 a+b = 14.000000 差 a-b = 8.000000 積 a*b = 33.000000 商 a/b = 3.666667  プロジェクト名は「EX3-6」として下さい.

解答例2:実数型の四則演算: EX3-6.c #include <stdio.h> int main(void) { float a,b; a=11; b=3; /* a=1.23E7 やb=2.31E-12 なども使える*/ 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(EX4-1):様々な出力形式: EX4-1.c #include <stdio.h> int main(void) { int a=123; float b=123.4567890; printf(”整数の出力例 a=123\n”); printf(” %d\n”,a); printf(” %5d\n”,a); printf(”実数の出力例 b=123.4567890\n”); printf(”%f\n”,b); printf(”%9.2f\n”,b); return 0; } 日本語設定その2を忘れるな

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

例題2(EX4-2):関数: EX4-2.c #include <stdio.h> void basiccalc(int a, int b); int main(void) { int a,b; a=11; b=3; basiccalc(a,b); a=2014; b=508; basiccalc(a,b); a=314; b=271; basiccalc(a,b); a=123; basiccalc(a,456); basiccalc(321,456); return 0; } void basiccalc(int a, int b) { int c,d; c=a+b; d=a-b; printf(”a=%d b=%d の時、”,a,b); printf(”和%d 差%d\n”,c,d); } このプログラムで使う関数をリストアップする 最後に「;」(セミコロン)を付ける 日本語設定その2を忘れるな

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

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

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

エクリプスでの分割ソースファイル作成 プロジェクト「EX4-4」 「新規」 「src」で右クリック ファイル名「EX4-4-1.c」を入力 「ソースファイル」

分割コンパイルの手順 (Eclipseが自動的に実行) 「EX4-4.c」をコンパイル $ gcc -c EX4-4.c ⇒「EX4-4.o」というオブジェクトファイル(プログラムのパーツ)ができる 「EX4-4-1.c」をコンパイル $ gcc -c EX4-4-1.c ⇒「EX4-4-1.o」ができる 「EX5-4.o, EX4-4-1.o」をリンク $ gcc EX4-4.o EX4-4-1.o ⇒「EX4-4.exe」ができる

例題4(EX4-5):プロジェクトのコピーと改造 EX4-5.c, EX4-5-1.c コピーのファイル名変更 EX4-5.c: EX4-5-1.c: void basiccalc(int a, int b); int main(void) { int a,b; a=11; b=3; basiccalc(a,b); a=2014; b=508; basiccalc(a,b); a=314; b=271; basiccalc(a,b); a=123; basiccalc(a,456); basiccalc(321,456); return 0; } #include <stdio.h> void basiccalc(int a, int b) { int c,d; c=a*b; d=a/b; printf(”a=%d b=%d の時、”,a,b); printf(”積%d 商%d\n”,c,d); } 「積」と「商」に改造

プロジェクトのコピー(EX4-4⇒EX4-5) 「EX4-4」⇒「EX4-5」 書き換え 貼り付け 「EX4-4」を右クリック ⇒「コピー」    ⇒「コピー」 右クリックして 「EX4-4.c」、「EX4-4-1.c」を 「EX4-5.c」、「EX4-5-1.c」に名前変更 何もないころを右クリック

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

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