2026年09月16日 第1回
はじめてC言語に触れたので,
文法などを理解するのが難しかった.
講義動画は見てきましたか?
課題4の小数点指定の表示(%x.f)が最初わからず,
苦戦した.
浮動小数点表示自体は知っていたが,
それをプログラミングに組み込もうとした瞬間に,
知識と構文が繋がらず構造として掴めなかったので,
情報分野の学習において工夫の必要性を感じた.
不明であれば質問してください.
getcharはなぜch1 = getchar();と書いてあるところから発動しないのですか?
課題9にgetcharを2回書いているのは改行を消すためと書いてありました.
普通;が書いてある文が動いてから1文字目が1つ目に入るものだと思っていたので,
なぜ改行が1つ目に入るのかが分かりません.
また,
ここの改行というのはprintfに着けていた改行か,
それよりも前に人間側が打っていた改行ですか?
C言語は初めてながらも結構楽しくできました.
発動しないというのがちょっと不明ですが,
プログラムが一時停止してキーボードからの入力待ち状態にならない
ということでしょうか?
getchar(); の後ろにコメント文として残してあるのが,
動作のポイントです.
%の値を毎回変えることをよく忘れて,
コンパイルエラーを何度も起こしてしまいました.
よく復習しようと思います.
コンパイルエラーは,エラーとわかるから問題ないですね.
scanfが少し難しかったです.
動画は見ましたか?
初めて本格的にC言語を学んだ.
整数,
小数,
文字や文字列によって書く内容が異なることを知った.
linux環境(大学の)と自分のpcの環境の同期に少し戸惑ったが,
なんとか解決して動作を検証することができて良かった.
大学の環境については,前期の情報処理演習で習っていると思います.
島田先生からもそのように聞いています.
今日は久しぶりにパソコンを触ったと言うこともあり,
ubuntuのコマンドを忘れてしまっていることが多かった.
課題では課題5の間違えを訂正する問題に苦戦した.
慣れですね.
/**/や//で示すコメント文についての質問です.
コメント文では誰がいつどのような意図でステートメントを書いたかなどを示すとのことでしたが,
よりよいコメント文の書き方などはありますか?
句読点など使うべきでない記号はあるのか,
日付はどのように示すのが一般的か等を教えていただきたいです.
良いコメントだと思います.
まず,コード中のコメント文は,コードを作成した人が,
なぜそのようなことをしたのか,意図などを記録しておけば,
後から見返したときに,思い出すことが容易になるためのものなので,
そこはうまく自分でわかるようにしておけば良いと思います.
そして,ポイントは,その時はこのような書き方でOkと思っても,
人間というのはすぐに忘れてしまうものなので,
後で見返すとこれはなんだとなることが多いということですね.
何をしたのかを書くというよりも,なぜそのようなことをしたのか,
って感じでしょうかね.
句読点は使って良いですが,コメント文の中には,コメント文の記号となる
/* とか */ は入れないようにした方が良いですね.
あと,日付は年月日でyyyy-mm-ddで良いでしょう.
c言語の基礎を学ぶ機会でした.
ありがとうございます.
今回で終わりじゃないですね.
初回授業ありがとうございました.
前期に開講していた情報処理演習で学んだ内容でも,
忘れてしまっているものがあり,
自分の甘さを実感しました.
この学科に所属しているからには,
遅れを取り戻し,
自力でコードを書ける人間になります.
今回の講義では変数についてが興味深かったです.
きちんとステップを踏むことで,
はじめて思い通りに動かせることを実感しました.
自分の力でやるのが大切ですね.
課題の中で,
ほとんどの課題は先生の授業を聞いたらわかるものになっていたが,
多少(2つほど)教科書,
また自分で調べなければならないものもあった.
このような課題は自分で意欲的に調べようとしなければ解決できない問題なので(例えAIに聞いても)良いなと思った.
が,
調べないといけないと書いていただきたかった.
もう高校生じゃないので,自分で調べるようにしたら良いでしょう.
C言語を久々に学んで,
scanfとgetcharの違いを詳しく理解出来た.
scanfは指定してからその指定したデータを受け取り,
getcharは,
次の1文字をそのまま受けとるものだと分かった.
%dや%cなどまだ混乱するところがある.
楽しかったのでまた次回も真剣に取り組みたい.
理解できたということで良かったと思います.
私は今までC言語を少し触った程度で,
本格的にC言語を扱ったのは今回の講義が初めてだったので,
初めは慣れないというふうに感じた.
特に,
コンパイルをする手間がかかることに慣れておらず,
コンパイルをしていないのに実行したり,
自分の書いたコードを修正して保存したが,
コンパイルをしていなかったがために前回の内容で実行されてしまい,
どこが間違っていたかがわからなくなってしまったりするなどした.
また,
演習問題について,
問題文を曖昧に解釈していて間違った方針でコードを書いている時間が多くあったので,
気をつけたい.
演習をするにあたって,
コンパイルと実行をする機会が非常に多いので,
この2つ,
特にコンパイルについては早く慣れ,
演習が滞りなく効率的になるようにしたい.
Makefileを作るとか,シェルスクリプトと作るとかしてみたらどうでしょう?
getcharの使い方が難しかったです.
また,
誤字や抜けが多くうまく動かないことが多くて大変でした.
慣れですね.
%のやつが種類が多くて覚えられなかった.
打つ文字が多くてプログラミングは大変だなと感じた.
一度は大変な思いをしておいた方が良いでしょう.
課題4を行っているときに%fを文中に組み込むのに苦戦した.
変数まではよく理解できたがgetcharが難しく理解しきれなかった.
演習問題にはコメント文で何をやっているのかつけておきました.
今回の演習で主に,
C言語ファイルのコンパイルの仕方,
getcharの挙動,
warningをつぶす重要性を理解した.
scanfなどはenterを吸収せず,
getcherはenterや空白も文字として認識してしまうため,
getcherにenterを入力させてそのあとに上書きをさせることが必要なことが分かった.
また,
warningが出ているけど動いているから問題ないのではと思って一度スルーした課題があるが,
あとで出力の数字がでたらめだったことに気づき,
warningはこれからは無視しないようにしようと思った.
今回学んだことでは,
英数字1文字のみを受け付けるものだけでまだ実用性がないので,
文字列入力を求める仕組みをこれから学びたいと思った.
コンパイルで警告が出る場合は直してから提出してください.
今回の授業では,
C言語での画面への出力方法や入力の受け取り方,
そして変数を使ったデータ処理を学びました.
printfで値を表示する際,
文字なら%c,
文字列なら%s,
整数なら%d,
小数なら%fを指定し,
さらに%.2fのように書くことで小数の表示桁数を調整できることを知りました.
また,
%xや%oを使うことで10進数を16進数や8進数に変換して出力できる点や,
scanfで値を受け取る際に変数の名前の付け方のルールも学びました.
私はこれまでプログラミングの経験がほぼなかったので覚えるルールが多く,
とても難しく感じました.
特に,
printf内の%dなどの扱いに苦戦しました.
次回以降も基礎的な文法や記号の意味をしっかり復習し,
プログラミングに慣れることで苦手意識をなくしていきたいです.
そうですね.慣れですね.
変数のところで時間が掛かったのでゆっくりとノートに書いて復習したいです
落ち着いて書けば大丈夫でしょう.
scanfやgetcharで余計な文字を入力すると,
それが後の関数に勝手に入力された.
この動作が気になったので調べてみると,
バッファが関係していることがわかった.
詳しい仕組みはまだ理解していないが,
本格的な開発ではバッファを意識してコードを書かないと危険な気がした.
愚問かもしれませんが,
提出するソースコードの書き方について質問があります.
演習課題内で示されているソースコードの書き方が課題によって変わっていますが,
出力結果が例の通りになれば,
そこを厳密に再現しなくても大丈夫ですか?#include<stdio.h> と #include <stdio.h>やint main(void) と int main (void)というような違いのことです.
似たような内容ですが,
文字列内に登場する数字が全角なのか半角で両側にスペースが入っているのかという部分も気になりますが,
そこもあまり関係ないですか?
空白スペースはどちらでも良いです.
また,文字列内であれば,全角でも問題はないですが,
文字列として出す数字は半角にしていると思います.
C言語の基本と変数について理解できた.
本質を理解してから取り組むことが重要であると感じた.
そうですね.
c言語での基本的なコマンドの使い方がわかった.
出力する小数の桁数指定などは手こずりましたが,
問題なく行うことが出来ました.
よろしいと思います.
今日の内容は今までの知識でほとんど乗り切ることができた.
C++は学んでいたので,
しっかり理解することができた.
%dなどの変換仕様やscanfなどの仕様は初めて知ったので,
次回も忘れないように頑張っていきたい.
課題では,
最初windowsのローカル環境でやっていたが,
コンパイルしたファイルがセキュリティにブロックされ実行できなかった.
そのため,
ubuntuの環境に移りコンパイルをしたところ,
きちんと実行することができたので,
これからもubuntuを使用していきたい.
使いやすい方法でやってくれたら良いと思います.
久しぶりにPowerShellを開いて,
コマンドもほぼ忘れてしまっていたので,
復習必須だと感じた.
キーボード入力の部分で少しだけ順序の理解が追いつかない部分があったので,
頑張りたい.
頑張って.
初めてのプログラミングの授業でまだまだ分からないことだらけでした.
前期少しは触れたはずではありますが夏休みで完全に抜けているようです.
勉強します
そうしてください.すぐに慣れるでしょう.
演習7(あっているかはわからないが)のようなintとfloatなどの型の違いについてはあまり詳しく理解できなかった.
プログラミング自体あまりやったことがなかったので,
まだ入門も入門だろうけれどほかの部分はわりとうまくいったのでよかった.
講義動画で説明しています.
今までインタプリタ型の言語ばかり触ってきたので,
何も定義されていない状態からプログラムを書くという新鮮な体験をすることができました.
よろしいと思います.
C言語の演習を通して特にprintfとscanfに関しての使い方の理解が深まった
良かったと思います.
前期に情報処理演習の講義で学んだC言語の復習になった.
また,
今日の講義ではC言語の基本的なプログラムの構造や出力,
入力,
変数の宣言,
代入などについてよく理解することができた.
特にソースコードをコンパイルして実行ファイルを作り実行する流れを実際に手を動かして学ぶことができた.
一方で,
演習では講義内容を発展させた内容が含まれていて,
時間内にすべての演習を終えることができなかった.
時間内にできなければ家でやってください.
c言語に初めて触れたので最初は難しかったのですが,
課題をやっていくうちにすぐに慣れました.
変換指定子が難しかったです.
慣れですね.
基本的なコードの書き方は理解できました.
ちょっとした応用を利かせようとしたとき複雑なコードになることが多かったです.
ちょっとした応用?
今回の演習で,
c言語での変数の扱い方や出力,
入力のやり方について理解することができました.
また,
getcharについて,
どのように動いているのかは大体わかりましたが,
細かいところはまだなので,
そこはしっかり復習しようと思います.
一度はやっておいた方が良いということで, 今後はほとんど使わないとは思います.
今回の内容(特にLesson1.2の前半)は,
前期に履修した情報処理演習の復習の様でとても理解しやすかった.
floatとdoubleの違い(使い分け)をあまり理解することができなかった.
例えば120という数字を整数として扱うか数字の文字列として扱うかで,
見た目は同じ出力結果でもソースコードが異なるのは面白いなと思った.
演習課題の9のような長いコード書く時は,
打ち間違いや脱字に気をつけようと思った.
実際今回やってみてかなりのミスがあった.
それを素早く直すためにも-Wallオプションは絶対に必要だと感じた.
float と double の違いは精度の差ですね.
正直,
getcharとscanfの違いがいまいちよくわかりませんでした.
lesson01とlesson02は情報処理演習の内容と被っているところもあり,
理解しやすかったのですが,
lesson03の変数から難しく感じました.
慣れですね.
今日の演習ではコンパイルについては演習を通して理解できました.
しかし,
コンパイルでエラーが発生しなくても,
実行するとコアダンプと表示されてしまい,
再びemacs上で編集すると表示されなくなったこともありました.
様々なサイトで調べましたが,
どのような場合にこのような表示が出るのか疑問が残りました.
表示されない?実際に状況を再現してくれたら解決できるかもしれません.
printfコマンドについては課題を通してある程度使えるようになったと実感できたのに対して,
scanfとgetcharはについては違いが理解できていないので,
課題9~11を通して理解できるまで演習しようと思います.
printfはコマンドではなくて関数ですが,
getchar については一度はやっておいた方が良いということです.
今回の学習を通して,
機械が理解できる言語と,
人間が普段使用している言語には大きな違いがあることを学びました.
人間同士の会話では,
多少曖昧な表現でも意味を理解できますが,
コンピュータは基本的に決められた規則に従った命令でなければ正しく処理することができません.
そのため,
人間が考えている処理をコンピュータに伝えるために,
プログラミング言語が必要になるのだと理解しました.
プログラミング言語には人間の考えを機械に正確に伝える役割があることが分かり,
普段使用しているコンピュータがどのように人間の指示を処理しているのかについて,
より興味を持ちました.
よろしいと思います.
getcharとscanfは受け取ることのできる書式だけに違いがあるのかと思ったが,
実行してみてgetcharは改行も読み取ってしまうがscanfの場合改行は無視されることが分かった.
データ型を表すintがどうしてint main(void)に出現するのかよくわからなかったので,
調べることにする.
学校の環境下で作っても提出するときにローカルに移してしまえば結局ローカルで作ったものと同じなのではないか?と思ったので,
次回からはemacsではなくVScodeで作成したいと思った.
Lesson 8 で考える内容ですが,調べてください.
emacs でなくても良いですが,
作ったものが同じということを言ってっているのではありません.
整数や少数の表し方が分かりました.
分かったようで良かったと思います.
半年ほどよろしくお願いいたします.
今日の授業はもともと夏休みに自分で少しだけC言語について触れておいたので結構わかりやすく聞くことができました.
指定の教科書でのページ数とか載っていてわかりやすかったです.
ほとんど理解することができたのですが課題で八進数とか十六進数の変換が最初文字を表示するときの方法と代入する方法を勘違いして時間がかかったのと課題の提出のために大学の環境から抜け出してSCPコマンドを使うことを忘れていてずっとダウンロードできなかったので次回に生かしたいと思いました.
最初にstdio.hをダウンロードするのはある程度べんきょうしたのですがメイン関数以外にもほかの関数があるのかどうか,
またメイン関数はなにができるのかに疑問をもったのでまず自分で調べてみようと思います.
ありがとうございました.
stdio.h をダウンロードはしなくて良いと思いますが...
getcharがうまくいきませんでしたが,
あれはscanfで文字を打ち込んだ際のエンターも最初のgetcharに含まれてしまうことに気づきました.
また,
scanfの"と%の間にスペースをいれることで,
この問題を解消することができることも調べてみてわかりました.
難しいところもたくさんありますが根気よく頑張っていきたいなと思います.
慣れなので,とりあえずやってみましょう.
今回の授業では,
C言語の基本的な書き方や変数,
入出力について学びました.
演習を通して少しずつ理解できました.
理解できているようで良かったと思います.
今日の講義内容に関する質問特になし
よく理解できた箇所%~みたいな形のものがそれぞれの数字や文字などの型を示していてそれに沿った書き方(””や’’を使うなど)をしなければならないということです.
できなかった箇所よくミスをしたところは,
セミコロンを最後に付け忘れることです.
よろしいとおもいます.
printfとscanfの使い分けができた.
出力されるものを見て,
すぐにscanfを使うことを判断できた.
コードのタイピングに慣れてなくて,
コードを書くのに時間がかかってしまった.
全角入力と半角入力を頻繁に切り替えるため,
ブラインドタッチの場所が毎回ずれて,
スムーズにタイピングできなかった.
タイピングは慣れなのでね...
C言語の基礎的な仕組みがよくわかった.
任意の文字で置き換える仕組みもよくわかった.
よろしいと思います.
前期に学んだコンパイルの方法など忘れていることが多く復習に多くの時間がかかった.
資料,動画をみましたか?
変数について扱ったことがほとんどなかったため,
演習を通して基本的な使い方を試行錯誤しながら学ぶことができた.
getcharで書く指示の内容がまだしっかりと理解できていないので,
自主的に調べるなどし,
自分の言葉で書けるようにしたい.
課題9などで長文を打つ際のタイプミス,
それによる出力エラーが目立ったのでこれから改善していきたい.
その調子でお願いします.
どの場面で大学Linux環境を使えばよいかの判断が難しいです.
%を使うコード,
コーテーションの使い分けも難しかったです.
どの場面で,という質問の意図がよくわかりませんが,
提出されたコードをコンパイルする際には大学の環境を使うので
そこでうまく動くようにしてくださいということです.
getcharとscanfの違いを理解するのに苦戦したが,
演習問題を解く過程で違いが理解できました.
素晴らしい.
#include <stdio.h>やint main(void)について時間をかけて調べたので,
とりあえず納得いくくらいまでは理解できました.
#include <stdio.h>のstdio.hはstandard input output. headerを表していて,
これをはじめに書くことで「標準入力
,
標準出力に関する機能を含む」ことを宣言すると一応理解しました.
headerはよくわかりません.
integerはとりあえず,
データの種類を表すと覚えました(関数の結果を整数で返す).
詳しいことはわからないので,
今後調べていこうと思います.
調べたのはどうやって調べたのですかね.
講義動画はみましたか?
中高のころからPythonやC++などのプログラミング言語を触って,
今回やったところは文法などはもちろん違うところが多々ありましたが根本というか,
結構同じというかに通ったところがあったので,
結構やりやすかったです.
課題に関しては同じようなことを繰り返している気がして少しだけ面倒くさいなーと思いました.
ただ今回の内容では仕方ないとも思いました.
まぁ,最初なのでね.
C言語はほとんど知らなかったのでとても楽しく学ぶことができました.
映像と音声がたまに固まることがあったので,
できれば直していただきたいです.
最後に質問なのですが,
課題9の中でscanf(" %c", ch1);の%cの前に半角スペースを入れないと正しく読み取られないのはどうしてなのでしょうか?
元の動画はそのようなことはないので,視聴する環境がよくないのだと思います.
今日の講義ではC言語で文字や数値の表示について学んだ.
データの種類によって使う指定子が異なることが理解できた.
実際にコードを実行しながら確認して学べた.
エラーを早く見つけられるように成長したい.
慣れですね.
課題1では,
文字を' 'で囲むのはやったんですけど,
文字列を" "で囲むことを忘れてて手こずりました.
課題9では,
scanf("%d", &value);は動作するのに,
scanf("%c", &value);は動作しなくて,
scanf(" %c", &value);では動作しました.
生成AIに聞いたところ,
%cは改行文字でもなりふり構わず取得するっぽいですね.
こいつ気が利かないですね.
でもそのおかげでgetcharの「// 改行文字を除去」の意味が理解できました.
課題のお手本のやつ,
スペース入れるか入れないかが統一されてなくてちょっと気になりました.
例えば,
int value1, value2;
int value1,value2;
みたいなちょっとした違いなんですけど,
特に意味がないなら統一してもらえると助かります.
ブーメランにならないと良いですえ.
今回scanfとgetcharの違いを理解するのに苦労しました.
でも理解できましたか?
C言語についてしっかり理解することができました.
コードを自力で沢山書いていくうちに覚えられそうです.
まだ課題は全て終わっていませんが,
教科書を見ながら取り組みたいです.
覚えることが多いので,
数をこなしてやっていくことが習得の近道かなと思いました.
まだ初歩の初歩なので,しっかり理解できたというには早すぎるのでは?
Pythonは一通り学習したものの,
C言語は前期に少し触れた程度であったため,
今日基本的なことを学べてよかった.
改行文字を除去が何を意味しているか長い時間悩んだが,
理解してLesson11などで活かすことができた.
Pythonがいかに楽なコードか実感した.
理解できたのであれば良かったと思います.
人間が書くソースコードというものは,
人間の言葉で機械に指示を出すもので,
それをコンパイルすることでソースコードを機械が理解できる形に翻訳し,
プログラムを実行する仕組みになっているということが理解できた.
文章中の数字を%oや%xとし,
入力したい数字を後から書くことで,
数字を変えるだけで計算することなく8進数や16進数表記にすることができるのでとても役に立つと感じた.
しかし,
文章中の文字や数字を%cや%dにわざわざ置き換えることはプログラムを書く上でどう便利なのか,
あまりわからなかった.
文字や数字を代入する方法は演習を通してよく理解できたが,
有効数字を指定する方法やプロンプトの表示方法などは授業内では理解しきれなかったので,
講義動画を見直して復習しながら次の授業までに習得したい.
そうですね.復習してもらうのが良いでしょう.
今回が初回の授業でしたが,
これから行われるプログラミングの授業が楽しみです.
本授業はプログラミングについて学ぶものですが,
ちょうど個人的にも基礎的なプログラミングを学ぶ必要に駆られていたため,
絶好の機会であると感じています.
情報系に進むにあたってプログラミングが非常に重要であることは当然理解しているため,
真摯に取り組んでいきたい所存です.
期待しています.
getchar() を複数回入れなければならない理由がわからなかったが,
自分で調べ,
課題11でも実践することで理解することができた.
小数の桁数については,
現状四捨五入して表示する方法しかわからないが,
floor などを使うことができるようになれば切り捨てもできるようになると思った.
ほかの講義内容に関しては十分に理解することができた.
改行や文字コードについて,
圧縮した後にその環境を確認することができないので,
圧縮前に確認はしたものの少し不安である.
圧縮?
C言語の予習を前期のうちに進めていたため特筆して困ることはなかったがscanfとgetcharの違いまでは詳しく知らなかったし,
getcharがスペースや改行まで入力として受け取るがために繰り返し書くことは初めて学べた.
一度は経験しておくことが大切かなと思います.
深い授業だった
深いですか...
変数の特徴を考えて定義するのが大変でした.
例えば,
scanf("%d",&num);などとしたい場合,
%dに引っ張られてdouble num;と宣言したくなりますが,
そうではなくint num;と宣言すると気づかなくて少し苦戦しました.
また,
最後の課題11で,
文字を格納する変数としてch1,ch2,ch3を宣言し,
ch1=getchar()
ch2=getchar()
ch2=getchar()
ch3=getchar()
ch3=getchar()
という風に書いたところうまくいきました.
最初は課題9のようにch1 = getchar()も2回書いていたのですが,
それだとうまくいきませんでした.
これは,
課題9では文字を入力するより前にエンターキーを入力しているので,
それがgetchar()の欄にも入力されたということになってしまうのだろうか?と考えました.
コメント文を当該コードにつけておきました.
今回の内容は,
C言語の基本や変数,
型,
入力と出力など,
これまでに触れたことがある内容が多かったので,
全体的に理解しやすかったです.
特に,
ソースコードを書いたあとに,
コンパイルから実行するまでの流れや,
printfやscanfの使い方を改めて確認できました.
また,
変数にはintやdoubleなどの型があり,
扱う値によって使い分ける必要があることも再確認できました.
今回の範囲では特に分からなかった部分はありませんでしたが,
今後もっと複雑なプログラムを書くときに,
型の違いやコンパイル時の警告に留意していきたいです.
理解できたようですね.
getchar関数の挙動がよく分からないままに,
プログラムを作ってしまった.
結果的に正しい出力が得られたが,
どういった仕組みでそうなっているのかしっかりと復習したい.
有言実行でお願いします.
今日はprintfなどの関数の使い方についてよく理解できた.
一方で実際にプログラムを実行する際にコンパイルの方法に少し手間取った.
またコンパイルしたときに文字化けが出現してすこし手こずった.
コンパイルしたときに文字化けとはどういうことでしょう?
intの意味が分かったので,
int main(void)の意味を個人的に調べてみたところ,
とても納得した.
これからも学習を続けることで,
今まであまり理解できないまま使っていたコマンドなどを理解できるようになりたい.
プログラミングなので,コマンドではなくてグラマーだと思いますが,
いずれにしても不明なところはクリアにしておいた方が良いですね.
ファイルを大学のLinux環境から持ってくるとき,
送られてくるファイルの場所が分からなかった.
次回からスムーズに提出できるようにしたい.
それは自分でなんとかするしかないですが,
そもそも,どのように持ってきたのかを正確に言ってくれたら
解決できると思います.
ひとつの文章を穴埋めっぽくしてコンピュータに伝えるのが面白いと思いました.
課題は途中から詰まるとこも出てきたけどちょっとずつ理解して全部書けるようにがんばります.
どこで詰まりましたか?
scanfの引数の変換仕様の前に空白をいれたり,
getcharを続けて2回書くことによって,
改行文字を処理しなければいけないところが理解しづらかったです.
しかし,
そういったことが原因で,
ファイルを実行して間違った結果がでたとき,
その間違いがどのようにして起きたのかを考えることによって,
次第にどのようにすればよいのか理解できました.
素晴らしい.
unityを学ぶ上でC#を少し学んでいたのですが,
今回所見のC言語とほぼ同じで何が違うのか調べたところ,
実行速度や拡張のしやすさなどに違いがあるようでした.
開発とプログラミングなどに興味があるためこの違いと使い分けに注意しながら学びを深めたいです.
手続き型の言語もやっておいた方が良いと思います.
本日の演習では,
変換仕様(%c, %d, %f, %s, %o, %x)の使い分けはスライドの表がわかりやすく,
よく理解できた.
特に「文字は ' ',
文字列は " " で囲む」という区別が明確で,
課題2でどの引数にどの指定子を対応させるかを考える際に役立った.
一方で,
scanf と getchar の違い,
特に入力バッファに改行文字(\n)が残る仕組みが最初はうまく理解できなかった.
課題10と課題11で getchar() を呼ぶ順番が逆になる理由が直感的に掴めず,
バッファに残った改行を1回空読みして捨てる,
というイメージを持ってようやく腑に落ちた.
意見として,
エスケープシーケンスやバッファの動作は図やアニメーションで「1文字ずつ消費される様子」を見せてもらえると,
より理解しやすいと感じた.
納得できたようですね,
概ね問題なくできた.
getcharの仕様を理解するのに少し時間がかかった.
改行や空白をいちいち読み飛ばすのが煩わしいので,
それらを飛ばして取得できるようなオプションがあればよいと思う.
float型とdouble型の変換仕様が,
printfでは同じであるのにscanfでは異なるのがなぜなのか気になった.
よろしいと思います.
授業形態が前期の情報処理演習(島田先生)と似ていたので,
初回にもかかわらずスムーズに演習に移行できた.
getcharやscanfがよく理解できなかった.
コードにコメント文をつけておきましたが,どうでしょうか.
本日の講義ではソースコード,
C言語が何であるかの説明に始まり,
数値,
文字の表示や変数の取得とその利用方法について説明がなされた.
特によく理解が進んだ箇所としてgetcharコマンドがあげられる.
課題の演習をおこなっていく中でgetcharで英数字を獲得する際に二回分同じ変数に対してgetcharコマンドを使っている点が私にとって今回の内容の中で最も理解が困難な部分であったが,
改行や空白も文字としてカウントされているため,
1度コマンドを実行するだけではその改行や空白を取得してしまい,
うまく動作しないということが理解できてからはスムーズに演習を遂行することができた.
また,
注意が必要な点として定義した変数を適用する際などに用途に応じて「%d」や「%f」などを使い分けるが,
今回の演習ではまだ覚えきれておらず,
スライドの表を何度も参照することになったため,
スムーズに演習を進めるために次回までに覚えていくべきであるように感じた.
これは慣れなので,覚えなくても,自然に覚えるようになるでしょう.
今日の授業でわざわざ変換使用で%fなどのコマンドをつかって変換する意味が理解できていませんでしたが,
演習問題を通して小数第何位などの指定が楽だったり求める手間を省く利点があることを学びました.
まだ演習問題を最後まで解いていないのでプログラミングの利便さを発見しながら問題を解いていきたいなと思いました.
最後まで頑張ってといてください.
高校のころには競技プログラミングにすこしだけ触れたことがあり,
C++には多少慣れ親しんでいたのだが,
本格的にC言語でプログラムを書いたのは今回が初めてだった.
そのため,
#include <stdio.h>,
main関数や変数の代入,
出力という仕組みの部分は割とすぐに理解できたものの,
C言語特有の文字列への数字や文字の代入という仕組みがなんだか少し回りくどく感じられてかなり手こずってしまった.
C言語はC++の元になった言語であるので,
これからもそういったC++との共通点,
相違点に着目しながらどちらも習得していくことができたらよいと思っている.
手続き型の言語も知っておいた方が良いでしょう.
前期の時にやったC言語の基礎から上手くつながった.
授業動画を見たら理解がかなり深まった.
繋がったのであれば良かったと思います.
scanfの役割がよくわからなかったので復習しようと思う.
Lesson3の講義資料でnumと%fが同時に使われていたが,
numは整数を表すのに,
少数を表す%fと併用して大丈夫なのか疑問に思った.
コードを書くにあたって,
<stdio.h>の.hや;などをつけ忘れていることが何回かあり,
作業に支障をきたしていると感じたのでコードの定型を手になじませるのが大事だと思った.
「numは整数を表すのに,少数を表す%fと併用して」とありますが,
それはどこでしょうか.併用していることはないと思います.
私は今までPythonしか使ったことがなかったので,
シングルクォートとダブルクォートを区別することや,
エンターキーの入力がバッファに残ることなど,
C言語がより機械語よりの設計であることを実感しました.
printfや%dなどの基本的なC言語の使い方は理解できましたが,
scanfとgetcharの文字の扱いの違いなどまだ曖昧な部分が残りました.
まだ課題が終わっていないので,
コードを書きながら理解を深めたいです.
そうしてください.
getcharの使い方が初めはわからず,
getcharだけで実験してみてもなかなか使い方をとらえられなかった.
いろいろ調べてみると,
getcharは入力された文字を前から順番にとるということと,
scanfで入力したエンターも入力文字扱いになることがわかり,
ようやくなぜ自分が作成したソースコードが正常に動かないのか理解することができた.
また,
それがわかれば,
getcharの後にも入力されているエンターが次のgetcharに影響を及ぼすことも理解できた.
ただ,
scanfはエンターをとらないのでうまく動くことも理解できた.
理解できたようで良いと思います.
今回の講義ではC言語の基本的な使い方を理解することができた.
int main(void)など必ず書く部分も何度も書き,
定着させることができた.
また,
printfの変換仕様は初めて使ったが,
使い方を理解することができた.
特に8進法や16進法に変換することも容易であるということで,
非常に便利な仕様だと感じた.
入力を受け付ける方法について,
scanfとgetcharの基本的な使い方は理解したが,
具体的な使い分け方はあまりイメージすることができなかった.
現時点で課題10,11が作成できておらず,
想定した挙動と違った動作が多発してしまっている.
これはその違いを完全に理解できていないことが原因であると考えられるため,
課題9などを参考にして理解を深める必要がある.
理解を深めてください.
今回の講義によって,
夏休み前に情報処理演習で学んだC言語の基礎的な部分を思い出すとともに,
少し進んだところまで実際に手を動かしながら学ぶことができてよかった.
一方で,
C言語は,
大学の講義以外で触れたことがないため,
現時点でも覚えなければいけないことが多いと感じる.
そのため,
講義の課題をしっかりと理解するのはもちろんのこと,
それ以外でも積極的にC言語に触れることによって,
慣れていければいいなと思う.
色々とやってみるのが良いでしょう.
これからの授業の概要や進め方を理解することができた.
getchar()の挙動が少しよくわからなかったから(標準入力も含め),
帰ってから調べてみたいと思う.
そうしてください.
floatとdoubleの違いがよくわからなかった.
また,
getcharの改行が入力されてしまうのが少し面倒だと感じた.
講義動画をみてくれましたか?
今日は,
プログラミングの基礎として,
文字,
文の出力,
入力などのプログラムを書けるよう,
演習問題を解いた.
演習問題は特に問題なく解くことができたが,
提出の際にコードをLinux環境から自分のPCに送るところでてこずってしまい,
提出に時間がかかってしまった.
次回は,
提出に時間をかけないようにしながら,
新しい技術を学んでいきたいと思う.
色々と学んでもらうのが良いでしょう.
全体的によく理解でき,
内容の理解を深めることができた.
動画もわかりやすく,
見やすいものだった.
よろしいと思います.
同じ文を書いているはずなのになぜかエラーが出たりでなかったりして大変でした.
printf関数やscanfの基本的な使い方はわかりましたが8進数や16進数の扱いがいまいちよくわかりませんでした.
不明なところは質問してください.
今まで意味を分からず書いていたinclude <stdio.h>などの持っている役割を理解することができた.
また,
%cなどの使い方をしっかり理解できた.
理解できたのであれば良かったと思います.
最初の授業としての難易度はちょうどいいと思いましたが,
課題10で,
整数もgetcharを使わなきゃいけないのかと勘違いしてしまう気がします.
整数も使わないといけないというのはどういう意味?
今回の課題1~11では,
コードを書いた後にコンパイルするとエラーになってしまうことが多く,
その度に原因を見つけて修正することに苦戦しました.
その際の主な原因は大文字,
小文字のサイズや,
スペースやセミコロンの入れ忘れなどで,
同じミスを繰り返してしまいました.
間違いを見つけるまで苦しかったですが,
自分の癖を見つけることができたので良かったと思います.
(「%s」を「%S」と書いてしまったり,
「return 0;」のスペースやセミコロンを忘れたりしてしまいました)また,
課題3や課題8などの16進数と8進数を含む問題は頭がこんがらがりました.
講義の動画を拝見して理解して習得したつもりでも,
いざ実践するとスムーズにコードが書けないことがあったので,
実際にコードをたくさん書いてC言語に慣れながら上達を目指したいと思います.
そうですね.慣れは大切ですね.
C言語の基本事項やコードの構造はよく理解できたが,
変数の扱いやfloatとdoubleの変換仕様の使い分けが難しく感じた.
コードは初めて使うものがほとんどなため,
何度も書いて慣れておきたい.
そうしてください.
今回の授業ではC言語の基本的な仕組みを知ることができました.
しかし,
charのところがうまくいかず,
なぜch=getchar()を二回繰り返すのかはわからず終わってしまったことは残念です.
コメント文をつけておきました.
本日の授業で,
自分で組んだプログラムを出力する方法や,
文字や整数の変換について学びました.
課題9で,
正しいコードを打っていたつもりでも何回もエラーが出てしまいました.
intとdoubleの違いは未だよくわかっていないです
講義動画をみましたか?
C言語のコードの入力,
プログラムの実行などをよく理解し,
演習することができた.
キーボードからの入力は,
エラーが出てしまうこともあったが,
理解することができた.
理解できて良かったと思います.
基礎的なコマンドが多く,
特に苦労することなく問題を解き進めることができた.
しかし,
その中でもscanfコマンドとgetcharコマンドの違いについて空白を読み取るかどうかしかわからなかった.
実際にはほかにも読み取り単位が異なるといった違いがあるらしい.
単位?
プログラミング自体はかなりすんなり書けたのですが,
scanfとgetcharの違いがまだ曖昧で,
理解はまだまだ足りないように感じました.
また,
大学の環境を用いてコンパイルするということを今までしたことがなかったので,
コンパイルに非常に多くの時間を取られたのがもったいなく感じました.
慣れですね.
最初に#includeと打つことと,
int main(void)と打つことはやりすぎて,
覚えれた.
もっと覚えようと思う.
いまいち意味がわからないのですが, いずれにしてももっと覚えるということであれば, それはそれで良いことだと思います.
getchurとscanfの扱いの違いに苦戦した
でもうまく行った?
すでにプログラミングの基礎知識があるため,
今回の変数の課題は比較的スムーズに進めることができました.
途中で分からない点があった際も,
その都度ネットで検索して自己解決しながら実装しました.
全体として内容はわかりやすく,
難易度としては比較的易しいと感じました.
そうですね.まだ初回なので.
&をつけるのをよく忘れたせいで,
エラーがたくさん出て苦戦した.
%fで自動で四捨五入が行われて問題の結果欄とは異なる値になってしまった.
これの直し方は分かりませんでした…
疑問に思ったことを実際に確かめながら課題を進めることができた.
うまく進めているようで良いと思います.