コンピュータ基礎実験 第4 回
-
Upload
indira-cunningham -
Category
Documents
-
view
29 -
download
2
description
Transcript of コンピュータ基礎実験 第4 回
コンピュータ基礎実験 第4回
コンピュータープログラミング( C 言語)(1)
第一歩:「 Hello world! 」と四則演算
コンピュータープログラミングコンピューターに何か作業をやらせるとき、
コンピューターと人間は互いの言葉がわかりません
人間がコンピューターにやらせたいことを人間の言葉で書き、それをコンピューターに理解できる言葉に変換するのが「コンパイル」という作業です
「アプリ」、「ソフト」、「プログラム」‥‥はコンピューターが理解できる言葉で書かれた指示内容の記録の総称です
コンピューターにわかることコンピューターの理解できる言葉:
数字(2進数)の羅列「 1011, 0110, 1110, 1001, 0010, 1010‥‥ 」人間にはさっぱり?(実は適当です)
人間の理解できる言葉:アルファベットで表された単語の羅列(数字
含む)「 if(i==0){printf(“i is equal to zero.”;} 」人間間で使われる言語(自然言語)とは少し
違うが、内容はなんとなくわかる
プログラミング言語人間間の言語(自然言語)は、コンピューターへ
の指示を書き記すには複雑で無駄が多いので、自然言語に似せた、「簡略化された言語」を使います
「プログラミング言語」(コンピューター言語)
「プログラミング言語」には複数の流儀があります「 FORTRAN 」、「 COBOL 」、「 C 言語」、「 C# 」、
「 BASIC 」「 Java 」、「 Ruby 」、「 Perl 」、「 Lisp 」‥‥いっぱ
いある
コンパイルとコンパイラープログラミング言語(人間に可読)で書かれ
た「指示」を、コンピューターに理解できる内容に変換する作業を「コンパイル」といいます
「コンパイル」の作業はコンピューター自身が行いますコンピューターに内容がわかるので、これは「コ
ンピューターが理解可能な内容(プログラム)です
この「変換プログラム」を「コンパイラー」と呼びます
いくつかの用語その1ファイル:ひとまとまりの情報(データ)の塊。ソースファイル:プログラミング言語で書かれ
た、人間に可読なファイル。実行ファイル:コンピューターに理解可能な、
コンパイラーで変換された後のファイル。「ソフト」、「アプリ」、「プログラム」などと呼ばれる。
オブジェクトファイル:ソースファイルから実行ファイルを作る途中につくられる、実行ファイルの組み立てに使われるパーツファイル。
いくつかの用語その2ファイル名:ファイルに付けられた名前。オペレーティングシステム( OS ):コンピュー
ターの基本動作を担うプログラム。「 Windows8 」、「 Mac OS X 」、「 Linux 」等
アプリケーションソフト:個々の具体的な仕事を行うプログラム。「アプリ」、「ソフト」、「コマンド」、「プログラム」など様々に呼ばれる
拡張子:何用のファイルかを示すために付けられる、ファイル名の末尾部分。「 ***.txt 」、「 ***.doc 」、「 ***.jpg 」、「 ***.exe 」等
C 言語プログラム言語の代表的なものコンピューターに可能なことは何でもできる ⇒制約がなく、強力強力なので、 OS も C 言語を使って作られる強力すぎて「危険なプログラム」(ウイル
スなど)も作れる文法に「くせ」がある。マニアック。通好み
C 言語におけるコンパイルコンパイラー名;「 cc 」ソースファイル名:「 hoge.c 」(拡張子は「 .c 」)
「 hoge 」はアルファベット、数字なら何でもよい実行ファイル名:「 hage.exe 」(拡張子は「 .ex
e 」)「 hage 」は何でもよい(コンパイル時に指定)特に指定しなければ、「 a.exe 」
コンパイルおよび実行環境:「 Cygwin 」と呼ばれる、文字主体の環境
エディター:「サクラエディタ」という無料ソフト
コンパイルのプロセスソースファイル名:「 hoge.c 」(拡張子は「 .c 」)
「 hoge 」はアルファベット、数字なら何でもよい実行ファイル名:「 hage.exe 」(拡張子は
「 .exe 」)「 hage 」は何でもよい(コンパイル時に指定)特に指定しなければ、「 a.exe 」
コンパイルおよび実行環境:「 Cygwin 」と呼ばれる、文字主体の環境
エディター:「サクラエディタ」という無料ソフト
1) ソースファイルを書く プログラム言語の文法に従って、 仕事の内容を書く.2) ***.c のようなファイル名をつけ保存する. 拡張子は .c 3) コンパイルする コンピュータが理解できる言葉(機械語)に 変換する. オブジェクト・ファイル ***.o4) リンクする 実行ファイル ***.exe 5) 実行する $ ./a.exe
コンピュータによる作業や計算の基本
11
“Hello world” プログラム最も簡単なプログラムの例として、文字列
を出力するプログラムを作りましょう伝統的に、「 Hello world! 」と出力するプ
ログラムが最初の例としてよく使われます。
/* My First Program */
#include <stdio.h>
int main (void)
{
printf(“Hello! ¥n");
}
注釈 ( コメント ) は /* と */ の間に書く
“… と…”で囲まれた文字列を出力する
printf(…) という関数の宣言をしているstdio.h というファイルを取り込む 文の終わりに
はセミコロン
Hello World! [1] 文字の出力■ 「サクラエディタ」「メモ帳」「ワードパッド」などの エディタ を使って, 下の枠内の文字を打ち込む . 半角英字で入力.改行には Enter キーを押す.
改行のため
半角スペース
■ これは,画面に 文字列を表示する プログラムです
【例題1】
¥ または バックスラッシュ [ Option +¥ ]
13
作ったプログラムファイルを保存する■ ファイル名 ? ☞ 例えば ex4-0.c とする
■ 保存する場所(自分で決めたところでよい)☞ 例えば,保存したい場所 [A] に予め [B] のようなディレクトリー (=フォルダ ) を作ってあるとすれば, ファイル 名前を付けて保存 保存する場所を選ぶ [A][B]
ファイル名 ex4-0.c 保存
などとする.(続けて,同様の操作をするときは,保存画面の下の方にある
「最近のフォルダ (D) 」を開くと,すぐに目的のフォルダが見つかる)14
プログラムをしまっておく場所ディレクトリ(=フォルダ)の作成方法 (1)
1) 画面左下の「スタート」 ポップアップ画面の中の 「個人用フォルダー」,「ドキュメント」,…などをクリック2) 開いている画面の上の方にある「新しいフォルダー」をクリック3) 枠の中に“ 新しいフォルダー ”が水色地に白字で現れるので ユーザーが作りたいフォルダー名を書く このフォルダーの内容を見るには ダブルクリック
なお,つぎに述べる Cygwin のホームディレクトリーにフォルダを 作るときは2) 画面左下の「スタート」 ポップアップ画面の中の 「コンピューター」をクリック2) ネットワークの場所 (2) (¥¥fs-1¥edu-2redirect$)(Y:) をダブルクリック 3) 開いている画面の上の方にある「新しいフォルダー」をクリック
新しいフォルダー
15
プログラムをしまっておく場所ディレクトリ(=フォルダ)の作成方法 (2)
■ Cygwin の起動 すべてのプログラム Cygwin Cygwin Bash Shell を選択する■ Cygwin のホームディレクトリは /home/[ アカウント番号 ] です ( 例 ) $ pwd とすると /home/500***( アカウント番号 )xxxx
さらに $ ls とすると そのディレクトリの中身の一覧が 表示される
■ 例えば、新たに C_2012 というディレクトリを作成するには $ mkdir C_2012 “C_2012” というディレクトリを作成 作ったディレクトリに入る ( ディレクトリの変更 ) には $ cd C_2012 とする
現在使用している端末
16
コンパイル コンピュータが理解できる言葉(機械語)に変換する.
コンピュータによる作業や計算の基本 (2)
ディレクトリ内に実行したいプログラムを確認して $ cc ***.c
***.c: In function … のような警告 (warning) が出てもエラー (error)の文字 が含まれていなければ多分 OK! (新たに a.exe ができていれば良い )
半角の “スペース”
Enter (Return)
17
として プログラムを実行 $ ./a.exe
コンパイルができると ソースプログラムのあるフォルダ内に a.exe ファイルができるので,引き続き
半角の “スペース”
Enter
18
プログラムの書き方 ( まとめ 1)1. プログラムは void main(void) あるいは int main(void) で書き始める2. 慣用的に小文字を用いて書く3. 文の終わりにセミコロン( ; )をつける4. 複合文は { } で囲み、ブロック化する5. インデント(字下げ)で見やすくする6. コメント(注釈)は /* と */ で囲む7. ¥n は改行をするための特殊記号8 .…9. printf (“ 文字列” ) は “と ”で囲まれた文字列を出力
19
【例題1】を参考にして,次のような出力をするプログラムを 書いてみよう.課題 1-1
Your Name (各自の氏名)2-24-16, Naka-cho, Koganei, Tokyo 184-8588Department of Applied PhysicsTokyo University of Agriculture and Technology
ファイル名は ex4-1.c として下さい.発展課題 1-2 printf を使っていろいろな記号や空白を文字列を打ち出し, 画面上に好きな絵模様を作ってみよう. ファイル名は ex4-2.c として下さい.
<課題 >
改行やスペースの取り方
に注意!
20
四則演算 プログラム次に簡単なプログラムの例として、四則演
算( +-*/ )を使ったプログラムを作りましょう
【例題 4-3】 /* ex4-3 */
#include <stdio.h>
int main (void )
{
int a, b, c;
a=12;
b=23;
c=a+b;
printf(“%d\n”, c);
return 0;
}
ファイル名は ex4-3.c として下さい.
変数名変数の型名
( ここでは整数型 )
プログラムの終わり(書かなくても OKだ
が… )
整数型の変数を printf(…) で表示するため ☞ %d には c の値が入る
*変数の型 については 次ページ
変数の宣言文:一般に
型名 変数名,変数名 , …;
の形
int a=12,b=23,c; のように略すことも可
22
変数の型と表記 (まとめ2)型 扱える範囲 (gcc-cygwin) printf 中の表記
文字型 char
-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
%f変数の名付け規則:1) 先頭文字は英字 (a-z, A-Z) または下線 ( _ )2) 2 文字目以降は英字,下線,数字3) 大文字と小文字は区別4) 先頭から 31 文字までが有効,予約語 (do, for, …) などは不可 23
算術演算子意味 数学記号 C 言語での書き方加算 + +
減算 - -
乗算 × *
除算 ÷ /
あまり … %( 例 1)
あるいは
( 例 2)
24
• 2 つの整数 11 と3の和,差,積,商,あまり,を計算するプログラムを作成し,結果を示せ.
課題 4-4
ただし,結果は(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 として下さい.25
• 2 つの実数 11 と3の和,差,積,商を計算するプログラムを作成し,結果を示せ.
課題 4-5
ただし,結果は(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 として下さい.26
課題の提出方法:1) 課題4-5のソースファイル「 ex4-5.c 」を添付して E メールで送信してください。
本文には名前と感想
件名は「コンピュータ基礎実験 4 」
添付ファイル名は「 ex4-5.c 」
宛先は 「 [email protected]」 として下さい.
発展課題〜昨年の例から〜
28
#30
#04
#53#57
#21
#02 毛虫をイメージ
課題1−2から
#24 旗#33
#48 てんとうむし
#51 花
#10
#11 #27 ピエロ
#17#52
#55 オリンピック出場ならずの猫さんの驚愕をイメージ
#18#05
#41#09 4つの顔文字
#12#35おにぎり頭の生徒が意見を述べるために手を挙げてる絵
#14 どらえもん
#39下半身を隠した輩がそれを見ている輩に「嫌なら見るな」と言っている状況です#07 宇宙人に連れ去られてる
モナーです!