2006-11-01から1ヶ月間の記事一覧
タイトルは,今日のモーニングのOL進化論より. いやあ,今朝の満員電車の中で,髪の毛引っ張ったりして,「遊んでいる」の域を超えた小学生ふたりに対して,「ええ加減にしなさい!」と叱ったもんで. 終点まで車内は静かになり.当然のように叱られた小学生…
同一の型の二つの変数があって(int x, y;としましょう.そして,あらかじめそれぞれに値が代入されているとしましょう),その値を交換するには,通常,次のように書きます. { int tmp; tmp = x; x = y; y = tmp; }このtmpという名前の変数は,一時的に値を…
昨日,海南にある和歌山リサーチラボというところで,「データベースとデータマイニングについて」と題して,1時間半ほど話しました. 自分へのメモ. ノートPCだけ持っていったら,タッチパッドが効かず,困りました.会場よりマウスを借りて,なんとか解決…
ふと原点回帰. 初めての講義で作ったスライドの一つです. 原子炉の制御をする業界に学生を送り出したわけではなく,スライドの作り方としても,フォントが小さく字数も多いのが気になります. とはいえ毎年見直し,微修正をしていきながら,このスライドは…
いきなりですが問題です. char c = 'A' + ' '; としたとき,c はどんな文字と等しいでしょうか? もちろん文字コードはASCIIという前提で. 答えはこんな感じ. ASCII文字コードによると,'A' は 0x41 と,' ' は 0x20 と等しい.これらを足すと,0x61 とな…
昨日今日と,四国に行ってきました.別子の砂金すくい体験,砥部の絵付けなど,楽しい2日間でした.帰りは渋滞で,フェリーに乗れるか緊張しましたが. それで,船の中だったか,ドライブインだったかで,小さめの紙コップを手に取りました.そこに英語で文…
毎年,Cのプログラミングの講義の第7回目くらいに,それまでに学んだ文法知識(データ型,制御文,演算子,配列,ポインタ)をフル活用したプログラムを紹介しています. 今年は,与えられた文字列が反復語であるかを判定するプログラムを自作し,解説しました…
Cで,関数と関連して変数を教えるとき,切り口は「有効範囲」と「生存期間」です. 有効範囲は,コンパイルのときに,どこからどこまでの(ソースコードの)範囲でその変数が参照できるかを決めるものです.アドレス渡しにより,範囲外でも,その変数に結び付…
明日また授業です.前回はポインタの使い方を説明しましたが,今回はそのポインタを使えばどんなことができるかを紹介します. それで,その次のこと.来週は,関数と変数というテーマで説明します. 関数は,ライブラリ関数*1ではなく,自作関数についての…
先日見かけたプレゼンテーションで,こういう記述がありました(実際の表示では,センタリングされていました). αであるための必要十分条件 ↓ β=0 これには違和感があります.私ならこうするところ. αであるための必要十分条件は β=0 違和感の理由を書いて…
日曜日に買った本です. 組込みソフトウェア開発向けコーディング作法ガイド[C言語版] (SEC BOOKS) マンガでわかるナースの統計学 -データの見方から説得力ある発表資料の作成まで- 前者ですが,「組込み」に特化した情報は少なく,Cのプログラマなら誰もが…
char *p; と書けば,「char *」型の変数pを宣言する と説明することのデメリットの一つとして,「char* p, q;」と書いたとき,変数qは,ポインタ型ではなくchar型になる,ということが挙げられます. これに対して,反論を試みてみますと 一括宣言でポインタ…
学生が研究室に足を運ぶようになり,ディスカッション(顔を合わせて,あるいはメールで)を通じて問題点がどんどん解決されていくようになるためには… 研究室で楽しい時間を過ごせること 研究が楽しい,面白いと思えること ができるよう,環境を整備すること…
昨日の授業は,Cの難関,ポインタを紹介しました. 昨年の授業資料(PowerPointファイル)を見直していた中で, char *p; と書けば,「char *」型の変数pを宣言する と書いていたのですが,Webの情報や,手元の何冊かの本を読んだところ,この表現は妥当でなく…
私の授業を履修していて,この日記を読んでくれている学生へ. ここ最近のエントリは,「授業の補足」というよりは,「これを授業中にしゃべるのは,初学者の学習の妨げになるので差し控えている内容」です. 授業中の説明は,配列にせよポインタにせよ,最…
いきなりですが問題です. ポインタ変数pとqが,ある文字列のどこかの位置を指し示しているものとする.このとき,その中間の位置(ポインタ値)をCの式として表しなさい. で,答えです. p + (q - p) / 2 pとqのどちらが大きくても,それなりの中間の位置に…
ディレクトリを移動するときに、「cd ~」,「cd enshu」,「cd kadai3」のように,一つ一つ分けて実行しています. 上の例であれば,「『cd ~/enshu/kadai3』と実行しなさい」と言うだけなのですが,こう実行することのメリットも挙げておきたいものです. …
emacsでファイルを開くときに,ターミナルから「emacs ファイル名」を実行しています.コンパイル・実行のためのシェルは,別のターミナルを使っています. 5日前に書いたことです.もう忘れそうです.別パターンも(こっちのほうが深刻です). emacsでファイ…
読み終えました. ずっと受けたかったソフトウェアエンジニアリングの授業(1) ずっと受けたかったソフトウェアエンジニアリングの授業(2) 大学生にソフトウェアエンジニアリング(ソフトウェア工学)をどのように講義し,演習させるとよいかを明快に示した名著…
キーワードのうち「教育」のいくつかを「情報教育」にしようとしたら,大失敗. エントリの重複が起こりました. インポートして,キーワードを置換して,エクスポートしたら,上書きしてくれると思ったのですが,エントリを追加していくんですね. 今晩,手…
次の金曜日に,ポインタを教えます.土曜日に,きょうかん酒場を実施するかの連絡を待ちながら,授業準備をしていました. 昨年度までで,教えていた要所をまとめると… 「オブジェクト」と「ポインタ」と「配列変数」とを,異なる(色や輪郭の)箱で表現して見…
過去に実行したコマンドを探すときに,上矢印の連打や長押しをしています. 毎回毎回コマンドを打ち込むよりは効率的と言えますが,コマンドが見つからずやきもきするとか,上を押しすぎて下に戻さないといけないとかいうがあると,後ろで見ていてもちょっと…
今日明日と,大学祭ですね. 私も今日は大学へ行って,メインストリートでおいしそうなのをいただくつもりです.でも雨模様なのが残念…. 夕方4時から,GENKI食堂にて,「きょうかん酒場」をやります.私も2年ぶりのスタッフ参加です. この酒場,もともとは…
コマンド入力中に,全く異なるコマンドを実行したいときに,BackSpaceの連打や長押しで消しています. 上のような状況では,Ctrlを押しながら,uを押せば(「Ctrl-u」と書き,「コントロールU」と言います),全部消えます. 消したのを戻したいなら,Ctrl-yで…
昨日の午後は,演習と補習.休憩時間を除いて5時間ほど,演習室にいました.巡回して目についたのが,ターミナル操作のまずさです.具体的には… コマンド入力中に,全く異なるコマンドを実行したいときに,BackSpaceの連打や長押しで消しています. ディレク…
朝起きて書いてみました.しかしこれは,何度も手入れしないといけないな…. 1バイトの情報を表すためのデータ型は,charです. charと書いたら,signed charなのかunsigned charなのか規定されませんが,利用上は問題ありません. Cのプログラミング教育に…
scanfは使いませんと書きましたが,思うところあって撤回.今日の授業で取り上げました. ただし, 不適切な入力があれば,エラーメッセージを出力してすぐ終了するようなコードにしました. 「while (scanf("%d", &a) != EOF)」を書いてはいけないと強調し…
私が見ているところでは,研究グループごとのミーティングを実施したら,だれかに議事録を作成してもらっています.書きっぱなしではなく,たいてい1回は私が見て,書き直しを指示し,その修正版を保存しています. 月曜日に,ある議事録案に返信しました.…
3年前,レポート作成のための参考資料として,quotationとcitationの違いを解説したPDFファイルを作ったことがあります.昨日見直したところ*1,その説明には元ネタがあることに気づきました.情報創造論の卒論の書き方だいぶ下のほうにある「引用について」…
文字列とは,「'\0'で終わるchar配列」のことです. 配列の中に'\0'がなければ(「'\0'で終わらないchar配列」ともいう),文字列ではありません. 配列の中に'\0'が複数ある場合,配列の先頭から,最初の'\0'の前の文字までを文字列とみなします.このことを…