Lecture 2 はじめてのプログラミング

Lecture 2 の解説動画

この講義の録画を,以下に載せました.聞き逃した人はこちらを確認してください.



【ヒント】最初にC言語のプログラムの開発方法を説明します

プログラムのコンパイルと実行

情報処理1および情報処理実習1では、 コマンドプロンプトからプログラムのコンパイルと実行を行うことにします。 まずは、プログラムを作って実行するために最低限必要な基礎知識を身につけます。
なお、情報処理教室のコンピュータ環境にてコマンドプロンプトから作業を行う際には、 ちょっとした注意が必要になるので,この環境に慣れましょう。

ディレクトリの基礎知識

ディレクトリは、ファイルを階層的に管理するものです。 WindowsやMacでは、ディレクトリをフォルダと呼ぶことがありますが、 ディレクトリと呼ぶ方がより一般的な表現です。
【ヒント】よーするに同じものです.
今回の授業では、Cドライブcprog20 というディレクトリを作成し、更にその下の階層に授業の回毎のディレクトリ(ch2, ch3など)を 作成するものとして授業を進めていきます。
c:\cprog20\
  |  
  |-- helloworld
  |     |-- .vscode
  |     |-- helloworld.cpp
  |  
  |-- ch02
  |     |-- .vscode
  |     |-- test.cpp
  |     |-- test2.cpp
  |     |
  |
  |-- ch03
  |     |-- 
ディレクトリ構造を表すために、'\'(or '¥')という記号が使われます。 これは一つの階層を表しています。例えば、Z:\joho1\ch2\test.cpp と 表されたものは、Zドライブの下に joho1 というディレクトリがあり、 そのディレクトリの下に更に ch02 というディレクトリがあり、 そのディレクトリの中にある test.cpp というファイルを意味しています。

ディレクトリの操作


mkdir
新しいディレクトリを作成するためのコマンドです。
C:\cprog20> mkdir ch02
なお、'C:\cprog20>' はコマンドプロンプトを意味しています。これをわざわざ入力する必要はありません。以下同様。

cd
ディレクトリを移動するためのコマンドです。
C:\cprog20> cd ch02
親ディレクトリ(一つ上の階層)へ移動する場合には、以下のように入力します。
C:\cprog20> cd ..

dir
現在のディレクトリに含まれる子ディレクトリやファイルの一覧を表示します。

【ヒント】Tab補完機能について
Tab補完とは、コマンドプロンプト上でフォルダ名やファイル名を途中まで入力して Tabキーを押すことで、補完入力をしてくれる機能のことです。
例えば、cdコマンドでjoho1へ移動しようとする際に
C:\> cd cpr
と、"cpr"まで入力したら、Tabキーを押してみてください。補完されて、
C:\> cd cprog20
となります。

エクスプローラからの操作

  • ディレクトリはWindowsエクスプローラからも操作することが出来ます。

C言語のソースコードの作成(キーボードからの入力)

  • VS Codiumの使い方を参照

コンパイル(C言語から実行可能ファイルへの変換)と実行


実際にやってみる




課題の取り組み方

課題をやるときには,以下の手順を必ず守りましょう.そうしないと却って時間がかかり,辛くなってしまいます.
  • プログラムの作成は,まず,必ず自分のPCのローカル環境で行いましょう.
  • いきなりOnline Judgeを開いてはいけません.Online Judge上ではデバッグができないからです.デバッグができないといのは,エラーが何かがわからないという意味です.
  • 必ず自分のPC上にあるエディタ(例えば VS Codeなど)を開き,そこでプログラムを作成しましょう.
  • ある程度できたら,コンパイルしてみます.エラーが沢山出ると思います.そのエラーをよく読みましょう.そして,原因を考え,一つ一つ潰していきます.
  • エラーが沢山出ると,初めのうちはびっくりして,「何やらわけわからないものが出てきた」と思い,読まずにすぐにソースコードを変更してしまう人がいます.でもこのような「当てずっぽう」は駄目です. 丹念にエラーを読みましょう.きっとヒントが隠れていると思います.
  • じっくりエラーを読み,どこに問題があるのか類推しましょう.そしてソースコードを修正し,もう一度コンパイルしてみます.エラーが変化しましたか? エラーが変わらなかったら,修正したことが正しくなかったということです.エラーが違うものになったら,修正は当たりだったのかも知れません(複数のエラーのうち一つが解決されて,次のエラーになった等)
  • 無事にコンパイルが完了したら,実行してみましょう.思ったような結果が出ましたか? もしも実行しても思ったような結果にならなかった場合は,やはりどこかが間違っているのです.もう一度修正してやり直しましょう.
  • プログラムの作成はこのような地道な作業の繰り返しです.諦めずに何度でも修正をしよう.
  • プログラムが思ったように動くようになったら,ここで初めてOnline Judgeの登場となります.出来上がったソースコードをコピペして投稿(Submit)しましょう.きっと一回で成功(Accept)になるはずです.
  • このように,最後の最後まで,プログラムが完成したと思えるようになるまでは Online Judgeに投稿してはいけません.そうしないと却って時間を浪費することに繋がります.




【参考】C(C++)プログラムの基本形

  • C言語のプログラムは,関数の集まりである.
  • プログラムにおける関数とは,「一連の処理のかたまり」のことを指し,数学の関数とは多少意味が違う.
  • 関数には計算の過程を指示するおよび計算で使われる値を一時的に格納する変数が含まれる.上のプログラムでは,main(), printf() が関数である.また,プログラムの実行は,main関数から始まり,行の上から下に向けて順に処理が進められる.
  • 1行目の,#include <stdio.h> は,すでに用意されている入出力を行うための関数(この例ではprintf())を使うための準備である.これら標準入出力関数には,画面に文字を表示する printf(),キーボードからデータの入力を受け取る scanf() などがある.
  • 4行目の二重引用符"...."で囲まれた文字を,文字列と呼ぶ.
  • 文字列の最後の ¥n という記号は改行をしなさいという特別な記号(エスケープシーケンスという)で, 画面に直接 ¥ や n が表示されるわけではないので注意.
  • 日本語環境では「¥(エン)」記号が表示されるが,英語圏では「\(バックスラッシュ)」が出力される場合がある.