0から始める2chブラウザfor超漢字 "2ch de BTRON"
at TECH
1:デフォルトの名無しさん
04/10/10 18:49:10
今後、BTRONが広まるには2chブラウザが欠かせない。
しかし
パーソナルメディアは動かないだろう。
超漢字古参ユーザも動いて紅。
そこで
CやC++は当然として、BASICもPascalもFORTRANもさわったことすらない
正真正銘プログラミングど素人の私が2ちゃんねるブラウザを作ろうと思う。
2ch de BTRON←プログラミング←2chブラウザの仕組み←C言語初級←初心者←0
まさに
UNIXをつくるためにつくられたC言語、
UNIXをみんなの手に取り戻すためにLinusが0から書き起こしたLinux ver 0.1,
これらに較べれば格段に小規模でありながら、格別に困難にして遙かな道のりの、
まず自分を改造する段階から始まる超フルスクラッチのプログラミングプロジェクト。
たぶん
2年ぐらいかかると思う…いや5年?……!、∞?………on
2:デフォルトの名無しさん
04/10/10 18:49:33
これまでの経緯
超漢字ユーザみんなのために2chブラウザが欲しい
↓
ユーザに要望した
↓
半年待った
↓
梨の礫だった
↓
自分でつくることにした
↓
2ちゃんねるブラウザのソースを見た
↓
まったくわからなかった
3:デフォルトの名無しさん
04/10/10 18:49:56
↓
プログラミングを勉強することにした
↓
プログラム板で推薦図書を調べた
↓
『定本 明解C言語 入門編 (第1巻) 』がヒットした
↓
電車でGo!!
↓
街に着いた
↓
本屋で『定本 明解C言語 入門編 (第1巻) 』を立ち読みした
↓
1題目、左側にある空白がスペースなのかタブなのか悩んだ
↓
1時間立ちつくした
4:デフォルトの名無しさん
04/10/10 18:50:36
↓
初心者以下向きの本を探した
↓
『世界で一番簡単なC言語のe本』に目を惹かれた
↓
空白がインデントという名前で適当でいいことが判明した
↓
とりあえず買って帰ることにした
↓
『定本 明解C言語 入門編 (第1巻) 』
『世界で一番簡単なC言語のe本』
『プログラムはなぜ動くのか』
『コンピュータはなぜ動くのか』
↓
先週
↓
放置
↓
現在にいたる
5:デフォルトの名無しさん
04/10/10 18:51:18
sage
6:デフォルトの名無しさん
04/10/10 18:51:39
C言語の環境をインストールする
gcc = (GNU Compiler Collection)
gcc-2.95とgcc-2.95.2があって違いがわからず。
悩んだがテキストに忠実に2.95をインストール。
人生初プログラム挑戦
コマンドでのフォルダの移動がうまくいかない。
なんだかよくわからないまま移動に成功。
コンパイル失敗。
→スペルミスを発見→修正
表示に成功。
なんだかおもしろい。
おいおい、「初歩的なプログラムなんて
所詮練習のためだけの自己満足でくだらない」
と思ってたが、面白いじゃないのよ!
作成されたexeを消しては、コメントを書き直して(←意味なし。小心者)
コンパイルを繰り返した。
試しに、できたプログラムをダブルクリックしたら、
目にもとまらぬ速さでなにかが現れ消えていった。
人間に優しくないプログラムだ。
7:デフォルトの名無しさん
04/10/10 18:52:29
板違いなので誘導されてきました。
ageてごめんなさい。
8:デフォルトの名無しさん
04/10/10 19:07:33
>>1
日記は自分の日記サイトへ
9:デフォルトの名無しさん
04/10/10 19:50:33
>>8
では、拙作第1号をば。
stdioってなに?
ていうかprintf以外意味わかりません。
/* 1.c 2004/10/10 */
#include <stdio.h>
int main(void) {
printf("Hey Men\n");
return 0;
}
10:0
04/10/10 19:55:14
>>8
だいたい日記じゃないです。
プロジェクトです。
11:デフォルトの名無しさん
04/10/10 20:12:01
「Hello World」じゃないところが渋いな
12:0
04/10/10 20:33:53
/* 1-1.c 2004/10/10 */
#include <stdio.h> /* インクルード文「含めろ stdio.h」 */
int main(void) { /* 整数宣言 本体(空) */
printf("Hey Men\n"); /* 「出力せよ "Hey Men[改行]"」 */
return 0; /* まじない「戻せ 0」 */
}
わかったような、わからんような。やっぱわからん。
C入門
URLリンク(www.asahi-net.or.jp)
C言語入門(コンパイル:gcc)
URLリンク(www.stackasterisk.jp)
13:0
04/10/10 20:35:15
>>11
著作権に触れないようにテキストを編集しました。
14:デフォルトの名無しさん
04/10/10 20:35:55
C 言語覚えてから出直してくれ。
15:0
04/10/10 20:38:15
>>14
いま憶えてるところです。
放置してください?
16:デフォルトの名無しさん
04/10/10 20:40:02
超漢字って専用のAPIあるんだっけ?
あまりにマイナーなのでちょっと・・・
17:0
04/10/10 20:43:00
タブは消えるんだ…
複数半角スペースも1個になるような希ガス…
/* 1-1.c 2004/10/10 */
#include <stdio.h> /* インクルード文「含めろ <stdio.h>」 */
int main(void) { /* 整数宣言 本体(空) */
printf("Hey Men\n"); /* 「出力せよ "Hey Men[改行]"」 */
return 0; /* まじない「戻せ 0」 */
}
18:0
04/10/10 20:45:45
>>16
さっぱりわかりません。
それはだいぶ先の目標です。
>>17
あ、やっぱり消える。
みんなまさかソースのインデントに全角スペースを使ってるんですか?
2ちゃんねるに貼る時だけ?
/* 1-1.c 2004/10/10 */
#include <stdio.h> /* インクルード文「含めろ <stdio.h>」 */
int main(void) { /* 整数宣言 本体(空) */
printf("Hey Men\n"); /* 「出力せよ "Hey Men[改行]"」 */
return 0; /* まじない「戻せ 0」 */
}
19:デフォルトの名無しさん
04/10/10 20:46:32
>>18
20:デフォルトの名無しさん
04/10/10 20:48:43
普通いちいちコメントつけっかなあ
void main(){printf("HelloWorld\n");}
わ〜い 一行HelloWorldだ〜 (注:D専用)
21:0
04/10/10 20:58:17
>>19
ググリました。
NO-BREAK SPACEですか。なるほど…
全角スペースとはまた違う特殊な文字コードのようです。
わかりません。
どう使うんですか?
あ、いいです。
とりあえず前に進みます。
>>20
第1号なもんでうれしがりです(〃▽〃)
あと、自分への解説用です。
今日はこれまで。おやすみなさい。
22:デフォルトの名無しさん
04/10/10 21:06:02
>>21
使い方も何も2chに書き込むときにスペースを置換するだけ。
出力されるのはただのスペースだから特殊な文字コードでも何でもないぞ。
23:デフォルトの名無しさん
04/10/10 23:07:11
>>22
スペース出力するんじゃなくて、
ブラウザ側で半角スペースとして
認識するんじゃなかったっけ?
24:デフォルトの名無しさん
04/10/10 23:13:37
>>23
どこに難癖を付けたいのかよくわからん。
ブラウザに表示される文字のことを出力と言ってるのだがOK?
SGMLにおけるエンティティとか文字実体参照の概念はOK?
25:デフォルトの名無しさん
04/10/11 01:38:49
半角スペースとして出力するでいーです。
26:0
04/10/11 08:31:04
/* 1-1.c 2004/10/10 */
#include <stdio.h> /* インクルード文「含めろ <stdio.h>」 */
int main(void) { /* 整数宣言 本体(空) */
printf("Hey Men\n"); /* 「出力せよ "Hey Men[改行]"」 */
return 0; /* まじない「戻せ 0」 */
}
27:0
04/10/11 08:39:26
>>19>>22>>23-25
おお!
案ずるより産むが易し。
やってみました。
そうか、そうなのか。
昨日ググった時にはHTMLについてのことが書いてあったので
???だったのですが、やってみてちょっと感動。
2ちゃんねるブラウザや2ちゃんねるも
テキストみたいに見えてHTMLなのか。な?
28:0
04/10/11 09:41:21
寝る前に原理本を読むことにした。
5ページと保たなかった。
『プログラムはなぜ動くのか』
第1章 プログラマにとってCPUとはなにか
ソース
↓ コンパイル
マシン語
↓ ロード
メモリ
↓ 解釈・実行
CPU
↓ 出力
結果
29:0
04/10/11 11:14:41
/* 1-1.c 2004/10/10 */
#include <stdio.h> /* プリプロセッサ制御文 */
int main(void) { /* 整数宣言 main関数→ */
printf("Hey Men\n"); /* 式 */
return 0; /* まじない */
} /* ←main関数 */
stdio = STanDard Input/Output 「標準入出力」
h = Header 「ヘッダー」
int = Integer 「整数」
f = Function 「関数」
30:デフォルトの名無しさん
04/10/11 12:34:57
マヂレスすると、LinuxとかでC言語によるプログラミングそのものに
慣れておかないとBTRONでのプログラミングは難しいぞ。
相当特殊な環境だからな。
31:デフォルトの名無しさん
04/10/11 12:42:49
モジラでp2ではイカンの?>1
32:0
04/10/11 13:31:59
e本第4章変数
/* 2.c 2004/10/11 */
#include <stdio.h>
int main(void)
{
int number;
number = 2;
printf("第%d号機\n",number);
return 0;
}
33:0
04/10/11 13:39:04
小数を代入し表示する。
テキストでは1.5とキリのよい数字があがっているが、
なぜか1.500000と表示される。
悩んだが、前に進むことにした。
floatが有効桁7桁だからかな?
ま、いいや。とりあえず右手が腱鞘炎になりそうなので中断。
打ち慣れないバックスラッシュのキー位置がつらい。
/* e1.c 2004/10/11 */
#include <stdio.h>
int main(void)
{
float a;
a = 1.5;
printf("a = %f\n",a);
return 0;
}
34:0
04/10/11 13:43:19
>>30
クロス開発環境というやつですか。
いまは憎っくきWindows上でやってます(;´Д`)
とりあえずcの初心者になってからLinuxに移行します。
正真正銘のど素人なので
他の環境を固定しとかないと、
なにが失敗要因なのか特定しにくく
挫折を早めると思いますので。
>>31
私が見た時にはもう配布中止になってました。
そもそもp2って超漢字で使えるようになるんですか?
35:0
04/10/11 13:48:52
>>30
マイクロスクリプトやプログラミング言語Tはどうなんですか?
使い勝手とか、「こんなんじゃ小物すら作れん」とか、
「いや、意外と使える。みんな小物はマイクロスクリプトでやってる」とか、
「すばらしい。これぞ教育用プログラミング言語だ。T言語萬歳」とか、
なんぞ感想をいただけるとうれしいです。
36:デフォルトの名無しさん
04/10/11 13:49:27
Cを勉強してからじゃなく
ブラウザを作りながらCを学べ
37:0
04/10/11 13:50:58
>>36
>ブラウザを作りながらCを学べ
やってみましたとも。
挫折しました。
私は初心者ですらなかったようです(;・∀・)
38:31
04/10/11 13:58:53
>>34
ググッただけだからリンク切れなのかもしれんけど
URLリンク(www.personal-media.co.jp)
にFirefox0.7のビルドパッケージがあるらしい
で、p2別の所に立てればよいのでは?
39:デフォルトの名無しさん
04/10/11 14:01:49
>>34
そのうち配布されるようになるだろうからしばし待て。
> そもそもp2って超漢字で使えるようになるんですか?
mozillaが動けば使えるんじゃない?
40:31
04/10/11 14:05:22
>>34
普通に配布されていたよ...orz >Firebird0.7
URLリンク(www.chokanji.com)
41:デフォルトの名無しさん
04/10/11 14:17:00
>>36
0はプログラミングの経験はなさそうなのでむりぽ。
42:0
04/10/11 17:26:40
頭の芯から疲れる本だ。
『プログラムはなぜ動くのか』
第1章 CPU
CPUは、メモリから命令やデータをレジスタに出し入れ・
計算・並べ替えして、演算をこなす。
第2章 2進数
2進数の特徴はなかなかおもしろい。
2^8 = 8bit = 1Bite
2^8 = 256(「にごろ」ゲームジャンルで聴いたことがある。)
2^10 = 1024(「キロ」ハードディスクで聴いたことがある。
2^16 = 65536(実身数制限の壁(;´Д`))
シフト演算
計算演算
論理演算
NOT, AND, OR XOR
左シフト、右シフト
int 最大桁が符号を表し、桁あふれするとあふれたのは消える(;´Д`)イイノカ
第3章 小数点数
十進小数と二進小数の相性の悪さが計算誤差を生む。
Excelの馬鹿さ加減に少し納得。BODでも使えよ、重くていいから。
float 0-00000000-00000000000000000000000
double
エクセス○○(忘れた)
浮動小数点数 符号-指数-仮数
43:0
04/10/11 17:33:22
>>38>>40
ありがとうございます。
>>39
> そもそもp2って超漢字で使えるようになるんですか?
ところがですね、以前にMox2chを使えるかどうか試そうと思って、
とりあえずFirefoxにタブブラウザ拡張を入れようと思ったんですよ。
そしたら、手順どおりに進んだんですが最後に超漢字がフリーズ。
再起動したら、Firefoxが起動しない。(上書きインストールして復帰しましたが)
というわけで、p2は試してないんですが、嫌な予感がするでしょ?
>>41
ええ0ですから。
さいしょから0を名乗っていたんですが半角の0は名前に使えないようです。
というわけでよりはずかしい全角の0がハンドルネームです←何かの罰ですか
44:デフォルトの名無しさん
04/10/11 18:18:28
>>43
p2はサーバを用意して(超漢字でなくてLinuxなどでOK)、それをMozillaなどの
普通のWebブラウザで見る構成なのだが。
WebブラウザがJavaScriptやCookieをサポートしているのなら何もしなくても見れる。
45:0
04/10/11 18:51:07
>>44
ということはもう一台パソコンが必要なんですね。
ありません…
超漢字版のFirefoxはCookieはサポートしてましたが
JavaScriptはだめだったような気がします…
とおもって調べたらサポートしてました。
Mozilla Firebird 0.7 for 超漢字
URLリンク(www.chokanji.com)
ということは、私以外の人は古いマシンをサーバにして
p2でにちゃんねるブラウザが使えるようになりますね。
このプロジェクトの矛先が消えた…on
46:0
04/10/11 18:54:15
>>44
ところでサーバって個人で建てられるものなんですか?
インターネットは大学とかのイントラネットと商用ネットを
共通規格によって緩やかにつなぐものだという認識なのですが、
個人がサーバを建てるのは(できるとしたら)なんのためですか?
えー………、udとかの延長で社会貢献?
47:0
04/10/11 19:38:04
例題2
/* e2.c 2004/10/11 */
#include <stdio.h>
int main(void)
{
int a,b;
a = 1;
printf("a = %d\n",a);
b = a;
printf("b = %d\n",b);
a = 2;
printf("a = %d\n",a);
return 0;
}
48:0
04/10/11 19:42:34
例題3
なるほど、変数は初期化しないと0じゃなくて「なにか」がでちゃうのね。
/* e3.c 2004/10/11 */
#include <stdio.h>
int main(void)
{
int a;
printf("a = %d\n",a);
return 0;
}
49:0
04/10/11 19:51:12
/* 3.c 2004/10/11 */
#include <stdio.h>
int main(void)
{
int number;
number = 2 + 1;
printf("第%d号機\n",number);
return 0;
}
50:0
04/10/11 19:58:05
/* 練習4.c 2004/10/11 */
#include <stdio.h>
int main(void)
{
int number;
number = 3;
number = number + 1;
printf("練習 %d 題目\n",number);
return 0;
}
51:0
04/10/12 08:04:09
/* e5.c 2004/10/12 */
#include <stdio.h>
int main(void)
{
int a,b,c;
a = 2;
b = 5;
c = a * b;
printf("Ans = %d\n",c);
return 0;
}
52:0
04/10/12 08:05:20
/* e6.c 2004/10/12 */
#include <stdio.h>
int main(void)
{
float a,b,c;
a = 0.2;
b = 0.5;
c = (a * b) / 2;
printf("Ans = %f\n",c);
return 0;
}
53:0
04/10/13 05:45:05
/* p1.c 2004/10/12 */
#include <stdio.h>
int main(void)
{
int a,b,c;
a = 2;
b = 5;
printf("a = %d\n",a);
printf("b = %d\n",b);
printf("値の入れ替え\n");
c = a;
a = b;
b = c;
printf("a = %d\n",a);
printf("b = %d\n",b);
return 0;
}
54:0
04/10/13 05:48:28
/* p2.c 2004/10/12 */
#include <stdio.h>
int main(void)
{
double r,pi,l,a;
r = 10;
pi = 3.141592654;
l = 2 * pi * r;
a = pi * r * r;
printf("半径 = %f\n",r);
printf("円周 = %f\n",l);
printf("面積 = %f\n",a);
return 0;
}
55:0
04/10/13 05:49:09
/* p3.c 2004/10/12 */
#include <stdio.h>
int main(void)
{
int a;
a = 90;
printf("%dmin = %dh%dm\n", a, (a/60), (a%60));
return 0;
}
56:0
04/10/13 05:50:08
/* c4.c 2004/10/12 */
#include <stdio.h>
int main(void)
{
int a;
a = 1;
printf("a = %d\n", a);
if (a < 5){
printf("Statement 1\n");
}
if (a > 5){
printf("Statement 2\n");
} else {
printf("Statement 3\n");
}
if (a > 5){
printf("Statement 4\n");
} else if (a < 0){
printf("Statement 5\n");
} else {
printf("Statement 6\n");
}
return 0;
}
57:0
04/10/13 19:13:20
/* c5.c 2004/10/13 */
#include <stdio.h>
int main(void)
{
int a, b;
a = 8;
b = 2;
printf("a = %d\n",a);
printf("b = %d\n",b);
if (a > 0 && a < 10){
printf("a > 0 かつ a < 10\n");
}
if (a > 5 && b == 2){
printf("a > 5 かつ b = 2\n");
}
if (a != 0 || b == 5){
printf("a ≠ 0 または b = 5\n");
}
return 0;
}
58:0
04/10/14 21:02:20
/* e7.c 2004/10/14 */
#include <stdio.h>
int main(void)
{
int a;
a = -1;
printf("a = %d\n", a);
if (a >= 0){
printf("%d >= 0\n", a);
}else{
printf("%d < 0\n", a);
}
return 0;
}
59:0
04/10/14 21:02:56
/* e8.c 2004/10/14 */
#include <stdio.h>
int main(void)
{
int a, b;
a = 4;
b = a % 2;
printf("a = %d\n", a);
if (b == 0){
printf("偶数\n");
}else{
printf("奇数\n");
}
return 0;
}
60:0
04/10/14 21:03:51
/* e81.c 2004/10/14 */
#include <stdio.h>
int main(void)
{
int a;
a = 4;
printf("a = %d\n", a);
if ((a%2) == 0){
printf("偶数\n");
}else{
printf("奇数\n");
}
return 0;
}
61:0
04/10/14 21:04:32
/* c6.c 2004/10/14 */
#include <stdio.h>
int main(void)
{
int a;
a = 1;
switch (a) {
case 0:
printf("a == 0\n");
break;
case 1:
printf("a == 1\n");
break;
default:
printf("a != 0 かつ a != 1\n");
}
return 0;
}
62:0
04/10/14 21:05:25
/* e9.c 2004/10/14 */
#include <stdio.h>
int main(void)
{
int a;
a = 1;
switch (a) {
case 0:
printf("a == 0\n");
break;
case 1:
printf("a == 1\n");
default:
printf("a != 0 かつ a != 1\n");
}
return 0;
}
63:0
04/10/14 21:06:18
/* e10.c 2004/10/14 */
#include <stdio.h>
int main(void)
{
int a;
a = 1;
switch (a) {
case 0:
printf("×\n");
break;
case 1:
printf("○\n");
break;
default:
printf("?\n");
}
}
64:0
04/10/14 21:08:50
>>63
なぜ return 0; が要らないんだろう。
65:デフォルトの名無しさん
04/10/14 22:33:31
>>64
この間、そのミス犯して、
しかも気づかずにコンパイル通っちゃって、
超不可解なバグに遭遇した。
C言語じゃないけどな。
66:デフォルトの名無しさん
04/10/14 23:59:03
>>64
returnを書かないとそのときのEAXの値が返される。
って言っても意味分からないだろうけど……。
67:0
04/10/16 07:14:03
/* c7.c 2004/10/15 */
#include <stdio.h>
int main(void)
{
int i;
for (i=1; i<=3; i++) {
printf("%d\n", i);
}
return 0;
}
68:0
04/10/16 07:14:59
/* e11.c 2004/10/15 */
#include <stdio.h>
int main(void)
{
int i;
for (i=3; i>=1; i--) {
printf("%d\n", i);
}
return 0;
}
69:0
04/10/16 07:15:39
/* c8.c 2004/10/15 */
#include <stdio.h>
int main(void)
{
int i, j;
for (i=1; i<=9; i++) {
for (j=1; j<=9; j++){
printf("%d * %d = %d\n", i, j, (i*j));
}
}
return 0;
}
70:0
04/10/16 07:16:48
/* c9.c 2004/10/15 */
#include <stdio.h>
int main(void)
{
int i;
i = 1;
while (i<=3) {
printf("%d\n", i);
i++;
}
return 0;
}
71:0
04/10/16 07:17:15
/* c10.c 2004/10/15 */
#include <stdio.h>
int main(void)
{
int i;
i = 1;
do {
printf("%d\n", i);
i++;
} while(i<=3);
return 0;
}
72:0
04/10/16 07:17:39
/* e12.c 2004/10/15 */
#include <stdio.h>
int main(void)
{
int i;
for (i=1; i<=3; i++) {
printf("%d\n", i*2);
}
printf("\n");
i = 1;
while (i<=3) {
printf("%d\n", i*2);
i++;
}
printf("\n");
i = 1;
do {
printf("%d\n", i*2);
i++;
} while(i<=3);
return 0;
}
73:0
04/10/16 08:28:07
/* c11.c 2004/10/15 */
#include <stdio.h>
int main(void)
{
int a[10];
a[0] = 1;
a[1] = 2;
a[2] = 3;
printf("a[0] = %d\n", a[0]);
printf("a[1] = %d\n", a[1]);
printf("a[2] = %d\n", a[2]);
return 0;
}
74:0
04/10/16 08:28:27
/* e13.c 2004/10/15 */
#include <stdio.h>
int main(void)
{
int a[100];
int i;
for (i = 0; i<=99; i++) {
a[i] = i + 1;
printf("a[%d] = %d\n", i, a[i]);
}
return 0;
}
75:0
04/10/16 08:28:54
/* c11-1.c 2004/10/15 */
#include <stdio.h>
int main(void)
{
int i;
int B[5];
B[0] = 50;
B[1] = 51;
B[2] = 52;
B[3] = 53;
B[4] = 54;
for (i = 0; i<=4; i++) {
printf("3年B組出席番号B[%d]番○○さんの体重は %d kgです。\n", i, B[i]);
}
return 0;
}
76:デフォルトの名無しさん
04/10/16 11:46:17
77:0
04/10/16 18:32:03
/* c11-2.c 2004/10/16 */
#include <stdio.h>
int main(void)
{
int i;
int B[5][2];
B[0][0] = 70;
B[0][1] = 160;
B[1][0] = 71;
B[1][1] = 161;
B[2][0] = 72;
B[2][1] = 162;
B[3][0] = 73;
B[3][1] = 163;
B[4][0] = 74;
B[4][1] = 164;
for (i = 0; i<=4; i++) {
printf("3年B組出席番号 B-%d 番○○さ〜ん\n", i);
printf("身長 %d cm、体重 %d kgです(;´Д`)\n", B[i][1], B[i][0]);
}
return 0;
}
78:0
04/10/16 18:32:45
/* e14-1.c 2004/10/16 */
#include <stdio.h>
int main(void)
{
int i, j;
int a[2][2];
a[0][0] = 0;
a[0][1] = 1;
a[1][0] = 2;
a[1][1] = 3;
for (i = 0; i < 2; i++) {
for (j = 0; j < 2; j++) {
printf("a[%d][%d] : %d\n", i, j, a[i][j]);
}
}
return 0;
}
79:0
04/10/17 20:30:54
/* p3.c 2004/10/17 */
#include <stdio.h>
int main(void)
{
int a;
a = 12;
printf("a = %d\n", a);
if (a >= 7 && a <= 12) {
printf("elementary school\n");
}else if(a >= 13 && a <= 15) {
printf("junior high school\n");
}else{
printf("unknown\n");
}
return 0;
}
80:0
04/10/17 20:31:19
/* p5.c 2004/10/17 */
#include <stdio.h>
int main(void)
{
int i, j;
for (i=1; i<=9; i++) {
for (j=1; j<=9; j++){
printf("%d * %d = %d\n", i, j, (i*j));
}
}
return 0;
}
81:0
04/10/18 20:53:17
/* p6.c 2004/10/18 */
#include <stdio.h>
int main(void)
{
int a[10];
int i;
for (i = 0; i<=5; i++) {
a[i] = i * 20;
printf("a[%d] = %d\n", i, a[i]);
}
return 0;
}
82:デフォルトの名無しさん
04/10/18 22:23:21
WideStudioで作ったらええやん。
Windowsでも動くしね。
83:デフォルトの名無しさん
04/10/19 22:20:25
WideStudioってBTRON動くっけ? ITRONは動くとか言ってるけど。
84:デフォルトの名無しさん
04/10/19 23:07:41
>>83
URLリンク(www.widestudio.org)
85:デフォルトの名無しさん
04/10/20 06:48:16
WideStudioではBTRONっぽいアプリは作れんから微妙だね。
86:デフォルトの名無しさん
04/10/21 06:08:05
2chブラウザ作るなら最低限TRON作法は守ってほしい。
87:デフォルトの名無しさん
04/10/22 18:17:50
return 0;の意味はちゃんとわかってたほうがいいような?
おまじないってやってる本あるけど、どうなのかな・・・。
はじめから
void main(void)って覚えたほうが良いと思う。
88:デフォルトの名無しさん
04/10/22 23:37:22
>>87
釣りなら他でやれよ。
89:デフォルトの名無しさん
04/11/08 09:34:36
おっと偶然発見。
なんややっぱり挫折かwプ
90:0
04/11/25 09:24:16
関数の巻
/* c121.c 2004/11/24 */
#include <stdio.h>
int main(void)
{
int a, b, c;
a = 2;
b = 8;
c = a + b;
printf("%d + %d = %d\n", a, b, c);
a = 5;
b = 5;
c = a + b;
printf("%d + %d = %d\n", a, b, c);
return 0;
}
91:デフォルトの名無しさん
04/11/25 19:57:33
ホントに出来るか知らんけど、とにかくガンガレ!
92:デフォルトの名無しさん
04/11/27 02:29:41
超漢字か。ansi準拠のライブラリさえなかった気がするのだが。
#つーか、そもそもクロス開発しないとやってられない気がする。
いずれにしても、PCの知識、Webの知識、文字コードの知識、BTRONの知識、Cの知識を
これから身に付けていくつもりなのかな? はたして何スレかかるんだろうねぇw
93:0
04/11/28 08:50:47
/* c122.c 2004/11/27 */
#include <stdio.h>
int Add(int a, int b) /* 戻り値の型 関数名(引数の型 引数名,引数の型 引数名) */
{
int c;
c=a+b;
return c; /* return 戻り値 */
}
int main(void)
{
int a,b,c;
a=3;
b=7;
c=Add(a,b);
printf("%d + %d = %d\n",a,b,c);
a=5;
b=5;
c=Add(a,b);
printf("%d + %d = %d\n",a,b,c);
return 0;
}
94:0
04/11/30 21:59:35
/* c123.c 2004/11/30 */
#include <stdio.h>
void Add(int a, int b) /* 戻り値の型 関数名(引数の型 引数名,引数の型 引数名) */
{
int c; /* 変数cはこの関数内でのみ有効=「ローカル変数」 */
c=a+b;
printf("%d + %d = %d\n",a,b,c);
}
int main(void)
{
int a,b;
Add(a,b); /* ←実験 */
a=3;
b=7;
Add(a,b);
a=5;
b=5;
Add(a,b);
return 0;
}
95:デフォルトの名無しさん
04/12/01 00:02:41
>>94
そのコードにまともに警告を吐かないコンパイラを使っているなら、逝っとけ。
警告を吐けるのに無視している(or吐かせない設定にしている)のなら、帰れ。
つーか、ここはチラシの裏じゃない。
96:デフォルトの名無しさん
04/12/29 02:10:04
まぁ、初期化してない変数という存在を
知ることも大切なんじゃないかなとね。
ところでBCCはデフォルトでそのコードに
エラー出さないようなのだが。気のせいか。
97:デフォルトの名無しさん
05/01/31 17:34:46
三日坊主か
98:0
05/03/12 23:15:02
/*e14.c 2005/03/12 */
#include <stdio.h>
void Tashizan(void)
{
int a;
int b;
int c;
a=1;
b=1;
c=a+b;
printf("%d + %d = %d\n",a,b,c);
a=2;
b=8;
c=a+b;
printf("%d + %d = %d\n",a,b,c);
}
int main(void)
{
Tashizan();
return 0;
}
99:デフォルトの名無しさん
05/03/13 09:31:39
またはじめたんけ。
大丈夫か?
100:デフォルトの名無しさん
05/03/13 14:13:17
うんも
101:0
05/03/14 12:14:54
/* e15.c 2005/03/14 */
#include <stdio.h>
void Sub(int a, int b)
{
int c;
c=a-b;
printf("%d - %d = %d\n",a,b,c);
}
int main(void)
{
int a,b;
Sub(a,b);
a=10;
b=2;
Sub(a,b);
a=10;
b=5;
Sub(a,b);
return 0;
}
102:0
05/04/18 10:00:13
/* e15-1.c 2005/04/17 */
#include <stdio.h>
void Add(int a, int b) /* 戻り値の型 関数名(引数の型 引数名,引数の型 引数名) */
{
int c; /* 変数cはこの関数内でのみ有効=「ローカル変数」 */
c=a+b;
printf("%d + %d = %d\n",a,b,c);
}
void Sub(int a, int b) /* 戻り値の型 関数名(引数の型 引数名,引数の型 引数名) */
{
int c; /* 変数cはこの関数内でのみ有効=「ローカル変数」 */
c=a-b;
printf("%d - %d = %d\n",a,b,c);
}
103:0
05/04/18 10:02:48
int main(void)
{
int a,b;
a=2;
b=8;
Add(a,b);
a=10;
b=5;
Sub(a,b);
return 0;
}
104:デフォルトの名無しさん
05/04/18 13:59:19
emacs for BTRONの上でNavi2chを使え。
105:0
05/04/19 07:43:41
/* c13.c 2005/04/19 */
#include <stdio.h>
int main(void)
{
int a;
a=1;
printf("a: Value[%d],Address[%p]\n", a, &a);
return 0;
}
106:0
05/04/19 07:44:43
>>104
初心者なもので、もっと詳しく書いていただかないと理解すらできませんorz
107:0
05/04/19 07:47:58
このとおりお願いしますsto>>104
108:デフォルトの名無しさん
05/04/19 16:12:22
>>106
なんで自称初心者って2ちゃんねるでスレ建てできてもgoogleが使えないんですか?
初心者なのでわかりません。よろしくお願いしますsto
109:0
05/04/20 13:45:49
/* c16.c 2005/04/19 */
#include <stdio.h>
int Sub(int,int);
int Sub(int a, int b)
{
int c;
c=a+b;
return c;
}
int main(void)
{
int a;
int b;
int c;
a=1;
b=9;
c=Sub(a,b);
printf("%d + %d = %d\n", a,b,c);
a=2;
b=8;
c=Sub(a,b);
printf("%d + %d = %d\n", a,b,c);
return 0;
}
110:デフォルトの名無しさん
05/04/20 14:06:11
>>3
>1題目、左側にある空白がスペースなのかタブなのか悩んだ
こいつみどころあるな。
おれは、インデントがタブかスペースかなんて考えたこともなかったよ。
111:デフォルトの名無しさん
05/04/20 20:27:33
ちょっとペース遅くないか?
もっと飛ばしていかないと面白くないっしょ?
112:0
05/04/21 09:43:55
/* c16.c 2005/04/20 標準関数の巻*/
#include <stdio.h> /* STunDard Input Output Header */
#include <math.h> /* MATHmatics Header */
int main(void)
{
double a;
double b;
a=5.0;
b=sqrt(a); /* square root */
printf("aの平方根は%fです\n",b);
return 0;
}
113:0
05/04/21 13:17:03
%d Decimal number
%f Floating-point number
%c Character
%s character String
%p Pointer
114:デフォルトの名無しさん
05/04/22 00:17:27
>>112
英語の勉強もしましょう。
115:0
05/04/22 11:04:57
/* c14.c 2005/04/22 ポインタの巻 */
#include <stdio.h>
int main(void)
{
int a;
int *p; /* 「間接演算子」*により、int型の変数のアドレスを指し示す " p " */
a=1;
p=&a;
printf("a: 値[%d]、アドレス[%p]\n", a,&a);
printf("p: 値[%d]、アドレス[%p]\n", *p,p);
return 0;
}
116:デフォルトの名無しさん
05/04/22 17:10:51
淡々と進んでるな・・・
117:デフォルトの名無しさん
05/04/22 18:03:37
ようやくポインタまで来たか。
まだまだ先は長いな・・・。
118:0
05/04/23 11:12:20
/* c15.c 2005/04/23 ポインタとアドレスの関係 */
#include <stdio.h>
int main(void)
{
int a;
int *p;
a=1;
p=&a; /* アドレスは必ず指定!!!!! */
*p=100;
printf("a: 値[%d]、アドレス[%p]\n", a,&a);
printf("p: 値[%d]、アドレス[%p]\n", *p,p);
return 0;
}
119:デフォルトの名無しさん
05/04/23 12:14:58
>>118
どうでもいいっちゃどうでもいいのだが、
printf("a: 値[%d]、アドレス[%p]\n", a,&a);
___________↑↑
|  ̄|
ここは半角スペース入ってて ここは入ってないのが気になった。
120:デフォルトの名無しさん
05/04/23 12:15:43
スl レH
121:デフォルトの名無しさん
05/04/23 12:46:17
まずマイクロスクリプトで作れよ。
122:デフォルトの名無しさん
05/04/23 12:46:48
まずマイクロスクリプトで作れよ。
123:0
05/04/24 11:27:06
/* p4.c 2005/04/24 */
#include <stdio.h>
int main(void)
{
int a;
a=90;
printf("%dmin = %dh%dm\n", a, (a/60),(a%60));
return 0;
}
124:0
05/04/24 13:02:28
/* p7.c 2005/04/24 */
#include <stdio.h>
void mtoh(int a)
{
printf("%dmin = %dh%dm\n", a, (a/60),(a%60));
}
int main(void)
{
int a;
a=90;
mtoh(a);
return 0;
}
125:デフォルトの名無しさん
05/04/24 13:38:48
なんだこのチラシの裏は!!!
126:デフォルトの名無しさん
05/04/24 20:15:28
超漢字ってこんな短いコードで作れるのか?
すげぇなぁ…。さすが東大。
127:デフォルトの名無しさん
05/04/25 01:21:15
超漢字って開発環境ってついてくるの?
128:蕪木ら某 ◆Googl8RmwA
05/04/25 04:49:13
>>127
URLリンク(www.chokanji.com)
URLリンク(www.personal-media.co.jp)
URLリンク(www.widestudio.org)
URLリンク(www.personal-media.co.jp)
スレリンク(os板)l50
etc.
129:0
05/04/27 14:20:42
/* p8.c 2005/04/26 */
#include <stdio.h>
void school(int a)
{
if (a>=7 && a<=12){
printf("小学校\n");
}else if(a>=13 && a<=15){
printf("中学校\n");
}else{
printf("不明\n");
}
}
int main(void)
{
int a;
a=12;
school(a);
return 0;
}
130:デフォルトの名無しさん
05/04/27 17:01:54
粛々と進めているんだな…
>>129さんは,今はどういう環境で実験してるの?
BTRONって良く知らないんだよね…
131:0
05/04/28 12:10:42
>>130
憎っくきWindows上
132:デフォルトの名無しさん
05/04/28 23:22:00
>>131
ダメじゃんw
133:0
05/04/29 12:09:40
/* c181.c 2005/04/29 文字 */
#include <stdio.h>
int main(void)
{
char c;
c='M';
printf("%c", c);
return 0;
}
134:0
05/04/30 08:52:21
/* c182.c 2005/04/30 文字列 */
#include <stdio.h>
int main(void)
{
char s[7]="αβγ";
printf("%s\n", s);
return 0;
}
135:デフォルトの名無しさん
05/04/30 09:17:39
> char s[7]="αβγ";
自分で数を数える愚は避けよう。
この場合、char s[] = ...; で充分。
136:0
05/04/30 10:55:15
>>135
なるほど〜
勉強になりました。
ありがとう。
>char s[] = ...;
で、キャラクターストリングスの長さは自動的に格納されるのですね。
137:デフォルトの名無しさん
05/04/30 11:18:11
勿論、
char s[]="αβγ";
とした場合に
char s[7]="αβγ";
と解釈されるという意味でね。
つまり、初期化のときにしか使えない手法ということ。
138:0
05/04/30 11:56:52
>>137
今はまだ写経の段階ですので理論的解説を加えていただいて助かりましたですハイ
139:デフォルトの名無しさん
05/04/30 12:18:44
2ch も BTRON も無関係だな
140:デフォルトの名無しさん
05/04/30 13:42:07
BTRONの開発環境って最悪らしいから、BTRON上のJavaVM
で動くアプリを考えた方がよさそうな気がするが。
JavaVMがないならまず用意してもらわないとならんが、
遠回りするだけの価値はあるはず。
141:0
05/05/01 13:24:51
/* c183.c 2005/05/01 宣言文と初期化の分離 */
#include <stdio.h>
int main(void)
{
char s[7];
s[0]='A';
s[1]='B';
s[2]='C';
s[3]='\0';
printf("%s\n", s);
return 0;
}
142:0
05/05/02 11:44:01
/* c191.c 2005/05/02 標準入力 */
#include <stdio.h>
int main(void)
{
char s[10];
scanf("%s", s);
printf("%s\n", s);
return 0;
}
143:0
05/05/02 11:59:38
>>142
宣言した長さは10文字分のはずなのに131文字まで入出力できるのはなぜですか?
もしかしてまたタブーを犯しましたか?
144:デフォルトの名無しさん
05/05/02 19:51:22
forでdeとは折衷な
145:デフォルトの名無しさん
05/05/02 21:42:03
>>143
その通り。scanf()を使いたいなら(その例の場合)%9sとしてバッファオーバーランを防止すべき。
普通は、fgets()で1行入力してそれをsscanf()なりその他の手段で分解する。
恐らくは、一歩ずつ手探りで進んでいるようだがあまりに進捗が悪すぎる。
それに、疑問に感じたならばC関連のスレをざっと眺めてはどうだろうか。
scanf()の弊害など、何度も話題になっているから容易く見つかることだと思うが。
146:デフォルトの名無しさん
05/05/02 23:33:14
この板1年以上ぶりにきたら
なんかいいスレ立ってるな、応援してっぞ
俺も参加したいけど"超漢字"もってないしな
X21で動くのかな?
確か2万位だったかな?
買ってみるかな...
まずは調べるか...
147:146
05/05/02 23:50:24
X21で一応動いてるみたいだな
直販2万5千、登録2万
どゆこと? 登録ユーザってのは買って登録したひとってこと?
ソフマップとかで取り寄せて買ったらやすく買えるのかな?
買ったひと情報プリーズ
ってか、他の板の超漢字に付いてのスレッドってあるの?
まとめていただけるとありがとぉ ござりまう
148:デフォルトの名無しさん
05/05/03 01:06:58
超漢字ってターミナルエミュレータってあるの?
どのシェルが動くとか聞いたことないんだけど
149:デフォルトの名無しさん
05/05/03 02:23:31
正直、超漢字ってどれくらいシェアあるの?
150:デフォルトの名無しさん
05/05/03 02:33:27
途中で挫折すんなよ。
応援してるから。
151:0
05/05/03 10:03:47
/* c192.c 2005/05/03 整数の標準入力 */
#include <stdio.h>
int main(void)
{
int a;
scanf("%d", &a);
printf("a : %d\n", a);
return 0;
}
152:0
05/05/03 10:25:18
>>145
アドバイスありがとう。
とても助かります。
調べてみましたが、scanfはバッファオーバーランに対して脆弱な関数のようです。
なるべく使わないように、使う場合は細心の注意を要するとありました。
>>146
私のペースでは5年以上かかりそうです。
よかったらたすけてください。
熱烈歓迎しますされます。
>>147
【超漢字】BTRON総合スレッド/5版【PMC】
スレリンク(os板)
【マターリ】TRON/超漢字初心者スレッド/2版【質問歓迎】
スレリンク(os板)
>>148
なんのことやらさっぱりわかりません。
>>150
ありがとう。
一度挫折してますけど復活しました。
153:0
05/05/03 10:26:07
>>149
そういう尺度では測れないぐらいマイナーだと思います。
154:デフォルトの名無しさん
05/05/03 21:12:10
>>148
UnixLikeな開発環境があって、そいつはBシェルもどきが動いた筈。
しかし、私が某ツールを移植するときにはその開発環境でさえまともな
ストリームI/Oがなかった。従って、その辺りから実装しなければならなかった。
155:0
05/05/06 12:12:12
/* e16.c 標準入力を使った改良 */
#include <stdio.h>
int main(void)
{
int a;
scanf("%d", &a);
printf("a = %d\n", a);
if (a<5){
printf("S 1\n");
}
if (a>5){
printf("S 2\n");
}else{
printf("S 3\n");
}
if (a>5){
printf("S 4\n");
}else if (a<0){
printf("S 5\n");
}else{
printf("S 6\n");
}
return 0;
}
156:デフォルトの名無しさん
05/05/06 12:13:10
URLリンク(ZT243059.ppp.dion.ne.jp)
おkwwwwwwwwwwwwwwwwwwwwwwwwwwww
wwwうぇwwwっうぇwwwwwwwwwwww
wwwおkwwwwwwwwwwwwwwwwwwwww
157:0
05/05/07 11:00:23
/* c201.c 2005/05/07 二次元の文字配列 */
#include <stdio.h>
int main(void)
{
int i;
int A[5][2];
char namae[5][10] = {
"A0",
"A1",
"A2",
"A3",
"A4"
};
A[0][0] = 10;
A[0][1] = 100;
A[1][0] = 20;
A[1][1] = 200;
A[2][0] = 30;
A[2][1] = 300;
A[3][0] = 40;
A[3][1] = 400;
A[4][0] = 50;
A[4][1] = 500;
158:0
05/05/07 11:02:08
for (i=0; i<=4; i++) {
printf("A[%d]さん\n", i);
printf("名前:%s\n", namae[i]);
printf("体重:%dkgで、身長:%dcm\n", A[i][0],A[i][1]);
}
return 0;
}
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5386日前に更新/126 KB
担当:undef