Hello

入門

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という変数に格納されます。

string name = get_string("What is your name?\n");

文字列の書式設定方法を覚えていませんか?

ユーザーの名前と挨拶をどのように結合したか覚えていますか。以下のようにprintfは文字列の表示だけでなく書式をフォーマットするためにも使うことができることを思い出してください (printffは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