入門
Visual Studio Code(別名VS Code)は、コードを記述できる人気のある「統合開発環境」(IDE)であることを思い出してください。VS Codeの独自のコピーをダウンロード、インストール、および構成する必要がないように、代わりに、必要なものがすべてプリインストールされたクラウドベースのバージョンを使用します。
GitHubアカウントを使用してcode.cs50.ioにログインします。「Codespace」が読み込まれると、デフォルトでVSCodeが3つの領域に分割されていることがわかります。VS Codeの最上位には、すべてのプログラムを作成する「テキストエディター」があります。下部には「ターミナルウィンドウ」があります。これは、コードスペースのファイルとディレクトリ(別名フォルダ)を探索したり、コードをコンパイルしたり、プログラムを実行したりできるコマンドラインインターフェイス(CLI)です。また、左側にはファイル「エクスプローラー」があります。これは、コードスペースのファイルやディレクトリを探索するためのグラフィカルユーザーインターフェイス(GUI)です。
ターミナルウィンドウ内をクリックすることから始めて、それからcd
それ自体で実行します。その「プロンプト」は次のようになっていることがわかります。
~/ $
ターミナルウィンドウの内側をクリックし、次のように入力します。
mkdir hello
その後にEnterを押すと、あなたのCodespaceにhelloというディレクトリが作成されます。mkdirとhelloの間のスペースや他の文字を見落とさないように注意してください!
以下、コマンドを実行するとは、ターミナルウィンドウにコマンドを入力し、Enterキーを押すことを意味します。コマンドは大文字と小文字を区別しますので、小文字を大文字で入力したり、逆に大文字を小文字で入力したりしないように注意してください。
それでは、以下のコマンドを実行して、
cd hello
そのディレクトリに移動 (ディレクトリを開く) します。プロンプトは次のようになります
hello/ $
このようにならなかった場合は、ステップをさかのぼって、どこで問題が発生したかを確認します。
最初のプログラムを書いてもらいましょう。
code hello.c
を実行してhello.cという新しいファイルを作成します。このファイルは、Codespaceのテキストエディタで自動的に開くはずです。このファイルをcommand-S(macOSの場合)またはcontrol-S(Windowsの場合)で保存すると、すぐにCodespaceのエクスプローラにも表示されるはずです。
最初のプログラムを書くために,hello.cに以下の行を正確に打ち込んでください.
#include <stdio.h>
int main(void)
{
printf ("hello, world\n") ;
}
VS Codeは入力中に「シンタックスハイライト」(つまり色)を追加していますが、VS Codeの色の選択はこのproblem setのものと異なるかもしれません。これらの色は、実際にはファイル自体に保存されているわけではなく、特定の構文を目立たせるためにVS Codeが追加しているだけです。もし最初からhello.cという名前で保存していなかったら、VS CodeはあなたがCのコードを書いていることを(ファイル名の拡張子によって)知らないでしょうから、その場合はこれらの色もないでしょう。
ファイルの一覧表示
次に、ターミナルウィンドウのプロンプト (hello/ $
) のすぐ右側で、次のコマンドを実行します。
ls
するとhello.c
が表示されるはずです。これは、hello
フォルダにファイルがリストされているためです。具体的には、ls
(listの略) というコマンドを実行しました (頻繁に使用されるコマンドなので、キーストロークを短くするためにls
と呼ばれます) 。ここまでは大丈夫でしょうか?
プログラムのコンパイル
ここで、プログラムを実行する前に、コンパイラを使用してプログラムをコンパイルし、ソースコードからマシンコード(つまり、0と1)に変換するhello.c
必要があることを思い出してください。以下のコマンドを実行して、それを実行します。
make hello
そして、これをもう一度実行します。
ls
今度は、hello.cだけでなく、helloもリストアップされているはずですね。これで、hello.cのソースコードをhelloの機械語に翻訳したことになります。
では、下のように実行して、プログラムそのものを実行してみましょう。
./hello
これで完了です!
ユーザ入力を取得する
このプログラムをどのようにコンパイルして実行してもhello, world
しか出力しません。レッスンで行ったように、少しパーソナライズしましょう。
このプログラムを変更して、最初にユーザーに名前の入力を求め、次にhello, so-and-so
(so-and-so
は実際の名前) を出力するようにします。
前と同じように、以下のコマンドでプログラムをコンパイルしてください。
make hello
また、プログラムを実行し、さまざまな入力で数回はテストしてください。
./hello
ウォークスルー
Hintsヒント
どのようにユーザ入力を取得するか覚えていませんか?
get_string
は次のように使用でき、戻り値string
型のname
という変数に格納されます。
stringname
=
get_string("What is your name?\n");
文字列の書式設定方法を覚えていませんか?
ユーザーの名前と挨拶をどのように結合したか覚えていますか。以下のようにprintf
は文字列の表示だけでなく書式をフォーマットするためにも使うことができることを思い出してください (printf
のf
はformatを表します)。
printf("hello, %s\n",
name);
宣言されていない識別子の使用 (Use of undeclared identifier) とは?
Seeing the below, perhaps atop other errors? 以下のメッセージを見ると、他のエラーにもとづくものでしょうか?
error: use of undeclared identifier 'string'; did you mean 'stdin'?
get_string
を使用するには、次のようにcs50.h
(get_string
の宣言) をファイルの先頭に追加する必要があります。
#include <cs50.h>
コードのテスト方法
check50
を使用するため以下を実行し、コードの正確さを評価してください。ただし、コンパイルとテストは必ず自分で行ってください。
check50 cs50/problems/2022/x/hello
以下を実行し、style50
を使用してコードのスタイルを評価します。
style50 hello.c
提出方法
次のコマンドを実行し、GitHubのユーザー名とパスワードを入力してログインします。セキュリティのため、パスワードには実際の文字ではなくアスタリスク (*) が表示されます。
submit50 cs50/problems/2022/x/hello