2回目の授業

前回の課題の採点結果については,
Web学習システムの,
右上にある,

[自分の名前] - [評定] - [私が受講しているコース] - [2023年度夏学期・月1木1・音響プログラミング演習(旧カリ:プログラミング言語)]

をクリックし,
評定の欄を確認してください。

基本的には,以下のような記載をしておきますので,Good以外だったひとは,何が問題だったのかを,教員やTAに質問し,その問題を解決しておくようにしてください。

Upload not finished:アップロードが途中で止まっている
Not source program:ソースプログラム以外のもの(例えば実行形式のプログラム,コンパイルしてできあがったファイルのこと)がアップロードされている
Inconsistent:違う課題のソースプログラムが提出されている
Error:コンパイルエラーが起こる(実行形式のプログラムができない)
Behind:締め切りに遅れて提出された
Unexpected:コンパイルは通る(実行形式のプログラムにはなる)が,プログラムに間違いがある(期待された動作をしない)
Good:問題なし

また,フィードバックの欄に,何が問題だったかについての簡単なコメントを記載しておきますので,問題の解決の参考にしてください。


第1章

C言語ってだいたいこんなかんじ



 まず最初に,C言語の簡単なプログラム例を以下に示します。とりあえずざっと見て,かんじをばっとつかんでください。

/*
    読み込んだ二つの整数値の和を求めて表示
*/

int main(void)
{
    int a, b, c;
    
    printf("二つの整数を入力してください。\n");
    
    printf("整数1:");
    scanf("%d", &a);
    
    printf("整数2:");
    scanf("%d", &b);

    c = a + b;

    printf("それらの和は%dです。\n", c);
}

[解説]

基本的な規則

 上記のプログラム例をもとにして考えると,C言語のプログラムは一般的に以下のような規則に従って書けばよいことが分かります。


(注意その1) "自由に空白を入れることができる"と書きましたが,全角のスペースは入れてはいけません!! 必ず半角のスペースを使用して,プログラムの見た目を整えてください。

(注意その2) \n (改行)の中の,\は,逆斜線(バックスラッシュ)です。webブラウザやテキストエディタの環境設定によっては,円記号に見えることもあります。しかし,ソースプログラムを書く際には,逆斜線(バックスラッシュ)として入力してください。逆斜線(バックスラッシュ)の入力の仕方は,option+\ キーを押す,です。

(注意その3) c = a + b の意味は,

“右辺の計算結果を,左辺の変数に代入する”

です。時々,A = x + B と書けば,与えられたAとBの値に応じて,xの値を解いてくれる(方程式をC言語が解いてくれる),と勘違いするひとがいますが,C言語はそんなに頭は良くありません。あくまでも,右辺で計算(足し算なり掛け算なり)された値を,左辺の変数に代入する,という動作しかしませんので,勘違いしないようにしましょう。


上記以外にも,とりあえず知っておくとよい規則をピックアップしておきましょう。



コンパイラの使い方について



 この授業で使う C 言語のコンパイラは gcc です。
gcc は,すでに先週の授業の宿題でも使ってもらいました。
今日は,gcc の -o オプションの使い方を覚えてください。

 先週の宿題では実行形式のプログラムのファイル名は,自動的に a.out となってしまっていました。
gcc の -o オプションを使うことで,このファイル名を自分の好きなように指定できます。

 いま,つくっているプログラムのソースプログラムのファイル名が list1-3.c だとします。
この実行形式のプログラムのファイル名が list1-3 だとしたら,分かりやすいですね。

そのような名前に指定するには,コマンドラインで以下のように入力します。なお,ここから先,シェルプロンプトは,

$

と省略して表すことにします。

$ gcc -o list1-3 list1-3.c(enter)

(もちろん$は入力しなくていいんですよ。念のため。)一般的に書けば,

$ gcc -o 実行形式ファイル名 ソースファイル名

となります。できあがった実行形式のプログラムを実行するには,

$ list1-3(enter)

とすればよいことは分かりますね。もし,

list1-3: コマンドが見つかりません.

のように表示されたら,以下のように入力してみてください。

$ ./list1-3(enter)

なぜ,上のように入力するとうまくいくのでしょうか? 自分でも調べてみてください。
ヒント: ./list1-3 の ./ の部分は,いま作業中のディレクトリ(フォルダのことです)を指定しています。


特別編
コンパイラ gcc のエラーメッセージの解釈の仕方
---- list1-12.c を例にして---


/*
  読み込んだ整数の5倍の値を表示
*/

#include <stdio.h>

int main(void)
{

    int no;

    printf("整数を入力してください: ");
    scanf("%d", &no);

    printf("その数の5倍は%dです. \n", 5 * no);

    return (0);
}
-------


-------
$ gcc -o list1-12 list1-12.c
list1-12.c:1:20: studio.h: そのようなファイルやディレクトリはありません

list1-12.cの1行目を20文字まで解析して,エラーとなった...

     1  #include <studio.h>
     2  int main(void)
     3  {
     4      int no;
     5      printf("整数を入力してください: ");
     6      scanf("%d", &no);
     7      printf("その数の5倍は%dです. \n", 5 * no);
     8      return (0);
     9  }

原因:stdio.hをstudio.hと打ち間違えた。
-------


-------
$ gcc -o list1-12 list1-12.c
list1-12.c: In function `main':
list1-12.c:6: parce error before `scanf'

list1-10.cの6行目まで解析して,エラーとなった...scanfの前にエラーがある...

     1  #include <stdio.h>
     2  int main(void)
     3  {
     4      int no;
     5      printf("整数を入力してください: ")
     6      scanf("%d", &no);
     7      printf("その数の5倍は%dです. \n", 5 * no);
     8      return (0);
     9  }

原因:5行目のprintf( )の後に ; が無い。
-------


今日の実習問題



 今日の出席登録のための実習問題として,テキスト8ページの List1-3 の動作を確認してソースプログラムを送信してください。手順は第1回目の授業の宿題で練習しましたね。えっ,忘れちゃいました? 忘れちゃったひとのために,もう一回だけ復習しておきます。以下の手順に従ってください。

  1. まず,自分の好きなエディタ(editor)で,List1-3の内容を入力します。
    Macには標準で,テキストエディット というシンプルなエディタが付いています。それを使用する場合の手順は以下のとおりです。

    1. Finder上で,[アプリケーション]フォルダを開きます。

    2. [テキストエディット]アイコンをダブルクリックして,テキストエディットを起動します。



      アプリケーションフォルダの中のテキストエディットアイコン


    3. テキストエディットで作成するテキストファイルのフォーマットを,標準的テキストに設定しておきます。(第1回目の授業をきちんとやったひとは,この設定は既にできているはずですので,改めてやる必要はありません。)
      [テキストエディット]メニューの[環境設定]をクリックすると,[環境設定]ダイアログボックスが表示されます。[フォーマット]の欄で,[標準テキスト]を選択しておいてください。

    4. 同じ[環境設定]ダイアログボックスで,[スマート引用符]と[スマートダッシュ記号]のチェックを外しておいてください。
      これらにチェックが入っていると,半角のシングルクオーテーション ' や,半角のダブルクオーテーション " が,勝手に別の文字に変更されてしまうようです。
      C言語のソースコードを編集するときは,必ず,これらのチェックを外しておいてください。



      テキストエディットの[環境設定]ダイアログボックス

      このように環境設定したら,この設定はプログラミング言語の授業においては変更しないでください。

    5. List1-3のとおりに入力します。

    6. 日本語を入力する場合には,日本語入力システムを起動します。spaceキーの右隣のかなキーを押すと,日本語入力が可能になります。(日本語入力システムを終了したいときは,spaceキーの左隣の英数キーを押します。そうすれば,半角英数字を入力することができます。)

      (注意) 日本語以外の部分は必ず半角英数字で(日本語入力システムが終了した状態で)入力してください。(日本語を入力してもよいところは," "や/* */で囲まれているところだけです。) C言語のコンパイラは,日本語なんて知りませんからね。

  2. 入力し終わった文章を保存(save)します。ファイル名をたとえば list1-3.c とします。テキストエディットを使用している場合の手順は以下のとおりです。

    1. option キーを押しながら,[ファイル]メニューをクリックし,[別名で保存...]をクリックします。

    2. [名前:]に,list1-3.cと入力します。

    3. [場所:]は,自分のホームディレクトリ(自分のアカウント名がついているディレクトリ)にしておいてください。

    4. [保存]ボタンをクリックします。

    5. これで,まずはソースプログラムが完成しました。

  3. 次に,できあがったソースプログラム(list1-3.c)をコンパイルして,実行形式のプログラムを作ります。

    1. Finder上で,[アプリケーション]フォルダの中の,[ユーティリティ]フォルダを開きます。



      アプリケーションフォルダの中のユーティリティフォルダ


    2. [ターミナル]アイコンをダブルクリックして,ターミナルを起動します。



      ユーティリティフォルダの中のターミナルアイコン


    3. ターミナルウィンドウが開き,以下のようなシェルプロンプトが表示されます。

      $

    4. コンパイルのコマンドは gcc です。先程編集・保存したlist1-3.cという名前のソースプログラムをコンパイルしましょう。ターミナルウィンドウで,以下のように入力します。

      $ gcc -o list1-3 list1-3.c(enter)

    5. 何もメッセージがでなればうまく行っています。

    6. lsコマンドで list1-3 というファイルができているか確認してください。このファイルがコンパイルしてコンピュータが理解できるようになった実行形式のプログラムです。

      $ ls(enter)

  4. list1-3というプログラムを実行させてみましょう。実行のさせ方は,他のUNIXのコマンド(lsなど)と同様です。

    1. ターミナルウィンドウで,以下のように入力します。

      $ list1-3(enter)

    2. もし,

      list1-3: コマンドが見つかりません.

      のように表示されたら,以下のように入力してみてください。

      $ ./list1-3(enter)

    3. どうです,期待したとおりの動作をしましたか?

  5. プログラムの動作の確認が終わったら,ソースプログラムをWeb学習システムにアップロードしていただきます。

    以下の手順に従ってソースプログラムをアップロードしてください。

    1. 九州大学 教育情報サービス のwebページ

      http://ecs.kyushu-u.ac.jp/

      の中の,

      [Web学習システム]

      をクリックしてください。

    2. 右上の

      [ログイン]

      をクリックし,ユーザ名とパスワードを入力して,九州大学Web学習システムに,ログインしてください。

    3. [コースを検索する]

      で,

      コース名:2023年度夏学期・月1木1・音響プログラミング演習(旧カリ:プログラミング言語)

      を検索し,上記のコース名をクリックして,

      [私を受講登録する]

      をクリックしてください。
      前回,既に登録を終えていたら,この手続きはする必要はもちろんありません。

    4. コース受講登録ができたら,

      [第2回]

      から,

      [repo2-1]

      をクリックしてください。

    5. [課題を追加する]

      をクリックし,

      [ファイルを追加]

      して,

      [変更を保存する]

      をクリックしてください。
      これで,作成したソースコードのファイル(上の例では,list1-3.c)を,アップロードできます。

    6. [提出ステータス]

      の欄が

      評定のため提出済み

      となっていたら,きちんと提出されています。

    7. プログラムを修正するなどして,新しいソースプログラムを,もう一度アップロードしたい場合には,

      [repo2-1]

      をクリックして,

      [提出を編集する]

      をクリックし,

      最初にアップロードしたソースコードのファイルをクリックし,

      [削除]

      をクリックして,最初にアップロードしたソースコードのファイルを削除すれば,
      新しいソースプログラムをアップロードすることができます。

      (注意) アップロードするものは,コンパイルした結果(実行形式のプログラム)や,プログラムを実行した結果(ターミナルウィンドウ内に表示されたもの)ではありません。必ずソースプログラム(エディタで作成した文章そのもの)を送ってください。そうしないと,我々が構築しているプログラム評価システムで処理することができません。ご協力をお願いいたします。

  6. これで,ソースプログラムを提出し終わりました。おつかれさま!


今日の宿題


(重要)  宿題の締切は,次の授業が始まる前までとします。


戻る