コンピュータ基礎実験  第4 回

33
ココココココココココ ココココココココココココココC ココ(1) ココ コ 一: Hello world! ココ コココ

description

コンピュータ基礎実験  第4 回. コンピュータープログラミング( C 言語)(1) 第一歩:「 Hello world! 」と四則演算. コンピュータープログラミング. コンピューター に何か作業をやらせるとき、コンピューターと人間は互いの言葉がわかりません 人間がコンピューターにやらせたいことを人間の言葉で書き、それをコンピューターに理解できる言葉に変換するのが「コンパイル」という作業です 「アプリ」、「ソフト」、「プログラム」 ‥‥ はコンピューターが理解できる言葉で書かれた指示内容の記録の総称です. コンピューターにわかること. コンピューターの理解できる言葉: - PowerPoint PPT Presentation

Transcript of コンピュータ基礎実験  第4 回

Page 1: コンピュータ基礎実験  第4 回

コンピュータ基礎実験 第4回

コンピュータープログラミング( C 言語)(1)

第一歩:「 Hello world! 」と四則演算

Page 2: コンピュータ基礎実験  第4 回

コンピュータープログラミングコンピューターに何か作業をやらせるとき、

コンピューターと人間は互いの言葉がわかりません

人間がコンピューターにやらせたいことを人間の言葉で書き、それをコンピューターに理解できる言葉に変換するのが「コンパイル」という作業です

「アプリ」、「ソフト」、「プログラム」‥‥はコンピューターが理解できる言葉で書かれた指示内容の記録の総称です

Page 3: コンピュータ基礎実験  第4 回

コンピューターにわかることコンピューターの理解できる言葉:

数字(2進数)の羅列「 1011, 0110, 1110, 1001, 0010, 1010‥‥ 」人間にはさっぱり?(実は適当です)

人間の理解できる言葉:アルファベットで表された単語の羅列(数字

含む)「 if(i==0){printf(“i is equal to zero.”;} 」人間間で使われる言語(自然言語)とは少し

違うが、内容はなんとなくわかる

Page 4: コンピュータ基礎実験  第4 回

プログラミング言語人間間の言語(自然言語)は、コンピューターへ

の指示を書き記すには複雑で無駄が多いので、自然言語に似せた、「簡略化された言語」を使います

  「プログラミング言語」(コンピューター言語)

「プログラミング言語」には複数の流儀があります「 FORTRAN 」、「 COBOL 」、「 C 言語」、「 C# 」、

「 BASIC 」「 Java 」、「 Ruby 」、「 Perl 」、「 Lisp 」‥‥いっぱ

いある

Page 5: コンピュータ基礎実験  第4 回

コンパイルとコンパイラープログラミング言語(人間に可読)で書かれ

た「指示」を、コンピューターに理解できる内容に変換する作業を「コンパイル」といいます

「コンパイル」の作業はコンピューター自身が行いますコンピューターに内容がわかるので、これは「コ

ンピューターが理解可能な内容(プログラム)です

この「変換プログラム」を「コンパイラー」と呼びます

Page 6: コンピュータ基礎実験  第4 回

いくつかの用語その1ファイル:ひとまとまりの情報(データ)の塊。ソースファイル:プログラミング言語で書かれ

た、人間に可読なファイル。実行ファイル:コンピューターに理解可能な、

コンパイラーで変換された後のファイル。「ソフト」、「アプリ」、「プログラム」などと呼ばれる。

オブジェクトファイル:ソースファイルから実行ファイルを作る途中につくられる、実行ファイルの組み立てに使われるパーツファイル。

Page 7: コンピュータ基礎実験  第4 回

いくつかの用語その2ファイル名:ファイルに付けられた名前。オペレーティングシステム( OS ):コンピュー

ターの基本動作を担うプログラム。「 Windows8 」、「 Mac   OS   X 」、「 Linux 」等

アプリケーションソフト:個々の具体的な仕事を行うプログラム。「アプリ」、「ソフト」、「コマンド」、「プログラム」など様々に呼ばれる

拡張子:何用のファイルかを示すために付けられる、ファイル名の末尾部分。「 ***.txt 」、「 ***.doc 」、「 ***.jpg 」、「 ***.exe 」等

Page 8: コンピュータ基礎実験  第4 回

C 言語プログラム言語の代表的なものコンピューターに可能なことは何でもできる  ⇒制約がなく、強力強力なので、 OS も C 言語を使って作られる強力すぎて「危険なプログラム」(ウイル

スなど)も作れる文法に「くせ」がある。マニアック。通好み

Page 9: コンピュータ基礎実験  第4 回

C 言語におけるコンパイルコンパイラー名;「 cc 」ソースファイル名:「 hoge.c 」(拡張子は「 .c 」)

「 hoge 」はアルファベット、数字なら何でもよい実行ファイル名:「 hage.exe 」(拡張子は「 .ex

e 」)「 hage 」は何でもよい(コンパイル時に指定)特に指定しなければ、「 a.exe 」

コンパイルおよび実行環境:「 Cygwin 」と呼ばれる、文字主体の環境

エディター:「サクラエディタ」という無料ソフト

Page 10: コンピュータ基礎実験  第4 回

コンパイルのプロセスソースファイル名:「 hoge.c 」(拡張子は「 .c 」)

「 hoge 」はアルファベット、数字なら何でもよい実行ファイル名:「 hage.exe 」(拡張子は

「 .exe 」)「 hage 」は何でもよい(コンパイル時に指定)特に指定しなければ、「 a.exe 」

コンパイルおよび実行環境:「 Cygwin 」と呼ばれる、文字主体の環境

エディター:「サクラエディタ」という無料ソフト

Page 11: コンピュータ基礎実験  第4 回

1) ソースファイルを書く   プログラム言語の文法に従って、 仕事の内容を書く.2) ***.c  のようなファイル名をつけ保存する.   拡張子は   .c 3) コンパイルする  コンピュータが理解できる言葉(機械語)に  変換する. オブジェクト・ファイル ***.o4) リンクする  実行ファイル ***.exe   5) 実行する  $ ./a.exe

コンピュータによる作業や計算の基本

11

Page 12: コンピュータ基礎実験  第4 回

“Hello world” プログラム最も簡単なプログラムの例として、文字列

を出力するプログラムを作りましょう伝統的に、「 Hello world! 」と出力するプ

ログラムが最初の例としてよく使われます。

Page 13: コンピュータ基礎実験  第4 回

/* My First Program   */

#include <stdio.h>

int main (void)

{

printf(“Hello! ¥n");

}

注釈 ( コメント ) は  /* と */ の間に書く

“… と…”で囲まれた文字列を出力する

printf(…) という関数の宣言をしているstdio.h というファイルを取り込む 文の終わりに

はセミコロン

Hello World! [1] 文字の出力■ 「サクラエディタ」「メモ帳」「ワードパッド」などの エディタ を使って,  下の枠内の文字を打ち込む . 半角英字で入力.改行には Enter キーを押す. 

改行のため

半角スペース

■ これは,画面に 文字列を表示する プログラムです

【例題1】

¥ または バックスラッシュ [ Option +¥ ]

13

Page 14: コンピュータ基礎実験  第4 回

作ったプログラムファイルを保存する■ ファイル名 ? ☞ 例えば ex4-0.c とする

■ 保存する場所(自分で決めたところでよい)☞ 例えば,保存したい場所 [A] に予め        [B] のようなディレクトリー (=フォルダ ) を作ってあるとすれば, ファイル   名前を付けて保存 保存する場所を選ぶ [A][B]

ファイル名 ex4-0.c 保存

 などとする.(続けて,同様の操作をするときは,保存画面の下の方にある

「最近のフォルダ (D) 」を開くと,すぐに目的のフォルダが見つかる)14

Page 15: コンピュータ基礎実験  第4 回

プログラムをしまっておく場所ディレクトリ(=フォルダ)の作成方法 (1)

1) 画面左下の「スタート」 ポップアップ画面の中の 「個人用フォルダー」,「ドキュメント」,…などをクリック2) 開いている画面の上の方にある「新しいフォルダー」をクリック3) 枠の中に“ 新しいフォルダー ”が水色地に白字で現れるので    ユーザーが作りたいフォルダー名を書く  このフォルダーの内容を見るには ダブルクリック

なお,つぎに述べる Cygwin のホームディレクトリーにフォルダを  作るときは2) 画面左下の「スタート」 ポップアップ画面の中の 「コンピューター」をクリック2) ネットワークの場所 (2) (¥¥fs-1¥edu-2redirect$)(Y:) をダブルクリック 3) 開いている画面の上の方にある「新しいフォルダー」をクリック

新しいフォルダー

15

Page 16: コンピュータ基礎実験  第4 回

プログラムをしまっておく場所ディレクトリ(=フォルダ)の作成方法 (2)

■ Cygwin の起動   すべてのプログラム     Cygwin Cygwin Bash Shell を選択する■ Cygwin のホームディレクトリは    /home/[ アカウント番号 ] です  ( 例 ) $ pwd とすると /home/500***( アカウント番号 )xxxx

さらに $ ls とすると そのディレクトリの中身の一覧が                表示される

■ 例えば、新たに C_2012  というディレクトリを作成するには $ mkdir C_2012 “C_2012” というディレクトリを作成 作ったディレクトリに入る ( ディレクトリの変更 ) には $ cd C_2012 とする

現在使用している端末

16

Page 17: コンピュータ基礎実験  第4 回

コンパイル   コンピュータが理解できる言葉(機械語)に変換する.

コンピュータによる作業や計算の基本 (2)

ディレクトリ内に実行したいプログラムを確認して $ cc ***.c

***.c: In function …    のような警告 (warning) が出てもエラー (error)の文字  が含まれていなければ多分 OK!     (新たに a.exe ができていれば良い )

半角の “スペース”

Enter (Return)

17

Page 18: コンピュータ基礎実験  第4 回

として プログラムを実行           $ ./a.exe

コンパイルができると ソースプログラムのあるフォルダ内に a.exe ファイルができるので,引き続き

半角の “スペース”

Enter

18

Page 19: コンピュータ基礎実験  第4 回

プログラムの書き方 ( まとめ 1)1. プログラムは void main(void) あるいは int main(void) で書き始める2. 慣用的に小文字を用いて書く3. 文の終わりにセミコロン( ; )をつける4. 複合文は { } で囲み、ブロック化する5. インデント(字下げ)で見やすくする6. コメント(注釈)は /* と */ で囲む7. ¥n は改行をするための特殊記号8 .…9. printf (“ 文字列” ) は “と ”で囲まれた文字列を出力

19

Page 20: コンピュータ基礎実験  第4 回

【例題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

Page 21: コンピュータ基礎実験  第4 回

四則演算 プログラム次に簡単なプログラムの例として、四則演

算( +-*/ )を使ったプログラムを作りましょう

Page 22: コンピュータ基礎実験  第4 回

【例題 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

Page 23: コンピュータ基礎実験  第4 回

変数の型と表記 (まとめ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

Page 24: コンピュータ基礎実験  第4 回

算術演算子意味 数学記号 C 言語での書き方加算 + +

減算 - -

乗算 × *

除算 ÷ /

あまり … %( 例 1)  

あるいは

( 例 2)  

24

Page 25: コンピュータ基礎実験  第4 回

• 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

Page 26: コンピュータ基礎実験  第4 回

• 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

Page 27: コンピュータ基礎実験  第4 回

課題の提出方法:1) 課題4-5のソースファイル「 ex4-5.c 」を添付して E メールで送信してください。

   本文には名前と感想

件名は「コンピュータ基礎実験 4 」

   添付ファイル名は「 ex4-5.c 」

   宛先は 「 [email protected]」   として下さい.

Page 28: コンピュータ基礎実験  第4 回

発展課題〜昨年の例から〜

28

Page 29: コンピュータ基礎実験  第4 回

#30

#04

#53#57

#21

#02 毛虫をイメージ

課題1−2から

Page 30: コンピュータ基礎実験  第4 回

#24 旗#33

#48  てんとうむし

#51 花

#10

#11 #27 ピエロ

Page 31: コンピュータ基礎実験  第4 回

#17#52

#55 オリンピック出場ならずの猫さんの驚愕をイメージ

#18#05

#41#09 4つの顔文字

Page 32: コンピュータ基礎実験  第4 回

#12#35おにぎり頭の生徒が意見を述べるために手を挙げてる絵

#14  どらえもん

Page 33: コンピュータ基礎実験  第4 回

#39下半身を隠した輩がそれを見ている輩に「嫌なら見るな」と言っている状況です#07 宇宙人に連れ去られてる

   モナーです!