わさっきhb

大学(教育研究)とか ,親馬鹿とか,和歌山とか,とか,とか.

C

ヘッダファイルはコンパイルしないように

木曜の演習科目の授業のことです.こちらはいくつかのファイルを用意していて,makeによって,仕様どおりに動く実行ファイルができるよう,comm.hに書き加え,comm.cを新規に作成しなさい,という課題を与えています. 学生から相談がありました.どのように…

本との対話をした

図書カード 本との恋をしよう。(JPEG) 注意:最初のリリース後から,かなり手を加えています.自分が考えた答えは「白地に白文字」にしています.気になる方は,マウスでドラッグしてください.自分で考えた答えと別に,1箇所だけ,白地に白文字にしています…

nlmate'

C

いきなりですが問題です.出力と一致するよう,プログラムコードの「………」を正しいCのコードに置き換えてください.プログラムコード(各問共通): for (i = 0; i < 3; i++) for (j = ………) printf("(%d,%d)", i, j);出力1: (0,0)(0,1)(0,2)(1,0)(1,1)(1,2)…

マルチョイ2

関数呼び出しにおいて,実引数と仮引数が同じ変数名であっても,それらは別物とみなされる.なぜなら,______からである. 有効範囲が異なる 仮引数は変数でなくてもよい 関数形式マクロで定義しても適切に動作する必要がある externをつけていない

j=j=i

月曜日の試験の採点をしていて,要注意の解答に出会いました. 問題文は以下のとおり.ただし,検証しやすい形式にアレンジしています. 出力に合うよう,______に入る適切なプログラムコードを解答しなさい. ソース: #include <stdio.h> int main(void) { int i, j</stdio.h>…

マルチョイ

「マルチプルチョイス」の略。 マルチョイの意味 - goo国語辞書 いくつかの解答を示し、中から正しいと思うものを選び出させるテストの方式。多肢選択法。多項式選択法。マルチョイ。 multiple-choice(マルチプルチョイス)の意味 - goo国語辞書 まるちょい…

射影

Cでは #define is_odd(x) ((x)&1) と,引数が奇数であるかどうかを判定する,関数形式マクロを定義します.授業でも言っていますが,演算子の優先順位による影響を避けるため,置換内容には,全体と各引数にカッコをつけましょう. このとき,3 != 1ですが,…

反復処理いろいろ

自分の科目の中で,学んでほしい…必ずしも書けなくてもいいけど,コードが与えられれば,コンパイル・実行することなく,どんな出力になるかが分かるようになってほしい…反復処理を,洗い出してみました. 単純なwhile文 単純なfor文 単純なdo〜while文 デク…

Cプログラミングのはまりどころ

C

Cプログラミングの「トラブルのもと」を,整理しました. 1. 比較に= if (a = 3) aに3が代入されます.そして条件式は(3ということで)常に真になります. Cでの比較は,==です. 2. 1/2は0.5 double half = 1 / 2; halfの初期値は,0.5ではなく0です.「整…

多次元配列の要素数・再考

「1つ分の大きさ」×「いくつ分」で書いていないのは,まず,2次元配列の要素数で,例えばint b[2][3];と宣言したとき,配列変数bがint型のオブジェクトを全部でいくつ持つかというと,b[0][0], b[0][1], b[0][2], b[1][0], b[1][1], b[1][2]という順でメモ…

配列とポインタの学び方

C

配列とポインタの関係について,情報を整理する前に,過去のエントリを読み直してみました. 2次元配列を仮引数に持つ関数(解説編) - わさっき ポインタ変数,配列変数 - わさっき 上の2つの中に,整理しておきたいなあと思っていたことの95%が詰まってい…

関数の呼び出し回数(力技編)

C

関数の呼び出し回数 - わさっき Re: 関数の呼び出し回数 - わさっき gprofを使って,計算する方法を模索してみました. 基本的な方針は,fib(n)という,1引数関数でフィボナッチ数を求めるのではなく,fib(1)と同じ値を返す0引数関数fib1() *1,fib(2)と同じ…

関数の呼び出し回数

C

学科の2年生になったつもりで,書いてみます*1. *1:なお,課題や会話は,毎週木曜日の演習課題をモチーフにしつつも,フィクションです.

2次元配列を仮引数に持つ関数(解説編)

C

昨日の問題の解説です.

2次元配列を仮引数に持つ関数(問題編)

C

いきなりですが問題です.まず,こちらのソースファイルをご覧ください. #include <stdio.h> void print_array(int a[2][3]) /* int **a ではうまくいかない */ { int i, j; for (i = 0; i < 2; i++) { for (j = 0; j < 3; j++) { printf("(%d,%d): %d\n", i, j, a[i</stdio.h>…

標準講座C

C

標準講座 C (Programmer’s SELECTION)作者: ステファン・G・コーチャン,中尾真二出版社/メーカー: 翔泳社発売日: 2010/04/15メディア: 大型本 クリック: 2回この商品を含むブログ (2件) を見る学科プログラミング授業の教科書としてふさわしいか,自習書(参…

2重ループ養成CUI・nlmateをリリース

昨日,「nlmate」というRubyスクリプトを,http://github.com/takehiko/nlmateにて公開しました. あらかじめ必要なのは,このスクリプトファイルのほか,rubyとccのコマンドです.ruby nlmateを実行すると,はじめに以下の表示が出てきます*1. [Tutorial] …

再帰を問う問題(没)

C

「問題です」 「あ,はい」 「整数値を引数にとって,0からその値まで,カウントアップして出力する関数を,加算に関する演算子を一切使うことなく,定義できますか?」 「加算に関する演算子というのは…」 「+と,+=,それと++です」 「分かりました…こうで…

再帰の問い方2009

C

いきなりですが,空欄適語問題です.[ 1 ]〜[ 3 ]に入る語句を,考えてみてください. 関数の内部で自分自身を呼び出すことを [ 1 ] 呼び出しといい, [ 1 ] 的に定義されたものに対して使用すると効果的である.たとえば,カウントアップとカウントダウンを…

尺取り虫プログラム〜保持する情報を減らす

4日前に作ったプログラムを見て,「inchworm構造体のメンバdirは,なくても同じ動作になるよう,書けるんじゃないかな…」と考えることが,本日の行動の始まりです.実際,メンバdirと,inchworm_dirという列挙型もなくすことにします. コーディングの前に,…

尺取り虫プログラム〜素直なコード

昨日の件,コーディングの前に,少し検討します. 尺取り虫の動き方を,日本語で書いてみます. 上,右下,右,左上,左上,上,右下,右下,右下,右,左上,左上,左上,左上,… ここから,規則を作ることができます. 原点を含むY軸(x=0)にいるときは,1…

尺取り虫プログラム

2次元座標平面の原点からスタートして,第1象限とX軸・Y軸の各格子点を順に巡るというプログラムを,いくつか作ることにしました. 毛色経路は,図のとおりです.(0,0), (0,1), (1,0), (2,0), (1,1), (0,2), (0,3), ...と動いていきます. 理論的には,自然…

改めて,文字列リテラルは配列であることを確認する

C

さて,文字列リテラルの正体が文字型の配列であるとすると,"hello!\n"という記述は何を示しているのでしょうか.実は,"hello!\n"は,実体となる配列の先頭位置を指し示すポインタなのです. 図2.20の"hello!\n"がポインタであることは,図2.22のプログラム…

文字単位のローテーション

C

シーザー暗号により暗号化された文字列hatteが与えられたとき,その平文は何であるかを求めることから始まります.よく例題に使用されるシーザー暗号では,平文の各文字について,「3文字,後ろ」に変換します.aならd,bならe,…,wならzで,xなら最初に戻…

C言語のキーワード関連図(2008年度版)

少し前のことですが,http://f.hatena.ne.jp/takehikom/20070121063702にスターをいただきました. 図ですが…少々古いです.昨年度の授業では,こうなっています. ただ,線が入り組んでいますので,PowerPointで表示するという制約を超えて,描き直したいも…

俺流逆引きCプログラミング(2)

昨日の続きです.(3)は,エントリをたくさん書いてからになります*1. Cは,どんな順番で学べばいいの? プログラミングとノック Cをマスターしたら? ミーティング(学習書について) キーワードを図にしてみる プログラムを理解するには? プログラミング課題…

俺流逆引きCプログラミング(1)

これまでMyBestというカテゴリーで,何度か,当日記の総集編的なものを出していますが,研究室や情報教育のエントリについては定期的にまとめているものの,Cの文法やプログラミングに限って,整理したことがないのに気がつきました. そこで,「C」のカテゴ…

constの位置

C

1年後期,2年前期向けに担当している,Cプログラミングの授業では,constはあまり積極的には取り上げていません.とはいえ,strlenなどで出現するので,文法として知っておかないといけません.そこで,最低限のことを説明しています.具体的には以下の3点で…

ポインタ変数,配列変数

C

ポインタとは何なのか,ということを考えるときに,まず一番最初にはっきりさせておかなければならないのは,「“ポインタ”と“ポインタ変数”は,まったく別のものである」ということです.これは「整数」と「整数型の変数」がまったく別のものであるというこ…

Cの新刊

C

プログラミング学習シリーズ C言語改訂版 2 はじめて学ぶCの仕組み作者: 倉薫出版社/メーカー: 翔泳社発売日: 2009/02/13メディア: 大型本購入: 2人 クリック: 6回この商品を含むブログ (3件) を見るJavaプログラマのためのC作法 虎の巻作者: Lepton出版社/…