2021年10月06日 第2回
課題8ではスペースの有無で実行が結果がかなり変わってきたので,
そういう細かい点にも注意しながら取り組んでいきたいと思います.
色々と試してみると良いと思います.
エンターキーが1文字換算されるため,
%の前にスペースが必要だということがわかった.
色々と試してみると良いと思います.
時間内に終わることができなかった.
ターミナル室の椅子は腰が痛くなるので嫌いになりました.
世の中には,こんなに良い椅子に座れない人もいます.
今日はなかなかうまく進められず,
時間内に終わることができなかった.
文字についてはもっと教科書などを読んだり実践する必要がありそう
時間内に終わらなければ家でやれば良いと思います.
オンラインと違い,
TAの方々に口頭で説明してもらえるので質問に関する理解度が高かった.
エラーも一つの学習だと思って,
分からなかったらすぐ尋ねるのではなく自分でも考え,
調べるように心掛けた.
それはそうですね.ターミナル室3は余裕があるので,対面でない週でも来て良いですよ.
その場合はあらかじめ言ってもらえると良いと思います.
scanfで1文字取得する場合も改行文字を除去しないとなぜかうまくできなくてそこに苦戦しました.
コードを後から見たときにちょっとでも見やすくなるように意識して取り組んでみました.
その意識,とてもすばらしいです.
講義ありがとうございました.
今回は課題5で大きくつまずきなかなかできませんでした.
課題6もいまいちよく分からないままでした.
自分の理解力と検索する力がまだまだだなと思います.
次はしっかり予習をして臨みたいです.
分からないところは質問するようにしてください.
今回はキーボードからの入力がメインの課題でした.
getcharを使う際に改行文字を除去する必要があることに気が付けずTAさんに頼ってしましました.
次回以降はできるだけ自力で解決できるようにしたいと思います.
頼るのは悪くないです.でも,今日やったことは理解して, 次回からは自分でできるようになると良いですね.
夏休み中に予習をしていましたが授業ではさらに難しいことを扱うので集中して授業を聞くことが大切だと再確認しました.
毎回の授業で初めて知ったことはその場その場で自分の力にしていきたいと思います.
今回もありがとうございました.
予習していたのは素晴らしいと思います.
復習したこともあり,
前回よりもスムーズに進めることができたので,
良かったです.
変数について詳しく知れて面白かったです.
キーボードから入力するコードに関して,
実行してみてすごいなと思いました.
復習も大切ですね.
getcharはただ文字を入力するためのものと勘違いしていたため,
いくつか苦戦した課題があった.
でも今回たくさん苦戦したのでその分頭に定着したきがする
よろしいと思います.エネルギーになっていますね.
今回の講義で変数の使い方をある程度理解することができました.
今後ソースコードを書くときにエラーが少しでも減るように復習をしっかりしたいと思います.
復習は大切ですね.
今回はすべてスムーズにできてよかった.
よろしいと思います.
コンパイルして実行した際にsegmentation fault と表示されました.
これは何を表しているのですか?ソースコードを見直したらある部分が間違っていることに気づきました.
間違いを指摘しているのでしょうか?
これは実行時のエラーです.
多分scanf のところを間違えたのでしょうかね.次回コメントします.
今回の課題ではgetcharがうまく入力待ちの状態にならず苦戦しました.
しかし,
課題8のソースコードを参考に一度getcharで改行文字を受けて更にgetcharを重ねて欲しい入力を得ることができました.
こうしたプログラミングの工夫に慣れていきたいと思います.
よろしいと思います.慣れですね.
getchar()を使うとき,
二回書き込むことで改行文字を除去したり,
区切り文字を除去する必要があると書いてありましたが,
なぜscanfやprintfは特にそういったことが必要ないのにgetchar()がそうする必要があるのかがわかりませんでした.
変数の概念は今回の講義でだいたい理解できました.
これは仕様であるとしか言えないのだと思いますが,
scanf はそもそもエスケープシーケンスに対応できないからです.
なお,printfは出力なので,今回は直接関係はないですね.
今日の講義からプログラミングらしいことが始まってとても楽しく演習課題をやることができました.
getcharの使い方がよくわかっておらず,
課題5でつまずいしまったが,
そこですっかり忘れていた改行が文字になるということを思い出せたのでいい機会になりました.
また,
課題8で何回やってもscanfの部分が表示されずにすっとばされてしまっていました.
しかしコード表をみてみるとscanf内の%cの前に半角スペースを押してあり,
調べてみるとバグを防ぐための手段と書いてあり,
いい学びになりました.
自分で気づいてくれたところは素晴らしいと思います.
課題5でgetcharの使い方が正確でなく詰まってしまいました.
getcharとscanfの違いを理解して今後このような事を起こさないようにします.
ありがとうございました.
でも理解できたようですね.
標準入力の改行文字を除去する方法を確立させるのに苦労しました.
課題8の改行文字を除去する部分を見るとかなり原始的だったので,
他に美しい方法が無いか探してみようと思います.
素晴らしい.その考え方,重要です.
scanfでの改行の取り扱いで,
3回の入力では”〔〕%c" と先頭に空白を入れなければ入力処理されない原因についてリターンキーが無視できないとあったがどうして無視できないのかがよくわかりませんでした.
また,
getchar でも同様に入力が飛ばされる現象が起きたのですが空白での対処ができず,
何か方法があるのであれば教えていただきたいと思います.
前の入力で"\n"が残っているからですね.
コード一つでエラーが出たり,
想定しているものと違ったものが出てきました.
なかなか答えに辿り着くことができなかったが,
完成させることができたときはとても達成感を得ることができた.
よろしいと思います.
本日も講義ありがとうございました.
今回の課題5に取り組んでいる時に調べていて疑問に思ったのですが,
scanfで何か数字を入力した後に,
続けてscanfやgetcharなどで文字を入力しようとすると(以下のような場合です),
1つ目のscanfの時に押したEnterがバッファローに残ってしまいそれが反映されてしまうという風に書いてあったのですが,
その対処法としていくつかある中でscanf(" %c"),ch)の%cの前にスペースを入れておくというものがあったのですがどういった原理なのでしょうか?
バッファロー?バッファ?どこに書いてありましたか?
前の入力で残った\nを空白で読み飛ばすということです.
今回もc言語の基本的な動作について学んだのですが,
前回やったところを少し忘れてしまっていたので回数を増やしていくうちに定着すれば良いと思います.
また,
今回分からなかったところは教科書などを読んで理解してから次の授業にのぞみたいです.
よろしいと思います.
自分では見つけられないミスも,
gccコマンドでエラーとしてわかりやすく表示してくれるのはとてもいいと思った.
次回はワーニングについても説明します.
本日も講義有難うございました.
課題にもなっていましたが,
scanfとgetcharの違いは最初は困惑しましたが,
印象に残ったので忘れないと思いました.
他の所でも印象に残る部分を多く見つけて忘れないようにしたいです.
また,
各ファイルにコメント文を書くことで復習の際に役に立ったので,
今後も欠かさず書こうと思います.
よろしいと思います.
前回コメントするのを忘れてしまい申し訳ありませんでした.
今日の内容で自分の入力した数字が8進数や16進数に自動で変換できるプログラムを書けたことに少しだけ感動しました.
よろしいと思います.
前回よりも作業量が多く大変でした.
教科書でアドレスについて詳しく読んだことで理解が深まりました.
scanfではこちらが指定した変数に値を入れてもらう,
すなわち書き換えてもらう作業なので,
変数の中にあらかじめ入っていた値をコピーしてもらうだけではだめで,
アドレスを送って値を変えてもらう必要があるとわかりました.
これからはもっと多くなります.
getcharのコードに苦戦したが,
試行錯誤によって原因がわかり,
解決することができ,
自分で考えることの大切さを改めて実感できた.
試行錯誤は大切ですね.
「=」と「==」の違いに関してはしっかり押さえておかなければならないということがわかった.
標準出力でdouble型の変数に入力するときは%fではなく%lfを使うということに注意したい.
演算子の回で再度説明します.
コメント文に2つ方法があることは前回学んだが,
その方法にもそれぞれメリットデメリットがあり,
2つあることには理由があることがわかった.
これからは気になった点は流さず,
一つずつ調べるようにしようと思う.
よろしいと思います.
課題5において,
%cの前にスペースを入れなくてはならないことに気づかなくて,
かなり時間がとられてしまった.
今までスペースとかをあまり気にしていなかったけれど,
今回のようにわずかな違いで異なる実行がなされてしまうと知り,
また先生がおっしゃっていたコンパイルはできるけれど,
じっさいのコードが間違っていて,
異なる実行がなされる,
という意味を実感しました.
教科書に載っていることも一部分だと思うので,
自分で疑問に思ったことはどんどん調べていきたいです.
素晴らしい.
scanfを使うときに空白を入れられているかいないかで結果がコンパイル後の出力結果が大きく変わってしまうことが分かってプログラミングはとても繊細で難しいなと思った.
微妙と言えば,微妙ですけどね...
今日は,
変数というものについて学び,
演習問題に取り組んだ.
コードを作っていく上で,
自分がコンピュータに何をさせたいのかを明確にして,
ノートなどに書き出しておくことが重要だと実感した.
これからはもっと複雑なコードについて学ぶと思うので,
その心がけを大事にしようと思う.
よろしいと思います.この考えで続けてください.
scanfやgetcharで空白が代入されてしまう事が多くてそれを対処するのが1番の難関だった.
バッファなどのちゃんと仕組みを理解する事が解決に繋がると思った.
その通りだと思います.
8進数,
16進数を出力するときの変換指定値など,
忘れやすいものが多いのでその都度すぐに調べられる能力もつけたいと思った.
確かに大切だと思います.
floatとdoubleは出力時の変換仕様は同じだが,
入力時の変換仕様は異なることに気をつけようと思いました.
宣言する際に,
整数型か文字型か浮動小数点型かをよく考える必要があると感じました.
getcharを用いる時は改行文字を除去しなければならないことを課題8を通して知ることができたため良かったです.
演習時,
ソースコードにコメント文を入れることで理解を深められていると感じました.
本日もありがとうございました.
とても素晴らしい.
今回はプログラミングの基礎の変数を扱いました.
応用としてキーボードからの入力を学んだことで基礎中の基礎だが,
プログラミングをしている気分になれて楽しかったです.
scanf getcharでの改行の読み飛ばしについて,
完全に理解することができませんでした.
楽しいというのは大切だと思います.良かったです.
課題を早く終わらせることが出来た.
はじめ課題5や6がうまく作動しなかったが,
後ろの課題8のコードを参考にすることでうまく出来た.
良いですね.素晴らしい.
課題5でなぜかgetcharが無視されてめちゃくちゃ詰まりました.
getchar以降を消したり,
\nを入れてみたり,
いろいろ試した結果おそらく一つ前の改行が入力に引っかかっているのではないかと思い,
c言語の改行に関して調べてみたら,
scanfを使って%cの前にスペースを入れるか%*cを入れて改行を除去できると判明し,
ちゃんと成功してとてもうれしかったです.
しかし,
そのあと課題8のコメント文にがっつり改行除去が書いてあって悲しくなりました.
次回からはまず課題プリントからヒントを探してみようかと思います.
おー,それは良いですね.自分で調べたのは忘れません.
前回までは,
文字を出力するだけでしたが,
今回は,
プログラムの途中で,
キーボードで数字を打ち込んでプログラムを実行でき,
とても楽しかったです.
楽しかったのであれば良かった.
getchar()についてあまりわかっておらず,
課題5と課題6でかなりつまずいてしまったが,
テキストを読んだりインターネットで調べたりして自力で対処することができた.
自分で対応できたのであれば良かったと思います.
前回の講義で学んだコードを完全には覚えていなかったので,
資料を見ながら課題を進めました.
一つ一つの課題を考えながら行なうことで,
少しずつ覚えていきたいと思います.
そうですね.徐々に覚えていくので良いと思います.
今回は変数について学習した.
また,
キーボードからの入力を行う関数として,
scanf関数やgetchar関数を学習した.
改行も1文字として扱われるので,
scanf関数やgetchar関数を連続して使うときはバッファに溜まった改行が入力されることを学んだ.
scanf("%c",&変数);をscanf(%*c%c,&変数);にすると楽に対処できた.
よろしいと思います.
目が悪すぎて何回もスペルミスをしましたが,
文字サイズを調整できたのでちょっとマシになりました.
この調子でemacsの補完の設定とかもちょくちょくやってみたいと思いました.
また質問なんですが,
課題のPDFではカンマの後ろにスペースが入っていたりいなかったりしていたんですが,
これはスペースを入れても入れなくてもいいということですか?
この部分は入れても入れないくても良いですが,
せっかくやっているのですから,自分で試してみたらどうでしょう?
課題をやるときにちょっと困難にぶつかったが(たとえば最初に課題4をやるとき変換された数値が正しく表示されていなかったこと),
自分で何回も試したら解決できた.
キーボードからの入力という部分のコードを使用することはまだ頑張る必要があると思います.
解決できたのであれば,よろしいと思います.
今日は課題5,
6で少し詰まってしまいましたが,
思いつく解決策を書き出し試していくと正しく実行できるコードが分かりました.
自分で調べたりやってみることで得られる学びを大切にしようと思います.
その通りですね.
対面で受けると質問がある時TAさんがその場にいるのですぐ対応してくれ,
わからないところがあってもすぐ解決した.
しかし,
対面でも自分で調べたり考えたりすることはしなくては自分のためにならないと思った.
確かにそうですが,きっかけを掴むことにもなるので,
考えてみて分からなければ,質問すると良いと思います.
講義内で,
コードを作成する際にじっくり内容を考え,
何をすべきか考えてノートに書き出すと言っていたが,
実際自分はせっかちすぎて何事も急いでしまうので,
プログラミング以外でも人間生活において気をつけようと思った.
確かに大切ですね.プログラミング以外でも.
今回,
C言語における変数を取り扱った.
途中,
変数の宣言をするだけで代入はしないのに,
int=numのようにしてしまい,
気づくのに時間がかかり無駄に時間を使ってしまった.
しっかりと復習をし,
ロスを減らしていきたい.
エラーメッセージを読みましょう.
scanfとgetcharの違いがわからなかったが,
文字通り意味を考えれば納得できた.
scanfは入力情報に対して位置と型を指定して文字通りスキャンする.
getcharは入力キューに入力された文字を一文字ずつ(char)取得(get)する.
個人的な意見として改行文字やスペースを捨てるだけならわざわざ変数代入せずに
getchar();
とすれば簡潔だと思った.
まだCは理解が浅いので誤解しているかもしれないが.
実際にやってみましたか?
今日やった,
変数をキーボードで入力する方法などは覚えるのが大変そうだったが,
復習をして身につけようと思う
復習は大切です.
演習ではコードの記述を考えている時間よりも些細な.と,を打ち間違えたなどの些細なミスを修正している時間が多くを占めていたので,
何度も繰り返しタイプして些細なミスを減らしたいと思った.
慣れてくればうまくいくと思います.
課題5や課題6の文字を入力するときの"getchar()"の部分で,
同じものを2回続けて書くとうまくいく理由がよくわからなかったです.
文字の次には実際は改行(\n)があるためです.
文字を入力する方法にgetcharとscanfという方法があることが印象に残りました.
特にgetcharは連続で使用する際に改行や区切り文字のスペースを除去するために二回書かなきゃいけないというところを知らず,
課題で悩んでしまったので忘れないようにノート書き留めておこうと思います.
今回の課題は全体的に自分自身で解決できたので良かったです.
まだprintfやscanfのスペルミス,
\nの書き忘れが多いので忘れそうなところは先に書いておいたり,
きれいに並べたりすることで文字が抜けるミスを防いでいこうと思いました.
自分で解決できたのはとても良いと思いまs.
私はc++を少しかじった程度の知識はあるのですが,
getcharの改行を受け取るという考え方はいままで学んだことがなかったので,
少し難しかったけれどとても良い勉強になりました.
よろしいと思います.
scanfを利用して何らかのデータを入力する際に,
確保した変数の領域を超えてデータを入力してしまうと,
後ろに控えているメモリ内にあるデータを破壊,
乃至は上書きしてしまう事がわかった.
この問題を回避するには,
そもそもscanfではなくfgetsを使うのも考慮すべきなのだろうか.
実はその通りです.が,まだ入門レベルなので,scanfになっています.
が,最近はscanfでも大丈夫にはなっています.
前回の演習でやった内容に関して10進数を16進数や8進数に変換して表示するやり方や,
小数点以下の桁数を指定するやり方などを忘れていることが多く,
調べ直すのに時間がかかってしまったので,
演習の中で学んだことをしっかりとメモを取ったり,
復習をして定着させていきたいです.
メモは大切ですね.
課題多いいなぁぁと思いつつうまくいったときは気持ち良すぎるというような感情の起伏が激しい一日でした.
次回以降ももっと起伏が激しくなるかも.
スペース入力を削除しなければならないところで原因が分からず,
時間がかかってしまったり,
前回で学んだ小数の桁数の設定などを忘れていたりしていたので復習しておきたい.
余裕があれば,
原因究明は自分で解決できるようにしたい.
それが良いですね.
getcharの仕組みに気づいて対処するのに時間がかかってしまった.
それ以外はスムーズにできた.
よろしいと思います.
よく理解できた.
よろしいと思います.
前回よりも内容が難しく時間がかなりかかった.
途中,
getcharの改行のところの使い方で詰まってしまい,
結構な時間を使ってしまった.
いろいろ調べてクリアしたが,
課題8にやり方が載っていたのでこれからはわからない問題はすぐに飛ばすように心がけようと思う.
講義の最後でも言いましたが,まずは落ち着いて, よく考えることが大切だと思います.
今回の講義では,
変数とはどのようなものなのか,
どうやって使えばよいかということを学べた.
また=が値を代入するという意味で,
==が等しいという意味だということを学んだが,
今の時点ではあまり違いが分からないので,
==はどのようなときに使うコードなのかを知りたいと思った.
次回以降に出てきます.
今回気づいたことは方法はいくらでもあるということです.
また,
スペースや.だけでも変わってくる繊細なものだとあと知ったのですが結果は同じになればいいと知りプログラミングの奥深さと面白さを知りました.
よろしいと思います.
今日はレッスン3の内容をやったが,
課題ではレッスン1.2で扱った内容もあり復習にもなってよかった.
課題を講義の時間に終わらせられるように頑張っていきたい.
これからはもっと課題が増えるので,なかなか終わらないと思います.
講義ありがとうございました.
今回の講義では変数について学びましたが,
今までの自分の数学の知識とは大きく異なり,
「x=100」はxに100を代入するという意味であるということであることを理解しました.
さらに変数には型があることについても学びました.
今後の講義でもスムーズに学習できるように今日の内容を振り返ろうと思います.
よろしいと思います.
今回も講義をしていただきありがとうございました.
今回の講義では変数について学習しました.
変数を一つ使うのにも,
型と識別子を決定して,
代入を行い,
その変数を出力するという工程を踏むということに正直言って面倒くさいと思いました.
Pythonを独学で進めているのですが,
その点ではやはりPythonの方が,
踏む工程が少なくて楽であると感じました.
ですが将来的なことを考えた時にはC言語の学習は必要であるので,
しっかりとした復習と演習を積んでいこうと思います.
次回コメントしたいと思います.
課題5でscanf関数を複数連続で使うときに,
バッファ内に残っている\nを入力として受け取り,
2回目以降のscanfがスキップしてしまうという不具合がありました.
自分はバッファ内をfflush(stdin)を使ってその都度吐き出すという処理を行いましたが,
課題8のgetcharにもあったように,
複数回scanfを行ったほうがよいのか気になりました.
またこれらの処理以外に便利な処理の方法はあるのでしょうか?
scanfでは,他にも方法がありますね.
まだプログラミングに慣れていないので,
速さよりも正確さに重点を置いてキーボードを打つようにしたい.
授業形態については,
正直家で受けているのと変わらない気がした.
正確さは大切ですよ.
ch = getchar などを二回書き込む理由などをただ暗記するだけではなく,
しっかり理解できたのでとてもすっきりしています.
今回とても質問してしまいましたが,
そのたびに丁寧に教えてくださるので本当に有り難かったです.
自分は,
一文に複数の数字をscanfで入れ込むことなどが苦手なので,
復習していきたいと思います.
すっきりしたのであれば,とてもよろしいと思います.
質問はどんどんしてください.対面のほうがよければ,
毎週ターミナル室にきても構いません.
何度もエラーが出てしまい,
演習問題に時間がかかってしまいました.
これからの演習では,
エラーが解消するまで闇雲にコードを書くのではなく,
自分が今何をしているか理解した上で入力するようにしたいです.
そうですね.それが重要だと思います.
前回より難しいと感じる課題もありましたが,
その分自分で調べたり,
コードの意味や理論に立ち返りながら考えたりしてより理解を深めることができました.
よろしいと思います.
まだC言語に慣れていなく,
逐一基礎を確認しながら演習に取り組んだため時間が多くかかってしまった.
情報工学科なので講義の時間外でも教科書や講義資料を通してC言語に触れ,
スムーズにソースコードを書くことができるようになりたいと思いました.
それが良いですね.情報工学科ですからね.
変数の話はよく理解できたが,
コードを実行すると上手くいかないことが多かった.
ちゃんと教科書を読んで理解しとこうと思う.
そうしてください.教科書もよく読むというのは大切.
変数の宣言をする時に途中に挟む時の利点がなんなのか少し気になりました.
途中に挟む?
今回の授業は,
getcharの使い方に苦戦した.
TAさんに聞いてなんとか理解することができた.
解決策がいくつもあり,
自分がやりやすいようにすることができた.
コメントを追加したり,
空白の大切さに気づいた.
よろしいと思います.
今回の講義,
ありがとうございました.
これまでc言語を使う際,
scanfについて改行文字まで考慮したことがなく,
新鮮でした.
知らなかったら全く意味の分からない出力となるのでとても有意義な講義でした.
有意義であったのであれば,良かったと思います.
今日の課題では,
実際にコードを書いてコンピュータと対話する雰囲気を簡単ではあるけど体感して良かったです.
そうですね.そういう感じにはなるかな.
本日も講義をしていただきありがとうございました.
前半の説明はスライドもあり,
よく理解できました.
演習も概ね問題なくできましたが,
getcharを2回続けて書かなければ入力待機してくれないというところで躓きました.
教科書やインターネットで調べてもあまりよくわからなかったのですが,
課題8に書いてあることを見ればわかったので,
初めにすべての課題に一通り目を通すことが大切だと思いました.
次回もよろしくお願いします.
それが大切ですね.
今回はエラーが沢山出てしまい,
解決するのに時間がかかってしまいました.
今使っている教科書だけでは補いきれない部分もあるとわかったので,
様々な本に触れて知識を少しずつ増やしていこうと思いました.
getcharで理解しきれていないところがあったので次回までによく理解しておこうと思います.
よろしいと思います.
前回の内容が少し抜けていたので復習をしたり,
自分で他のプログラムを作ってみるなどして理解を深めていきたいと感じました.
そうしてください.