トップ(最新)

nDiki : プログラミング言語

プログラミング言語 - programming language

関連情報

スポンサード リンク

Related term

1999年5月18日 (火)

プログラミング言語演習I第4回 このエントリーを含むはてなブックマーク

スポンサード リンク

今回は、scanf による入力と if 文の学習。

@ 本日の課題

「年齢を入力させ、その値から車の免許が取れるかどうかと酒を飲めるかどうかのメッセージを出力するプログラムを作れ。」

@ 学生から受けた質問等

  • muleが起動しない: mule-nw とスペースを開けていないのが原因。
  • scanfした後どうすればいいの: 課題の内容を再確認し、処理の流れを考えてもらう。(2件)
  • gcc でエラーがでた: gcc のエラーメッセージの見方を説明
  • getchar() を使ったが期待した値が入力できない: 似たプログラムがテキストにあって、ここでは getchar() を利用しているのでそれを真似た。ところが、getchar() では文字として入力しているので、入力した数値の最初の文字の文字コードが得られており期待通り動いていない。とりあえずここでは scanf を使うように説明。
  • コンパイラエラー: ';' 抜け。(3件)
  • どうみてもおかしくないのだが、コンパイラエラー: コメント開始と終了が /* ... */ ではなく \* ... *\ となっている。
  • よく意味のわからないコンパイルエラー: 変数宣言の前に printf で出力を行ってしまっている ... 変数宣言は関数(ブロック)の先頭でなければならないことを説明。(2件)
  • ソースファイルがない: gcc puro1.c -o puro1.c で上書きしまっている。ご愁傷さま。
  • gcc で No such file: kadadi4.c というファイル名で編集しているのに、kadai4.c だと思って gcc していただけ。
  • ファイルを保存しなかった: *scratch* バッファに入力。残念ながら mule 終了済み。カットアンドペーストもうまくいかず。ご愁傷さま。彼は本日同じことで2度ソースファイルを失い、これで3度目の入力だとか。
  • if (a == '18'): 数はシングルクォートする必要なし。複数文字をシングルクォートすると warning もでる。参照しているテキストが、getchar() で文字を入力し if で文字と比較している例なため、勘違い。
  • if ('a' == 18): 変数名をクォートしてしまっている。構文的にはエラーではないが、意図しない結果に。
  • gcc のやり方は: もう今日は第4回なのに。忘れちゃったかな。演習の進め方をまとめてある Web ページを説明し、参照してもらう。
  • warning: return type of 'main' is not 'int': main の返り値の型について。これも FAQ。すでに演習 Web ページに説明あり。上記メッセージを見て、main 関数の関数名を int にしたがうまくいかないという学生。ちょっとメッセージの読み違えですね。
  • parse error before character 033: なぜか目にみえない変なコードがソースファイルにまぎれてしまっている。mule であたりをつけて削除。
  • mail の見方: mail コマンドを説明

@ コメント

質問の内容が、操作からコンパイルエラーについてに変わってきた。 やっと、学生も操作になれてきたということか。 まだ、プログラム内容についてはついてきているようだ。 そのうち、どうプログラムを組んでいいかわからなくなってくる学生が増えてくるところか。

変数宣言が関数(ブロック)の先頭になければならない事は授業で説明されただろうか。指定のテキストでは明確にその点について記述されていないため、学生が間違えるのもしかたないか。

「MA1(えむえーわん)」と呼ばれている人がいたが彼は一体?

◇ Twitter やってます。この記事が気にいったらぜひ twitter.com/Naney の follower になってください。
◇ 2GB 無料のオンラインストレージサービス Dropbox に次のリンク先から登録すると今なら 250MB プラス! → Dropbox


[ 5月18日全て ]

2006年6月12日 (月)

第7回 社内 Perl 勉強会 このエントリーを含むはてなブックマーク

リャマ本を使用した社内 Perl 勉強会の7回目を開催。今日は6人。

今日は「初めてのPerl 第3版」第8章「正規表現の詳細」が範囲。

今回はプログラムを書く問題は無くて、パターンを考えたり逆に与えられたたパターンが何にマッチするのかを考える問題。 「本書の中で最も難易度が高くなっています」と書かれている。

@ 今回の反省点

さすがに今回は正答率が低かった。 問題の意図が読み取りにくいというのもあって、迷う問題も多かったようだ。 プログラミング言語のトークン関連のネタなどはプログラミング経験がある程度ないとぱっとわからないかもしれない。

時間の関係で自分もあまり準備ができなくて、不完全な解答だったのが悔まれる。

今日は追加ネタなしで、トータル50分。


[ 6月12日全て ]

2006年9月11日 (月)

社内 Perl 勉強会 最終回 (第16回) このエントリーを含むはてなブックマーク

リャマ本を使用した社内 Perl 勉強会の16回目を開催。 今日は8人全員。

今日は「初めてのPerl 第3版」第17章「上級テクニック」が範囲。 17章では、「Perl らしい」機能 (Perl 流 eval、grep、 map、スライス)が盛沢山。

@ 今回の反省点

robust なプログラムを書くには Perl では eval 必須の機能なので押さえておきたいところ。 grep、map は何だかんだいって自分が練習問題の解答で使ってしまっているので、他の人もある程度見なれているはず。

練習問題の解答としてはスライスは今回は使用せず。

逆にスカラーコンテキストとリストコンテキストについては、まだ理解が不完全な部分があるようなので解説をしておいた。

@ 最終回を終えて

Perl については

Perl の理解が進んだ (「正規表現」が何か少しわかった、使い方がわかった、知識が増えた)

という一方

Perl の気持ち悪さが理解できた。

という意見があった。

プログラミング言語勉強会としては

他の人の書き方を見ることが参考になった。実際に書くことで覚えた。

等、定期的に練習問題をやってくるというスタイルに対する評価が得られた。

4月21日から始めて5カ月弱。勉強会でスキルアップをはかっていこうという雰囲気ができてきているのはいい傾向だと思う。

今後もテーマを選んで継続していきたい。

次のテーマをより実用重視のものにするか、基礎固めのものにするのかは悩みどころである。


[ 9月11日全て ]

2007年12月19日 (水)

初めての PerlC MAGAZINE このエントリーを含むはてなブックマーク

12月18日に Perl v5.10.0 がリリースされた。 1987年12月18日にリリースされた 1.000 (perlhist(1) より) から数えて20年目にあたるリリースである。

思い起こしてみると、自分が初めて Perl を知ったのは C MAGAZINE 1991年9月号の 特集フィルタ系言語研究,Part3 Perl入門 (前田薫氏) だったと思う。

当時は PC-88VA2 を使っていて、DOSエクステンダ版を試した記憶がある。 動いたような動かなかったような。

当時は UNIX 系システムは全く触れたことがなく、スクリプト言語もほとんど知らなかったので $ とか @ にはめまいを感じたものだ。

まさかあの Perl が今の自分にとって、第1プログラミング言語になるとは思ってもみなかった。


[ 12月19日全て ]

2009年8月10日 (月)

C++ソースコードフォーマッタ Uncrustify このエントリーを含むはてなブックマーク

私が Perl が好きな理由の一つとして perltidy が存在しているという点がある。 perltidyソースコード整形は柔軟にカスタマイズができて、自分の好みの整形設定を作っておける。 このツールおかげで後で整形できるので、荒々しくコードを書いてガンガンリファクタリングしていくことできる。

久しぶりに C++開発をするにあたって、C++ の同様のツールを探してみた。 perltidy のように長い式の折り返しを適切に調整してくれる整形ツールはあまり見つからない。いくつか試したところ Uncrustify にたどりついた。

@ 設定

 uncrustify -c /dev/null --update-config-with-doc -o ~/.uncrustify.cfg

するとデフォルトの設定が書き込まれた設定ファイルができる。 これを好みの設定に書き換えていく。

@ ソースコード整形する

 uncrustify source.cpp

とすると整形されたソースコードが source.cpp.uncrustify に出力される。

 uncrustify --replace source.cpp

とすると source.cpp 自体を整形されたソースコードで置き換えてくれる。

@ Emacs からの呼び出し

perltidy の時の設定(記事)で OK。 shell-command-on-region では

  uncrustify -l CPP -q

を実行するようにする。Uncrustify は標準入力からソースコードを渡す際にはどのプログラミング言語が指定してあげる必要がある。

好みの設定は現在模索中。 長い式の中の、引数なしの関数呼び出しの開き括弧と閉じ括弧の間で折り返されることがあってそれが気持ち悪いのだが、それ以外は好みの設定になりつつある。 もうちょっと設定いじってみて確定するつもり。


[ 8月10日全て ]

2010年8月25日 (水)

[ 8月25日全て ]

2011年1月13日 (木)

mixi FRISK ケースをもらいにミクシィに行ってきました このエントリーを含むはてなブックマーク

YAPC::Asia Tokyo 2010 でノベルティとしてもらった mixi FRISK ケース、けっこう気に入っていて中身を交換しながら使っていたんだけれど、ちょっとユルくなってきちゃったんで

YAPC::Asia Tokyo 2010 でもらった mixi FRISK ケースの固定が甘くなったので今の FRISK が無くなったら終わりにする。 http://twitter.com/.../24761769255763968

って Tweet したらなんとミクシィCTO ニール佐藤氏 (@nealsato)から

@Naney オフィスに遊びに来ていただければ交換に応じます! http://twitter.com/.../24764299335438336

との @ が! マジスカ!

もう行きます行きます! 会社休んで FRISK ケースもらいに行きます! ということでさっそくアポイントメントいただいて遊びに行ってまいりました。

また Tweet を見かけてくださったミクシィの山下秀孝氏 (@weboo)も声をかけてくださって一緒にお会いいただきました。

@ 絶景のミクシィ受付フロアで FRISK ケースを入手

naney:5351300969

17階にあるミクシィ受付は明るくて開放的で都心方面を見渡せる絶景フロア。 受付には綺麗なオネーサンがいて(行くまで、きっとタッチパネルとかそんなので呼び出すんだと勝手に想像してた)応対していただきました。 大きな会社でよくある受付での用紙記入があり、目的欄があったので「FRISK ケース交換のため」と書いてみたかったんだけれど会社名と名前を書いたところで「それで結構です」と止められてしまい、ちょっと残念。

ニール氏・山下氏と初対面のご挨拶をした後(あ、Inkscape で作った Twitter 名刺をお渡しした最初の方になります)、念願の mixi FRISK ケースを頂きました(2つも)。それとボールペンとシールも。ありがとうございます!

@ ランチ

@Naney 技術ネタのお話し相手をしていただければ是非! http://twitter.com/.../24767513728389120

というのを真に受けていろいろお話を伺わせていただきました。

ニール氏の最初のコンピュータが PC-8801mkII で独学で BASICアセンブリ言語を学んでプログラミングされたとのこと。

ちなみに私は初めて PC に触ったのは PC-6001 あたりぐらい。初めて買ってもらったのは PC-88VA2 でした。プログラミング言語はやはり BASIC から。その次は C 言語そして C++ 言語へ。アセンブリ言語はちょっとかじったぐらいでした。 それからニール氏は PHP の国際化プロジェクトの立ち上げにも関わられたとのこと。知らずに PHP dis ってしまってゴメンなさい。

山下氏は OpenSocial などにお詳しい方です。なんと nDiki を数年前からご存知だったとのことで非常に光栄でした(今はメンテしてなくて止まっているエセライブカメラもご存知でした)。

ランチもご馳走になってしまい、ノベルティともどもありがとうございました。

今後ともどうぞよろしくお願いいたします。

@ 私と mixi

ちなみに確認してみたら mixi への登録は2004年11月19日でした。もう6年以上になるんですね。 登録の2日後にmixi 用画像アップローダを作り、9日後にmixi の写真にメッセージを自動的に埋めこんで他人のページにネタをねじこむとかやってました。

ランダムアクセスして足あとがどれぐらい増えるのかとか試して、しばらくして警告メールを受けとったりもしましたが時効ですね。


[ 1月13日全て ]

この日記のはてなブックマーク数 Add to Google RSS

Process Time: 0.233743s / load averages: 1.81, 1.46, 1.49
nDiki by WATANABE Yoshimasa (Naney, Google profile)
Powered by DiKicker
Base theme by Nana (for tDiary)