演習5-1 K&R プログラミング言語C
演習5-1 問題文の意味がいまいちわかりにくかったが、 +/- と数字の間に空白があっても +/- 記号が機能するように変更すると解釈した。 +/- 記号があれば sign_c に一時保存して次の文字を読みにいく。 次の文字が数字でなければ(スペースなどの場合)sign_c に一時保存した +/- 記号を ungetch() で入力に戻し、入力が数でないという印の 0 を返す。 #include …続きを読む
演習5-1 問題文の意味がいまいちわかりにくかったが、 +/- と数字の間に空白があっても +/- 記号が機能するように変更すると解釈した。 +/- 記号があれば sign_c に一時保存して次の文字を読みにいく。 次の文字が数字でなければ(スペースなどの場合)sign_c に一時保存した +/- 記号を ungetch() で入力に戻し、入力が数でないという印の 0 を返す。 #include …続きを読む
5.1 ポインタとアドレス ポインタの算術演算例 #include <stdio.h> int main(void) { int x = 5; int *ip; ip = &x; printf("*ip => %d\n", *ip); printf("ip => %p\n", ip); *ip = *ip + 10; prin…続きを読む
演習4-14 最初に考えた答え。 #include <stdio.h> #define swap(t, x, y) { t tmp; tmp = y; y = x; x = tmp; } int main(void) { int x = 20; int y = 50; printf("x => %d, y => %d\n", x, y); swap(in…続きを読む
演習4-13 こちらの再帰は簡単に解けた。SICP 効果? #include <stdio.h> #include <string.h> void reverse(char str[]); void reverse_iter(char str[], int start, int end); int main(void) { char str[] = "hello,…続きを読む
QRコード作成 – Q作くん http://qr.popdom.jp/ 細かい設定を行える作成フォーム 画像はJPEG・PNG・透過PNGの3タイプから選択 画像サイズはLL・L・M・Sの4種類 画像への枠線の付加を選択可能 誤り訂正レベルを指定可能 余白サイズを指定可能 フリーメッセージ・アドレス帳登録・ブックマーク登録・メール作成などのデータが作成可能 入力データをCookieへ保…続きを読む
;;; reader を使ってデータを読み込み、fn で処理を行う (define (read-with-function reader fn) (lambda () (let loop ((val (reader))) (cond ((eof-object? val) ‘()) (else (fn val) (loop (reader))))))) ;;; ファイルを読み込み、1行毎に処理 fn…続きを読む
4.10 再帰(Recursion) printd の再帰のようす。 演習4-12 最初、再帰は SICP でさんざんやったので『楽勝』と思ったら、配列へ代入するタイミングの問題で文字列が逆転してしまった。 以下は修正したコード。 #include <stdio.h> #define MAX 1024 int itoa(int num, char str[]); int main(vo…続きを読む
4.6 静的変数 static 宣言した変数・関数のスコープ 外部変数や関数を static 宣言すると、そのスコープはソース・ファイルの宣言以下の部分に限定される。 以下に示す3つのファイルをコンパイルすると static 宣言した同名の変数 i のスコープはそれぞれのソース・ファイル内に限定される。 main.c #include <stdio.h> void print1(voi…続きを読む
4.4 通用範囲に関する規則 外部変数の宣言と定義について 内容 宣言 定義 働き 変数の性質(型)を指示する 記憶への割り付けを行う 数 各ファイル毎に含むことが可能(定義を含むファイルも) すべてのファイルの中に一つのみ 配列サイズ 省略可 省略不可 4.5 ヘッダ・ファイル ファイル間で共用される定義と宣言をヘッダ・ファイルにまとめて集中管理する。 プログラミング言語C 第2版 ANSI規格…続きを読む
穴掘り法という迷路作成アルゴリズムを使って、迷路を作成するプログラムを Gauche で作ってみた。 (use gauche.sequence) ; for-each-with-index (use srfi-27) ; random-source-randomize! (use srfi-19) ; date-nanosecond (use math.mt-random) ; <merse…続きを読む