情報科学リテラシー
2019年6月4日
海谷 治彦
目次
• PCルーム利用一般 • PCルームでのプログラム開発 • まぁ,緊急の場合に利用するということで • 別紙も利用 • ファイル,文字,バイト,ビット • 演習問題 2PCルームについて
• ワード,エクセル,ブラウザ等いろいろ使えるよ. • 印刷もできるよ. • Edgeがない・・・Chrome を使うように • IEは使ってはいけない. • notepad++ は無い • コルタナが無い・・・検索は可能 • ホームパス(ホームディレクトリ)の場所が独特, ネットワークの場所ってのになってるはず. • サインオフの方法が独特,注意. 3ホームの場所
• Hドライブらしい.ちょっと特殊. • このHドライブはネットワークドライブなので,どの席に 座っても,同じファイルが見える(はず) • 教員と学生が同じかどうかわからない. 4クロームを探す
Notepad++ USB起動
• PCルームのエディタはどうしようもないのしかイン ストールされてません. • 新しいアプリを自身で追加することもできません. • ただし,USBメモリはつけられるはずなので,USB メモリから起動可能なアプリならPCルームでも追 加利用可能です.• 貸与PCにある gcc (mingw) や notepad++ はUSB からの起動も可能です.
• ただし,自身でPATHの設定が必要となります.
• Windows PATH 設定 あたりでググる.
• 興味ある方は,試してみてください.
PCルームでのC言語の自習
• 一応,できる. • Cygwinという他の環境を使うことになる. • a.exe が使えない • F-secure とかいう非正規のセキュリティソフトのせい. • 対策法は以下に紹介. 7Cygwin使い方の概要
• 別紙 p1guide4.pdf を参照 • emacsがつかいにくい • notepad++ が無いので,notepad を使うとか. • コマンドがUNIX準拠 • a.exe が使えない. 8PCルームでの実習環境
• Cygwinと呼ばれるWindows上でUNIX/Linuxをほ ぼ完全に模倣する環境を用います. • 教科書[レ]の「UNIX」と書いてある表記のほうを見てく ださい. • 自分が作成したプログラム等はバックアップしてく ださいね. • 誤って消したりすると単位的に死にますし. • 基本,クラウド(Dropbox等)やUSBメモリ等にコピーを残 す. 9Cygwinの起動
10
中略
起動にかなりの時間がかか る場合が多い.
Cygwin64 Terminal
• 一般に「shell」とか「コマンド インタプリタ」とか言わ れるプログラム. • プログラム名を打ち込んで,[Enter]キーを押すと, 当該のプログラムが実行される. • PCルームで主に使えるアプリ • notepad • Windowsのメモ帳 • ソースプログラムのファイルを作成するのに使う. • ファイル名は「nantoka.c」等,拡張子を .c とする. • gcc もしくは cc (実体は同じもの) • C Compiler • コンパイラ. • ソースプログラムを実行ファイルに変換するプログラム. • ソースプログラムに誤りがあると,その旨を表示する. 11良し悪し Cygwin64 Terminal
• 貸与PCで使っているコマンドプロンプトよりかなり賢い.た だし,コマンドを知っていれば. • 実は貸与PCでも bash というコマンドを使い,Cygwinとほぼ同じ シェルを利用できます. • 起動が重い. • Windows上でUNIXを模倣しているため,ファイルシステム の表示が独特. • ちゃんと対応を理解していないとエクスプローラーからファイルの 場所が把握できない. • Windows独自のアプリとCygwinに特化したアプリで多少の 使い分けが必要. • 利用者には関係ないがディスク容量が沢山必要. 12プロンプト
• Terminalが人間の入力待ち状態である際に出てる 短い文字を「プロンプト」といいます. • Cygwinのプロンプトは若干長いです.(左) • 邪魔な場合,短くすることができます.(右) 13コマンドがUNIX/Linux準拠
• pwd 現在のフォルダ位置を表示 • cd は同じ • cd ~ 自分のホームに戻る • Winの場合 cd %HOMEPATH% • md じゃなくて mkdir • rd じゃなくて rmdir • dir じゃなくて ls ※ 実は皆さんの貸与PCでも上記コマンドは利用可能. • フォルダの区切りが ¥ じゃなくて / • これはWebと同じでむしろこっちのほうが自然. 14Cygwinのファイルシステム
• WindowsのファイルシステムをLinux風に見せるために,多 くの細工をしている. • よって,Win側のエクスプローラーからどこにファイルがあ るかが,非常にわかりにくい. • まぁ,慣れればわかるのだが. 15テキストエディタについて
• ソースプログラムを書くためのワープロ. • UNIXでは vi (実際にはvimと呼ばれるviクローン) というエディタが一般的ですが,とても癖が強いで す. • Cygwinではnotepad(Windowsのメモ帳)も利用でき るので,面倒な方はnotepadの利用で結構です. • Cygwinでも emacs はありますが,なぜか,非常に 重いです. 16エディタ色々
emacs
• 独立したWindowで起動できない.
一応,コンパイルもできるが
• a.exe の実行をPCが阻害している. • よって,下記のように –o という指定で,アプリ名を 別途指定する必要がある. • アプリ名の前に ./ というのをつけないといけない. 19notepadを使う場合の &
• メモ帳(notepad)を使う場合は,コマンドとファイル 名の後に & をつけてください. • & をつけないと,メモ帳を終了するまで,ターミナ ルを使うことができません. 20コレ
notepadの起動
21
notepad hello.c & と入力して, Enterキーを押す. コレがCygwin64 Terminal notepad (メモ帳)が起動するの で,プログラムの内容をうって, 保存する.
日本語の扱いについて
• ファイル内において日本語は使わないでください. • Latin1の拡張部分も使わないで! • ドイツ語等にある ë みたいなの. • ファイル名に日本語を使わないでください. • ファイルの中身(ソースプログラム内)に記述しないでく ださい. • 「日本語の空白文字」等,つまらないトラブルの原因に なるので,本授業ではファイルでの日本語利用を禁止 します. • 質問等は日本語でも結構です. 2223
復習: Cプログラムの開発の流れ
プログラミング 手作業 エディタを使用 コンパイル 自動変換 コンパイラを使用 実行 生成された 実行ファイルを使用 ソースプログラム (ソースコード hoge.c 等) 実行ファイル (ロードモジュール a.out 等) hoge.c a.outいくつかの用語確認
• ソースプログラム(プログラム) • Source Program • Source Code (ソースコード)とも呼ばれる. • C言語の文法に則して記述されたコンピュータへの命 令が記述されたファイル • 実行ファイル(アプリ) • Load Module (ロードモジュール)とも呼ばれる. • 実行可能プログラムとも呼ばれる. • ファイルの中身はコンピュータの言葉(マシン語)による 命令内容他が書いてある. • 人間が読んでも意味がわからない. • Terapad.exe 等のファイルのこと. • 特にファイル名を指定しなければ,a.exe という名前に なる.(本物のUNIX系OSの場合は,a.out) 24警告等が文字化けしたら
• コンパイラのエラー等 の警告が左記の図の ように,文字化けしたら, • 以下のコマンドをうって ください. export LANG=C • 警告は英語になります が,文字化けは解消さ れます. 25Cygwinでの日本語表示設定 1/3
• 警告等の日本語を表示したい場合,以下の手順で, 設定を行います. • まず,右クリックでメニューリストを出して,[Options]を 選択する. 26Cygwinでの日本語表示設定 2/3
• Options画面で[Text]を選択
Cygwinでの日本語表示設定 3/3
• Locale と Character set という値をそれ ぞれ以下に設定. • Locale ja_JP • Character set は, UTF-8 (Unicode) を 選択. 28p1guide4
• Cygwinでの実習のガイドを紹介 • 別ファイル参照
ファイルと文字について
一部は復習
電源を切ってもデータが残ってる!
• コンピュータの電源を切って再起動しても,データ は残っている. • ワードの文書,MP3ファイル,画像ファイル,プログラム ファイル・・・・ • これは,コンピュータの中でデータを保管してくれ ているからである. • データを保管する単位をファイルと呼び,保管庫を ファイルシステムと呼ぶ. • ファイルシステムはOSの一部であることが多い. • ファイルシステムでは,特定のファイル群をまとめ て保管する機能がある. • このまとめる部分をフォルダやディレクトリと呼ぶ. 3132
オペレー
ティング
システム
Operating System (OS)
• Windows 10, 8, 7, XP ... • UNIX • Linux • OS X (MacOS) • Android • iOS • ... 興味がある人は2年後期に 「オペレーティングシステム」の授業あります.
フォルダもしくはディレクトリ
• 下記はwindowsにおけるユーザーkaiyaの標準的 なダウンロードファイルが置かれるフォルダ. • 多くのOSでは,このような階層構造を用いてファイ ルを整理して保存している. 33ほとんど全てのデータはファイル
• 広く使われるOS(Windows等)では,ほとんど全てのデータはファ イルという単位で保管されている. • 例えば, • MSワードの文書 • MP3の音楽 • MP4の動画 • Cのプログラム • 実行可能プログラム (cc.exe やMSワード自体) • HTMLファイル 34 例えば,マイクロソフトワードは上記のファイルである.特殊文字 (一部復習)
• C言語等では表示しにくい特殊文字を ¥n 等の形式で表現し,文字型の変数に格納できる. • 内部的には 8bitのデータ列のどれかに対応する. • ¥n 改行 • ¥r キャリッジリターン 行頭に戻る制御文字 • ¥0 全ての値がゼロの文字 • ¥t タブ 35 p.9-(明)余談: ¥n と ¥r の歴史的違い
• 由来はタイプライターの時代までさかのぼる. • タイプライターは, • 次の行にいく • 行の先頭に戻る が異なる命令(機械的な動作)だった. • それぞれに対応するのが,¥n ¥r • PCのキーボードでは,あまり意味が無いのだが, • Linux/UNIX系は ¥n が改行 • Winでは ¥r¥n の両方が必要 • Macでは ¥r だけ? とテキストファイルでの改行の流儀が分かれてしまった. 36普通の文字
• コンピュータで標準的に扱われる文字は,ASCII と呼ばれる英数文字と記号である. • AからZ aからz 0から9 %, # 等の一部記号 • 標準的: ここでは,変数名,関数名等に用いること ができるものとしている. • 日本語や韓国語の文字,ドイツ語等の拡張部分 ( ä 等,通常アルファベットに装飾があるもの, いわ ゆる latin1)は標準的ではない. • 本授業では,プログラム内では,ASCIIコードの範 囲の文字のみ使ってください. • コメント内は除く 37 p.7-(明)ASCIIの表
38
例えば,100 0001 という7bitの値を文字 A と規定している. 101 1100 の \ が,日本のPCにおける ¥ になっている.
バイト,ビット
• デジタルコンピュータの最小情報単位はbit (ビット) と呼ばれ,二進数の一桁に相当する. • 例えば,たった1bitでも,「ある人の生死」,「受験の合 否」等の情報を表現することができる. • 数字や文字等,複雑な情報は,この1bitを複数個, 束ねて表現する. • 8bitを束ねた情報を1byte (1B 1バイト)と呼び,わり と広く使われている. • 例えば,英数文字の一文字は1Bで表現できる. • コンピュータのメモリは,この1B単位の情報を格納 できる配列みたいなものである.(後述) 39バイト表現と16進法
• 1Bは8bitなので,原則,0/1の 列を8個かかないといけない. • これはかなり面倒かつ読みに くいので,1Bは通常,16進法 の2桁で表現する. • 対応表は左記の通り. • 例えば,文字の M は, 0100 1101 なので, 4D と表現できる. 40 二進法 十六進法 0000 0 0001 1 0010 2 0011 3 0100 4 0101 5 0110 6 0111 7 1000 8 1001 9 1010 A 1011 B 1100 C 1101 D 1110 E 1111 F対応表 (ASCII code)
41 例えば, 文字 D は 0100 0100 文字 3 は 0011 0011 とコンピュータ内部では 表現されるのが普通. ¥ はホントは 〵だけど, ¥ と表示されてしまう.復習
参考 箱の大きさ
• 型によって一個の変数の大きさは異なる.• char を1箱(1B)とすると,
• int 4B分
• 実はintは真に整数では無い • 値に上限と下限がある.(±21億が多い)• float 4B分
• double 8B分
が一般的. • しかし,C言語にはこの辺の明確な規定が無い. 42 ‘x’ 15 文字 整数復習
++
日本語等の文字コード
• 文字をコンピュータ内で,どのようなデータで表現 するかの取り決めを文字コードと言う. • 日本語等,英数字以外の文字コードは多数,異な る流儀が存在する. • 英数字もASCII以外の流儀がある (あった) • アプリ側で文字コードを正しく認識する機能,もしく は扱う機能が無いと文字化けする. 43日本語等のための文字コード
• ASCIIによる英数字との互換性が重要. • 以下は互換性がある. • Shift-JIS (SJIS) • 概ねWindowsで広く用いられている. • 正確にはコレが拡張されたWindows31JがWindowsで 広く使われている. • UTF-8 • 現在,広く用いられているコード. • コレの親戚にあたるUTF-16はASCIIと互換性が無い. • JIS, EUC等も互換性があるが,今は使われなく なった. 44ASCIIの範囲の文字なら,
SJISでもUTF-8でも同じ
英語で済ませば
面倒に巻き込まれない.
前回演習の解答例
dotcampus参照
来週の伏線
Java, Eclipseダウンロード
演習説明とともに簡単に解説
演習1,2,3の問題はdotcampusに
演習4 (これは金曜まで)
• 以下の仕様に基づくプログラムを作成せよ. • dotcampusに提出
• プロジェクト名 odawara
• プログラム名 main1.c main2.c main3.c ....
• 前回と同様,問題の区切りをプログラム冒頭にコメントとして記述せよ. • 前回と同様,段階をおって複数のバージョンを作ってみよ. • 例えば,v1では在来線限定にして,v2では新幹線を考慮する等. 48 利用者は東京から小田原まで在来線でいくか,新幹線でいくかを指定する. 在来線の場合,0 を入力し,新幹線の場合,1を入力する. 新幹線の場合のみ,利用者は自由席か指定席かを指定する. 自由席の場合,0 を入力し,指定席の場合,1を入力する. システムは料金を表示する. 尚,東京から小田原までの乗車券は1500円,新幹線自由席特急券は1700円, 新幹線指定席特急券は2000円とする. 新幹線の場合,乗車券と特急券の両方が必要である.