#author("2018-07-12T09:50:05+09:00","default:takataka","takataka") #author("2018-07-12T09:50:15+09:00","default:takataka","takataka") *基礎セミナー 2018年度 ex05 [#e237d833] **C言語の開発環境を手に入れよう [#developer] プログラミングをするためには,いくつかソフトウェアをインストールするなどの準備が必要です. まずはWindows/macOSそれぞれ次のことを目標に環境を整えてみましょう. - Windows: [[計算機基礎実習I>http://www602.math.ryukoku.ac.jp/~nakano/Kiso1/index.html]] のプログラム(C言語)を作ったり動かしたりできるようになる. - macOS: C言語のプログラミングができるようになる. ***Windows [#j5c7c0c5] ★ 上記の中野先生の「計算機基礎実習I」のページから「自宅でのプログラミング」のページへ行き,その指示に従って次のことをやりましょう. + Visual Studio Community 2017 をインストールする //--&color(blue){「「C++ によるデスクトップ開発」 にチェックを入れて」の時に,あわせて 「Python開発」にもチェックを入れて下さい.}; + この科目のタートルグラフィクス環境をインストールする + テキストエディタをインストールする -- テキストエディタにはいろいろありますので好みのものを入れればよいですが,とりあえず [[サクラエディタ>http://sakura-editor.sourceforge.net/]] を入れてみましょう.以下の macOS の方の説明に書いてある Visual Studio Code でもよいです. ★ C言語のコンパイラを動かしてみましょう. + コンパイラが動作するように設定されたコマンドプロンプトを起動: スタートメニュー > Visual Studio 2017 > 開発者コマンドプロンプト for VS 2017 + この環境のコンパイルコマンドは cl (2文字目はエルの小文字)です.次のように実行してみましょう #pre{{ C:\Program Files (x86)\Microsoft Visual Studio\2017\Community> cl Microsoft(R) C/C++ Optimizing Compiler Version 19.13.26129 for x86 Copyright (C) Microsoft Corporation. All rights reserved. 使い方: cl [ オプション... ] ファイル名... [ /link リンク オプション... ] }} -- 行の先頭のから ">" までの部分は、現在いる場所を表しており、">"はキー入力を待っている状態を表す記号(プロンプトと言います)です.これらを入力してはいけません. -- コンパイル対象のファイルを指定してないのでコマンドの使い方が出力されてます. + 何度も起動するので,スタートメニューから「開発者コマンドプロンプト for VS 2017」を開いて右クリックし,次のどれかをやるとよいでしょう. -- スタートメニューにピン留め: スタートメニューにアイコンが追加されます -- その他 > タスクバーにピン留め: 下の「タスクバー」にアイコンが追加されます -- その他 > ファイルの場所を開く > 右クリックして 送る > デスクトップ(ショートカットを作成): デスクトップにアイコンが追加されます + 上記で追加したアイコンをクリックして「開発者コマンドプロンプト for VS 2017」が起動することを確認しておこう. ***macOS [#g3b58f5d] ★ Apple の提供しているプログラミングのためのソフトウェア Xcode をインストールしましょう. + App Store で Xcode で検索し,インストール.容量大きいので結構時間かかります. + Finder > アプリケーション > ユーティリティ > ターミナルを起動 -- よく使うので,起動後に Dock のアイコンを右クリック > オプション > Dock に追加 しとくとよいでしょう. -- 文字の大きさとか色とかいじりたければメニューで ターミナル > 環境設定 + C言語のコンパイラを実行できるか確認してみる. $ cc clang: error: no input files -- 行の先頭の "$" は,キー入力を待っている状態を表す記号(プロンプトと言います)です.入力してはいけません. -- コンパイル対象のファイルを指定してないのでエラーになっていますが,このようにエラーメッセージが出るということは,コンパイラ自体は動いているということです. -- 上記を実行すると,追加のソフトウェアのインストールが促されるかもしれない.指示に従ってインストールすればよい. + Xcode 関係のライセンスの確認.後の作業のために必要. $ sudo xcodebuild -license -- 上記を実行して自分の mac のパスワードを入力. -- "Xcode and Apple SDKs Agreement" という英文が表示されるので,スペースキーを押しながら最後まで読む. -- 最後の行の指示にしたがってキー入力して Enter. ★ プログラムを書くのに使うテキストエディタをインストールしよう. ここでは,Visual Studio Code をインストールしてみることにします.後期の授業ではこれを使うことになるようです(ちなみに,授業で使うOSは Windows でも macOS でもなく Linux). Visual Studio Code は これらのどの OS にもインストールして使えます. + Visual Studio Code のウェブサイトへ https://www.microsoft.com/ja-jp/dev/products/code-vs.aspx + ダウンロードのページへ行って,自分の OS に合ったものをダウンロード + ダウンロードしたファイルを展開してインストール + (macOSの場合)ダウンロード先に Visual Studio Code.app というファイルができるので,それを「アプリケーション」に移動(Finder でドラッグ&ドロップ). **簡単なプログラムを書いて実行してみよう [#c85d8f84] **簡単なプログラムを書いて実行してみよう [#hoge] ここでは,Windows ではサクラエディタを,macOS では Visual Studio Code (以下 VS Code)を使う前提で説明してます. + エディタを起動 -- [win] スタートメニュー > サクラエディタ で サクラエディタ を起動. -- [mac] アプリケーション > Visual Studio Code で VS Code を起動.メニューで ファイル > 新規ファイル. + プログラムのソースを書く.以下を書きましょう. #pre{{ #include <stdio.h> int main(void) { printf("Hoge!\n"); return 0; } }} + ファイル名を付けて保存 -- [win] ファイル > 名前を付けて保存.保存先は「デスクトップ」にしましょう. -- [mac] ファイル > 名前を付けて保存.保存先は「デスクトップ」にしましょう. + コマンドプロンプト/ターミナルを起動 -- [win] 上記で説明してる「開発者コマンドプロンプト」を起動 -- [mac] 上記で説明してる「ターミナル」を起動 + フォルダ/ディレクトリを移動. -- 「どこかの場所にあるファイルを開く」という場合に,みなさんが馴染んでいる操作法は,「マウスを使ってフォルダ/ディレクトリの階層をたどって行き,そのファイルのアイコンをクリックする」というものでしょう.このような直感的な操作のやり方を「&color(blue){GUI};(Graphical User Interface)」といいます.一方,コマンドプロンプトやターミナルのように,主にキー入力によってコンピュータに指示を出し,文字出力で結果を得るようなやりとりの仕方を,「&color(blue){CUI};(Character User Interface,文字によるユーザインタフェイス)」または「&color(blue){コマンドライン操作};」と言います.CUIでは,フォルダ/ディレクトリ階層を移動する操作もキー入力によって行います. -- 上記で作ったプログラムのソースファイル hoge.c は,win/mac とも「デスクトップ」に保存しました.ですので,コンパイルのためにはその場所へ移動する必要があります. --- [win] 次のようにコマンド入力しましょう #pre{{ C:\Program Files(省略)> cd \Users\takataka takataka の部分は自分のアカウント名 C:\Users\takataka> cd Desktop }} --- [win] 上記のかわりに次のように入力してもokです C:\Program Files(省略)> cd %homepath%¥Desktop --- [mac] $ cd ~/Desktop + ファイルを一覧.hoge.c があることを確認しよう. [win] > dir [mac] $ ls -- 上記のように dir / ls コマンドを実行すると,今いる場所にあるファイルを一覧することができます.どちらの場合も,ソース hoge.c が見えるはず. + コンパイルを実行 [win] > cl hoge.c -o hoge [mac] $ cc hoge.c -o hoge + コンパイルできたことを確認 [win] > dir [mac] $ ls -- ソース hoge.c とそれをコンパイルしてできる実行形式のファイル(winでは hoge.exe,mac では hoge )が見えるはず. + プログラムを実行 [win] > hoge.exe (hogeだけでも可) [mac] $ ./hoge (ピリオド「.」とスラッシュ「/」を前に付ける) + プログラムを書き換えて再コンパイル,再実行 ++ Hoge! のところを適当な文字に書き換えて(日本語でもok)上書き保存 ++ コンパイルし直す ++ 実行し直す **ほげほげしてみよう [#hogehoge] ***ファイルを整理しよう [#nf1cc1a9] 上記ではデスクトップに hoge.c とか置きましたが,この調子でいろいろファイルを置いていくと散らかっていやんな感じです.整理しましょう. + Desktop の下に Kiso2018 というフォルダ/ディレクトリを作成.以下には GUI による方法と CUI による方法の両方を書いてますので,どちらか一方でやりましょう. -- [win(GUI)] エクスプローラーで「デスクトップ」を開き,上部のメニューの「新しいフォルダー」を選択.フォルダ名を Kiso2018 にする. -- [win(CUI)] 開発者コマンドプロンプトを開いて以下の通り #pre{{ > cd %homepath%¥Desktop > mkdir Kiso2018 mkdir はディレクトリ作成のコマンド }} -- [mac(GUI)] Finder で「デスクトップ」を開き,メニューの ファイル > 新規フォルダ(または Finder ウィンドウ内で右クリック > 新規フォルダ,または上部の歯車アイコン > 新規フォルダ)を選択.ディレクトリ名を Kiso2018 にする. -- [mac(CUI)] ターミナルを開いて以下の通り #pre{{ $ cd ~/Desktop $ mkdir Kiso2018 mkdir はディレクトリ作成のコマンド }} + Desktop の hoge.c などを Kiso2018 の中へ移動.ここではCUIによる方法のみ記します. #pre{{ [win] > Kiso2018 フォルダへ移動 > move ..\hoge.* (「..」は今いる場所の一つ上のディレクトリ,「hoge.*」はファイル名が hoge.c, hoge.obj, hoge.exe, などのもの全部) [mac] $ Kiso2018 フォルダへ移動 $ mv ../hoge* . (「..」は今いる場所の一つ上のディレクトリ,「.」は今いるディレクトリ,「hoge*」はファイル名が hoge ではじまるもの全部) }} ***少し複雑なC言語のプログラムを動かしてみよう [#kab0cd0c] 郵便番号探索のプログラム(2017年度の「応用プログラミング演習」(2年後期コア選択必修科目)の課題です)を動かしてみよう. + 関係のファイルたちを1つにまとめたZIPという形式のファイルが以下にあります.手元にダウンロードしましょう -- SJIS版(win用) [[zip-sjis.zip>https://www-tlab.math.ryukoku.ac.jp/~takataka/gakunai/course/Kiso/zip-sjis.zip]] (学内アクセス限定) -- UTF8版(mac/Linux用) [[zip-utf8.zip>https://www-tlab.math.ryukoku.ac.jp/~takataka/gakunai/course/Kiso/zip-utf8.zip]] (学内アクセス限定) + Desktop/Kiso2018 の中にZIPファイルを展開しましょう -- [win] ダウンロードした zip-sjis.zip を開くと,展開先の入力が促されます.展開先を Desktop\Kiso2018 にして「展開」したらよいでしょう. -- [mac] ダウンロードした zip-utf8.zip を開くと,その場に zip-utf8 というディレクトリができます.これを Desktop/Kiso2018 に移動したらよいでしょう. + ソースをコンパイルして実行してみよう #pre{{ [win] > cd で zip-sjis フォルダへ移動 > cl -c zipsearch.c > cl -c zipmain2.c > dir (zipsearch.obj と zipmain2.obj というファイルができてるはず) > cl zipsearch.obj zipmain2.obj -o zipsearch2 > dir (zipsearch2.exe というファイルができてるはず) > zipsearch2 121667件の郵便番号データを読み込んだで どっちのアルゴリズムにする? 0: 線形探索 1: 二分探索 }} #pre{{ [mac] $ cd で zip-utf8 ディレクトリへ移動 $ make $ ./zipsearch2 121667件の郵便番号データを読み込んだで どっちのアルゴリズムにする? 0: 線形探索 1: 二分探索 }}