2021年12月22日 第13回
今回,文字数制限のある文字列を安全に入力する方法を学んだ.
この技術は,入力そのものを制限する方法がないならば最も使える技術だと,今回の授業を通して大いに思った.
また,ファイルを分割してプログラムを作成するのはまだできていないが,
こちらは複数のプログラムを組み合わせて1つの複雑なプログラムを作成するのに大いに役立ちそうに思えた.
理解してくれていると思います.
今回はいままでの授業で飛ばした内容だったが,
気になって自分で少し内容を先に見ていたので,
授業内容が理解しやすかった.
よろしいと思います.予習効果ですね.
本日も講義ありがとうございました.
今回は比較的理解がしやすい内容だったので,演習はスムーズに取り組むことができました.
よろしいと思います.
今回の講義では,配列や構造体のメモリを動的に確保するために使用するmalloc関数を学んだ.
stdlib.hで宣言し,引数で指定するバイト数分のメモリが確保され,
確保したメモリ領域へのポインタを返すことがわかった.
確保したメモリはfree関数で必ず解放することを忘れないようにしたい.
理解してくれていると思います.
今回学んだものは,共同で作業する上で考えないといけないものが多いと感じました.
例えば,ファイルの分割を行うことやグローバル変数の使用は可能な限り避けることなどです.
今までプログラミングにも共同作業で行うという部分があることを認識していなかったので,
条件や繰り返しなど自分が面白いと感じる部分だけに固執しないでいこうと思います.
いろいろな状況があると思いますが,情報工学科だとそれらに対応できないと困りますね.
今回の講義で教科書のほぼ全てが終わりましたが,
まだまだ定着していない部分が多々あると思いました.
マインスイーパーの課題もまだ残っているので,
冬休みは復習などの時間を多めに取りたいと思いました.
時間を書けると良いですね.
動的に配列を確保できることは非常に便利ですが,
malloc関数を使った際のメモリの解放をつい忘れてしまいそうになったので気をつけたいと思います.
理解しているので大丈夫でしょう.
講義ありがとうございました.
今回は講義内容をしっかり理解できたので課題をスムーズに行うことが出来ました.
よろしいと思います.
c言語はメモリをしっかり理解しないと配列を上手く使えないから難しい
だからやる意味がありますね.情報工学科だし.
本日も講義ありがとうございました.
fprintfとprintf が混ざってしまいよく分からないことが多かったのでしっかり復習したいと思います.
演習をやり直すと良いと思います.
今日の講義では関数のプロトタイプ宣言や配列の動的な確保などを学んだ.
いままで学んだことの少し発展した内容で面白かった.
ファイルを分割して統合する方法はとても便利だなとも感じた.
とても分かりやすい説明で理解しやすかった.
理解してくれたのであれば,良かったです.
malloc関数やバッファオーバーフローについて,課題を通してなんとなく理解してきたが,
見直して,資料などを見ずにコードが書けるようにしていきたい.
何回も演習をやれば問題ないでしょう.
今回は,今まで説明されていなかったものがいくつも紹介されたので頭がこんがらがってしまいました.
しっかりと復習をして,習ったことを使えるようにしたいです.
そうですか.分からないところは質問してください.
mallocに関してもう少し詳しくやってほしかった.
例えば,文字列の長さを読み取ってその分だけのメモリを取ってくるやり方とか.
自分で調べてみると良いでしょう.大学生ですからね.
プログラムを分解することで,少し手間は増えたものの複雑さがなくなったので,
使い分けができるようになればとても便利だと思った.
便利ですよ.
ファイルを分割することは短いコードの場合はそれほど必要なくむしろファイルを開く手間が増えるデメリットもあるが,
長大なコードを書く必要がある場合には非常に有用だと感じた
どのようにコードを書くかですね.説明しましたが,自分だけなら一つにまとめるのでも構いません.
今回も講義をしていただきありがとうございました.
前回の課題ではとても苦戦をし,教科書の見直しを行いましたが分からないままで根本的な知識の練り直しが必要と感じました.
今回の講義でも漸化式の問題がありますが,
今までの漸化式の問題全てまともにコードを書けた記憶がないので今回こそはスムーズに描けるようにフローチャートを駆使して頑張ります.
良いお年を.
フローチャートをつかって落ち着いて考えたら大丈夫だと思います.
前回くらいから自分的に課題がかなりハードに感じている.
もう少し今回,前回の内容のコードを書くだけでなくそれにどういう意味があるのかいつも以上に考えて理解を深めておきたい.
落ち着いて考えれば大丈夫!
今年一年ありがとうございました.
また来年もよろしくお願いいたします.
はい,よろしくお願いします.
前回の課題で,完璧に仕上げきることができなかったものがあったので,
行き詰ったときこそ自分が何の処理をしようとしているのか理解しつつすることが大切だと思いました.
これまでの課題でなぜ同じ処理でも関数を分けたりするのだろうと思っていましたが,
今回ファイルなどを分けることで,その意味が理解できました.
理解していると思います.大丈夫ですね.
本日も抗議ありがとうございました.
今日の講義内で言っていたことで疑問に思ったことがあるのですが,
コマンドなどで何も入っていない空いているところがあるとメモリが無駄になってしまうと仰っていましたが,
仮に一般的な.cファイルを作った時のファイルのメモリの上限はいくつなのか気になりました.
ごめんなさい.質問の意図が分からないので,直接質問しにきてください.
ここ何回かかなり苦戦してるので冬休み復習してテストに備えようと思います.
よろしいと思います.
今までソースコードが長くなってスクロールが大変だったので,
ファイルの分割のおかげでだいぶ楽になりました.
また,
ファイルの分割を行うとほかの箇所の確認にいちいちファイルを開いたり閉じたりする手間がかかるので,
いかにフローチャートで分かりやすく書くかが大事になりそうだなと思いました.
そうですね.ファイルの長さは大切ですね.
本日もわかりやすい講義をありがとうございます.
今回は今までのプラスアルファの内容だったので良い復習にもなりました.
忘れているところは改めて資料を見返そうと思います.
復習してください.
コンピュータサイエンス序論から,
プログラミング演習まで1年間授業ありがとうございました.
よいお年をお迎えください.
最後まで頑張りましょう.
今まで書いてきたプログラムをより,
実践的なコード(例えばポインタや構造体やファイルで分けるなど)で発展させていく問題が理解しながら解きやすかった.
質問ですが,コードを一旦全部書いてから,関数に分けたり,ファイルで分けたほうが,
今のところ分かりやすいのですが,プログラム書く人は初めからもう「これは分けよう」とか思っているのですか.
フローチャートとか使っているのですか.
良い質問ですね.次回触れようと思います.
ファイルの分割により,良く使用する処理などを別のファイルにすることで,
様々なプログラムでその処理を簡単に利用できるようになるのは非常に便利だと思いました.
その通りです.便利でしょう.
関数プロトタイプ宣言について質問です.
授業で最初習ったのは関数プロトタイプ宣言ではありませんでしたが教科書を見ると全て関数プロトタイプ宣言の方を使っています.
実際どちらの方が使われてますか?また,どのように使い分けをしたらいいなどはありますか?
講義でも説明したようjに,ファイルを分ける場合は,
あらかじめ関数がどのような型を返すのか,
その関数の引数には何があるのかを知らせて置く必要があるので,
プロトタイプします.
講義の最初でやったのは,main関数よりも先に関数を定義しているので,
このような場合は不要です.
今までの内容の復習のような内容だったので良かったです.
よろしいと思います.
今まで通りに実行ファイルを作って実行することはできたが,
-cをしてから-oをするとよくわからないエラーになってしまった.
なぜなのか現状分からないが,じっくり考えようと思う.
どんなエラーなのでしょう?エラーメッセージを見せてください.
今回学んだ内容で,mallocを使い,動的なメモリ確保を学んだ.
そのときに出てきたダブルポインタについて,課題に取り組んでいる中で自分があまり,
理解できていないことがわかった.
ポインタについて理解できていると思っていたが,まだ知識に穴があると痛感した.
復習することで一つずつ間違いをなくしていきたい.
復習は大切なので,ぜひやってくださいね.
新しい内容が増えてきて,色々な機能を組み合わせるのが難しくなってきている.
ポインタや配列の内容を復習したい.
落ち着いて考えると良いと思います.
動的に配列を設定できるのはとても便利だと思いました.
バッファオーバーフローは前から聞いたことがあり,詳しく知れたので良かったです.
よろしいと思います.
今日は今年最後の講義で,これまで学んできたことの補足として配列の動的な確保についてなどを学び,演習問題に取り組んだ.
演習問題に取り組んでいるときに,ポインタや配列などの応用についての理解が不足していると実感したので,
今年中に理解できるようにしたい.
間違えたときは,前に戻って演習すると良いと思います.
本日もわかりやすい授業有難うございました.
まず,今週までの課題で,セグメンテーション違反が何度も出てしまい,とても苦しみました.
最終的にいろいろと書いてみることで違反は出なくなりましたが,
無駄の多いコードになってしまったと感じました.
また,ポインタとアドレスが複雑でエラーが何度も出てしまったので,早く慣れたいと思います.
課題自体の難易度も上がっていて,実力が付くと感じたので,
しっかりと時間をかけて取り組みたいとおもいます.
セグメンテーション違反は,だいたいが,確保した配列のサイズを超えてメモリにアクセスする場合ですね.
今年最後の講義,ありがとうございました.
プログラミング工学も終盤ですが,変わらず丁寧な講義で分かりやすく感謝しています.
来年もよろしくお願いいたします.
理解してくれているようでとても良いと思います.
演習でsscanf関数を使ってみたのですが,3つ目の引数になにをいれればいいのかがよく理解できていないので,
しっかりと調べて理解して使えうことができるように頑張ります.
こちらは説明したと思いますが...
演習を通してファイルの分割のやり方を理解できました.
< >でファイルの入出力ができるのは便利だと感じました.
本日もありがとうございました.
リダイレクトは知っておくと便利ですね.
単元はすでに習っているところなので少し複雑だったが理解できました.
冬休み中に復習したいので,再提出の多い課題の模範ソースコードなどを配布していただけたら有り難いです.
そうですね.ちょっと考えてみましょう.
ファイルの分割によってソースコードがきれいになったが,
パッと見てどんな処理が行われているかわかりにくいのが少し気になった.
一度作った便利な関数をそのまま使えることは分かったが,
やはりコピペして使った方がいいように感じた.
コピペで全てに対応できれば良いですが...
今回の講義内容は難しくて講義時間内にすべて理解することができませんでした.
1月にはテストがあるのでそれまでにしっかり理解したい.
分からないところは質問してください.
ファイルの分割など新しいことばかりでしたが,
これまで習ってきたことにより,完璧とは言えないですが,ある程度今日の内容が理解できました.
よろしいと思います.
本日も講義していただきありがとうございました.
ヘッドファイルなどを用いて,ソースコードを分割する方法を学びました.
ソースコードがよりきれいに見やすくなり,
大人数で作業するにはとても良い方法だと思いました.
次回もよろしくおねがいします.
綺麗なソースコード,重要です.
前回習った事と組み合わせて課題に取り組めました
よろしいと思います.
本日の講義,ありがとうございました.
演習課題で以前に自分が書いたコードを見て,
汚いと感じることに少し感動しました.
成長ですね.
本日もわかりやすい講義をありがとうございました.
今日の講義で,ソースコードを分割して実行ファイルが作れることは大変楽であると感じました.
いちいち関数を呼び出すときやコードの確認などに遡る必要がない上,1つ作れば活用することができ,
わかりやすく整理することができるのはいい仕組みだなと感じました.
今年はお世話になりました.
どうやら年末年始は課題に明け暮れそうです.
池口先生が学生時代のときも課題だらけの年越しだったのですか?
昔はもっと厳しくほとんど毎日講義でした.3年生になっても専門の講義が朝から晩まで,
実験もレポートを大量に書く必要があって...ただ,年末年始はどうだったかね...課題はあったと思います.
ファイルの入出力のコードの書き方がいくつもあるので,
その時によって変えられるのは便利だと思いました.個人的には今日教えていただいた方法の方がやりやすいように感じました.
素晴らしい.良いセンスしてますね.
だんだん内容が複雑になってきて,
今回はとても苦戦してしまった.
文字列に配列を使用しないといけないという事が複雑になる原因だと思ったので,
二次元配列の扱い方をしっかりと理解したいと思う.
2次元配列は重要ですよ.
課題で要求される知識の量も増え,なかなか進まなかった.
提出期限まで時間あるのでこれまでの確認をしっかり行った上で課題に取り組みたい.
よろしいと思います.
次の授業まで時間があるので復習して臨みたい
ぜひそうしてください.
今回はさまざまなテーマを学習したが,特にファイル分割時のコンパイルは,
大規模なプログラムを作成するうえで必須だと思うので使いこなせるようにしておきたい.
処理を関数化しておくことの重要性が分かったと思う.
理解してくれて良かったと思います.