2021年度「プログラミング言語1」「プログラミング言語演習」のページ

お知らせ

2021年8月5日
  • 「練習問題」のところに提出方法などを書きました。
2021年8月2日
  • 本日実施の試験問題に誤植がありました。これに惑わされて誤答した人や解答できなかった人については答案の修正を認めますので、この授業専用メールアドレス宛に連絡してください。
    • 誤植箇所
      プログラム1-1 関数spieker_centerのコメント
      (誤)返値:中点三角形の中点三角形 (正)返値:シュピーカー心
      プログラム1-1 main関数の定義の中の三つめのコメンt
      (誤)中点三角形の中点三角形の頂点の座標を出力 (正)シュピーカー心の座標を出力
      プログラム1-2 main関数の定義の中の三つめのコメンt
      (誤)中点三角形の中点三角形の頂点の座標を出力 (正)シュピーカー心の座標を出力
    • 修正済み問題
2021年7月29日
  • プログラミング言語演習は課題の提出のみで成績をつけます。提出方法は8月5日までにここでアナウンスします。
  • プログラミング言語1の筆記試験は対面で8月2日(月)09:00〜10:30 E103教室で行います。(7月26日付けのアナウンス参照)
  • 7月29日(木)の演習はオンラインと対面の選択です。
    • オンラインの方はここです。
    • 対面の方はG401です。
    • TAも対面とオンラインの併用です。オンラインの場合のURLは授業一覧にあります。
    • 今日は追加解説はありません。
    • 12:00ごろ、先日大雨で延期になったパンフレット写真の撮影が来ますが、白板を写すだけですので無視してください。
2021年7月26日
  • プログラミング言語1の筆記試験は対面で8月2日(月)09:00〜10:30 E103教室で行います。
    • 対面試験が受験できない人はこの授業専用メールアドレス(大学の授業科目一覧ページ参照)宛に簡単な理由を添えて連絡してください。同日同時刻にオンラインでの受験ができるよう手配します。
    • 持ち込み許可物は飲料(アルコールを除く)です。
2021年7月15日
  • 7月15日(木)の演習はオンラインと対面の選択です。
    • オンラインの方はここです。
    • 対面の方はG401です。
    • TAも対面とオンラインの併用です。オンラインの場合のURLは授業一覧にあります。
    • 10:15〜10:30追加解説をします。録画を残します。
    • 12:00ごろ、パンフレット写真の撮影が来ますが、白板を写すだけですので無視してください。
2021年7月8日
  • 7月8日(木)の演習はオンラインと対面の選択です。
    • オンラインの方はここです。
    • 対面の方はG401です。
    • TAも対面とオンラインの併用です。オンラインの場合のURLは授業一覧にあります。
    • 10:15〜10:30追加解説をします。録画を残します。
2021年7月4日
  • 7月5日(月)の講義は予定通りオンラインです。
  • 講義の試験は対面の筆記試験の予定です。持ち込み許可物は飲料(アルコールを除く)のみです。
2021年6月28日
  • 6月28日(月)の講義は引き続きオンラインです。
  • 7月1日(木)の演習はオンラインと対面の選択です。
    • オンラインの方はここです。
    • 対面の方はG401です。
    • TAも対面とオンラインの併用です。オンラインの場合のURLは授業一覧にあります。
    • 10:00〜10:30追加解説をします。録画を残します。
  • 講義はオンライン、演習はオンラインと対面の選択を当面続けます。変更があれば連絡します。
  • 講義の試験は対面の筆記試験の予定です。
2021年6月24日
  • 6月24日(木)の演習はオンラインと対面の選択です。
    • オンラインの方はここです。
    • 対面の方はG401です。
    • TAも対面とオンラインの併用です。オンラインの場合のURLは授業一覧にあります。
    • 10:00〜10:30追加解説をします。録画を残します。
2021年6月19日
  • 6月21日(月)の講義は引き続きオンラインです。
  • 6月24日(木)の演習はオンラインと対面の選択です。
    • オンラインの方はここです。
    • 対面の方はG401です。
    • TAも対面とオンラインの併用です。オンラインの場合のURLは授業一覧にあります。
    • 例によって追加解説をしますが、実施時間は検討中です。録画は残します。
  • 6月28日以降については検討中です。
2021年6月17日
  • 6月17日の演習もオンラインですが、対面も可能です。
    • オンラインの方はここです。
    • 対面の方はG401です。
    • TAはオンラインです。URLは授業一覧にあります。
    • 09:30〜10:30追加解説をします。録画を残します。
2021年6月10日
  • 6月10日の演習もオンラインですが、対面も可能です。。
    • オンラインの方はここです。
    • 対面の方はG401です。
    • TAはオンラインです。URLは授業一覧にあります。
    • 10:00〜10:30追加解説をします。録画を残します。
2021年6月14日
  • 6月14日の講義もオンラインです。
2021年6月3日
  • 6月3日の演習もオンラインです。
    • ここです。
    • G401から配信します。つまり、担当教員は物理的にはG401にいます。
    • TAはオンラインです。今日から交代します。URLは授業一覧にあります。
    • 10:00〜10:30追加解説をします。録画を残します。
2021年5月31日
  • 5月31日の講義もオンラインです。
  • 6月3日の演習もオンラインです。
    • ここです。
    • G401から配信します。つまり、担当教員は物理的にはG401にいます。
    • TAはオンラインです。
    • 10:00〜10:30追加解説をします。録画を残します。
2021年5月27日
  • 5月27日の演習もオンラインです。
    • ここです。
    • 10:15〜10:30追加解説をします。録画を残します。
2021年5月24日
  • 5月24日の講義もオンラインです。
2021年5月20日
  • 5月20日の演習もオンラインです。
    • ここです。
    • 10:15〜10:30追加解説をします。録画を残します。
2021年5月17日
  • 5月17日の講義もオンラインです。
2021年5月11日
  • 5月13日の演習もオンラインです。
    • ここで待機しています。
    • 10:00〜10:30追加解説をします。録画を残します。
  • 「Cの入門書のようなもの(仮)」に手を入れました。
  • 新型コロナウイルス対応でリモートワークが増えておりますが、月曜と金曜の14:45〜17:15は自室にいる確率が高いです。
2021年5月6日
  • 担当者はここで待機しています。
2021年4月27日
  • 5月6日の「プログラミング言語演習」は原則オンラインでオンデマンドも併用とします。すなわち、可能な方は正規の時間に遠隔ログインで演習をし、支障のある方は都合のつく時間に各自で演習を行うこととします。詳細は当日未明までにここに掲示します。
2021年4月26日
  • 「プログラミング言語1」のオンライン授業はここです。
2021年4月19日
2021年4月12日
  • 「プログラミング言語1」は、当面、対面で行います。手違いでシラバスなどに「オンライン」と誤記されていたことをおわびします。
    • 4月12日の授業の録画があります。
    • 次回(4月19日)からは教室をE102に変更します。

資料

  1. 講義資料
    • 「Cの入門書のようなもの(仮)」(題名募集中)
      • 2021年5月17日暫定版
        • §3.2.2に図とプログラム例と脚注を追加しました。
        • プログラム3.6と(旧)3.7の間にプログラムを一つ追加したので、番号がずれました。
      • 2021年5月13日暫定版
        • §3.1.1に「最大値・最小値」を追加しました。
        • プログラム3.2と(旧)3.3の間にプログラムを一つ追加したので、番号がずれました。
      • 2021年5月11日暫定版
        • 主な修正は2.2節と3.1節への脚注の追加です。本文にも少し手を入れています。
      • 2021年4月15日暫定版
      • 正誤表
  2. 講義録画
  3. スライド
  4. プログラム例
    • Hello, world!
    • コラッツ予想の手続きでのステップを数えるプログラム
    • 三角形の頂点の座標から辺の長さを計算するプログラム
      • 関数segment_lengthのプロトタイプ宣言あり。関数segment_lengthの呼び出しはすべて定義よりも後。プログラム
      • 関数segment_lengthのプロトタイプ宣言あり。関数segment_lengthの呼び出しで定義よりも前のものあり。プログラム
      • 関数segment_lengthのプロトタイプ宣言なし。関数segment_lengthの呼び出しはすべて定義よりも後。プログラム
    • 整数の足し算をするだけのプログラム
    • 三つの整数の最大公約数を計算するプログラム
      • 剰余を使うユークリッドの互除法を実装したプログラム
      • 減算と1/2倍と2倍だけを使うユークリッドの互除法を実装したプログラム
    • 文字列処理の例
    • 単語を入力して、NATO式通話表で出力するプログラム。
    • 平面上の2点の直交座標から距離を求める関数と、点の極座標から直交座標に変換する関数を合成して、2点の極座標から距離を求める関数を実装する。
    • 標準入力からテキストを入力し、なんらかの加工をして標準出力に出力するプログラム
      文字単位入出力
      • 入力をそのまま出力するプログラム
      • アルファベットと数字と空白文字だけ残し、その他は削除して出力するプログラム
      • 各行の末尾に$を追加して出力するプログラム
      • 各行の先頭に^を追加して出力するプログラム
      • 偶数行目を削除し奇数行目をそのまま出力するプログラム(行番号は1から始まるとする)
      行単位入出力
    • 標準入力から各行に何個かの整数値が含まれるテキストを入力し、条件に合う行のみ和を標準出力に出力するプログラム。
      • 整数値の個数が3個か6個のときだけ和を出力し、それ以外のときは * を出力するプログラム
    • パスカルの三角形
      • ポインタの配列で実装し、要素ごとに指す先をmalloc()するプログラム
      • ポインタの配列で実装し、まとめてmalloc()して切り分けるプログラム
      • 一つの配列で実装し、添字に細工をするプログラム
    • コマンドライン引数をコマンド名を含めて1行ごとに出力するプログラム
    • コマンドライン引数で与えられて整数の和を計算するプログラム

練習問題

解答は電子メールに添付して送ってください。問題によっては複数のファイルを添付する必要がありますので、その場合はどれがどれであるかわかる工夫を何かしてください。

提出先
prog2021-yyyymmdd-□☆@gemini.ics.nara-wu.ac.jp
  • yyyymmdd は出題年月日(年4桁、月2桁、日2桁。月と日は0埋め)
  • は問題番号。数字1桁
  • は問題枝番。アルファベット1文字
たとえば、2021年8月6日出題問題2u(実在しないので注意)ならば、prog2021-20210806-2u@gemini.ics.nara-wu.ac.jp に送ってください。
提出締め切り
2021年8月18日09:0018:00(日本標準時)

おまけ問題

  1. C言語について間違ったことが書かれているWWWページのURLを示し、間違いの解説をせよ。

  2. 2038年問題について解説せよ。

レポートは紙でのみ受けつける。


外部リンク


奈良女子大学生活環境学部情報衣環境学科生活情報通信科学コース
数学科出身だけどプログラミングを教えている人