2021年12月08日 第11回

  1. 今回は,打つ数が多かったのでなかなか進みませんでしたし,
    文字列のところだけうまくいかなかったので調べていきたいです.
    また,先週は1週間分の課題が少なかったので,他の問題集の演習のコードを打とうと思ったのですが,
    それをやるよりも今までやった演習をもう一度解き直す(他のディレクトリで打つ)ことで復習しました.

    復習も良いことなので,よろしいと思いますよ.

  2. 本日も講義していただきありがとうございました.
    新しく学んだ構造体や,既習の関数などの知識を組み合わせることで,
    main関数の中身がスッキリしてとても見やすいコードになると感じました.
    自分がわかるだけでなく,他の人が見てもわかりやすいコードを書くことを心掛けたいです.
    次回もよろしくお願いします.

    そうですね.とても必要なことだと思います.読みやすいコード,作ってください.

  3. 本日も講義有難うございました.
    今回の講義で学んだ構造体は,コンピュータならではの場合分けのように感じて,うまく活用していこうと思いました.
    ですが,記述をするうえで一度勘違いしてしまうと,ミスをしてしまうと思うので注意しようと思います.
    また,マインスイーパでは,コードそのものが今までのものよりも長く大変そうに見えましたが,今までの知識を復習しながら,
    「無駄の少ない」コードをかけるようにしようと思います.

    素晴らしい.期待していますね.楽しみです.

  4. 構造体の考えも,いままでのintやdoubleなどの延長線上の考えであることを理解できたので,
    今回の演習はあまり苦に感じませんでした.
    できることが増えると,前の演習問題もまた違った形式でかけるのではないかと実践したくなりました.

    苦に感じないというのは,とても良いことだと思います.

  5. 今回も講義をしていただき,ありがとうございました.
    記述するコードの量がやはり回を追うごとに,増え,仕組みも複雑になることが当たり前になりました.
    やはり復習が大切であると感じました.
    次回以降もみのある講義にできるように復習を行なっていきます.
    次回もよろしくお願いいたします.

    そうですね.復習はとても大切だと思います.何回もやってみると,段々わかってきますね.

  6. 今回の講義もありがとうございました.
    先生が講義内でおっしゃっていた通り型名と変数名が混同してしまいました.
    その点に気が付かず手間取ってしまったので今後気を付けたいです.

    慣れてくれば問題ないと思いますよ.

  7. 構造体が分かった.
    ポインタにも慣れてきた.

    素晴らしい!

  8. 新しい考え方が登場してびっくりしましたが,これまでの応用で何とかなりそうです.

    その調子でいってください.

  9. いままでポインタを使う理由がよく分かっていなかったが,今回の課題で使わなければいけない理由がわかった.
    わからない内容でも先に進んでいくと,ふとしたところで意味が理解できるようになることもあるので
    いろいろのことを知っていた方がよいと思った.

    そうですね.繋がることがあれば,問題は解決すると思います.

  10. 構造体でポインタを利用してメンバにアクセスするときにどの演算子をどうやって使えばよいのかが混乱しそうなので,
    きちんと復習しておきたいと思いました.

    落ち着けば大丈夫です.あと,最近のコンパイラは賢いので,間違いを指摘してくれますね.

  11. main関数以外の関数を用いる際に,構造体を使うと引数1つで構造体の全てのメンバを渡すことができるので便利だと感じました.
    構造体の宣言を忘れないよう気をつけようと思いました.
    本日もありがとうございました.

    その通りです.便利な使い方の一つです.

  12. 今まで習ってきた配列・ポインタなどの知識をすべてを使って課題に望む必要があり,苦労した.
    前回までの資料を参照して取り組んだが,忘れていたり理解が甘い部分も多く,まだまだ復習が必要だと感じた.

    分からないところは質問してくれたら良いと思います.

  13. 今回の講義では,構造体について学んだ.
    構造体は関連する複数のデータを1つにまとめて管理する型だということがわかった.
    構造体を用いることで,ソースコードの読み書きが楽になり,プログラムを拡張するのも楽になると思った.

    そうですね.うまく使うと楽になると思います.

  14. 構造体について学びました.
    新しいことを学んでいくにつれて組み合わせが複雑なものになっていって難しく感じます.
    細かいところまで注意しないとすぐにエラーが出てしまうので時間をかけて身に付けていく必要があると感じました.

    コンパイルエラーならまだまだ大丈夫ですよ.

  15. 本日も講義ありがとうございました.
    構造体について講義内でほとんど理解することはできたのですが,ポインタ,関数,構造体が組み合わさるときは
    まだ完全に理解できていないので,自主的に学習したいと思います.

    分からないところは質問してください.

  16. ポインタが混ざると複雑になって,自分が今何をしようとしているのかをこまめに整理する必要を感じた.

    落ちついて考えてみましょう.できます.

  17. 今日はC言語における構造体について学び,演習問題に取り組んだ.
    構造体と関数と配列などを同時に使うときは,ポインタ変数と変数をきちんと自分で区別できるように
    理解しておく必要があるとわかった.

    演習を重ねたら大丈夫です.

  18. main関数の中がとてもきれいになって心地よかった.

    おー,素晴らしい.格好いいですね. う

  19. グローバル変数を使って関数のスコープを気にせず変数のやり取りをするのと,
    ポインタを使って別スコープから変数のメモリにアクセスすることのそれぞれのメリットとデメリットは何ですか?
    現状グローバル関数を使った方が回りくどくなく,楽だと感じています.

    どんなコードを開発するかなどにも関係するのですが,スコープも含めて,次の回に話をします.

  20. 構造体を使うと,書くのは面倒だが,今何についての値を入出力しようとしているのかがわかりやすく表現できたので,便利だと思った.
    また,演習を通して,構造体へのポインタの意味や使い方がよく理解できた.

    よろしいと思います.

  21. 今回異なる型を同時に扱う時に,構造体を用いることで毎度型を合わせる必要なしに,それらを使うことが出来るという事を学びました.
    ただこのように使い勝手が良いからといって,関連していないものもメンバン尾椎化しないように注意します.

    ごめんなさい.「メンバン尾椎化」が分からない.メンバを...?違うか..

  22. ポインタの仕組みについて,すこし抜けている点があったので,気づけて良かったです.

    そうですか.何が抜けていたのか,ぜひ教えてください.コメントにも書いてもらえると良いと思います.他の人にも役立つから.

  23. 今日もわかりやすい講義をありがとうございました.
    ドット演算子やアロー演算子を使うと,何度も変数を宣言しなくても良いので大変便利なものであると感じました.
    ところで,本日の講義や課題で車の話が出てきた時に,池口先生のHPに先生が歴代乗っていた(いる)車種が書いてあるコーナを思い出しました.
    池口先生が車を選ぶ時に一番重視しているポイントはどこか教えてくださると嬉しいです.
    最近免許を取得したので車選びの参考にしたいです....
    関係ない質問をしてすみません.

    車選びですか...では,次回,語りましょう.

  24. 本日も講義ありがとうございました.
    構造体を用いればばらばらの文字の型であってもそのまま関数に渡すことができるので便利だと感じました.
    課題の出力の指定でメンバにそのまま*をつけてしまってうまく実行できなかったり,
    何を参照渡しすればいいのか分からなくなってしまうことが多かったので,しっかり復習したいと思います.
    私は(*pc).numという形の表現が一番わかりやすいですが,他の人の書いたソースコードを将来見て開発するかもしれないことを考えると,
    課題中にもpc->numなど見慣れない表現も使って慣れていきたいと思います.

    そうですね.自分では使い慣れたもので行くので良いと思います.
    でも,それ以外も読めるようになっておくのが良いですね.

  25. 本日も講義ありがとうございました.
    構造体の仕組みは,プログラミングにおいて非常に便利だなと感じました.
    回を進むに連れてどんどんプログラムしやすくなっているなと実感しました.
    次回も頑張ります.

    期待しています.頑張って.

  26. 今回は,できるだけ早く終わらせることができた.
    構造体の概念を使えるようになってとても嬉しかった.

    早く終わるとしても,ちゃっんとできないとよくないのですが,大丈夫かな?

  27. 今回の課題では配列やポインタを使うバージョン,使わないバージョンが分かれていて,
    用いることによりどれだけコードを短くできるか身をもって実感できた.

    よろしいと思います.

  28. 構造体を関数の引数として使う際には,値渡しか参照渡しかによってドット演算子を使うのかアロー演算子を使うのかが異なるため,
    その点に注意しなければならないと感じた.

    ポインタかどうか,ですね.

  29. 大規模なプログラムを作るうえでは,処理のどのような部分を命令に置き換え,
    どのような情報の格納方式を構造体に置き換えるかという適用場所の見極めが大事になってくるのであろうと思いました.

    その通りだと思います.メモリについて意識できる必要があります.

  30. 文字の打ち間違いなのでコンパイル時に警告が度々出るので,ソースコードを見直す癖をつけていきたいと思いました.

    確かに打ち間違いはないほうが良いですが,それよりも実行時のエラーの方が大変です.

  31. 構造体が使えるようになり一気にデータを扱いやすくなった.
    しかし,アドレスの扱いなどが複雑で手こずってしまったので,早く使いこなせるようにしたい

    おー,素晴らしい.もっと使えるようになってください.

  32. 前回のポインタと組み合わさるとかなり複雑に感じた.
    演習を通して慣れていきたい.
    また,構造体を関数で用いるときは常にポインタにしたほうが良いと感じた.

    そうですね.常にというのは言い過ぎかもしれませんが,何れにしても参照渡しが必要な場面は多いと思います.

  33. 今回もわかりやすい授業をありがとうございました.
    授業をしっかり聞いていれば課題に難なく取り組めます.
    今回も構造についてきちんと理解することが出来ました.
    また,課題も時間内に終わらせることが出来ました.
    これからもこの調子で頑張っていきます.

    そうですか.嬉しいですね.そのように言ってくれると.

  34. スライドや課題の最後にあったように同じ処理でも,複数の表し方があるものが増えてきたので,
    それぞれの演算子の意味を良く理解して,別の書き方をされていても惑わされないようにしようと思いました.

    そうですね.まずは読めるようになっておけば良いと思います.

  35. 今回の授業では構造体について学びましたが,構造体を使うことで,main関数内のソースコードが綺麗になり,
    効果的に関数を利用できるようになることを強く感じました.
    また,自分で定義した関数でscanfを使うのがとても苦労しました.

    そうでしたか.どのようなところが苦労しましたか?

  36. 今回の課題も比較的順調に進めることができた.
    マインスイーパーの課題も早めにとりかかりたいかりたい

    何ごとも早め早めが良いと思います.何が起きるか分かりませんから.

  37. 構造体について,最初はcar1.capcityとかよりも普通にcapasityでやったほうが楽なのになぜ構造体なんて使うのかなと思いましたが
    ひとまとまりのデータを扱うときに構造体の型名を使うだけで関数に引数を渡せるところがすごく便利だと思いました.

    そうですね.便利なところが多数あります.

  38. 自分はまだ構造体が必要になるくらいのたくさんのデータを扱うコードを書いたことがないので,
    構造体を使っていろいろなデータを扱えるコードを書いてみたいと思った.

    ぜひ使ってみてましょう.やればやるほと難しいことができるようになると思います.

  39. 今日は今までの配列や引数,ポインタなどの復習にもなりとても良かったです.
    やさしいCのレッスン12が終わった後何を授業で扱うのか気になります.

    レッスン13と14があります.13では,これまで説明を飛ばした部分を,14では Makefileの話をする予定です.

  40. 今日は構造体について学び,構造体は多くの情報を扱えるので,便利だなと思いました.
    また,前回と前々回やったポインタがまた出てきたが,徐々に使い方に慣れてきて,
    関数などでポインタを使った方がより簡単にコードが書けるのではないかと思いました.

    そうですね.ポインタの方が良い,あるいは,そうしなくてはならない場面は多いと思います.

  41. void型関数を使わない課題1から3は容易にできたが,void型関数を使う課題4から6は工夫が求められ,
    特にvoid型関数内で入力した値をアロー演算子を用いたメンバに代入する方法を考える作業に手間取った.

    手間取ったけど出来ましたかね.

  42. 構造体の扱いに慣れることができたので,リストの作成に再挑戦してみようと思います.

    おー,素晴らしい.ぜひやってみましょう.

  43. 新しい事が増えたという印象がほとんど無くて分かりやすかったです.

    よろしいと思います.

  44. プログラムを書く問題は詰まらずできたが,最後の問いがよくわからず時間を多く割いてしまった.

    意味が分かりませんでしたか?

  45. 今回構造について学んだ.
    予習時は少し難しいなと思ったが,丁寧に説明してくださったおかげで,よく理解できた.
    講義も回数を重ね,課題をこなすうちに,普段使っている家電や遊んでいるゲームなどのプログラムがどのようになっているのかを考えるようになってきた.

    情報工学科らしくて,とても良いと思います.

  46. 構造体と関数を用いることでmain関数がスッキリとして,複雑なプログラムにも対応できるようになった気がする.

    スッキリしたmain関数はカッコイイと思います.

  47. 最初に構造体をみたときは,変数がまとまることぐらいしかメリットを感じられなかったが,
    共通な複数の引数を複数の関数で使うときに便利だと感じた.

    その通りです.

  48. minesweeperの課題が難しいので頑張りたい

    はい,頑張ってください.期待しています.

  49. ポインタを関数に渡すやり方に慣れてきた.
    もう一回くらい大きめの課題を出すとおっしゃっていましたが,マインスイーパーは中間課題的な立ち位置で,
    最終課題にはまた別の課題が出るということですか?

    はい,出す予定です.

  50. 今回は授業時間内にコードを書き終えることが出来ました.
    ただ,少しポインタに関する理解が浅かったので次回までに復習しておきたいと思います.

    復習は大切なので,ぜひやってみましょう.期待していますよ.

  51. 前々回からポインタの演習問題に取り組むことで,ポインタの使い方に慣れてきたように感じます.
    最初は複雑で混乱しましたが,徐々に理解していくことでさらに複雑なコードを書くことができるようになってきていると思うので,
    さらに理解を深められるよう頑張ろうと思います.

    やればやるほとうまくなりますね.

  52. 今回の授業では扱われなかったですが,リストという箇所の説明が教科書を読んで難しいと感じました.

    リスト構造については,アルゴリズムとデータ構造でやるので,2年生で詳しく学んでください.

  53. 構造体を初めて学んだが初めは他の言語のclassなどのものかと思ったが,メソッドなどやってなく,変数だけだったので,少し奇妙な感じだった.
    オプション課題の配列とポインタを組み合わせる所が少し,前回の内容を忘れていて,よい復習になった.

    講義でも説明しましたが,この先,クラス,メソッドなどについて理解が容易となるためにも,
    今日の話は理解しておいた方が良いと思います.

  54. 講義でも仰っていたように,アロー演算子なのかドット演算子なのかよくわからなくなることがありました.
    いくつか演習をこなす中で少し理解できた気がします.

    理解できたら,それを確実なものにしましょう.

  55. 構造体という新しい概念に少し手こずりました.

    どこに手こずりましたか?

  56. 今回は構造体を習った.
    メイン関数に綺麗にまとめられるのはわかりやすくて良いと思った.

    その通りです.綺麗にまとめてください.

  57. 今回学んだ構造体を用いることで,main関数内をきれいに簡略化できるので,とても見やすいプログラムが作れた.
    見やすさはバグが発生した際の修正等にとても重要なので今後プログラムを自分で作成するときはうまく活用していきたい.

    見やすいと間違いが見つかりやすいです.活用してください.

  58. 今日の内容は比較的容易であるように感じた.
    今日習ったことを使うとプログラムが見やすくなるので他の人と作業するときなどに使えるのではないかと思った.

    なるほど.それはその通りですね.

  59. 今回は構造体について学びました.
    課題で使ってみましたが,正直なところ,どのような場面で使えばいいのかよくわかっていないのでしっかりと調べて理解したいと思います.

    確かに演習問題は,導入的なところをクリアして欲しいので見本のような感じにはなっていますが, 一度,実際のコードを見せると良いでしょうかね.

  60. 今回の授業で構造体について勉強しました.
    課題は授業で全部できて,構造体の配列の使いや構造体へのポインタを関数の引数に使いもよく理解できていると思います.
    この前の授業ではよく困難にぶつかりましたが,今回初めて授業の内容と課題が全部できたのでよかったです.

    理解できているのであれば,とても素晴らしい.

  61. 構造体という新しい概念を学んだが,それほど難しくなかったのでよかった.
    演習を通して身につけたい.

    その通りでそんなに難しくはないです.

  62. マインスイーパーの課題に少し取り組みましたが,スクロールするのが面倒なくらい長くなってしまい,関数の設定がいかに大事かよくわかりました.

    今回は関数にしなくても良いのですが,もし可能であれば,関数化しても良いと思います.

  63. 課題6のようなprintinfo関数を用いる際に構造体自身を引数とせずに,ほかの関数と同じくポインタを引数とするようなコードを書いても
    正しく動くのですがどちらのほうが好ましいというのはありますか.

    一概には言えないですね.ポインタで渡してももちろんん構いません.

  64. 今回の講義でもポインタやアドレスの知識が重要になっていると感じました.
    まだ,ポインタやアドレスに苦手意識を持っていて,使いこなせていないため,
    復習をしっかりして使いこなせるようにしたいと思いました.

    分からないところは質問してもらうのが良いですが,
    分からないところを誰かに説明してみると良いですよ.

  65. 本日も分かりやすい授業資料と講義をしていただきありがとうございました.
    構造体のポインタについてやや理解するのに時間がかかりました.
    ところで,今回学習した構造体なのですが,課題を通して,無理して使うとミスが増えてしまいそうな点や
    直接メイン関数内に書いてもあまり変わらないと感じた点などデメリットを多く感じたのですが,
    何か構造体を使うことの大きなメリットはあるのでしょうか?

    分かりやすかったのであれば,とても良かったと思います.
    デメリットと感じている音は構造体というよりも,関数化するという話でしょうか.次回触れます.