情報処理演習 - osaka...

38
情報処理演習 CygwinHello, world! システム科学科 生物工学コース 佐々木耕太 http://www7.bpe.es.osaka-u.ac.jp/~kota/classes/jse.html [email protected] および、結果のテキスト出力

Upload: others

Post on 30-Jun-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 情報処理演習 - Osaka Universityohzawa-lab.bpe.es.osaka-u.ac.jp/kota/classes/jse/Hello...printf(“Hello, world!\n”); return 0; } 最後に改行 ソースコード(プログラム)を作成する

情報処理演習 CygwinでHello, world!

システム科学科 生物工学コース 佐々木耕太

http://www7.bpe.es.osaka-u.ac.jp/~kota/classes/jse.html [email protected]

および、結果のテキスト出力

Page 2: 情報処理演習 - Osaka Universityohzawa-lab.bpe.es.osaka-u.ac.jp/kota/classes/jse/Hello...printf(“Hello, world!\n”); return 0; } 最後に改行 ソースコード(プログラム)を作成する

Notepad++をクリックして、

クリックし

Page 3: 情報処理演習 - Osaka Universityohzawa-lab.bpe.es.osaka-u.ac.jp/kota/classes/jse/Hello...printf(“Hello, world!\n”); return 0; } 最後に改行 ソースコード(プログラム)を作成する

Notepad++を起ちあげる

Page 4: 情報処理演習 - Osaka Universityohzawa-lab.bpe.es.osaka-u.ac.jp/kota/classes/jse/Hello...printf(“Hello, world!\n”); return 0; } 最後に改行 ソースコード(プログラム)を作成する

改行コードがWindows (CR LF)になっているので、これを右クリックし、

Page 5: 情報処理演習 - Osaka Universityohzawa-lab.bpe.es.osaka-u.ac.jp/kota/classes/jse/Hello...printf(“Hello, world!\n”); return 0; } 最後に改行 ソースコード(プログラム)を作成する

Unix (LF)に変更する (Unix (LF)をクリックする)

Page 6: 情報処理演習 - Osaka Universityohzawa-lab.bpe.es.osaka-u.ac.jp/kota/classes/jse/Hello...printf(“Hello, world!\n”); return 0; } 最後に改行 ソースコード(プログラム)を作成する

これから使うCygwinは、Linuxのような環境をWindowsで実現するソフトウェア

Unix (LF)になった

Page 7: 情報処理演習 - Osaka Universityohzawa-lab.bpe.es.osaka-u.ac.jp/kota/classes/jse/Hello...printf(“Hello, world!\n”); return 0; } 最後に改行 ソースコード(プログラム)を作成する

最も簡単なプログラム

以上のプログラムに helloworld.cと名前を 付けて保存する

キーボードの¥で入力する (¥と表示されるかもしれない)

タブによる字下げ(インデント) (字下げされる文字数は環境による)

.hまで書く (.hを省くのはC++の記法)

#include <stdio.h>

int main(void) { printf(“Hello, world!\n”);

return 0; }

最後に改行

Page 8: 情報処理演習 - Osaka Universityohzawa-lab.bpe.es.osaka-u.ac.jp/kota/classes/jse/Hello...printf(“Hello, world!\n”); return 0; } 最後に改行 ソースコード(プログラム)を作成する

ソースコード(プログラム)を作成する

Page 9: 情報処理演習 - Osaka Universityohzawa-lab.bpe.es.osaka-u.ac.jp/kota/classes/jse/Hello...printf(“Hello, world!\n”); return 0; } 最後に改行 ソースコード(プログラム)を作成する

ソースコードを保存するディレクトリは本来どこでもいいが、 Cygwinでコンパイルし実行するので、PC ▶ Z:¥ ▶ linuxhomeに移動し、

クリックする

Page 10: 情報処理演習 - Osaka Universityohzawa-lab.bpe.es.osaka-u.ac.jp/kota/classes/jse/Hello...printf(“Hello, world!\n”); return 0; } 最後に改行 ソースコード(プログラム)を作成する

PC ▶ Z:¥ ▶ linuxhomeに移動した

Page 11: 情報処理演習 - Osaka Universityohzawa-lab.bpe.es.osaka-u.ac.jp/kota/classes/jse/Hello...printf(“Hello, world!\n”); return 0; } 最後に改行 ソースコード(プログラム)を作成する

ファイルの種類をC source file (*c; *.lex)に変更すれば、 これまでに作成したソースファイルも表示される

Page 12: 情報処理演習 - Osaka Universityohzawa-lab.bpe.es.osaka-u.ac.jp/kota/classes/jse/Hello...printf(“Hello, world!\n”); return 0; } 最後に改行 ソースコード(プログラム)を作成する

ファイル名の拡張子を c にしたことで、 C言語の予約語などに色がついた

Page 13: 情報処理演習 - Osaka Universityohzawa-lab.bpe.es.osaka-u.ac.jp/kota/classes/jse/Hello...printf(“Hello, world!\n”); return 0; } 最後に改行 ソースコード(プログラム)を作成する

クリックし

今度はCygwinをクリックして、

Page 14: 情報処理演習 - Osaka Universityohzawa-lab.bpe.es.osaka-u.ac.jp/kota/classes/jse/Hello...printf(“Hello, world!\n”); return 0; } 最後に改行 ソースコード(プログラム)を作成する

Cygwinを起ちあげる

Page 15: 情報処理演習 - Osaka Universityohzawa-lab.bpe.es.osaka-u.ac.jp/kota/classes/jse/Hello...printf(“Hello, world!\n”); return 0; } 最後に改行 ソースコード(プログラム)を作成する

カレント作業ディレクトリを ソースコードを保存した ディレクトリに変更する

pwd, cd, lsなどの基本的な UNIXコマンドは使えますか?

Page 16: 情報処理演習 - Osaka Universityohzawa-lab.bpe.es.osaka-u.ac.jp/kota/classes/jse/Hello...printf(“Hello, world!\n”); return 0; } 最後に改行 ソースコード(プログラム)を作成する

基本的なUNIXコマンド• pwd

• cd ◯◯

• ls

カレントディレクトリ(今いる、作業ディレクトリ)を表示する

◯◯というディレクトリに移動し、◯◯を新たなカレントディレクトリとする(◯◯はもともといたカレントディレクトリのサブディレクトリでなくてはいけない)

ソースファイルを保存したディレクトリに移動するために使う

カレントディレクトリにあるファイルとディレクトリを出力する

Page 17: 情報処理演習 - Osaka Universityohzawa-lab.bpe.es.osaka-u.ac.jp/kota/classes/jse/Hello...printf(“Hello, world!\n”); return 0; } 最後に改行 ソースコード(プログラム)を作成する

さっき作ったソースコードがあるかどうか確認すると、

Page 18: 情報処理演習 - Osaka Universityohzawa-lab.bpe.es.osaka-u.ac.jp/kota/classes/jse/Hello...printf(“Hello, world!\n”); return 0; } 最後に改行 ソースコード(プログラム)を作成する

ちゃんとある

Page 19: 情報処理演習 - Osaka Universityohzawa-lab.bpe.es.osaka-u.ac.jp/kota/classes/jse/Hello...printf(“Hello, world!\n”); return 0; } 最後に改行 ソースコード(プログラム)を作成する

gcc ◯◯.c -o ◯◯.exe もしくは gcc ◯◯.c -o ◯◯.exe -lm でコンパイルし、

Page 20: 情報処理演習 - Osaka Universityohzawa-lab.bpe.es.osaka-u.ac.jp/kota/classes/jse/Hello...printf(“Hello, world!\n”); return 0; } 最後に改行 ソースコード(プログラム)を作成する

コンパイルエラーが出たら、ソースコードを修正する(ここではコンパイルエラーはなかった)

Page 21: 情報処理演習 - Osaka Universityohzawa-lab.bpe.es.osaka-u.ac.jp/kota/classes/jse/Hello...printf(“Hello, world!\n”); return 0; } 最後に改行 ソースコード(プログラム)を作成する

./◯◯.exe で実行し、

Page 22: 情報処理演習 - Osaka Universityohzawa-lab.bpe.es.osaka-u.ac.jp/kota/classes/jse/Hello...printf(“Hello, world!\n”); return 0; } 最後に改行 ソースコード(プログラム)を作成する

結果が正しかったらおめでとう。 正しくなかったら (ノω・、)ウゥ・・・

プログラムを書き直す。

Page 23: 情報処理演習 - Osaka Universityohzawa-lab.bpe.es.osaka-u.ac.jp/kota/classes/jse/Hello...printf(“Hello, world!\n”); return 0; } 最後に改行 ソースコード(プログラム)を作成する

結果のテキスト出力1 Cygwinからのコピー&ペースト

Page 24: 情報処理演習 - Osaka Universityohzawa-lab.bpe.es.osaka-u.ac.jp/kota/classes/jse/Hello...printf(“Hello, world!\n”); return 0; } 最後に改行 ソースコード(プログラム)を作成する

右ボタンをドラッグして コピーしたい範囲を 選択する

Page 25: 情報処理演習 - Osaka Universityohzawa-lab.bpe.es.osaka-u.ac.jp/kota/classes/jse/Hello...printf(“Hello, world!\n”); return 0; } 最後に改行 ソースコード(プログラム)を作成する

右クリックして、 コピーを選ぶ

Page 26: 情報処理演習 - Osaka Universityohzawa-lab.bpe.es.osaka-u.ac.jp/kota/classes/jse/Hello...printf(“Hello, world!\n”); return 0; } 最後に改行 ソースコード(プログラム)を作成する

適当なテキストエディタに

Page 27: 情報処理演習 - Osaka Universityohzawa-lab.bpe.es.osaka-u.ac.jp/kota/classes/jse/Hello...printf(“Hello, world!\n”); return 0; } 最後に改行 ソースコード(プログラム)を作成する

貼り付けると、

Page 28: 情報処理演習 - Osaka Universityohzawa-lab.bpe.es.osaka-u.ac.jp/kota/classes/jse/Hello...printf(“Hello, world!\n”); return 0; } 最後に改行 ソースコード(プログラム)を作成する

選択した範囲が貼り付けられる

Page 29: 情報処理演習 - Osaka Universityohzawa-lab.bpe.es.osaka-u.ac.jp/kota/classes/jse/Hello...printf(“Hello, world!\n”); return 0; } 最後に改行 ソースコード(プログラム)を作成する

結果のテキスト出力2 標準出力のリダイレクト

Page 30: 情報処理演習 - Osaka Universityohzawa-lab.bpe.es.osaka-u.ac.jp/kota/classes/jse/Hello...printf(“Hello, world!\n”); return 0; } 最後に改行 ソースコード(プログラム)を作成する

./◯◯.exe > ◯◯.txt で標準出力をテキストファイルに リダイレクトできる

Page 31: 情報処理演習 - Osaka Universityohzawa-lab.bpe.es.osaka-u.ac.jp/kota/classes/jse/Hello...printf(“Hello, world!\n”); return 0; } 最後に改行 ソースコード(プログラム)を作成する

コマンドラインでは何も返事はないが、

Page 32: 情報処理演習 - Osaka Universityohzawa-lab.bpe.es.osaka-u.ac.jp/kota/classes/jse/Hello...printf(“Hello, world!\n”); return 0; } 最後に改行 ソースコード(プログラム)を作成する

ファイルがあるかどうか確認すると、

Page 33: 情報処理演習 - Osaka Universityohzawa-lab.bpe.es.osaka-u.ac.jp/kota/classes/jse/Hello...printf(“Hello, world!\n”); return 0; } 最後に改行 ソースコード(プログラム)を作成する

指定したテキストファイルができている

Page 34: 情報処理演習 - Osaka Universityohzawa-lab.bpe.es.osaka-u.ac.jp/kota/classes/jse/Hello...printf(“Hello, world!\n”); return 0; } 最後に改行 ソースコード(プログラム)を作成する

このファイルの中に

Page 35: 情報処理演習 - Osaka Universityohzawa-lab.bpe.es.osaka-u.ac.jp/kota/classes/jse/Hello...printf(“Hello, world!\n”); return 0; } 最後に改行 ソースコード(プログラム)を作成する

実行結果が書き込まれている

Page 36: 情報処理演習 - Osaka Universityohzawa-lab.bpe.es.osaka-u.ac.jp/kota/classes/jse/Hello...printf(“Hello, world!\n”); return 0; } 最後に改行 ソースコード(プログラム)を作成する

エクスプローラーでも ファイルができたことは 確認できて、

Page 37: 情報処理演習 - Osaka Universityohzawa-lab.bpe.es.osaka-u.ac.jp/kota/classes/jse/Hello...printf(“Hello, world!\n”); return 0; } 最後に改行 ソースコード(プログラム)を作成する

適当なテキストエディタで開いてみると、

Page 38: 情報処理演習 - Osaka Universityohzawa-lab.bpe.es.osaka-u.ac.jp/kota/classes/jse/Hello...printf(“Hello, world!\n”); return 0; } 最後に改行 ソースコード(プログラム)を作成する

プログラムの出力が ファイルに書き込まれている