ページへ戻る
印刷
blike/works
をテンプレートにして作成 ::
OSASK計画
osaskwiki
:blike/works をテンプレートにして作成
開始行:
TITLE:x
* blikeによるプログラム作品集
-(by [[K]], 2011.03.07)
*** 背景やルールなど
-blikeでどんなことができるのかを分かってもらう簡単な方法...
-しかし、ただだらだらと書いても面白くないので、いくつかの...
--あまり長くない上に、難しい構文を使わないもの。
--少し長くて、少し難しいもの。
--C言語の文法を全部使っていいもの(インラインアセンブラな...
--blikeを使っていれば、もうなんでもあり(アセンブラからbl...
-長さの基準ですが、俗に言う「1画面」を単位に考えようと思...
-難しさについては、
--プリプロセッサ命令を使わない(だから#defineもダメ)、関...
-を基準とします。配列を使わなければさらにいいですが、使っ...
-このページ群はKによって管理されているので、自作のプログ...
*** 目次
-A: proglen <= 2000 && 配列なし
-B: proglen <= 4000 && 少し難しい
-C: C言語only
-D: blikeを使えばOK
----
-[[blike/works/p0001]] : (A, proglen=1230) 宇宙基地到着ゲ...
*** 文字数を数えるプログラム
-proglen0.c
#include <stdio.h>
#include <stdlib.h>
int main(int argc, unsigned char **argv)
{
unsigned char *b = malloc(1024 * 1024);
FILE *fp;
int s, i, l;
char f;
if (argc >= 2) {
fp = fopen(argv[1], "rb");
if (fp != NULL) {
*b++ = 0;
s = fread(b, 1, 1024 * 1024 - 2, fp);
fclose(fp);
f = 0; l = 0;
for (i = 0; i < s; i++) {
if (b[i] == '\n') f = 0;
if (b[i] == '\"' && b[i - 1] != '\\') f ...
if (f != 0 || b[i] > ' ') l++;
}
free(b - 1);
printf("proglen = %d\n", l);
}
}
return 0;
}
-まだblikeでファイルやコマンドラインをどう扱うかを決めて...
-このproglen0.cのproglenは367になりました。
終了行:
TITLE:x
* blikeによるプログラム作品集
-(by [[K]], 2011.03.07)
*** 背景やルールなど
-blikeでどんなことができるのかを分かってもらう簡単な方法...
-しかし、ただだらだらと書いても面白くないので、いくつかの...
--あまり長くない上に、難しい構文を使わないもの。
--少し長くて、少し難しいもの。
--C言語の文法を全部使っていいもの(インラインアセンブラな...
--blikeを使っていれば、もうなんでもあり(アセンブラからbl...
-長さの基準ですが、俗に言う「1画面」を単位に考えようと思...
-難しさについては、
--プリプロセッサ命令を使わない(だから#defineもダメ)、関...
-を基準とします。配列を使わなければさらにいいですが、使っ...
-このページ群はKによって管理されているので、自作のプログ...
*** 目次
-A: proglen <= 2000 && 配列なし
-B: proglen <= 4000 && 少し難しい
-C: C言語only
-D: blikeを使えばOK
----
-[[blike/works/p0001]] : (A, proglen=1230) 宇宙基地到着ゲ...
*** 文字数を数えるプログラム
-proglen0.c
#include <stdio.h>
#include <stdlib.h>
int main(int argc, unsigned char **argv)
{
unsigned char *b = malloc(1024 * 1024);
FILE *fp;
int s, i, l;
char f;
if (argc >= 2) {
fp = fopen(argv[1], "rb");
if (fp != NULL) {
*b++ = 0;
s = fread(b, 1, 1024 * 1024 - 2, fp);
fclose(fp);
f = 0; l = 0;
for (i = 0; i < s; i++) {
if (b[i] == '\n') f = 0;
if (b[i] == '\"' && b[i - 1] != '\\') f ...
if (f != 0 || b[i] > ' ') l++;
}
free(b - 1);
printf("proglen = %d\n", l);
}
}
return 0;
}
-まだblikeでファイルやコマンドラインをどう扱うかを決めて...
-このproglen0.cのproglenは367になりました。
ページ名: