2025年10月22日 第6回

  1. 今回は全体的に難易度が高かったです.
    特にN*Nの表を作るのに時間がかかりました.

    でも,できましたかね.

  2. 今日の問は難易度が高く,
    思っていた以上に時間がかかってしまった.
    特に表の作成などはこだわろうと思えばある程度こだわれてしまうため,
    線引きが難しかった.
    最後の問は12_1と12_2で衝突の条件式を若干変更する必要があり,
    それも理解するのに時間がかかってしまった.

    うまくできましたか?

  3. for, while, do-whileを用いてループ処理をする方法を学んだ.
    あるループ内で更新する値を,
    ループ内の別の処理に用いつつ,
    その値が当該ループの終了条件にも含まれているとき,
    ループ内の処理の順番や終了条件に注意して記述しなければならないと感じた.

    落ち着いて考えるようにしてもらうので良いと思います.

  4. 今回は1つ1つの課題がどれも難しく,
    時間がかかってしまった.
    頭が混乱しないようにコードの中にもメモとしてコメント文を残しておいたほうが良いと思ったので,
    次回からそうしようと思った.

    次回からそのようにしましょう.

  5. 今回学んだループのコマンドによってだいぶ作れるものの幅が広くなったように感じました.

    確かに,繰り返しができると幅は広がると思います.

  6. 今日の授業も楽しかったです.予告されていた通り,だんだんと難易度が上がっていてやりごたえがありました.今日の内容をやっていて,if文の存在がありがたいなと実感しました.やった内容を忘れてしまわないよう,こまめに復習します.

    うまくできたようですね.

  7. 今日の課題は全体的に難しくて苦戦した.
    フィボナッチ数を求めるものでは,
    何回出せばいいのかを考える前に書き始めてしまったので,
    帳尻合わせのためにループ回数を調整してしまった.
    だいたい同じ文を書くところはコピペをすることが多いが,
    文字を変え忘れて止まらなくなることもあったので,
    きちんと確認したい.

    盲目的にコピペしてしまうと問題が発生すると思います.

  8. 今回の課題の中で,
    特に課題12が難しかった.
    衝突の判定をどうするかで非常に苦戦したが,
    なんとかできた.

    できたのであれば良かったと思います.

  9. 内容が高度になってきてプログラミングのコードを書く部分ではなく問題の解法を見つける部分のほうが大変になってきてとても厳しいです.

    コードを書き始める前にどのようにすべきかを考えていますか.

  10. 同じような課題が多かった.
    rand関数は,
    乱数が予測されてしまうためセキュリティ的に危険であるということを調べた.
    言語によって,
    より安全な議事乱数生成器(モジュール)が用意されているためそれを適宜使用するのが良いとされているらしい.

    その通りなので,出来合いのrandは使わないようにしたほうが良いでしょう.

  11. 時間はかかってしまったが大きくつまずくことなくできたので良かった.
    for文とwhile文の使い分けに慣れていないのでどちらが効率的なのか考えてからコードを書き始めるようにしたい.

    まずは考えることが大切だと思います.

  12. 前からコンパイラについて興味があったが,
    エラーを吐く時に的確なことを言うコンパイラは改めてすごいと思った.

    確かにすごいですね,

  13. 今回は,繰り返しについて学べた.課題11などのアニメーションのものに関しては,コマンドライン上でもこのような動的な動作が行えることを知って驚いた.ついつい基本的に正の整数を入力してくると考えてしまうので,忘れずにエラー文を実装するようにしたい.

    世の中にはいろんな人がいますからね.何をしてくるか分からないですね.

  14. 講義で取り扱ったコマンドが増え,
    課題も回ごとに複雑になってきたため,
    どのコマンドをどう組み合わせるかを考えるのに時間がかかるようになった.
    今回だと,
    forとwhile,
    do whileの使い分けに悩んだ.

    回す回数がわかっている場合は for 文,
    ファイルの中身を一行ずつ繰り返して読み込むような場合,
    つまり何行あるかわからない場合は while 文とすると
    良いことが多いように思います.

  15. 今回の講義では様々な繰り返しの文を学んだ.
    私は最近Tech WorldというYouTubeチャンネルにはまっています.
    そこで,
    AI時代において必要な人材はどういう人であるかという企画がありました.
    池口先生はどのような人が必要だと感じていますか?

    そうですね,次回触れましょう.

  16. 今回の授業では,
    forやwhileなどを用いた,
    繰り返しの構文について学びました.
    特に,
    最後の問題では,
    forとwhileを活用することで,
    アニメーションをターミナル上に描画する方法が分かったのでよかったです.

    色々とやってみてください.これだけでも楽しいですよね.

  17. 今回はwhileやforの中にifを入れ子にしたりと,
    ブロックを意識しているつもりでも,
    左右のかっこの数が合わないとエラーでいわれることが多かったので,
    自分でかっこを閉じる癖と間違えないようにするコツを身に着けたいと感じた.

    コードを書くときに,閉じる部分が何に対応しているのかなどを
    書いてみたらどうでしょうか.

  18. 今回はforやwhileを用いて,
    処理を反復するコードを学んだ.
    自分で設定したiがどのように変化し,
    それに伴って処理が何回行われているのかを同時に考えることが難しかった.
    iをもっと早く設定することができたら,
    もっとコードを早く書くことができると思った.
    また,
    指定した処理に戻るようなコードがあるともっと効率的なコードを書くことができると思った.

    「iをもっと早く設定する」とはどういう意味ですか?

  19. 問題によってはfor文を使うことが指定であったり,while文を使うことが指定であったりしてどちらの扱いもできるようになる問題であったのが勉強になり良かった.
    プログラミングで問題11,12のようにアニメーションを作れることはどのようなことに役立つのか疑問に思った.
    個人的にフィボナッチ数列の問題が少し頭をひねる必要があった.
    最初の2項を徐々に更新していくがどっちを更新するのか最終的に2項のうちのどっちを出力するのかをif文で書くときの条件が少しわかりづらかった.

    アニメーションを作れたら面白いと思いませんか?
    いずれにしても表示をうまく工夫すると,
    ターミナルレベルでも動的な表現ができるということです.

  20. 本日の講義では,
    for文,
    while文,
    do while文の違いを理解し,
    ループの条件に応じて使い分けることができるのがわかった.
    一方で,
    使おうと思えば使い分けが不要な場面でも3つをどれでも使えるので,
    適切に使うことが重要だと感じた.

    簡単な指針については上で述べました.

  21. 今回の課題はかなり時間がかかってしまった.課題6では,掛け算の結果の桁数に応じてスペースをいくついれるかをfor分を使ってその数を10で割り,その回数を求めてそれを用いて結果を出力させた.変数の数がかなり多くなってしまい,大変だったが自分で考えてできたのでよかった.

    ちょっと意味が分かりませんが10で割るなどしなくてもできます.

  22. 今回の問題で一番印象的だった問題は掛け算表を出力する問題でした.
    ------や や|のような記号を分解してfor文で必要な回数出力させる処理がCLI特有で新鮮でした.

    出力の整形はできるようになっておいた方が良いと思います.

  23. 個人的に今回から格段にレベルが上がった気がしました.
    ネットの力を借りざるを得なかったです.
    復習頑張ります.
    また,
    前回の授業から少しずつ面白みを感じたと思ったらまた今回挫折して面白みを失ってしまいました.

    ネットの力ですか...

  24. 今回の授業で扱った問題はやりごたえがあり,
    とても楽しかったです.
    C言語でまだ慣れないところも多くありますが,
    予習,
    復習を心がけて今後も課題に取り組んでいきます.

    ぜひそのようにしてください.

  25. 思った結果が得られないと思ったら,
    変数を初期化せずに総和を求めていたので,
    初期化の大切さを改めて実感できた.

    初期化は確かに大切です.忘れずに.

  26. 今回はfor文について理解できた.
    フィボナッチ数列のところで型にlong intを採用して,
    これで大丈夫かなと思っていたらn=102あたりでオーバーフローしたので悲しかった.
    指数の恐ろしさを改めて思い知った.

    そうですね.そうなってしまいますね.

  27. 今日は非常に難しかったです!特に計算表を作る際が大変で,
    計算表そのものよりも----や表の上端や左端の数字を入れ込むところの方が大変でしたが,
    for文をうまく使うことで解決しました.

    まずは計算表自体を作るのができたらそれで良いですよ.

  28. 今回は,
    for文,
    while文,
    do-while文の3種類のループを扱いました.
    特に支障なく課題に取り組むことができました.

    よろしいと思います.

  29. forとwhileとdo-whileの違いがまだわかっておらず,
    今まで以上に課題に苦戦した.
    今回の課題では問題文に「まずフローチャートを用いて考える」という文があったが,
    まだフローチャートの記号を覚えていないため,
    フローチャートを使いこなせるように早く記号を覚えたいと思う.

    記号が重要なのではなくて,フローチャート (など) を用いて,
    まずは流れを考えるということです.

  30. ループ文を利用するとき,
    どこからどこまで繰り返すと,
    うまく動作するのかを考えることが難しかった.

    わからないときは,絵にして考えるなどしてみましょう.

  31. 今日は様々な繰り返しの演算について学んだ.
    それぞれの演算子に特徴があり,
    使いこなしているには時間が必要だと思った.
    また,
    各々の演算子が何ができて何ができないのか正確に把握しないと説くことができない演習問題ばかりで,
    とても成長できた.

    まずはやってみることが大切ですね.

  32. 課題6の掛け算表で数字を右揃えできれいに並べるのに苦戦した.
    最近問題が難しくなってきたと感じるが,
    今後もっと複雑になっていくだろうから頑張って基礎を習得していきたい.

    揃える前に表として出力はできました.

  33. do-whileとwhileとの違いで混乱した.
    コードを書くことで覚えたい.

    コードを書く前にどのような処理とすべきかを考えるようにしましょう.

  34. 全体的にかなり難しかった.
    問題9以降は繰り返しを応用して動的な処理を行うものであったが,
    特に問題11や12は複雑だったので一度紙に書き起こさないと理解ができなかった.

    そして,理解できましたか.

  35. 今回から難易度が上がったように感じた.
    特に課題6,
    7でループ処理のネストを用いてアルゴリズムを考えることが難しかった.
    課題6ではどのように二次元の表を作成するかがわからず手間取ってしまった分,
    より難しく感じた.
    次回までに復習をして授業についていけるようにしたい.

    最終的にはできましたか.

  36. 今回はfor文やwhile文について行った.
    今までで一番時間がかかった.
    これからも焦らず正確に行っていきたい.

    そうですね.焦らずやるようにしてください.大切なことです.

  37. 提示された一連の課題を通して,
    プログラミングにおけるループ(反復処理)の重要性と,
    それを実現する for,
    while,
    do-while の各文の違いを深く理解できたと感じました.
    特に,
    課題 1(階乗),
    課題 2(奇数の合計),
    課題 3(負の数の合計)では,
    特定の回数や条件に基づいて処理を繰り返す基本的な構造を学び,
    課題 4 ではこれらのループ文が条件や入力によって誤動作する可能性を修正することで,
    より堅牢なコードを書くための注意点を把握できました.
    また,
    課題 7(フィボナッチ数列)や課題 10(サイコロシミュレーション)のように,
    配列を使わずに複雑な繰り返し計算やシミュレーションを行う際,
    適切なループ構造を選択することがプログラムの効率と可読性に直結することを体験し,
    今後のプログラミングにおいて,
    処理を反復させる際の論理的な思考力が鍛えられた実りの多い演習でした.

    解説してくれてありがとうございます.

  38. 課題が難しくなってきて,
    この先ついていけるか心配です.

    まずは少しずつ進めてくれたら良いと思います.

  39. forやwhile,ifを複数組み合わせてプログラムを書くことがあった為,
    下書きとして書いたフローチャートがとても役に立った.
    一つの課題に対して時間がかかる程どんどん何をしていたのか分からなくなりがちだからコメント文を上手く利用していつ見返してもすぐ理解できるプログラムを目指したい.

    そうですね.色々と進めると忘れてしますこともあると思うので,
    記録を残すようにしてもらうのが良いと思います.

  40. do whileの使いどころが初めはよくわからなかったが,
    サイコロの問題で必ず1回は処理をしてから進みたい場面があり,
    使い方の実感がわいた.
    また,
    エラー処理に関してコード作成者の期待しない入力がいくつもあると感じ,
    ゲームのバグをなくすといった作業が途方もなく大変そうだと思った.

    そうですね.世の中には色々な人がいますからね.

  41. 今日の課題では特に課題6番が難しかったと感じた.
    今回は,
    自分でフローチャートを考えて解く問題も多く,
    それに加えて問題数も多かったため回答するのに時間がかかってしまった.
    また,
    今までの課題も自分の考え方以外にどのような解き方があるのかわからず,
    個人的には考え方のレパートリーを増やすためにも前回の課題などの解答例などを知ることができたら嬉しい.

    解答例を知りたければ質問に来てください.

  42. いつもに増して難しくて時間がとてもかかりました.

    でも,できましたか?

  43. 確かに今回から今までの授業課題と比べて格段に難しくなったように思う.
    早く終わらせようとするのではなく,あせらずに正しいプログラムを書くことを目指して取り組むようにする.
    また,
    今後のプログラミング学習において,
    今回学んだ繰り返しの処理を利用し,
    より複雑なプログラムにも挑戦していきたいと思った.

    そうですね.焦らずやるようにしてもらうのが良いでしょう.

  44. 今回の演習では,
    入力を想定外の値まで丁寧に扱う必要があることを何度も確認でき,
    単純なループでも仕様をきちんと決めないと破綻するという点が印象に残りました.
    特にフィボナッチや階乗のように数値が急激に大きくなる処理では,
    型の限界と桁あふれ対策を最初から考えておく重要性を痛感しました.
    サイコロや乱数周りではユーザーとの対話の流れを整えることでテストもしやすくなり,
    実装と検証がかなり楽になると感じました.
    今回の演習では,
    入力を想定外の値まで丁寧に扱う必要があることを何度も確認でき,
    単純なループでも仕様をきちんと決めないと破綻するという点が印象に残りました.
    特にフィボナッチや階乗のように数 値が急激に大きくなる処理では,
    型の限界と桁あふれ対策を最初から考えておく重要性を痛感しました.
    サイコロや乱数周りではユーザーとの対話の流れを整えることでテストもしやすくなり,
    実装と検証がかなり楽になると感じました .

    色々と進めていてよろしいと思います.ちゃんと考えてくれていて良いですね.

  45. 今回は何度も繰り返すための処理と描画の処理を学んだ.
    格段に難易度が飛躍した気がするのでここを正念場だと思って自力で解決していきたい.
    時間は気にせずに確実に力をつけていくことに焦点を当てて頑張りたいと思う.

    まだまだ難しくなりますよ.

  46. コーナーケースをしっかり考えないと間違えてしまう課題がだんだんと増えているように感じられ,
    コンパイラはアルゴリズムの誤りは教えてくれないので気を付けたいと思う.
    また,
    課題の趣旨とずれているため今回は実装しなかったが,
    課題2は等差数列の和の公式を使えば定数時間で解けることや,
    課題7はフィボナッチ数列の第n項はビネの公式や行列のn乗で表して繰り返し二乗法を使えば対数時間で求められることなどを考えた.

    実装してみたらどうでしょう.

  47. 課題6において繰り返し文の中に繰り返し文をおくことで表現ができた.

    よろしいと思います.

  48. 掛け算表をきれいに出力するのに苦労した.ところで,演習として出される問題は難易度順で並んでおらず,後半に簡単な問題がある場合も多いように思えるが,なにか意図しているのでしょうか.

    意図はありません.

  49. 今回は繰り返しとなるfor文,(do~)while文について学んだ.課題に関しては,
    ただ四則演算や代入を繰り返すものでなく,
    本来であれば配列を使いたいフィボナッチ数列や,
    新たな乱数関数などが登場したことで思うように進まなかったことも多かった. 特に感じたことは,
    イメージをより容易に掴むためにフロチャートを書くということに加えて,
    記述した関数に具体的に代入をしてみることでどこで齟齬が生じているのかを確認することが大切であると感じた.

    そうですね.どのような場合でも確認することは重要ですね.

  50. 本日の演習からさらに難易度が上がったと感じました.
    習ったことが増えてきて,
    1つの問題に習ったことが複数出てくることもあるので,
    組み合わさると難しいのだと実感しました.
    ですが,
    プログラムでできることが徐々に増えてきたので楽しくもあります.
    習ったことは最低限使いこなせるように頑張っていこうと思います.

    そうですね.実際に一度やってみてもらうとうまく進めることができるでしょう.

  51. 今回の演習では,
    forやwhileなどを用いて繰り返し処理する方法を学んだ.
    演習の中では,
    特に課題6に苦戦してかなり時間がかかってしまった.
    問題の難易度が上がってきたように感じるのでしっかり復習して次回以降に備えたい.

    時間がかかっても良いので着実に進めてもらうのが大切だと思います.

  52. 今日の課題は今までで1番大変でした.
    フローチャートを書くのも一苦労でした.
    特に,
    どのように変数を用意してどのように使えばいいのか考えるのに苦労しました.

    まずはフローチャートなどで書く前に,
    何をすべきか,入力が何で,出力が何かを考えましょう.

  53. 今回は繰り返し操作をやった.
    時間以内に半分くらいしか終わらなかったので,
    しっかり復習して次に臨みたいと思った.

    時間内に終わらなければ,家に帰ってやるなどしてくれたら良いでしょう.

  54. 本日の演習は, 普段より一段難しく感じました. while文とif文が複雑に絡み合う問題で, いきなりプログラムを書き始めるのはかなり無謀だと常々実感します. 演習を通じて少しずつアルゴリズムの組み方などが感覚的, 理論的に理解できるようになるので, 非常に充実した学習になっています. 楽しいと思っていられるうちに, プログラミングを極められるといいのですが...

    極めるというところに来るのはなかなか難しいですね.

  55. 今日の授業では,
    前回の授業と同じような内容であるようにも感じた.
    forの()の使い方などがそう感じた.
    頭に入れなくてはいけない内容を最小にすることで,
    効率よく覚えて作業できると感じた.
    より,
    効率化できるように努力していきたいと思った.
    なおかつコードはできるだけ簡単なものを遣えるようにもなりたいと思った.

    間違いがなければ簡単なものが良いですね.
    でも,まずはうまく動くことが大切です.

  56. エラーメッセージを表示するときif文を使っているのですが筋がよくないような気がします.
    また掛け算表を作る問題では前期でやったポインタだかカーソルだかを動かすやつを使えばうまくいく気がしたのですが,
    完全に記憶の外側に行ってしまっていました.
    復習します.

    どうして筋がよくないのですか?怪しい入力以外は受け付けないようにしなくてはならないので,
    今の方法でも良いのでは?

  57. 今回の演習では,
    ループ構造をどのようにC言語で記述するかについて学んだ.
    どの範囲をループさせるかや,
    どんな条件を与えるかで結果が大きく異なることが分かった.
    今回の演習では,
    うまくループができなかったりして,
    予想した結果が得られなかったことが多々あった.

    うまくできない,というのは,どのようなエラーになってしまったのでしょうか.

  58. 今回の課題は以前よりも難易度が跳ね上がったように感じた.ループ文はしっかり復習しようと思う.

    徐々にレベルをあげないとまずいですからね.

  59. 繰り返しは非常に便利な構文だと思いました.
    さいころの問題でdo-while文がうまく使えてうれしかったです(あまり使う場面がないとおもっていたので).

    そうですね.うまくできたようで良かったと思います.

  60. 課題を通してforやwhileの使い方,
    配列を使わずに工夫する方法,
    乱数や表示の仕組みなどを学べた.
    動きを目で確認できて面白かった.
    特に課題12の衝突するアニメーションの動作が面白く,
    何度も見てしまった.

    確かにうまくできるとみてしまいますよね.

  61. 毎週低気圧で,
    今回は特に頭痛が酷く演習で更に頭痛も悪化した.
    今までに習ったことを組み合わせてプログラムを完成させる必要があったため,
    フローチャートの必要性を強く感じた.
    ただでさえ,
    比較的簡単な初回付近でも苦戦していたので,
    難易度が週を重ねる毎に高くなっていてちょっと辛い.
    C言語を学びたい気持ちは,
    頭をかなり使うのでどうしても疲れてしまう.
    今後も頑張りたい.

    ゆっくりと進めるようにしてくれたら良いでしょう.

  62. 本日もありがとうございました.
    演習を繰り返す中でフローチャートを考えてプログラミングを行うのが板についてきたような気がします.
    ところで,
    私は課題の中で適さない入力への対応として,
    入力を受けた直後にif文を用いてエラー文を標準出力し,
    if文の中のreturn 0で終了させるようにしていました.
    しかし,
    ほかにもいくつか対応が考えられると思います.
    このようにどのフローチャートで行うかを決定する方針はどう定めればいいのでしょうか.
    入力に対して出力がかみ合っていれば過程は無視してもよいものなのでしょうか.
    お答えいただければ幸いです.

    次回触れましょう.

  63. forをつかって繰り返すということでC言語の幅が広がりました. どんどん新しいことを吸収したいです.

    ぜひそうしてください.期待していますよ.

  64. 初めてその日に終わりきらなかった.
    コードを組むのが難しいというか,
    発想が難しいと思った.

    締め切りまでに終わらせれば良いと思います.

  65. for を入れ子にした処理を書く際に,
    繰り返しの変数をiやjなどの適当な名前にしてしまい,
    何が何だか分からなくなってしまった.
    入れ子にしない,
    単純な繰り返しならば適当な名前でもよいが,
    複雑なコードを書くならば"row"や"column"などの意味のある名前を付けることが大切だと感じた.

    これは,ある意味慣れだと思いますが,変数名については,
    色々と変えてもらうのはもちろん良いことだと思います.

  66. いよいよ,
    やりごたえのある内容になってきたと感じる.
    プログラミングはパズルをしているようで,
    かなり楽しめている.
    次回以降も面白い課題を期待している.

    楽しいのであれば,良かったとおもいます.

  67. 今回の課題は今まで以上に難しく感じました.
    特に掛け算の表を作るのに時間が取られました.
    まだ終わってないので時間をかけてオプション課題まで頑張りたいです.

    ぜひトライしてください.