2025年11月12日 第8回
今回の課題は前回に比べたら簡単だった.
だが,
今日の授業のコメント返信で期末テストがあることを初めて知ったので,
これから意識して勉強していきたい.
また,
次回はポインタということで,
Tech Worldでは一回みんなそこで死ぬということを言っていたので注意してかかりたい.
期末テストがあることは初回に言ってあります.
今回の課題は最近の中では一番簡単で,
また手に付けやすいような内容でした.
問題が簡単だったというのもありますが,
単純にコードを書くのが慣れてきて,
同じような内容を書くのが早くなってきていて成長を感じて楽しいです.
しっかり復習をし,
次回以降の講義に活かしていこうと思います.
簡単だったのであれば.良かったと思います.
今回も楽しくできた.
power関数を書いていた時,
forの中にreturn result;を入れてしまったせいで
何を入れてもその数がそのまま返ってくるだけの関数を作ってしまったので
ネストは注意深く見ていきたい.
楽しかったのであれば,良かったと思います.
講義内容の関数の知識は基本的にはよく理解できたと思います.
その一方でエラー処理に困りました.
具体的にはint型に対して小数を打ち込まれると
先に丸められて格納してしまうのでエラーの出し方がわかりませんでした.
また,
標準入力を受けた2変数以上の計算結果がオーバーフロー(アンダーフロー)する場合,
入力自体が溢れている場合のエラーの出しかたも思いつきませんでした.
調べるとどうやらscanfでこれに対応するのは難しく,
文字列として受け取ったのちに数値へ変えていく方法なら対応可能らしいと分かったのですが,
仕組みがよくわからなかったので諦めました.
やはり可能な限りすべて想定すべきなのでしょうか.
例えばdouble型に約1.8×10の308乗以上の標準入力をしてくる可能性はなるべくなら考慮したくありません.
これは難しいと思います.
今回は関数の定義することを学んだ.
出力を関数に含めるか含めないかで,
関数の利便性に大きく影響を与えることが分かった.
また,
前回の配列の知識を取り入れたり,
swichを応用させたりすることができてとても楽しかった.
switch ですかね.いずれにしてもうまく行ったのであれば良かったと思います.
関数を自身で設定することでコードがきれいに書けることが
今回の課題を通して身にしみてわかった.
また戻り値がvoid型とint型での違いがよくわかった.
また自身で設定した関数とマクロ関数の違いの1つとして
計算順序の違いが分かったが他にもあるのか,
また用途に応じてどちらを使うべきかなど
勉強するべきことがたくさん見えてきた.
option課題では特にfor文の2重の繰り返しをwhile文で書くとき
繰り返しの変数をどこに書くかが重要であると感じた.
またマクロ関数を定義するときはセミコロンはいらないので注意したい.
素晴らしい.うまくいきましたか.
今回の課題はいつもよりやりやすかった.
よろしいと思います.
本講では
「同じ処理でも表現(関数/マクロ/ループ構造)が変わると振る舞いが変わる点」
が印象的でした.
特に square(x + y) の括弧漏れが思わぬバグを招く例が納得できました.
while のみで表を作る課題や,
関数版・マクロ版をベンチマークする課題は,
自分で計測して結果を比較する大切さを学べました.
色々なところにバグの原因が潜んでいますね.
関数を導入したことで,
コードの可読性も上がったし,
見通しが良くなった.
関数側で標準出力へ出力するのか,main関数側で出力するのかなど,
細かな書き方の違いがあるので,
うまく場面によって使い分けていきたいと思う.
そうですね.うまく使い分けてください.
int型とvoid型の関数の違いを理解するのが大事だと思った.
理解できましたか?
#define(マクロ)で関数を定義するのは不自由に感じました.
どうして不自由?
新しく関数が出てきたのでよく復習します
そうしてください.
今回の演習では,
関数について学んだ.
演習を通してコードを書くのに慣れてきて,
回数をこなすごとに段々と早く解けるようになっていると感じた.
今回の課題8のように使用する上で細かい注意が必要なものもあるので,
実装する際には気をつけたいと思った.
素晴らしい.ただし落ち着いてやるようにしましょう.
効果的に関数を使うとプログラムの構造がわかりやすくなるためうまく使っていきたい.
そうですね.うまく使ってください.
今日は関数の演習を行った.
一週間使って予習と演習をしておいたのでさほど苦戦しなかった.
ようやくプログラミングの楽しさを感じた.
素晴らしい.この調子でお願いします.
関数の定義と呼び出し,
戻り値の扱い,
マクロの使い方の違いについて学びました.
前回の知識を積み重ねて理解を確認できたので良かった.
うまくできましたかね.
関数形式マクロを用いるときには
呼び出しの際の引数の型がどんなものでも使えるので
誤りを生じてしまうことがあるということを学んだ.
使用するときには型に注意して慎重に行おうと思った.
そうですね.注意してください.
今までは同じような処理が出てきても手で打っていたが,
関数という概念を獲得したので,
ストレスなくコーディングできそうで嬉しい.
今後使うようにしてくださいね.
今回は比較的に早めに終わることができた.
7乗まで表が列がきれいに合わずかなり時間がかかった.
時間中に終わらなくても評価は変わらないです.
今回は前回や,
前々回に比べて比較的取り組みやすい内容であると感じた.
これから次第に難化していくときに,
関数を使うことの強みが生かせるのではないかと感じた.
その時を楽しみに待っていたいと思った.
そうですね.楽しみが大切ですね.
出力の数値の位置調整の際に,
printf(" ")をforループで回して出力を行っています.
pythonではprint(" " * n)のようにできていたので少し面倒に感じます.
しかし,
その手間もC言語って感じがして少し好きです.
言語の書式についてはそれぞれの歴史的なところもあります.
今まで何も考えずまず初めに書いていた,
int main(void) の意味が分かってよかったです.
しかし,
なぜいつも void main(void) にせず,
少し手間を増やして return 0 を返しているのかは分かりませんでした.
良いコメントですね.次回触れましょう.
課題6で関数のミスに気づいたとき,
課題5でも同じ関数を使っていて間違っていることに気づいたとき,
関数が別個になっていたおかげでデバックがしやすかった.
関数を使うことで修正もしやすくなると感じた.
その通りです.作業を小分けにすると間違いを見つけやすくなりますね.
今回の関数や前回の配列, 繰り返し操作を組み合わせることで
自分の実装したいものが容易にできるようになり思い通りに動かせるようになってとても楽しい.
素晴らしい.この調子で.
先生が仰ったように
自分で書いたコードをAIに読んでもらった所,
驚くほど自分のコードに無駄が多いことに気づき驚きました.
ただ,
AIの模範解答はあまり直感的に分かるものではではなかったように感じます.
うーむ,なるほど.まず実践してみたのはとても素晴らしいですね.
期待できます.
次に,直感的にわかるものでないとのことですが,
逆にその部分を質問してみましたか?
例えば,なぜそのように書くのか,とか,
あるいは,その部分をこのように書いたらどうなの,とか.
何かまずいことがあるのか,詳細を教えてくれと言わないと
単にコードを返してくるだけですよね,
今回は比較的簡単だった.
マクロの組み方によって計算結果が変わるということを学び,
今後も一層気を付けてコードを書いていこうと思う.
そうですね.色々と気をつけてください.
今回は関数について取り扱った.
関数を扱う際,
int main (void){}のようないわゆる"関数"と#defineを用いた関数形式マクロの2種類の方法があるが,
個人的に課題2のように戻り値を返す関数を何種類も扱うとき,
関数形式マクロの方が記述が少なくて簡単だと感じた.
それぞれの長所,短所があるのでうまく使い分けてください.
ここ2回の演習がとても難しかったので,
今回のは相対的に簡単に感じた.
Rand関数の理解がまだまだ乏しいので要学習.
不明なところは質問してください.
今回の講義動画も非常にわかりやすかった.
関数を使ってみると,
ソースコードが見やすくなって,
実行した際,
おかしな部分に気づきやすくなった.
今まで習ってきた内容を自然と活かせた時に,
自然と笑顔になれてとても健全な科目だと思う.
そうですか.動画は誰が見たか記録が残るのは知っていますよね.
ポイント高いですよ.
関数の導入により,
処理が意味単位でまとまったり,
コードの見た目が簡潔になったりして,
コードの可読性が向上した.
これから積極的に導入していこうと思った.
また,
関数形式マクロの括弧にはきをつけたいと思った.
ぜひそうしてください.大切ですね.
関数により様々な実装がより楽に行えるようになったと思う.
今回の演習では,
課題3などで配列を用いた実装を行えたので今後も,
身につけた手法を使うことを意識して演習に臨むようにしたい.
色々と試してみるのが大切ですね.
今回は関数を定義し,
実行した.
関数を定義することで操作が簡単に感じられたが,
定義の仕方を間違えると期待した結果が得られなくなり,
自分では気づきにくいこともあると思うので定義する際は気をつけようと思った.
ぜひそうしてください.
今回の講義では,
関数を自分で定義することでコードを簡潔に記述できることを学んだ.
特に,
int main(void)が,
引数はなしで,
戻り値がint型ということがわかったので,
正常終了ではreturn 0を,
異常終了ではそれ以外の戻り値を指定する意味を理解できた.
今回の課題では関数の恩恵を感じにくかったが,
コードが長くなったとき,
何回も同じ処理をするなら有用だと感じた.
読みやすいコードのために,
関数の命名にも注意したい.
素晴らしい.そうですね.名前をどうつけるかは結構重要ですね.
やっと関数が授業で扱われて嬉しいです.
今までの課題でも,
個人的に処理を切り分けたいと思ってしまう場面が多くありややもどかしさを感じていました.
よろしいと思います.
今回はオプション課題以外は授業内に終わった.
授業内に提出必須範囲の課題が終わることが久々であったためとても嬉しかった.
最近オプション課題が多いが,
みんなどの程度やっているのか少し気になる.
自分はオプション課題はすべて行おうと考えている.
引き続き頑張っていきたい.
その姿勢.素晴らしい.
関数を利用して処理をまとめたり,
それを呼び出して実行する方法を学んだ.
また,
関数を利用することで出力の整形などの繰り返しの多いタスクが楽になると感じた.
その通りですね.楽になりますね.
課題が全体的に普段より簡単だった.
オプション課題にも挑戦した.
よろしいと思います.
今日の関数の内容は前より取り組みやすく,
理解がスムーズでした.
実際に試してみると,
コードを整理できることが実感できました.
素晴らしいですね.
今日も頑張れました.
for文とかがこんがらがらないようにフローチャートを使った方が良いと思いました.
次回以降もフローチャートを書いて頑張ります.
はい,そうしてください.
今日の演習は久しぶりに一個前のものよりも簡単だった.
依然行った演習を直すときに各行数がかなり減っているように思えて,
関数が便利だなと思った.
関数をそのままvoidなどから定義するのと,
マクロとして置いてあげるので,
そのまま定義するときは,
printfなどのものを用いて長々と書けて,
楽だと思ったけれど,
そんな長いものを何度も書かないかもしれないし,
その中の計算にマクロを用いるなどで,
復号させているのかなと思った.
関数とマクロは違いますね.
今回の授業では,
関数の使い方について学んだ.
関数をうまく使うことで,
何回も同じ操作をする場合に楽にコードを書くことができるだけでなく,
視認性も向上するので,
今後の演習でも使える機会があれば積極的に活用していきたい.
活用してください.重要です.
前回よりも苦戦せず解くことができました.
マクロは便利だけど使用するときには注意して使わなければいけないことが理解できました.
よろしいと思います.
最大値を求めるようなプログラムは,
関数のみを使ったものではなく,
もっと時短でソースコードが見やすくなる関数形式マクロや,
あらかじめ宣言するプロトタイプ宣言という方法があることを知った.
これらの使い分けは後々重要になってきそうだと思った.
そうですね.うまく使い分けてください.
今日もよくできました.
私はよくC++を書いているので課題ではチャッピーは使いませんが,
良くないコードを指摘してもらう使い方はライブラリ整備の時によくしています.
ライブラリは適当に作ると負債になりうるので,
保守性や可読性の低さを指摘してもらって助かっています.
保守性は普段の書き捨てのコードではそこまで意識しないので,
むしろ自分一人では細かいところを詰め切れない感覚があります.
今回扱った関数も再利用性が大事なので工夫のしどころは多いですよね.
よろしいと思います.その通りだと思います.
関数について課題を進めていくうちに少しずつだが,
扱えるようになり嬉しかった.
特に,
値を返す(return)関数と,
返さない(void)関数の役割分担(課題3と4)を区別するのが難しかった.
分からないときは質問してくれると良いでしょう.
関数の場合とマクロの場合の違いについてよく理解できました.
素晴らしい.
関数を設定すると,
main関数のコードが見やすくなるため,
とても書きやすかった.
これからも使いたいと思う.
どんどん使ってください.
今回は,
以前作成したコードの短縮なども踏まえながら,
関数について学びました.
思ったよりも楽しく学ぶことができてよかったです.
楽しいのは大切ですね.
本日は関数と関数マクロについて扱いました.
関数のマクロは,
#define 以下に書き込んだコードそのものに置き換えられてしまうため,
少し注意する必要があると感じました.
また,
関数よりも関数マクロの方が速いということは,
変数やconst で定義した定数よりも #define で定義した定数の方が読み込みが速いのかなと気になりました.
これはどうなのでしょうかね.よく知らないので,調べて教えてください.
今回の課題は比較的スムーズに終わらせることができた.
寧ろ関数を使うことで従来よりもコードが書きやすくなったように感じたので今後も活用していきたい.
活用しましょう.
void関数とint関数の違いを理解するのに少し時間がかかったが,
理解してからは特につまずくことなくできたので良かった.
今後もコードを書き始める前にどういう流れで書くのかを考えてから書くように心がけたい.
その通りですね.関数とかは関係なく,まずは流れを考えることですね.
今回の授業で,
課題7を解決する時,
実行したファイルとソースコードの区別がよくわからなくって大変しました.
これからのプログラムを実行する時,
実行ファイルをよく名前を出てくるほうがいいと思います.
「よく名前を出てくる」というのがちょっと分からないですが,
UNIXでの慣習になりますが,最後に.c とつける(拡張子ではない)のは,
このファイルが,プログラミング言語Cによるものだとわかるようにするためです.
関数を使うことで同じ操作を使いまわせて便利だと思った.
また,
人間がコードを読みやすくなると思った.
そうですね.読みやすくなると思いますよ.
今回の講義では,
C言語における関数の定義と使い方を学びました.
int型やdouble型のように値を返す関数と,
void型のように処理のみ行う関数の違いを理解できました.
また,
オプション課題で関数を関数形式マクロに変更して実装したことで,
マクロの利便性と誤動作の危険性を学ぶことができました.
理解できたようですね.
慣れてきたのかスムーズにコードが書けるようになってきた.
こういったことを言っていいのかわからないが,
プログラム書いたあとにコンパイルできない部分がどうしても見つからないにAIを使うことがあるが,
結構ダメ出ししてくれるのと,
コードを簡潔に書くヒントにもなるのでありがたい.
うまく使えば良いのではないでしょうかね.
今回は少し自分的に流行りやすかった課題でした.
しかしながら,
到達度評価がとても心配です.
今までの課題レベルだったら少しやばい気がするので復習頑張ります.
復習は大切ですね.
今回の演習は時間内に終えることができて良かった.
関数を用いると,
コードをきれいに書くことができるようになり,
とても見やすくなるので使うと良いことが分かった.
次回の演習も頑張りたい.
そうですね.綺麗になるのはとても良いですね.
間違いを見つけやすいことにも繋がりますね.
前回の授業で大いに苦戦したので
今回が心配だったが前回よりも簡単にすることができた.
仕組みが直観的に理解することができたのでとても楽しかった.
そうですか.でも今回は大丈夫だったということでしょうかね.
本日は関数や変数について学んだ.
プログラミングには結果は等しいのにルートが異なるものがあったり
計算速度が異なるものがあることを学んだ.
復習をし,
より最適な結果が導き出せるコードをかけるようになりたいです.
そうですね.まずは色々と試してみるのが一番大切だと思います.
C言語も徐々に慣れてきたと感じるが,
逆に,や;を入れ忘れるミスが多かった.
今日学んだ関数を別で作るというのはまだありがたみを感じれないが,
今後の役には立ちそうなものだなと感じた.
入れ忘れはコンパイルエラーが起きるのですぐにわかると思います.
今回の授業のおかげで
いつも最初に使うint main(void)の意味がようやく少しわかることができました.
関数を設定するときにint,void,doubleなどの使い分けをしっかりやっていこうと思いました.
まずは,何をどうするのか,というところから考えてください.
前回と比べると難易度が低く,
すぐにコードが思いついたから良かった.
今回の課題の中では課題6が1番難しく感じた.
プログラミングを始めたばかりの頃と比べると成長が感じられた.
うまくいきましたかね.
マクロの関数は,
その性質を理解しないまま適当に実装すると,
想定と違った結果を返すことがあるという問題が一番印象に残った.
理解さえしてしまえば避けることは難しくないトラップだが,
たいして処理が重たくないコードであれば,
マクロを使わないと割り切ってしまうのもありではないかと感じた.
まずは色々と使ってみるのが良いのではないかと思いますよ.
今の段階では.
#defineと関数の違いについて,
今まで知らなかったので知れてよかったです.
ネットで調べたら,
今はマクロと関数ではそこまで速度に差が出ないとも書いてあったので,
使いやすさや保守性も考えたら関数をメインで使った方がいいと思いました.
また,
マクロは型にとらわれないで使えるのが非常に使い勝手がいいと思いました
一長一短なので,うまく使い分けてくれたら良いでしょう.
今日の範囲は動画だけでは理解しきれなくて,
最初の方は課題をこなすのに苦戦した.
しかし例や実行を何度もしていたら慣れてきてなんとなくわかるようになっていった.
また課題9では前回の自分が書いたコードを持ちいたことから,
どれだけ綺麗にコード書いた方が後から見やすいかより実感した.
なので今まで何回かエラーとかを解決するために
たくさんいじってわかりにくくなってしまったものも多いので,
気をつけようと思えた.
分からないときは質問してくれた良いと思います.
関数の引数とreturnの使い方に苦労しましたが,
フローチャートで「入力・処理・出力」の流れを整理し,
無事解決できました.
void型と戻り値あり関数の違いが明確になり,
関数の再利用性のメリットを実感しました.
解決できたのであれば素晴らしい.
今回の演習では自分オリジナルの関数を作成することでコードを書いた.
今まで同じ処理を何度も書く必要があったコードを見やすく整理することができるようになったという点でも,
とても進歩したように感じた.
関数を自分で作れるようになってプログラミングが楽しくなった.
楽しいのが一番ですね.この調子でお願いします.
今回は易しい問題ばかりだった.
しかし,
関数形式マクロを使用する際の注意点は,
知っていないと気づかぬうちにエラーが起きてしまう可能性があるので非常にためになったと思う.
使ってみて,うまくいかない場合も試してみるのが大切ですね.
前回よりもやることが単純だったのですぐに終わった.
よろしいと思います.
今回は関数について学んだ.
正確に行うことができた.
続けていきたい.
素晴らしい.
今回も楽しく学べました.
今回は授業時間内に終わらせることができたのですが,
前回と前々回は授業時間内で終わらず,
家に帰ってからやっていたらコメントを提出するのを忘れてしまいました.
今日こそは絶対に忘れないぞという気持ちでしたが
授業時間内に終わったので忘れずに出すことができました.
この授業で学んだことも増えてきてできることも多くなっている分
覚えなくてはいけないことも多くて少し先が不安です.
教科書でもどりもどりその都度復習していくことができればと思います.
期末試験に向けた勉強もそろそろ始めたいです.
そうですね.教科書を戻ってみるなどしてくれたら良いので,
その都度見返すので良いのではないでしょうか.
繰り返し何度も行う処理があった場合関数を定義することでより簡潔に,
見やすくまとめることが出来ると学んだ.
今回の課題では直接扱ったわけではないが講義に含まれていたファイルの分割について説明を聞いても
まだ小さな規模のコードしか書いたことがない為有用性があまり理解できなかった.
自分で実際に何度か使ってみてどのような場面で役立つものなのか早く理解したい.
ファイル分割については,その通りです. まだ実感が湧かないと思いますが,実際はよく使います.
本日はマクロと関数を扱った.
関数やマクロについては前々から知っていたが,
関数型マクロについては今回初めて知った.
ただ,
紹介されたわりには,
使いづらさが目立ったように思える.
今後は関数を主に使用していきたい.
両方使えるようになっておくのが良いと思いますよ.
今回はオプション課題まで含めて何とか終わらせられたので良かったです.
今まで書いていたint main(void)も関数だとわかり面白かったです.
ただ,
今まで書いていたmain関数がなぜint型なのか気になりました.
void型にした方が最後にreturn 0を書く手間が省けてよさそうな気がしました.
次回触れましょう.というか,上の方のコメントで同じものがあったので,
そこで話すと思います.
今回は関数を用いた処理を学んだ.
関数の定義の仕方を気を付けないと課題8のように
「(x+y)×(x+y)」を計算したいのに「x+y×x+y」になってしまうことがあるので,
関数を用いてコードを簡略化できる分,
そういった細部に気を付けたい.
その通りです.気をつけるようにしておくのが一番ですね.
今日は関数を取り扱った.
void型やint型などの関数の型の違いや引用の仕方などを理解することができた.
よろしいと思います.
for文の使い方にも慣れてきて,
今回の演習は時間内に終えることができた.
素晴らしい.
今日の講義では,
関数をどのように使用するかについて演習を通して知ることができた.
関数を使用することによって,
何度も同じプログラムを打つ必要がなくなり,
効率的にプログラムを打つことが可能となることを知れた.
今回の内容の関数以外のところで詰まってしまったため,
しっかり今までの講義内容を復習して忘れないようにしたい.
関数は便利ですよね.
今回は難易度もちょうどよく,
楽しく取り組める課題でした.
AIの使用方法の話に関しては自分もずっと
「自分で書いてAIにチェックさせる」
というやり方をしてきたので内心うれしかったです.
そのときうまく聞いていますか?
今日は前回と比べたら比較的早くおわりました.
よろしいと思います.
本日は関数の使い方を学んだ.
簡単なプログラムならわざわざ関数を使う必要がなさそうと感じた.
逆にコードが長く複雑になるほど,
関数を定義しておくことで見やすいコードになり,
関数ごとに処理を分けて考えられるので真価を発揮するのではと考えた.
そうですね.長くなれば特に大切になりますね.
今回は,
関数について学びました.関数化することにより,
main()関数の読みやすさを格段に上げることができるので,
複雑なコードも円滑に整理して進めることができたと思います.
また,
今回の課題6や過去の課題の中で表を作る問題が多々登場しましたが,
字数の間隔の細かな調整をしないで整理された表を
より簡潔に作る方法が他にあるのかは気になりました.
方法は色々とあるかもしれません.