2025年12月17日 第12回
実際にargvを触りながら「引数を厳密にチェックする」ことの大切さを実感しました.
オプション指定を忘れると何も出力されない/エラーになる混乱を,
helpや完了メッセージで解消できるのが印象的でした.
また,
ロジスティック写像や魔法陣など,
同じ枠組みでパラメータを変えるだけで動きを確認できる面白さも感じました.
コマンドライン引数はとても大切ですね.
使えるようになって下さい.
本日の講義では,
コマンドライン引数( argc , argv) の基本的な使い方や,
atoi・atofを用いた文字列から数値への変換について理解できた.
一方で,
ポインタを引数として関数に渡した場合に,
関数内で変更した値がどのように呼び出しもとに反映されるのかについては,
十分に理解できていないと感じた.
ポインタについてはすでに終わっていますが,
もう一度よく考えてもらうと良いでしょう.
ファイルやコマンドライン引数を用いて外部からプログラムにデータを渡す方法を学んだ.
また,
標準入力,標準出力,ファイルはファイルディスクリプタを通して統一的に扱えることを学んだ.
ファイルの入出力は色々なパターンがありますが,
できるようになっておくと良いでしょう,
今回はメイン関数に引数を渡す方法や,
外部のファイルから入出力する方法を学んだ.
まだポインタやアドレスへの理解が浅く,
苦戦する部分が多かったので,
ポインタの基礎から理解し直したいと思う.
復習しておきましょう.
今回はいつもにもまして苦戦した.
今までの総合力が試されるうえ,
本日新たに習ったことも相まって大きく悩まされた.
期末考査もあるのでしっかりと復習していきたい.
そうでしたか.難しかったですかね.
でも大切なところなので,ぜひできるようになって下さい.
引数や配列の扱い方を練習でき,
C言語でプログラムを書く力があ少し身についてきたと思う.
今年最後の演習授業も終わり,
いよいよ期末試験が近づいてきたので,
忘れていそうな範囲からしっかりと復習を行っていきたいと思う.
また,
オプション課題も忘れずに取り組もうと思う.
そうですね.復習もしてください.
オプション課題も取り組んでください.
今回課題7のコアダンプエラーに過去一番と言えるほど苦戦し,
今までで一番時間がかかってしまった.
結局かなり単純なミスだったことが発覚して拍子抜けしたが,
ぎりぎり時間内に終わらせることができた.
どういうコードなのか不明なので,なんとも言えませんが, 質問してもらえばすぐに解決したと思います.
今回は,
ファイルの入出力に関して学びました.
予習の時点での理解度が曖昧であったことから演習では滞ることが多かったので,
一貫性のあるC言語の理解を加速させるためにも今日から初めの回から今回までの復習をしていきたいと思います.
しかし,
これはあくまで今後の自身のスキルアップという名目で持続させて,
来年度以降の演習では細かいコードの意味や,
シンプルなコードを書けるような工夫を"毎授業"でできるようにしたいです.
師が本授業の冒頭で仰っていた「絶対分からないC言語(?)」という参考書の正式名称が気になるので
改めて教えていただきたいです.
紹介しようと思った書籍は,苦しんで覚えるC言語です. 秀和システムから出版されています.
今回の問題は前回よりも難しく感じた.
関数化したときの引数が*をつけるかどうかなど混乱するので,
しっかり期末までに復習したい.
そうでしたか.難しかったとのことですが,どこが難しかったですか.
今までの中で一番難しい単元でした.
便利さも含めていまいちよくわかっていないことが多いので,
頑張って復習します.
単元ですか...
今回の演習では,
ファイル入出力やコマンドライン引数について学んだ.
演習課題のコードがかなり複雑になっており,
理解に時間がかかる箇所も多かった.
これまでの内容も含めて改めて復習し試験に備えたい.
難しかったですか...
ファイル入出力やコマンドライン引数など,
C言語における入出力処理の流れを体系的に学ぶことができました.
特にバッファオーバフローの危険性について理解が深まりました.
危険なことがたくさんありますね.気をつけましょう.
今までのプログラミング演習でかなりプログラミングに触れることができ,
たくさんプログラミングについて学んだが,
まだまだ分からないことが多すぎる.
この講義での内容は初級レベルなので,
自分でも色々とやってみると良いでしょう.
argcやargv[]の使い方を理解することが大切だと思った.
そうですね.理解して使いこなしてもらうと良いでしょう.
今回の課題はとても難易度が高く感じました.
ファイルを扱うプログラムはデータを大量に入力出来てとても便利だとおもいました.
また,
コンパイルのときに--helpで使いかたが見られるのがとても便利でした.
2025年の講義ありがとうございました.
うまくできましたか?
今まで使っていたオプションがどのように設定されているのか知れて面白かった.
一つのハイフンの後に複数のオプションを書く方法(-aと-bを-abと表記するもの)の作成も行ってみようと思う.
色々とやってみましょう.すぐに慣れますね.
今回の内容は,
今まで習った内容と似ているものが多く違いがそこまで分からなかった.
また動画ではわかったつもりでも実際に課題をやってみると,
このコマンドはどの情報が必要なのかがわからなくなり
スライドをみてもよく分からなくなってしまい,
とりあえず作ってみてエラーの内容で理解するという時が多々あった.
今までとは違うようになっていたと思います.
もちろん延長線上にはあると思いますが.
ファイルを扱うための新しい関数がいくつか出てきたが
それぞれどの順で引数を書くのか混乱し,
なかなか思い通りのコードが書けなかった.
複数のファイルや標準入出力が登場すると何から何にデータを動かしているのか分からなくなることがあり,
一度それぞれの関数の動きを再確認する必要があると感じた.
そうですね.常に確認は必要だと思います.
今回の内容はあまり難しくなかったが,
ポインタのあたりからあまり理解できておらず,
序盤に取り扱った内容も忘れてきており教科書やスライドをよく参照することもある.
期末試験もあるため,
オプション課題等も通して勉強できればと思う.
そうですか.でも分からなくなったら,元に戻って考えるでいいじゃ無いですか.
今回はかなり苦戦した.
新しく学んだ事項以外にもfor文などの扱いがうまく行かず動かなかった.
思考が凝り固まってしまい,
かなり時間を費やしてしまったので,
このような状況に陥った場合の対処法を知りたいと思った.
まず,コードを書き続けるとダメなので,
一度,書いたものを綺麗さっぱり消しましょう.
そして,新たに作り直せば,意外にうまく行くことがあります.
本日の演習は今までの中で最も実践的な手法でありながら,
最も難しいと感じた.
ポインタと配列の知識であったり,
関数の知識であったり,
今まで学んできた技術が今回の演習に集結しているように感じた.
期末までにもう一度解き直して知識の定着を図ろうと思う.
確かに今までの内容を色々と使う必要がありますが,
それぞれについて理解できていれば,問題ないでしょう.
今回の内容は理解が難しい印象でそこそこ大変だった.
今回のものも含め期末に向けて,
復習を頑張りたいと思う.
最近I科の先輩とサークルで話していた際に,
名札をGoogleフォームとPythonを組み合わせて作れるという話をされて,
そういった実生活で役立つプログラムに興味が湧いた.
実際にすぐ役立つものほど,
身近で取り組みやすいと思うため是非やってみたいと思う.
名札を作る方法は色々とありますね.テキスト情報さえあれば.
今回の演習では,
ファイルの入出力やコマンドラインからの入力の方法を学んだ.
演習問題1つ1つの重みが大きくなってきたため,
一つの課題を終わらせるのにかなりの時間がかかってしまった.
テストに向けて,
今までの復習をして,
理解が不十分なところがないようにしたい.
期待していますよ.
今回はファイルを使った入力や出力を学んだ.
ファイルに入力したり,ファイル内の値を別の値に渡したり,実行結果をファイルに入力したりする方法を学んだ.
またそれぞれには違った処理の方法があったりしたのでそれぞれの違いと使い分けについて理解しておきたい.
冬休み明けには筆記のテストがあるので冬休み中にしっかり復習しておきたい.
復習はしておくほうが良いでしょう.試験も頑張って.
今日の課題は講義全体で習ったいろいろなものを使う必要があり,
自分にきちんと身についているか試しているような気分になった.
ほとんどのものを使いこなせたように思えるが,
一部前の課題や教科書を見直す必要があったので,
そこを中心に期末へ勉強しようと思った.
分からないところがあれば,見直してもいいのですよ.
コマンドライン引数を使った実装を自分でしてみることで,
UNIX系のコマンドがどのように処理されているのかへの理解が深まった.
また,
入出力をリダイレクトによって行う方法が私にとっては身近だったが,
C言語の機能を使うことによってもファイルへの読み書きができることが分かった.
ファイルの入出力は色々な方法があるのでできるようになるのが良いですね.
標準入出力とリダイレクトを用いるほうが良いというのは,
とてもよろしいとおもいます.
今日の授業も集中して取り組むことができた.
プログラミングの授業は一年時にあるので,
これからどのような形で2年以降で応用できるのかとても楽しみになった.
定期的に復習してミスを犯さないように頑張っていきたい.
期末試験に関して念のため,
お聞きしたいことがあります.
持ち込み不可とありましたが,
それはパソコンも使わないということでよろしいでしょうか.
私のパソコンはすぐに充電が切れてしまうものの,
PC室で普段授業を行うことができていたため,
常にコンセントを差し込んだまま取り組むことができていました.
しかし,
今回E304教室で行うと聞いたのですが,
充電がない場合は,
コンセント側の席で受けさせていただくことは可能なのでしょうか?不可能であれば,
今すぐに買いに行きたいと考えています.
持ち込み不可なので,パソコンも持ち込めません.
この授業のお陰でC言語の概要からある程度の演算までできるようになりました!
期末も頑張ります!
期待していますよ.
本日の演習では,
ファイル入出力とコマンドライン引数の利用方法について学びました.
これまではプログラム内で数値を変更するたびにコンパイルし直していましたが,
実行時引数を用いることで柔軟に値を変更できる便利さを実感しました.
特に,
引数の解析処理を通じて,
ポインタ配列や文字列操作への理解が深まりました.
理解できたようですね.良かったと思います.
短い期間でしたがありがとうございました.
授業で培った能力をしっかりと発揮できるように頑張ります!!!
ぜひ発揮して下さい.試験も頑張って.
"%3d"などとすれば文字の出力幅を指定できることを初めて知った.
今まで,
表のように数値の位置を揃えて出力したいときはいつもif関数で桁数によって場合分けをしており,
少し面倒な上にコードが長くなりわかりづらいなと思っていた.
もっと早く知りたかった.
今後活用していきたい.
出力の指定については,早い時期にすでにやっていると思います.
今日も演習を通して実際にプログラムを書き,
慣れることが出来ました.
この授業も終わりに近づき,
過去の講義でやった演習問題などを振り返ると思ったより多くの内容に触れていて
時の流れを感じるとともに自分の成長を実感しました.
まだまだ,
習いたてではあるので,
これからも自分で復習などを重ねて自分の力にしていきたいと思いました.
そうですね.復習は大切ですね.色々とやってみて下さい.
今回は,
入出力についてコマンドラインから引数を持ってくる方法を学んだ.
プログラミング演習で演習を繰り返しているうちにfor文やwhile文の使い所や,
配列の使い方など,
少しずつ使いこなせることが増えてきた.
しかし,
まだ自分の中ではポインタの使い方に苦手意識がある.
そのため,
コードを書くときもできるだけポインタの使用を避けたような
単純なコードで書くことが多くなってしまった.
期末テストまでの冬休みの期間で演習問題の復習をして
来年のプログラミング演習の時には
プログラミング演習1で学んだことを全てマスターできるようになっていたい.
来年度の前期は,データ構造とアルゴリズム,プログラミング演習2,
後期は,オブジェクト指向開発などの講義,演習がありますね.
頑張って.
ファイル入出力が可能になると,
より現実的なプログラムの運用ができそうなので学べてよかった.
その通りですね.
今日の内容はかなり難しかったが,
途中の方から何をひているのかの理解が進んできて,
意外とスルスルと解けた.
コマンドの実行と同時に入力することができるので,
なかなかに便利なものだなと思った.
minecraftのようなゲームに用意されてるコマンドはだいたいこれを使ってるのかなと思った.
うまく理解できたようですね.
やはりポインタを含んだ関数の扱いが慣れておらず手こずったので,
復習して期末に臨む.
そうして下さい.
むずすぎです.
そうかね.今までやったことを使ってくれたら良いだけですよ.
今日の講義も大変ためになりました.
ポインタの配列が2次配列と実質的に同じということなどさまざま,
学びました.
しかし,
「ポインタ」「ポインタ」「ポインタ」と考えているうちに,
ポインタが何かごちゃごちゃしてきたので,
早急に復習します.
テストも一生懸命頑張ります.
後期の間ありがとうございました.
復習は大切ですね.
今日の課題が一番難しく,
うまくいかなかったのでしっかり理解をしてから取り組みたいと思います.
それから,
質問なんですがprintfとfprintf(stdout)は同じ意味ですか?
どう使い分けているのかが分かりませんでした.
同じ動作をします.システムによって標準出力が何かは変わりますが, printf は標準出力に出力するので,fprintf でstdoutを指定するのと同じです.
基礎的な能力が身についてきたのか,
コードを思いつく速度が上がりました.
しかし,
どうしても細かなミスが発生してしまい,
その修正に時間を取られてしまいます.
どのようにすれば細かなミスを減らすことができるでしょうか.
スピードが上がっているのは素晴らしい.
今回はファイルの入出力などについて扱いました.
以前と比べてより一層コードが長くなり,
改めて関数化やモジュール化の大切さを意識しました.
特に,
課題6で関数化した際には,
各関数で扱う変数がまたがってしまわないように,
スコープ内にいい感じに収めるように課題5のコードを書き換える必要が生じましたが,
これを通してグローバル変数は良くないと言われていることの意味を改めて認識できたような気がします.
色々とトライして理解しましたね.
時間内に課題を終わらせることができなかった.
特に課題7で関数をいくつも分けたことで実引数を入力するときに混乱したり,
課題6でnを定義しない書き方がわからず全体的に難しかった.
そうですか...でもできましたかね.
unixやlinuxのオプションは,
どの位置においても認識されて柔軟性が高いなと思って感心していたが,
今日その仕組みを知れたので感動した.
ところで,
冬休みや春休みにC言語をもっと極めたいなと思っています
(具体的には応用力をつけたいなと思っています).
何かおすすめのやり方とかはありますか
(競技プログラミングとかはどうなんでしょうか)?
競技プログラミングも良いと思いますよ.
何か目的があったほうが良いので,アプリを作ってみるとかどうですかね.
C言語じゃないけど.
今回は,
今までで一番理解に時間がかかった.
関数を複数個作ると,
引数などの文字が多く,
混乱してしまうことが多かった.
どういう流れでコードを書くのか,
しっかり考えがまとまってから書き始めるように気を付けていきたい.
そうですね.すでにお話しした通りですが,
まずは考えることが大切ですね.
課題6に特に苦戦しました.
???の穴埋めだけではどうしてもコードが作れず,
結局内容を付け足しました.
1年間ありがとうございました!
付け足した?
今回の講義では,
実行時オプション,
標準入出力,
ファイル入出力,
関数分割など,
これまで学んできた内容を総合的に復習することができました.
特に,
課題ごとに入出力方法や実装方針が異なる理由を考えることで,
目的に応じたプログラムの書き方を意識できるようになった点が理解できた部分です.
今回が最終回でしたが,
本講義を通してC言語の文法だけでなく,
仕様理解やプログラム設計の基本的な考え方を学ぶことができ,
今後の学習にも役立つ内容でした.
ぜひ役立てて下さい.
本日の講義動画は時間が長く,
入出力に関して内容も覚えることが多かったため,
課題演習に手間取ってしまった.
これまでの内容を基本として入出力を覚えなければならないため,
テストに向けて冬休みのうちに総復習したい.
講義動画は,予め,見てきましか?