[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 2chのread.cgiへ]
Update time : 05/09 20:03 / Filesize : 140 KB / Number-of Response : 601
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

七行プログラミング part5



1 名前:デフォルトの名無しさん mailto:sage [2006/03/16(木) 09:02:39 ]
7行×79文字なら言語は問いません。
過去作品は、もしかしたら>>2-20あたりに。

前スレ
pc8.2ch.net/test/read.cgi/tech/1051703369/
part 3
pc2.2ch.net/tech/kako/1033/10331/1033143528.html
part 2
pc3.2ch.net/tech/kako/1018/10188/1018840143.html
part 1
pc.2ch.net/tech/kako/984/984182993.html


202 名前:デフォルトの名無しさん mailto:sage [2006/12/05(火) 00:11:12 ]
C/C++得意な人に聞きたいんだけど
&&の代わりに&を使うテクニックがあったよね
どういうときに使えるか覚えている人いる?
ぐぐり辛い…

203 名前:デフォルトの名無しさん [2006/12/05(火) 00:12:28 ]
>>201
なでしこってインタプリタなの?( ゚д゚)

204 名前:デフォルトの名無しさん mailto:sage [2006/12/05(火) 00:15:28 ]
はいそうです

205 名前:デフォルトの名無しさん mailto:sage [2006/12/05(火) 00:17:12 ]
>>202
&&は前の式がtrueなら後ろの式が評価されないけど&は評価される
ただ&は演算結果がboolean値ではないので思わぬ結果を巻き起こしやすいので
&&から&に変える場合には最新の注意が必要

206 名前:デフォルトの名無しさん mailto:sage [2006/12/05(火) 00:18:12 ]
>>202 ビット積演算子

207 名前:デフォルトの名無しさん [2006/12/05(火) 00:19:23 ]
>>202
なんか作成中なのか?

208 名前:デフォルトの名無しさん mailto:sage [2006/12/05(火) 00:29:40 ]
>>205-206
さんくす
結構限定的っぽいですねえ

>>207
いや…自分はまだそんなレベルじゃないです
過去の作品とか見ながら文字数の減らし方とか考えていてふと思ったので…
でも何か出来たら持ってきます

209 名前:デフォルトの名無しさん mailto:sage [2006/12/05(火) 00:45:21 ]
||の代わりに|なら比較的ありがちなテクニック。
あと&&の代わりに*もありがち。ただこっちはオーバフローの危険あり

210 名前:デフォルトの名無しさん mailto:sage [2006/12/05(火) 02:06:55 ]
なでしこかよww ぱっと見て「なに構想語ってんの?」とか思ってしまった



211 名前:デフォルトの名無しさん mailto:sage [2006/12/05(火) 06:36:36 ]
まあまあ
7行なら良いじゃない

なでしこはその前身のひまわりより
書きにくいとも聞くがどうなんだろ

212 名前:デフォルトの名無しさん mailto:sage [2006/12/05(火) 07:08:06 ]
特に変わらないと思う
なでしこの処理速度はひまわりの十倍です

213 名前:デフォルトの名無しさん mailto:sage [2006/12/05(火) 07:37:08 ]
なでしこ面白いね
ただ七行にするためのテクニックを駆使するものではなさそうだけど

214 名前:デフォルトの名無しさん mailto:sage [2006/12/05(火) 09:38:44 ]
なでしこいいけど、1行80文字くらいは守ってもらおう

215 名前:デフォルトの名無しさん mailto:sage [2006/12/05(火) 10:12:36 ]
なでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこ
なでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこ
なでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこ
なでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこ
なでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこ
なでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこ
なでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこなでしこ

216 名前:デフォルトの名無しさん [2006/12/05(火) 10:34:18 ]
>>215
一見ただの荒らしに見えるが、「なでしこ」という文字の中にひとつだけ
違うものが混じっている。探してみよう!















m9(^Д^)

217 名前:デフォルトの名無しさん mailto:sage [2006/12/05(火) 12:01:37 ]
随分ノリノリだな

218 名前:デフォルトの名無しさん mailto:sage [2006/12/05(火) 17:45:46 ]
TTSneoのことも思い出してあげて下さい

219 名前:デフォルトの名無しさん mailto:sage [2006/12/05(火) 21:33:18 ]
なにそれ?

220 名前:デフォルトの名無しさん mailto:sage [2006/12/05(火) 21:41:03 ]
なでしこのようなものです



221 名前:デフォルトの名出しこさん mailto:sage [2006/12/05(火) 23:46:00 ]
なでしこでインデント禁止だと辛いです。この間、テトリス作って15行でした。
>>191の真似してメール送信フォームです。

S="メールホストvメール差出人vメール宛先vメール件名vメール本文";C=~もし回数=5ならメール送信;終
S=(Sをvで区切)を全角変換;文字サイズ=16;反復,対象を9,回数*36-24へ文字表示;
ダイアログ数値変換=0;155,10へ移動;4回,E\回数をエディタとして作成;E[回数]→W=400
E\5をメモとして作成;E\5→W=400;E\5→H=230;母艦のタイトル="メール送信";送信とはボタン
その位置="560,365";そのクリック時=~Sで反復,EVAL(対象&「=E[{回数}]→テキスト」),C

222 名前:デフォルトの名無しさん mailto:sage [2006/12/06(水) 03:47:10 ]
>221
暗号臭くなって来て良い感じw

223 名前:デフォルトの名無しさん [2006/12/06(水) 09:46:20 ]
>>221
イイヨイイヨー

224 名前:デフォルトの名無しさん mailto:sage [2006/12/06(水) 15:44:47 ]
1行目の「終」はなでしこならではだね
ホントは「終わり」だったと思うけど
なでしこは漢字+送り仮名の命令に対して
助詞以外の送り仮名は飛ばす
Mindとかでもそうなってるハズ

225 名前:デフォルトの名無しさん mailto:sage [2006/12/13(水) 08:49:50 ]
>>221
ちょっとなでしこに興味湧いた


226 名前:デフォルトの名無しさん mailto:sage [2006/12/19(火) 00:19:30 ]
com2textを半角カナバージョンで、
ファイル指定は8.3形式で、
ゴミがつくのは仕様で、
実行は自己責任で。

H72タPQSVWP[Pクツツ0G=0GAs2A0GN1GP0GY0G[0Gg0Gl0Gv1Gy3ノア0T_)マ)マWセSテ、Iu>%
@3ロKCuフXセ}テ_="@3タャ,&|9uナ_^[Y3タテHP[アトャ<。xタ,0,0ムロムミェ<ノu,)ラ#
Oコ1ス60ニX@ス50ニ@Xスp01?Q1テ30シp0Jソp0ク@ル5キWuヒシ06Nニ@uフi[mコ4スウ06ニ@セ50コ*Oシ30スD51ニ@rタj
(UソD1[[2_Iノシ300Iタカネフネ+ヘNSl12WH2HオTj(ラネヘネヘpYチCコ1ニ@I_シ30カu_ネコ1ニ@T4jロVjシコ[1ス60ニ@
_ス50ニ@セ450ユウスC?0コ1ニ@コ-Oニ@コ1ス460ニ@ス550ニ@ニ@TXKIタXXY1[[X]Xシ?チチHSNH>SPiIPH4SWHSXH
BS\HS]H2ScHSfHdSkHSlIZトクHZ_DVヌDヌ[ソYTチイTjOB`65PIヘUJQjニ\ソnNチ_NAPIGタカFCnL^jツ__]\
LIタチTX]8クツカNーlGタFHFHネJヘネネオNトdjFDヒA6'5B0000'000000&

227 名前:デフォルトの名無しさん [2006/12/19(火) 01:57:17 ]
バイナリは誰かがためしてからじゃないと怖くて実行出来ないです><

228 名前:デフォルトの名無しさん mailto:sage [2006/12/19(火) 02:20:51 ]
誰かが試しても実行できないけど、自分自身をcom2textしているのはわかった。
行末の改行そのままでいいの?

229 名前:デフォルトの名無しさん mailto:sage [2006/12/19(火) 12:45:39 ]
>>228
やってみた。
・行末の改行はCRLFを残す
>>226の行末についてしまっている空白は取り除く
・JIS X0201
で。

コード表眺めて気がついたけどNOP使えないから小賢しい技はちょっと使いづらいね。

230 名前:226 mailto:sage [2006/12/20(水) 00:14:09 ]
行末の空白をひとつだけ無視できるように。
ファイルにリダイレクトした時そのまま使えるように。
変な事してるっぽいけど気にしない。

H72タPQSVWP[Pクツツ0G;0G?s1KA0GP1GR0G[0G]0Gi0Gn0Gz3ノア0T_)マ)マWセTテ、Iu>5
4@3ロCAKuフXセ}テ_="54@ャ,&|9uナ_^[Y3タテHP[アトャ<。xタ,0,0ムロムミェIu-tル######Xスp01?Q1テ30シp0
Jソp0ク@ル5キWuヒシ06Nニ@uフi[gコ4スァ0.ニ@セ10コ*Oシ30ス951ニ@rタj(Uソ91[[2_Iノシ300Iタカネフネ+ヘNSl12
WH2HオTj(ラネヘネヘpYチCコ1ニ@I_シ30カu_ネコ1ニ@T4jロVjシコ[1ス60ニ@_ス50ニ@セ450ユウスC?0コ1ニ@コ5Oニ@ニ@T
XKIタXXY1[[X]Xシ?チチHSMHfSOiHUPAHSXHSY]HS]HS^=HSdHSgaHSmIトクcHZ_DヌD:ヌ[ソZチイBTjOJ65
cJPIヘQPJUjニ\ソn>チ_NAJJGPカFCnL^jツ__]\LIタチTX]8クツカNーlGタFHFHネZヘネネオTjdFjフAAA.AAAB00&



231 名前:デフォルトの名無しさん mailto:sage [2006/12/20(水) 00:55:25 ]
>>230
カタカナ無しは無理かな?int 21hのどこかが必ずカタカナに抵触しそうかな。
確かCD 21だったよね

232 名前:デフォルトの名無しさん mailto:sage [2006/12/20(水) 22:17:27 ]
変換効率が3/2とかなら簡単だろうけど、4/3だと難しそう。
intよりもmovやシフトが使えないのが痛い

233 名前:デフォルトの名無しさん [2007/01/02(火) 01:21:25 ]
07年age

234 名前:デフォルトの名無しさん [2007/01/18(木) 18:49:08 ]
保守がてら

参考リンク
www.4dm.org/PKU/

7行ネタが思い付かない人は、PKUに挑戦してみるのだ

235 名前:デフォルトの名無しさん mailto:sage [2007/01/19(金) 00:32:26 ]
>>234
面白いものつくってなーw


236 名前:デフォルトの名無しさん mailto:sage [2007/01/19(金) 05:22:24 ]
アセンブラ用に使えるニモニックの一覧表ってどこにあるんだっけ


237 名前:デフォルトの名無しさん mailto:sage [2007/01/19(金) 10:43:21 ]
>>236
石は……?

238 名前:デフォルトの名無しさん mailto:sage [2007/01/19(金) 11:34:14 ]
適当なバイナリ作って逆汗

239 名前:デフォルトの名無しさん mailto:sage [2007/01/19(金) 16:33:39 ]
>>236
アセンブラのソースコードでも読めば。

240 名前:デフォルトの名無しさん [2007/01/22(月) 21:26:35 ]
>>234
A+B Problemからわからんorz



241 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 19:04:29 ]
>>240
問題のヒントに答えが書いてありますがな

242 名前:240 [2007/01/23(火) 19:43:36 ]
>>241
さすがに答えはわかるwそうじゃなくて、どうやって短く書いてんのかがさっぱりわからんってこと。

243 名前:デフォルトの名無しさん mailto:sage [2007/01/23(火) 19:52:47 ]
>>242
参考程度に昔自分が書いてたコード
main(n){gets(&n);putchar(n%85+5);}
これはAとBの合計が10未満で、
入力の1Byte目がA,2byte目が空白,3byte目がB,4byte目が改行|EOFのときだけ動く。
今はテストケースが改善されて10以上もあるから通らないけどな。

244 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 19:14:12 ]
C#でブロックソート書いてみた。

using System;using System.Collections.Generic;namespace BWT{public static
class BlockSort{public static int Sort(ref byte[]data){int l=data.Length,i=1,j
;byte[][]t=new byte[l][];t[0]=data;for(;i<l;i++){t[i]=new byte[l];for(j=1;j<l;
j++){t[i][j]=t[i-1][j-1];}t[i][0]=t[i-1][l-1];}Array.Sort<byte[]>(t,new Comp()
);i=Array.IndexOf<byte[]>(t,data);for(j=0;j<l;j++){data[j]=t[j][l-1];}return i
;}}class Comp:IComparer<byte[]>{public int Compare(byte[]x,byte[]y){int r=0,l=
x.Length,i=0;for(;i<l;i++){r=(int)(x[i]-y[i]);if(r!=0)i+=l;}return r;}}}

ジャグ配列のソートを自前で実装するのは行数的に厳しいです orz
修行が足りません。

245 名前:244 mailto:sage [2007/01/24(水) 19:41:10 ]
同じくソート解除

using System;using System.Collections.Generic;namespace DBWT{struct DE{public
DE(int i,byte d){Ind=i;Data = d;}public int Ind;public byte Data;}public
static class DeBlockSort{public static void Restoration(int ind,ref byte[]data
){int i,l=data.Length;DE[] de=new DE[l];for(i=0;i<l;i++){de[i]=new DE(i,data[i
]);}Array.Sort<DE>(de,new Comp());for(i=0;i<l;i++){data[i]=de[ind].Data;ind=
de[ind].Ind;}}}class Comp:IComparer<DE>{public int Compare(DE x,DE y){if(x
.Data != y.Data){return(int)(x.Data-y.Data);}else{return x.Ind-y.Ind;}}}}


やっぱりまだまだです orz

246 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 20:24:34 ]
perl -e "for(;;){print eval<STDIN>}"

インタラクティブパールできたよー

247 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 20:31:50 ]
引数何も無しでおkだから、さ

248 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 21:10:17 ]
perl -pe '$_=eval$_'
これで十分だろと

249 名前:デフォルトの名無しさん mailto:sage [2007/01/24(水) 21:12:09 ]
それは長すぎ。
perl -pe "$_=eval($_)"
で十分。

250 名前:249 mailto:sage [2007/01/24(水) 21:13:27 ]
被った上に()の分負けてるー
orz



251 名前:デフォルトの名無しさん mailto:sage [2007/01/25(木) 02:49:12 ]
perl -pe 'eval$_'

でいいんじゃない?

252 名前:デフォルトの名無しさん [2007/01/25(木) 11:45:00 ]
これって標準入力を評価して標準出力に出力するってこと?
具体的にどういう使い方があるの?

253 名前:デフォルトの名無しさん mailto:sage [2007/01/25(木) 13:43:07 ]
irb のように使う?

254 名前:デフォルトの名無しさん mailto:sage [2007/01/25(木) 23:44:26 ]
電卓がわりとかじゃね?

255 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 00:44:33 ]
あなたの実家に腐ったイカを送りましたよ

256 名前:デフォルトの名無しさん [2007/01/26(金) 19:59:39 ]
ある変数が マイナスだったら-1、プラスだったら1 に変換するCの式
if( a<0 ){
 a=-1;
}else if( a>0 ){
 a=1;
}else{
 a=0;
}
を、なんか格好よく書くには どんな本を読んで勉強するべきでしょうか?

257 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 20:12:38 ]
>>256
(a>0)-(a<0)
(a>=0)-(a<=0)
(a>>31)|((unsigned)-x>>31) (算術シフト前提)

258 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 20:19:16 ]
まず中1の数学の教科書だと思う。
a = a ? -1 * ( a / a ) : a;


259 名前:デフォルトの名無しさん mailto:sage [2007/01/26(金) 20:22:10 ]
あ、ちがった。ゴメン。
a = a > 0 ? 1 : ( a < 0 ? -1 : 0 );
とか。

260 名前:256 mailto:sage [2007/01/26(金) 21:08:24 ]
>>258
ヒントありがとう

a = (a>0)-(a<0);
までがんばれたっぽい。



261 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 00:10:37 ]
>>260 >>257の一番上

262 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 01:55:23 ]
もうすこし短くならない?

263 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 01:56:35 ]
そういう関数があったと思ったが・・・

264 名前:デフォルトの名無しさん [2007/01/27(土) 01:58:51 ]
これ以上はむりじゃね?

265 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 06:43:02 ]
>>179の心得に従ってみた
a=a>0?1:-!!a

266 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 10:13:35 ]
>>183に従え

267 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 14:25:48 ]
>>265
スパシーバ

268 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 16:11:59 ]
>>265
:-!!
監禁されてガムテープで口縛られてるみたいだぞ

269 名前:デフォルトの名無しさん [2007/01/27(土) 16:43:12 ]
a=a>0||-!!a;

↑ってどう?

270 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 17:35:56 ]
a=5のときどうなる?



271 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 17:44:36 ]
>>269
正しく動かない。
main(){
int a = -5;
a=a>0||-!!a;
assert(a==-1);
return 0;
}

272 名前:デフォルトの名無しさん [2007/01/27(土) 17:54:52 ]
あ、そっか0か1にしかなんねーじゃん

273 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 18:04:00 ]
まだそんなこと言ってるの?
アホが1匹まじってますよ〜

274 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 18:09:37 ]
短い順

a=a>0?1:-!!a; //13
a=(a>0)-(a<0); //14
a=a>=0+(a>0)-1; //15
a=(a>=0)-(a<=0); //16
a=a>0?1:a<0?-1:0; //17

275 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 18:11:14 ]
>>274
3つ目はカッコないとだめだろ
a=(a>=0)+(a>0)-1; //17

276 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 18:13:46 ]
a>0が真のとき値は必ず-1になるんですか?

277 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 18:16:09 ]
間違えた
1desu

278 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 21:01:51 ]
環境によるんじゃないかなぁ、実のところ。

279 名前:デフォルトの名無しさん mailto:sage [2007/01/27(土) 23:27:29 ]
今までの作品見てて思ったんだが、音物ってまだでてないね。
やっぱりヘッダだけでもかなり文字数食うのかな。

280 名前:デフォルトの名無しさん [2007/01/27(土) 23:37:20 ]
>>279
1行食うからな…

でもwindows.hだけでbeep音は鳴らせるよな?



281 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 00:09:18 ]
10 BEEP

282 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 00:25:02 ]
>>279
昔のMSXとかBASIC見たいにMML鳴らせればねえ

283 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 00:58:37 ]
10 PLAY ALLOC 0: PLAY "CDEFG"

284 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 02:23:05 ]
cygwinとかbsd系でdsp使える環境
#include <sys/ioctl.h>
#include <fcntl.h>
int main(void){int rfd,dfd;char buf[1024];rfd=open("/dev/random",O_RDONLY);dfd=
open("/dev/dsp",O_WRONLY);while(1){read(rfd,buf,1024);write(dfd,buf,1024);}}

音なるよ

285 名前:デフォルトの名無しさん [2007/01/28(日) 02:42:59 ]
それで4行なら7行で方形波生成+メロディ位いけるんじゃないか?

286 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 02:48:27 ]
>>284
read, write未定義って言われる・・・

287 名前:デフォルトの名無しさん [2007/01/28(日) 02:50:37 ]
cygwinいれんのマンドクセ
会社行ったらやってみよ

288 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 02:51:01 ]
#include <unistd.h>
か、
すげーーーーー音なった!!


289 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 02:52:09 ]
ちなみに、cygwinです。

290 名前:デフォルトの名無しさん [2007/01/28(日) 02:54:11 ]
ちなみにどんな音がなるんだ?



291 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 02:56:16 ]
いや、ノイズだよ。
ザーって。

292 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 02:56:56 ]
/dev/random辺りから察して砂嵐だろう

293 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 02:57:52 ]
ボリュームに気をつけたほうがいい。いつもので行ったら死にそうになった。

294 名前:デフォルトの名無しさん [2007/01/28(日) 02:58:00 ]
なんだ
ランダムだからどんなんかな〜と思ったけど、一音そんなに短いのか

295 名前:284 mailto:sage [2007/01/28(日) 02:58:13 ]
>>288 thx
>>290 /dev/randomから読み取ってdspに直書きしてるだけだから>>291です
単一の音色のソフトシンセくらいなら作れる可能性があるね7行で

296 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 02:59:21 ]
/dev/dspってすげーな。

> cat /cygdrive/c/WINDOWS/Media/tada.wav > /dev/dsp

普通にwav鳴らせるんだ・・・

297 名前:デフォルトの名無しさん [2007/01/28(日) 03:00:55 ]
こんな時間に人が沸いてきた方が驚きなんだけど。仕事中か?

298 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 03:00:59 ]
ああ、>>ちなみにcygwinのコマンドラインで
cat /dev/random > /dev/dsp
などとしても音なるよ
同じことです

299 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 03:03:29 ]
>>296
んだんだ
cygwinのdspさんはwaveファイルも使えるんだ

あとioctl()とか使ってサンプリングレートとかチャンネル数とか変えれるから、
ちょっと気張ればネット越しに音鳴らすサウンドサーバが出来る
mixingも自力で頑張ればウハウハ

コード自体はfreebsdでも動くから、bsd機をpxebootで起動させればHDDいらずで(ry


300 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 03:36:23 ]
#include <windows.h>
int d[]={659,195,2,739,184,2,783,164,4,739,220,2,659,220,2,622,246,4,659,220,2,
739,220,2,493,195,4,554,184,2,622,184,2,659,164,4,587,184,2,523,184,2,493,195,4
,440,220,2,391,220,2,361,246,4,391,220,2,440,220,2,493,195,2,440,195,2,391,246,
2,361,246,2,329,164,2,329,184,2,659,195,2,739,184,2,783,164,4,739,220,2,659,220
,2,622,246,4,659,220,2,739,220,2,493,195,4,554,184,2,622,184,2,659,164,4,587,1\
84,2,523,184,2,493,195,4,440,220,2,391,220,2,369,293,6,391,293,2,391,195,8};vo\
id b(int x,int y, int z){if(y){for(int i=0;i<z/50;++i){Beep(x,25);Beep(y,25);}}
else{Beep(x,z);}Sleep(0);}int WINAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){fo\
r(int i=0;i<sizeof(d);i+=3)b(d[i],d[i+1],d[i+2]*100);return 0;}
ノートが周波数そのままなので、七行超えてしまた。Beep()で音が鳴るPCでどうぞ。
Bio_100%の蟹味噌のインスパイアです。



301 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 03:53:05 ]
>>300
すげー、ピコピコなってるよ・・・

かに味噌なつかしす( ´ー`)



302 名前:300 mailto:sage [2007/01/28(日) 04:30:09 ]
#include <windows.h>
int d[]={659,195,2,739,184,2,783,164,4,739,220,2,659,220,2,622,246,4,659,220,2,
739,220,2,493,195,4,554,184,2,622,184,2,659,164,4,587,184,2,523,184,2,493,195,4
,440,220,2,391,220,2,361,246,4,391,220,2,440,220,2,493,195,2,440,195,2,391,246,
2,361,246,2,329,164,2,329,184,2,659,195,2,739,184,2,783,164,4,739,220,2,659,220
,2,622,246,4,659,220,2,739,220,2,493,195,4,554,184,2,622,184,2,659,164,4,587,1\
84,2,523,184,2,493,195,4,440,220,2,391,220,2,369,293,6,391,293,2,391,195,8};vo\
id b(int x,int y, int z){for(int i=0;i<z/50;++i){Beep(x,25);Beep(y,25);}}int W\
INAPI WinMain(HINSTANCE,HINSTANCE,LPSTR,int){for(int i=0;i<sizeof(d)/sizeof(in\
t);i+=3)b(d[i],d[i+1],d[i+2]*100);return 0;}
酷いバグを直して19バイト削減。曲データ抜きなら4行だから、まぁアリってことにしてくださいm(__)m

303 名前:300 mailto:sage [2007/01/28(日) 04:53:31 ]
あ、横が80文字になってるし。WinMainのintは省略できるし、b()なんて
関数化する必要ないし。漏れアホス、回線切って首吊ってきます

304 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 09:21:18 ]
>>300の真似をしてみました。
VC8以外でコンパイルできるかは不明なり。
#include <windows.h>
char a[]="949=>9>>=;9848;>>=969444949=>9>>=;98468946899===;98989;<= ;;;;98643"
"134445454545656767878989:9:;<=>",b[]="94942929999;4;468222246894942929999;46"
"894449991335566116611; 113344 4445454;;;9998886664441111111",c[]="888888822"
"2288444444448448888888222288888422844@4444444444448844444444844@@@@422422422"
"4224224224444";int x[99],i,j=32;main(){float s=110;while(j<99)x[j++]=s*=1.05\
95;for(j=0;a[i];++i,j=0)while(j++<c[i]-48)Beep(x[a[i]],30),Beep(x[b[i]],30);}


305 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 09:31:50 ]
げ、スペースが一箇所詰まってしまた。

#include <windows.h>
char a[]="949=>9>>=;9848;>>=969444949=>9>>=;98468946899===;98989;<= ;;;;98643"
"134445454545656767878989:9:;<=>",b[]="94942929999;4;468222246894942929999;46"
"894449991335566116611; 113344  4445454;;;9998886664441111111",c[]="888888822"
"2288444444448448888888222288888422844@4444444444448844444444844@@@@422422422"
"4224224224444";int x[99],i,j=32;main(){float s=110;while(j<99)x[j++]=s*=1.05\
95;for(j=0;a[i];++i,j=0)while(j++<c[i]-48)Beep(x[a[i]],30),Beep(x[b[i]],30);}

これでちゃんと鳴る……といいな。


306 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 09:39:48 ]
>>296
ワロス

知らんかった

307 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 09:57:20 ]
>>305
鳴ったよー。gcc cygwin で確認

308 名前:279 mailto:sage [2007/01/28(日) 10:24:12 ]
言った本人が何もしないのもあれなので作ってみたが、
レベル高すぎて投下する気なくす…orz

309 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 10:38:30 ]
>>305
すげーww
なんかめちゃくちゃなつかしい

310 名前:デフォルトの名無しさん [2007/01/28(日) 11:42:10 ]
>>305
bcc5.5だと
1.05\
95;
の部分がエラーになったんだけど、直したら聞けました。つーかすげーこれww



311 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 12:04:42 ]
#include <unistd.h>
#include <fcntl.h>
char a[]="949=>9>>=;9848;>>=969444949=>9>>=;98468946899===;98989;<= ;;;;98643"
"134445454545656767878989:9:;<=>",b[]="94942929999;4;468222246894942929999;46"
"894449991335566116611; 113344  4445454;;;9998886664441111111",c[]="888888822"
"2288444444448448888888222288888422844@4444444444448844444444844@@@@422422422"
"4224224224444";int x[99],d,i,j=32,k=8000,l=8;m(a,b,s){char r[4096];s*=2;a=k/a
;b=k/b;for(j=s;j--;)r[j]=(!(j%a)+!(j%b))*32;write(d,r,s);}main(){float s=1\
10;while(j<99) x[j++]=s*=1.0595;d=open("/dev/dsp",2);for(i=0;a[i];m(x[a\[i]],\
x[b[i]],30*c[i]-48),++i);}

>>305
がんばったけど、7行に出来ない(orz
とりあえず音はなるけど、和音とかしらんので鳴るだけでいいと思ってる (´・ω・` ス

312 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 12:12:40 ]
>>311
#include <unistd.h>
#include <fcntl.h>
char a[]="949=>9>>=;9848;>>=969444949=>9>>=;98468946899===;98989;<= ;;;;98643"
"134445454545656767878989:9:;<=>",b[]="94942929999;4;468222246894942929999;46"
"894449991335566116611; 113344  4445454;;;9998886664441111111",c[]="888888822"
"2288444444448448888888222288888422844@4444444444448844444444844@@@@422422422"
"4224224224444";int x[99],d,i,j=32,k=8000,l=8;m(a,b,s){char r[4096];s*=2;a=k/a
;b=k/b;for(j=s;j--;)r[j]=(!(j%a)+!(j%b))*32;write(d,r,s);}main(){float s=110;
while(j<99) x[j++]=s*=1.0595;d=open("/dev/dsp",2);for(i=0;a[i];m(x[a[i]],x[b[\
i]],30*c[i]-48),++i);}

こうだな

313 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 12:18:47 ]
#include <unistd.h>
#include <fcntl.h>
char a[]="949=>9>>=;9848;>>=969444949=>9>>=;98468946899===;98989;<= ;;;;98643"
"134445454545656767878989:9:;<=>",b[]="94942929999;4;468222246894942929999;46"
"894449991335566116611; 113344  4445454;;;9998886664441111111",c[]="888888822"
"2288444444448448888888222288888422844@4444444444448844444444844@@@@422422422"
"4224224224444";int x[99],d,i,j=32,k=8000,l=8;m(a,b,s){char r[4096];for(j=s;j\
--;)r[j]=(!(j%a)+!(j%b))*32;write(d,r,s);}main(){float s=110;while(j<99) x[j+\
+]=k/(s*=1.0595);d=open("/dev/dsp",2);for(i=0;a[i];m(x[a[i]],x[b[i]],60*c[i]-
96),++i);}

>>312もうちょっと
後はデータをファイルに持たせるとか…か

314 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 12:21:34 ]
>>311-313
dsp1.cpp:7: error: expected constructor, destructor, or type conversion before '(' token
dsp1.cpp:7: error: expected `,' or `;' before '(' token
dsp1.cpp: In function `int main()':
dsp1.cpp:7: warning: converting to `int' from `float'
dsp1.cpp:10: error: `m' undeclared (first use this function)
dsp1.cpp:10: error: (Each undeclared identifier is reported only once for each function it appears in.)
dsp1.cpp:10:11: warning: no newline at end of file

って、出る('A`)

315 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 12:25:41 ]
m(a,b,s){
多分、この書き方なんですけど、これってCでいいんですか?

316 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 12:31:09 ]
>>284に戻るけど…

using System;using System.IO;class Program{static void Main(string[]args){try{
int i=int.Parse(args[1]);byte[]h=new byte[]{82,73,70,70,36,0,(byte)i,0,87,65, 
86,69,102,109,116,32,16,0,0,0,1,0,1,0,68,172,0,0,68,172,0,0,1,0,8,0,100,97,116
,97,0,0,(byte)i,0};using(FileStream f=new FileStream(args[0],FileMode.Create))
{f.Write(h,0,44);h=new byte[i*65536];Random r=new Random(DateTime.Now.Second);
r.NextBytes(h);f.Write(h,0,i*65536);}}catch{Console.Write("Error");}}}

使い方:
hoge.exe savepath length
長さは(0〜255)*65536Bでつ。

317 名前:デフォルトの名無しさん [2007/01/28(日) 12:56:06 ]
>>302
require"base64";require'zlib';require"Win32API";$o=Win32API.new("kernel32","B\
eep",%w(i i),'v');def b(x,y,z)(0...z/50).map{$o.call x,25;$o.call y,25}end;b=
"eJybzHSYgYnhMdMOIMnPvISBBci+A2RPBpN5TN+AIhA2RPwt42GgiBZYfR6Y\nnMwE0uUNZnODSY\
iaHYwg9e1gMpMRZA6EDREHqQGxD4PVfIOqYWLwZFwCJiEm\n08NthYyqjGxAtiojSOQwAwcDAE8gP\
SA=\n";d=Zlib::Inflate.inflate(Base64.decode64(b)).unpack("S*");(0...d.size/3
).map{|i|i*=3;b d[i],d[i+1],d[i+2]*100}

ワーイ。rubyで、6行できたよー。

318 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 13:14:40 ]
>>314
C++じゃなくてCで

>>315
暗黙に int とみなされる

319 名前:デフォルトの名無しさん [2007/01/28(日) 13:38:54 ]
>>318
なったよw

320 名前:デフォルトの名無しさん [2007/01/28(日) 13:41:13 ]
>>313
データをファイルに持たせるのはルール違反



321 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 13:54:52 ]
beep ついてねーよヽ(`Д´)ノウワァァン
ということで cygwin 専用 beep エミュ。
音程が合わない時は BASE_FREQを適当に調整してください。

#include <windows.h>
#include <stdio.h>
#define BASE_FREQ8000
WINAPI BOOL Beep(DWORD freq, DWORD time){int t,tf,dt;static FILE *fp=0;if(!fp)
fp=fopen("/dev/dsp","wb");if(!freq||freq>BASE_FREQ/2)tf=0x7fffffff;else tf=
BASE_FREQ/2/freq;for(t=0;t<time*BASE_FREQ/1000;t++){dt=((t/tf))%2?127:0;fwrite
(&dt,1,1,fp);}fflush(fp);return TRUE;}

322 名前:321 mailto:sage [2007/01/28(日) 14:31:09 ]
無駄が多すぎた。
#include <windows.h>
#include <stdio.h>
FILE *p;WINAPI BOOL Beep(DWORD f, DWORD m){int B=4000,t=0,g,d;p=p?p:fopen("/de"
"v/dsp","wb");g=!f||f>B?(1<<31)-1:B/f;for(;t<m*B/500;t++){d=t/g%2?127:0;fwrite(
&d,1,1,p);}fflush(p);return TRUE;}

323 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 16:23:05 ]
Cの&& ||ってショートサーキット評価だっけ?

324 名前:デフォルトの名無しさん [2007/01/28(日) 16:26:07 ]
そうだぜ

325 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 16:32:51 ]
thx
もう少し縮められそうだ

326 名前:305 mailto:sage [2007/01/28(日) 16:54:21 ]
おー、なんか皆がんばっとる!('ω`*)
徹夜して作った甲斐がありました!

327 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 17:24:11 ]
標準入力からMMLを読んでビープで再生する
A-G: 音符; R: 休符 (数値を後置して長さ, ドットを後置して付点)
Tn: Tempo; Ln: Length
On: Octave (n=0-7); >: Octave+; <: Octave-

#include <stdio.h>
#include <windows.h>
int r,c,d,n,j,a,o=4,l=4,t=120,f[84],g[]={0,2,3,5,7,8,10};w(a){ungetc(a,stdin);
}y(){return getchar();}float s=27.5;q(int*p){for(r=0;'0'<=(d=y())&&d<='9';)r=r
*10+d-'0';w(d);r?*p=r:0;}main(){for(;j<84;j++,s*=1.0595)f[j]=s;while((c=y())!=
EOF)c+=c<'a'||'z'<c?0:'A'-'a','A'<=c&&c<'H'||c=='R'?c-'R'?a=g[c-'A']+12*o,(d=y
())=='+'||d=='#'?a+=a!=83:d=='-'?a-=!!a:w(d):0,n=l,q(&n),j=120000*((d=y())-'.'
?w(d),2:3)/t/n,c-'R'?Beep(f[a],j):Sleep(j):c=='L'?q(&l):c=='O'?q(&o),o=o>7?7:o
:c=='T'?q(&t):c=='>'?o+=o!=7:c=='<'?o-=!!o:0;}//9行47桁

俺の力ではこれ以上短くできない…orz

328 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 17:35:05 ]
あら。一行78文字になってた

#include <stdio.h>
#include <windows.h>
int r,c,d,n,j,a,o=4,l=4,t=120,f[84],g[]={0,2,3,5,7,8,10};w(a){ungetc(a,stdin);}
y(){return getchar();}float s=27.5;q(int*p){for(r=0;'0'<=(d=y())&&d<='9';)r=r*\
10+d-'0';w(d);r?*p=r:0;}main(){for(;j<84;j++,s*=1.0595)f[j]=s;while((c=y())!=E\
OF)c+=c<'a'||'z'<c?0:'A'-'a','A'<=c&&c<'H'||c=='R'?c-'R'?a=g[c-'A']+12*o,(d=y()
)=='+'||d=='#'?a+=a!=83:d=='-'?a-=!!a:w(d):0,n=l,q(&n),j=120000*((d=y())-'.'?w(
d),2:3)/t/n,c-'R'?Beep(f[a],j):Sleep(j):c=='L'?q(&l):c=='O'?q(&o),o=o>7?7:o:c==
'T'?q(&t):c=='>'?o+=o!=7:c=='<'?o-=!!o:0;}

329 名前:デフォルトの名無しさん [2007/01/28(日) 17:56:04 ]
ソース解読するための
整形ツールって無いですか?

330 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 17:56:22 ]
時代が20年くらい巻き戻ったな、このスレ



331 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 17:56:33 ]
GNU Indentは?

332 名前:デフォルトの名無しさん [2007/01/28(日) 18:31:01 ]
>>331
いけました。サンクス

333 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 21:03:16 ]
>>329
過去スレに7行のもあった希ガス

334 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 22:42:27 ]
'A' とかは数字の即値で書いたほうが短そう

335 名前:デフォルトの名無しさん [2007/01/28(日) 22:48:24 ]
>>284
BSD系って君が言ったから

OSXは、/dev/dspねぇ。。

336 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 22:50:04 ]
>>334
上でも出てるがそりゃ邪道だ

337 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 23:04:34 ]
>>335
多分あるよ。
FreeBSD5のカーネル付近から/dev/以下は自動的に作られるから。
ls -l /dev/dsp ってやってみて

それでもnot foundならkldload snd_driverでカーネルにサウンドドライバロードさせてみて
で、 ls -l /dev/dsp

338 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 23:19:02 ]
>>336
そんなん言ったら数字とか英字の判断は、
C的にはisdigitとかisalphaを使うべきとこだよ。
>'0'<=(d=y())&&d<='9';
isdigit(d=y());
こっちのほうが圧倒的に短いし。


339 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 23:23:16 ]
#includeディレクティブが一行食うから
よほど文字種判別ばかりやってるコード
じゃないと短くはならんでしょ

340 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 23:30:01 ]
>>338
テレックスで用いられるようなアルファベットが連続していない文字コードを考慮すると
'A'<=c&&c<'H'||c=='R'

'A'==c||'B'==c||'C'==c||'D'==c||'E'==c||'F'==c||'G'==c||'R'==c
ないし
!('A'-c||'B'-c||'C'-c||'D'-c||'E'-c||'F'-c||'G'-c||'R'-c)
と書かないといけないのか。
流石にこのスレ的にはつらいな



341 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 23:31:26 ]
!('A'-c&&'B'-c&&'C'-c&&'D'-c&&'E'-c&&'F'-c&&'G'-c&&'R'-c) だた

342 名前:デフォルトの名無しさん mailto:sage [2007/01/28(日) 23:58:46 ]
>>339
うちの環境だと #include<stdio.h> すれば問題なかった……っていうと、
これも邪道かなー。正しくは #include<ctype.h> だし。
どのみち環境に対して何の仮定もおかないで書くのはつらい。
mainでreturnしないのも本来問題あるわけだし。
まー、最終的には個人の裁量だから、この話題はヤメにしよう。宗教論争になりそうだ。

343 名前:デフォルトの名無しさん [2007/01/29(月) 00:15:11 ]
print"第一数字(半角数字で入力してください):";i=gets.to_i;print"第二数字(半角数\
字で入力してください):";j=gets.to_i;puts"\n足し算:%g + %g = %g"%[i,j,i+j],"引\
き算:%g - %g = %g"%[i,j,i-j],"掛け算:%g * %g = %g"%[i,j,i*j],"べき算:%g の %g\
乗 = %g"%[i,j,i**j]

ワーイ、rubyで4行、け言語できたよー。

344 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 03:05:51 ]
>>343
毛言語とはまた怪訝な言語じゃの

345 名前:デフォルトの名無しさん mailto:sage [2007/01/29(月) 13:22:28 ]
めそ

346 名前:デフォルトの名無しさん [2007/01/29(月) 13:39:59 ]
モキュ

347 名前:デフォルトの名無しさん mailto:sage [2007/01/30(火) 08:57:38 ]
和音に挑戦しようと思ったんじゃが
乗り遅れたか


348 名前:デフォルトの名無しさん [2007/01/30(火) 11:13:16 ]
キー押して音鳴らすようなの作れそうじゃね?

349 名前:デフォルトの名無しさん mailto:sage [2007/01/30(火) 22:38:47 ]
今更ながら>>305に感動

350 名前:305 mailto:sage [2007/02/01(木) 01:13:43 ]
本体部分を50バイト削減ー。
でもデータ作成に挫折った。キリのいいところまで入らない。

#include <windows.h>
char a[]=" 747:7:@:@C@AC@ACCCCCC<7<7HFHLOMLJLMLHJCJCJLMOQOMLMOTOMHHLMOOHJLMOQ"
"QTSQOOOOONMMMLLLJHGEGEC",b[]=" 747747:7:@:>@:>@>7542<7<7<<77<77>>>77>7>>77>>"
">77<<<777<7<<7:77755<<<55789:;<=>?@ABCCC>>>7",c[]="1822822822222222<<6666666"
"62442642222426624422224222222266426622242642422222222222222222228";float f(i)
{return i?f(i-1)*1.0595:55;}main(i,t){for(i=t=0;c[i]&&(t--||(t=c[++i]-*c));Be\
ep(f(b[i]-*b),40))Beep(f(a[i]-*a),40);}




351 名前:デフォルトの名無しさん mailto:sage [2007/02/01(木) 01:18:38 ]
(t--||(t=c[++i]-*c)って鼻から悪魔出ないか?

352 名前:デフォルトの名無しさん mailto:sage [2007/02/01(木) 01:23:55 ]
||は副作用ぶった切るから大丈夫だよ

353 名前:デフォルトの名無しさん mailto:sage [2007/02/01(木) 01:29:56 ]
f()を数えてなかった……。訂正、10バイト削減。

354 名前:デフォルトの名無しさん mailto:sage [2007/02/01(木) 01:30:37 ]
>>351
--が前置演算子だと動かないね。

355 名前:デフォルトの名無しさん mailto:sage [2007/02/01(木) 01:50:03 ]
本当に20年前に戻った気がするな・・・

356 名前:デフォルトの名無しさん mailto:sage [2007/02/01(木) 03:11:00 ]
>>351
鼻から悪魔が出る って表現気に入った

357 名前:デフォルトの名無しさん mailto:sage [2007/02/01(木) 10:56:16 ]
>>356
常套句。鼻から悪魔で検索してみろ

358 名前:デフォルトの名無しさん mailto:sage [2007/02/01(木) 11:48:49 ]
なるほど。生まれる前から言われてた言葉だったのか。
勉強になるなぁ。

359 名前:デフォルトの名無しさん mailto:sage [2007/02/01(木) 12:03:57 ]
351は鼻から悪魔が出るんじゃないかな。

360 名前:デフォルトの名無しさん mailto:sage [2007/02/01(木) 18:29:14 ]
出ないでない



361 名前:デフォルトの名無しさん mailto:sage [2007/02/01(木) 18:30:34 ]
351なら出ても仕様違反ではないけどな

362 名前:デフォルトの名無しさん mailto:sage [2007/02/01(木) 18:45:17 ]
どこが悪いの?

363 名前:デフォルトの名無しさん mailto:sage [2007/02/01(木) 18:52:07 ]
>>361
> c[i]&&(t--||(t=c[++i]-*c))
||はsequence pointだからt--とt=c[++i]-*cはこの順に値の変更が行われることが保証されてる

364 名前:305 mailto:sage [2007/02/01(木) 23:42:07 ]
副作用完了点とか意識してなかったわ('д`)

365 名前:デフォルトの名無しさん [2007/03/04(日) 18:06:55 ]
int puts(const char*);int main(void){return puts("age")<0;}

366 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 18:12:19 ]
かなりの趣味スレですね

367 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 18:19:55 ]
ageるからには何かネタないの?

368 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 18:24:12 ]
>>365
ネタもなしにあげとはずいぶんなおまーんこですね
↑この一文を解釈して動くプログラミング言語を作ってくれ

369 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 19:13:21 ]
宣言だけ書いとけば、使ったライブラリを勝手にリンクしてくれる、と解釈。
つまりincludeの省略か。
しかしそんなもん俺に作れるわきゃーない。

370 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 19:16:36 ]
Cの話なら、#includeしなくても直にプロトタイプ宣言すれば済むじゃん?



371 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 21:44:22 ]
(・д・)どのCの話だ?

372 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 21:53:15 ]
#includeディレクティブとリンカがどのライブラリをリンクするかは関係ないでs

373 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 22:58:55 ]
#DEFINE ネタもなしにあげとはずいぶんなおまーんこですね main(){return(0);}

374 名前:デフォルトの名無しさん mailto:sage [2007/03/04(日) 23:02:34 ]
このスレではreturnに括弧つけるのは許されないだろ、常識的に考えて…

375 名前:デフォルトの名無しさん mailto:sage [2007/03/05(月) 04:16:30 ]
って言うか生きてたんだなおまいら。

376 名前:デフォルトの名無しさん mailto:sage [2007/03/05(月) 07:42:48 ]
main関数でreturnしなかった場合、
戻り値は0になると決められているから、
return(0);は書く必要すらない。
-10文字

377 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 01:23:37 ]
どんな処理系だそれは。

% cat test.c
#include <stdio.h>
main(void){printf("hello, world\n");}

% gcc -ansi -pedantic test.c

% ./a.exe
hello, world

% echo $?
13


それとも、言ってるのはこういう意味じゃない?


378 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 01:27:49 ]
>>377
gcc -std=c99 -pedantic test.c

379 名前:デフォルトの名無しさん mailto:sage [2007/03/06(火) 01:35:29 ]
99じゃしょうがないな


380 名前:デフォルトの名無しさん [2007/05/01(火) 07:42:12 ]
age



381 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 15:53:57 ]
WinMainって
int WINAPI WinMain(HMODULE,HMODULE,LPSTR,int)
これじゃだめなのかな
bcc5.5.1とvc8.0では一応通ったんだけど

382 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 17:33:41 ]
HINSTANCEもHMODULEも意味のない構造体へのポインタだから大丈夫だろ。

383 名前:デフォルトの名無しさん mailto:sage [2007/05/01(火) 18:55:53 ]
全く問題ない

384 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 12:56:16 ]
動けばいいってんなら、HWNDでもいいし、void*でもいいだろ。

385 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 13:00:03 ]
綺麗に書くなんて下の下だな
短く書け。ただし環境依存するな。

386 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 13:05:28 ]
>>385
長いし環境依存だし、しかも纏めようとしてる辺りが気に入らない
(´・ω・`) で?

387 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 13:08:16 ]
HWND環境依存じゃないだろ?
今手元にヘッダファイル無いけど…

388 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 13:16:48 ]
帰り値も 必要ないんじゃないのか?

389 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 13:19:25 ]
main型の返り値に関しては微妙だな

390 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 14:20:55 ]
HWNDとかいう時点で十分に環境依存な気がするんだが、これは言ったらダメか。



391 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 15:07:24 ]
WinMainな時点でWindows前提なんだから議論の余地はないだろうが

392 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 15:14:24 ]
(´・ω・`) で?

393 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 16:45:18 ]
このスレでの環境依存というのはそういう意味ではなくて、
開発環境に依存するコードを書くなって事じゃないかな。
#includeなくても動く環境とか、main関数でreturnがいらない環境とか、
そういう環境もあるけど、それに依存するコードは駄目だよって意味じゃない?

394 名前:デフォルトの名無しさん [2007/05/02(水) 17:55:57 ]
(д)゚ ゚

395 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 17:57:14 ]
結論を出す必要は無いんだよ。 思ったようにコード書けばいいじゃない。


396 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 18:16:13 ]
今までこのスレ(過去スレ含)に出てきたコードを見てると
修正を加えないとコンパイルさえ通らないのばかり
よってセーフ

397 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 18:33:02 ]
大事なのは面白い事

398 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 20:34:19 ]
アウトセーフ決めるのは自分だし。
その限界の中でどれだけ短く出来るかが面白い。

399 名前:デフォルトの名無しさん mailto:sage [2007/05/02(水) 22:55:14 ]
コンパイルが通らないようなのは全然駄目だと思うが、
全然駄目なのを発表するのは自由なんじゃないの?

多くの人に評価されたいなら、コンパイルくらい通して欲しいね

400 名前:デフォルトの名無しさん mailto:sage [2007/05/03(木) 00:05:35 ]
まぁ試した、というか動く処理系を明記して欲しいわな。



401 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 13:58:47 ]
コメントも7行に入るんですか?

402 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 14:46:07 ]
すみません
あの
#include<stdio.h>
#include<windows.h>

int a = 1;

int main()
{
while(a)
{
printf("1〜8どうぞ\n0は終了\n---------");
scanf("%d", &a);

switch(a)
{
case 1: ::Beep(262, 300);break;
case 2: ::Beep(294, 300);break;
case 3: ::Beep(330, 300);break;
case 4: ::Beep(349, 300);break;
case 5: ::Beep(392, 300);break;
case 6: ::Beep(440, 300);break;
case 7: ::Beep(494, 300);break;
case 8: ::Beep(523, 300);break;
}
}
return 0;
}
これ7行にするとコンパイルできないんですよ
どうしたらいいですか?

403 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 14:58:40 ]
その7行にしたほうのコードを見せなきゃわからんだろ

404 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 15:12:47 ]
#include<stdio.h>#include<windows.h>int a = 1; int main(){ while(a){
printf("1〜8どうぞ\n0は終了\n---------");scanf("%d", &a);switch(a){
case 1: ::Beep(262, 300);break;case 2: ::Beep(294, 300);break;
case 3: ::Beep(330, 300);break;case 4: ::Beep(349, 300);break;
case 5: ::Beep(392, 300);break;case 6: ::Beep(440, 300);break;
case 7: ::Beep(494, 300);break;case 8: ::Beep(523, 300);break;}}return 0;}

>>402をそのまま短くしたんですけどエラーがたくさんでるんですよ

405 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 15:14:24 ]
実になんと言うこともないがプリプロセッサはつなげられない
#include<stdio.h>
#include<windows.h>
int a=1;int main(){while(a){printf("1〜8どうぞ\n0は終了\n---------"
);scanf("%d",&a);switch(a){case 1:Beep(262,300);break;case 2:Beep
(294,300);break;case 3:Beep(330,300);break;case 4:Beep(349,300);
break;case 5:Beep(392,300);break;case 6:Beep(440,300);break;case 7:
Beep(494,300);break;case 8:Beep(523,300);break;}}return 0;}

406 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 15:16:57 ]
そうだったんですかっ!

ありがとうございます。

407 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 19:14:08 ]
#pragma warning(push, 0);
#include <ntddk.h>
#define F(f) KeServiceDescriptorTable->s[*(PULONG)((PUCHAR)f+1)]
typedef struct{PVOID* s;PULONG c;ULONG t;PUCHAR a;}SDT;long (NTAPI *O)(HANDLE,
long);extern SDT* KeServiceDescriptorTable;long NTAPI N(HANDLE h,long s){
DbgPrint("Exit%d",s);return O(h,s);}NTSYSAPI long NTAPI ZwTerminateProcess(
HANDLE,long);void U(PDRIVER_OBJECT d){InterlockedExchange(&F(ZwTerminateProcess
),O);}long D(PDEVICE_OBJECT d,PIRP i){i->IoStatus.Status=0;IoCompleteRequest(i,
0);return 0;}long DriverEntry(PDRIVER_OBJECT d,PUNICODE_STRING r){int i;for(i=0
;i<27;++i)d->MajorFunction[i]=D;d->DriverUnload=U;O=InterlockedExchange(&F(
ZwTerminateProcess),N);return 0;}

// 実行テスト環境 Win2k(build2195)SP4
// ビルド環境 WinXP VC8 + Windows DDK 3790.1830 -> Win2k Checked Build
C_ASSERT(sizeof(SDT) == 16); // prgma pack(1)

408 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 19:14:41 ]
11行 orz


一応32bit Win2K(とたぶんXP)のNt(Zw)TerminateProcessをフクーするドライバ
ビルドしてテストできる環境は少ないと思うから面白くないかもしれない
ZwCloseとかのフックならntddk.hで宣言されてるので宣言文いらないし、
さらに環境を絞ったハードコードやら、アンインストール時に修復しない青画面直行OK仕様ならもっと削れる

けど、この内容では俺にはもうむりぽ

409 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 19:23:52 ]
#include<stdio.h>
#define B 102400
typedef unsigned char y;unsigned char b[B];int e(FILE *fp,y *i,int m){int r,c;
int x;x=0;while(x<m) {x=g(i,x,m,0xff,&r,&c);fputc(r,fp);fputc(c,fp);}return 0;}
int g(y *i,int x,int m,int l,int *r,int *c){int p;p=x;*r=1;*c=i[p];p++;
while(p<m && *c==i[p] && *r<l ) {p++;(*r)++;}return p;}int main(char *a[]){
FILE *_i,*_o;int i,c;_i=fopen(a[1],"rb");i=0;while(i<B && (c=fgetc(_i))!=EOF) {
b[i]=c;i++;}fclose(_i);_o=fopen(a[2],"wb");e(_o,b,i);fclose(_o);}

>>405作った初心者ですが
ハフマン法圧縮なんですけど作ってみました
どうしてもあと1行減らす方法が思いつかないんですけどどうしたらいいと思いますか?
目が潰れそうです

410 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 19:34:09 ]
普通のプログラミングのときの習慣を忘れればいろいろ短くなる気が



411 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 19:40:00 ]
B を const にすりゃ いけるんじゃないの?

412 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 20:10:04 ]
#include<stdio.h>
typedef unsigned char y;unsigned char b[102400];int e(FILE *fp,y *i,int m){
int r,c;int x;x=0;while(x<m) {x=g(i,x,m,0xff,&r,&c);fputc(r,fp);fputc(c,fp);}
return 0;}int g(y *i,int x,int m,int l,int *r,int *c){int p;p=x;*r=1;*c=i[p];
p++;while(p<m && *c==i[p] && *r<l ) {p++;(*r)++;}return p;}int main(char *a[])
{FILE *x,*z;int i,c;x=fopen(a[1],"rb");i=0;while(i<102400 && (c=fgetc(x))!=EOF) {
b[i]=c;i++;}fclose(x);z=fopen(a[2],"wb");e(z,b,i);fclose(z);}

ちょっと短くなりました

413 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 20:29:25 ]
先ほどの>>409>>405ではなく>>404でした

414 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 20:42:39 ]
#include<stdio.h>
int d(FILE *fp){int i;int r,c;while(!feof(fp)) {r=fgetc(fp);c=fgetc(fp);
for(i=0;i<r;i++){fputc(c,stdout);}}return 0;}int main(int ac,char *av[]){
FILE *fp;if ((fp = fopen(av[1],"rb"))==NULL)return 6;d(fp);fclose(fp);return 0;}

解凍は4行でできました。

415 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 21:00:21 ]
#pragma warning(push, 0)
#include <ntddk.h>
typedef struct{PVOID*s;}SDT;extern SDT*KeServiceDescriptorTable;ULONG F(void*f)
{return(*(ULONG*)((UCHAR*)f+1));}void*I(void*f){return InterlockedExchange(
KeServiceDescriptorTable->s+F(ZwClose),f);}long(NTAPI*O)(void*);long NTAPI N(
void*h){DbgPrint("0x%08X",h);return O(h);}void U(PDRIVER_OBJECT d){I(O);}long
DriverEntry(DRIVER_OBJECT*d,UNICODE_STRING*r){d->DriverUnload=U;O=I(N);return 0;}

機能はそのままでZwCloseにした。意外と削れた。最後の行が82文字orz アタマイタイ

416 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 21:12:22 ]
というか標準入出力にすればいいんでないかい?

417 名前:デフォルトの名無しさん mailto:sage [2007/05/06(日) 23:02:19 ]
>>409
・1度しか呼ばれない関数は定義しない
 eもgもmainに展開する
・代入で無く初期化を使う
 int x;x=0;→int x=0;
・なるべくライブラリを使う
 freadとか
・whileよりforを使う
・繰り返しは1行になるようにする
・不要なスペース、変数、typedefを削る

これで随分削れると思う
ところでハフマン符号じゃなくてランレングスだよね

418 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 00:23:37 ]
>>417
アドバイスありがとうございます
挑戦してみます

419 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 03:33:22 ]
>>412
mainの仮引数ってそんなんで大丈夫なのか?

更に短くするコツとしては、
* 関数の戻り値の型が int の時は省略する。
* 仮引数に int がある場合は、K&R式の宣言を使うと短くなる場合がある。
例えば2引数のmainなら、main(c,v)char**v{} とするのが一番短い。

420 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 03:35:04 ]
どうせすぐ終了するんだし、fcloseなんかしない、っていう手もあるなw



421 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 04:44:26 ]
こんなんでいいんじゃないか?

#include<stdio.h>
main(c,a)char**a;{FILE*i=fopen(a[1],"rb"),*o=fopen(a[2],"wb");while((c=getc(i))
!=EOF){int x=1,d;while((d=getc(i))==c&&x++<255);ungetc(d,i);putc(x,o);putc(c,o)
;}fclose(o);fclose(i);return 0;}

422 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 06:38:51 ]
>>421
すごいっすねw

423 名前:デフォルトの名無しさん [2007/05/07(月) 21:11:00 ]
>>420
mainからreturnかexitで終了するかしたらプログラムが終了する前に閉じられてないストリームは閉じられるはず。

424 名前:デフォルトの名無しさん mailto:sage [2007/05/07(月) 22:12:53 ]
すみません
ランレングスでした

425 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 17:57:09 ]
誰かお題ちょーらい

426 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 19:10:47 ]
viみたいな簡易エディタがほしいな

427 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 20:02:38 ]
www.itmedia.co.jp/news/articles/0609/06/news107.html
お題
ナンプレ自動作成ソフト

428 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 20:13:47 ]
>>427
www.timedia.co.jp/news/event/884464213/numplace20060906.pdf
これよめ
くず

429 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 22:52:28 ]
>>428
結局その最後の解き味を判定する評価関数がすべてだよなあ

430 名前:デフォルトの名無しさん mailto:sage [2007/05/08(火) 23:56:02 ]
作成より前に解くほうってもう出てたっけ? 7行で。
7行じゃなけりゃそんなに難しいお題じゃないけど。



431 名前:デフォルトの名無しさん mailto:sage [2007/05/09(水) 02:36:40 ]
枝刈りなしのバックトラックなら7行で書けたが、
答えが出ないからあってるのかわからん・・・

432 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 17:48:24 ]
計算で出せばよくね?

一定の時間のクリック数/一定の期間にクリックできる最大数

433 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 17:50:06 ]
誤爆かね

434 名前:デフォルトの名無しさん mailto:sage [2007/05/12(土) 17:51:03 ]
ばれたかねww

435 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 01:12:28 ]
まさか>>429へのレスのつもりじゃなかろうなと心配した

436 名前:デフォルトの名無しさん mailto:sage [2007/05/13(日) 10:24:33 ]
「結局その最後の解き味を判定する評価関数がすべてだよなあ」


「計算で出せばよくね?
一定の時間のクリック数/一定の期間にクリックできる最大数」


考えただけでわらっちゃう

誤爆してすみませんでした。

437 名前:デフォルトの名無しさん mailto:sage [2007/05/30(水) 23:58:22 ]
保守

438 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 23:29:07 ]
CやC++のコメントを除去するプログラムって過去に上がってたっけ?


439 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 02:14:02 ]
Perlで作ればいいだろう

440 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 16:09:05 ]

/* hogehoge /* fugafuga */ hagehage */

こんな風なコメントのときどう処理すればいいですか?




441 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 20:50:44 ]
>>440
手動

442 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 20:57:52 ]
コメントの中なに書いても良いんだから

/* hogehoge /* fugafuga hagehage */

/* hogehoge fugafuga */ hagehage */

なんかもあり


443 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 21:33:13 ]
>>442
>なんかもあり

上の例は全部コメントだからありだけど、下の例はダメだよ。

だから >>440
hagehage */
が残るのがコメント除去ツールとしては正しい処理だね。

もちろん /* から */ までと言っても、
\/* asdf */ みたいにエスケープされていたら、それはコメントにならない。

コメント閉じをエスケープするには /* *\/ と書く。

というわけで /* \*/ は正しいコメントだ。


444 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 21:42:53 ]
>>443は書き方間違った
>コメント閉じをエスケープするには /* *\/ と書く。
フツーはこう書くけど、これ、別にエスケープじゃないね。
ごめん。

445 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 00:58:13 ]
VCじゃネストコメント文だめっぽいな
Dならイイらしいが

446 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 02:18:22 ]
>>438ですが、
少しでも役に立つものがあれば…と思ったのですが、
7行の題材としてはあまり面白くなかったですかね。
頑張れば5行くらいで書けるでしょうし。

いい題材が浮かびません…。


447 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 03:47:17 ]
>>445
コメントのネストは伝統的にないことになってるはず。
>>446
5行で書く方法を思いつかない…orz

こんなコメントとか
/* printf("*/ \"\\"); */
Shift JISの2バイト目をきちんと処理できるように書くには7行じゃ足りない気がするんだけど…。



448 名前:デフォルトの名無しさん mailto:sage [2007/07/04(水) 23:04:50 ]
>>447
ヒント:7行でありさえすればいい

449 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 00:09:34 ]
>>447
>/* printf("*/ \"\\"); */
これは、コメント削除処理した結果が
\"\\"); */
になればいいんですよね?

Shift JISの2バイト目をきちんと処理できるかどうかを検証する文字列って
どんなのなのでしょうか?


450 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 08:38:24 ]
>>449
> Shift JISの2バイト目をきちんと処理できるかどうかを検証する文字列って
ソ/* */
とか?



451 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 08:43:43 ]
ちょっと違うな。こういうのか?
printf("ソ");/* */

452 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 10:04:12 ]
こんなかんじで。
#include <stdio.h>
int main(int, char *[]) {
  printf("表");/* ");/* */
  return 0;
}

というか、別に入力文字コードはUTF-8限定でもいいと思うんだけど。

453 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 11:18:18 ]
(^ω^;) (*ノ *)ノ

454 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 17:15:43 ]
n869 にこんな例があるな。

m = n//**/o
+ p;

m = n + p;


455 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 17:34:54 ]
> \/* asdf */ みたいにエスケープされていたら、それはコメントにならない。

ダウト。\/ というシーケンスは規格では定義されていない。

456 名前:デフォルトの名無しさん mailto:sage [2007/07/05(木) 18:49:59 ]
>>455>>443=444並のあわてんぼさん。

457 名前:デフォルトの名無しさん [2007/07/06(金) 00:18:02 ]
>>414のランレングス解凍、3行になったぞ。
#include<stdio.h>
d(FILE*q){int r,c;if(!q)return 6;while((r=fgetc(q))+1)for(c=fgetc(q);putchar
(c),--r;);fclose(q);return 0;}main(int c,char**a){return d(fopen(a[1],"rb"));}


458 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 00:59:33 ]
#include <stdio.h>
main(c,a)char**a;{int r;FILE*q=fopen(a[1],"rb");if(!q)return 6;while((r=getc(q)
)-EOF)for(c=getc(q);putchar(c),--r;);fclose(q);return 0;}

dをインライン展開してみた。

459 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 01:01:58 ]
言い出しっぺの>>438です。
EUCとSHIFT_JISならそれなりに処理してくれたようなのでアップします。
第一引数のファイルのコメントを除去して、標準出力に出力します。

ただし、SHIFT_JISで半角カナがあるとダメなのですが、
どうやって判別すればいいかが分かっていないので、ちょっと悩んでおります。

#include <stdio.h> /* uncomment.c */
e,m,t;main(c,v)char**v;{FILE*f=fopen(v[1],"r");for(;(c=fgetc(f))+1;m>2?m%=5:
putchar(c))e?e--:(m=c-10?c-39?c-34?c-47?c-42?c<128?c-92?m:m>2?m:e++,m:e++,m:
m-3?m:(t=fgetc(f),t-47?ungetc(t,f),m:5):m?m:(t=fgetc(f),t-47?t-42?ungetc(t,f
),m:3:4):m&5?m:!m*2:m>1?m:!m:m%4);return fclose(f),0;}



460 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 01:16:35 ]
>>457
乙w



461 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 01:17:21 ]
久々にレスが多いなw

462 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 01:48:49 ]
>>459
最初からワイド文字では駄目ですか?

463 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 02:00:33 ]
最初からワイド文字とはどういう意味ですか?


464 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 02:18:04 ]
入出力は全部wchar_tで行って、エンコーディングには関知しないという意味です。

465 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 09:42:29 ]
2進数のビットの左右の反転ってどのくらい短く書ける?
unsigned int a を左右反転させて b にっ ka

466 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 10:57:35 ]
>>465
関数だけどやってみた。b = R(a);

typedef unsigned U;U R(U a){int c=0,s,t;U n,h,l;for(n=~0;n>>=1;c++);
for(s=c;s>c>>1;s--){h=a&1<<s;l=a&1<<c-s;t=s*2-c;a^=h^h>>t^l^l<<t;}
return a;}

467 名前:466 mailto:sage [2007/07/06(金) 11:01:36 ]
typedef unsigned U;U R(U a){int c=0,s,t;U n,h,l;for(n=~0;n>>=1;c++);
for(s=t=c;s>c>>1;s--,t-=2){h=a&1<<s;l=a&1<<c-s;a^=h^h>>t^l^l<<t;}
return a;}

1文字縮め('A`)

468 名前:466 mailto:sage [2007/07/06(金) 11:08:31 ]
何度もすまんが色々間違っていた気がしてきた
何でわざわざ同じ変数内で入れ換えてるんだ俺…

469 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 13:08:37 ]
typedef unsigned U;U R(U a){U b=0,n=~(U)0,i=0;for(;n>>=1;++i)b|=((a>>i)&1)<<(n-i
);return b;}

もう少し短くなりそうだが

470 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 13:14:15 ]
typedef unsigned U;U R(U a){U b=0,n=~b,i=0;for(;n>>=1;++i)b|=(a>>i&1)<<(n-i);r\
eturn b;}

とりあえずここまで。



471 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 13:18:28 ]
久しぶりだな
スレがあるのw

472 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 13:20:42 ]
スレはずっとあるよ。なくならないよ。

473 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 13:21:26 ]
>>472
すまね
誤爆したw

レス

474 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 13:28:51 ]

  ( ゚д゚)      「誤爆」
_(__つ/ ̄ ̄ ̄/_ 
  \/    /
     ̄ ̄ ̄
 
  ( ゚д゚ )
_(__つ/ ̄ ̄ ̄/_ 
  \/    /
     ̄ ̄ ̄

  ( ゚д゚)
_(__つ/ ̄ ̄ ̄/_ 
  \/    /
     ̄ ̄ ̄

  ( ゚д゚ )
_(__つ/ ̄ ̄ ̄/_ 
  \/    /

475 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 13:30:18 ]
>>474
七行でよろw

476 名前:465 mailto:sage [2007/07/06(金) 13:34:46 ]
自分でもやってみた
typedef unsigned U;U R(U a){U b=0,i=1;for(;i;i*=2)b=b*2+!!(a&i);return b;}
iが邪魔だね・・・消せないかなぁ

477 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 13:39:01 ]
>>475
int printf(const char*format,...);char*a="  (%s゚д゚%s)%s\n_(__つ/ ̄ ̄ ̄/_\
\n  \/    /\n     ̄ ̄ ̄\n\n",*s=" ",*e="";main(){printf(a,s,e," \
   「誤爆」");printf(a,e,s,e);printf(a,s,e,e);printf(a,e,e,e);return 0;}

478 名前:デフォルトの名無しさん mailto:sage [2007/07/06(金) 13:43:04 ]
#include<stdio.h>
printf("  ( ゚д゚)      「誤爆」\n_(__つ/ ̄ ̄ ̄/_ \n  \/    /\n     ̄ ̄ ̄ 
  ( ゚д゚ )\n_(__つ/ ̄ ̄ ̄/_ \n  \/    /\n     ̄ ̄ ̄\n  ( ゚д゚)\n_(__つ/ ̄ ̄ ̄/_ 
  \/    /\n  ( ゚д゚ )\n_(__つ/ ̄ ̄ ̄/_ \n  \/    /");

479 名前:デフォルトの名無しさん [2007/07/07(土) 01:29:49 ]
>>470
typedef unsigned u;u r(u n){u i=~0,a=0;for(;i;i/=2,a=n%2+a*2,n/=2);return a;}
一行切った。

480 名前:デフォルトの名無しさん [2007/07/07(土) 01:31:44 ]
>>476の方が短かった……orz



481 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 01:34:25 ]
~0 と ~0u のビット表現って必ず等しい?

482 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 02:17:28 ]
手元に環境がないからテストしてないんだけどこんなんじゃだめ?

typedef unsigned u;u r(u n){return u?(n&1?~0-~0/2:0)+r(n/2)/2:0;}

65字

483 名前:476 mailto:sage [2007/07/07(土) 02:26:17 ]
>>481
ありがとう。これでもうまくいったみたい。
R(int a){int b=0,i=1;for(;i;i*=2)b=b*2+!!(a&i);return b;}

アルゴリズムに致命的な問題がある気がする

484 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 03:25:52 ]
R(a){int b=0,i=1;for(;i;i*=2)b+=b+!!(a&i);return b;}
R(a){int b=0,i=1;while(b+=b+!!(a&i),i*=2);return b;}

どっちも52文字
でも for文の方が わかりやすさを維持しててイイカナ

485 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 03:44:19 ]
int を for の最初の項に入れると一文字減る

486 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 03:45:04 ]
ごめん>>485は勘違い

487 名前:デフォルトの名無しさん [2007/07/07(土) 03:52:44 ]
brainfuckのインタプリタを作ってみた。

#include <stdio.h>
unsigned char M[30000],*m=M;char P[30000],*p=P;R(c){for(;c&&p>=P;*--p==']'?c++:
*p=='['&&c--);}main(i,v)char**v;{FILE*f;for(i=30000;i;M[--i]=0);if(f=fopen(v[1]
,"rt")){while(1+(*p++=getc(f)));p=P-1;while(1+*++p)*p=='>'?*++m:*p=='<'?*--m:*p
=='+'?++*m:*p=='-'?--*m:*p=='.'?putchar(*m):*p==','?*m=getchar():*p==']'&&*m&&R
(1);}}


488 名前: ◆iicafiaxus mailto:sage [2007/07/07(土) 04:29:11 ]
なんか34文字でできたっぽい
dmcでテストした

r(n){return n?r(n*2)*2+!!(n<0):0;}

489 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 04:57:53 ]
!!いらなくね?

490 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 05:01:18 ]
あーほんとだ、そりゃそうだ
32だね



491 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 05:08:40 ]
やっぱ引数だけで済ますと格段に短くなるなぁ
どうしても思いつかなかった

492 名前:デフォルトの名無しさん mailto:sage [2007/07/07(土) 05:24:11 ]
やっぱ再帰は強いね

これで30
r(n){return n?r(n*2)*2|n<0:0;}

493 名前:デフォルトの名無しさん mailto:sage [2007/07/09(月) 12:47:17 ]
ネタ振られたら物凄い勢いで加速して、
最短解っぽいのが出たら急に失速するんだなw

494 名前:デフォルトの名無しさん mailto:sage [2007/07/09(月) 16:21:29 ]
ワロタ

495 名前:デフォルトの名無しさん mailto:sage [2007/07/09(月) 23:34:47 ]
それがこのスレのいいところさ

496 名前:デフォルトの名無しさん mailto:sage [2007/07/10(火) 00:36:20 ]
>>464
なんかそれだと上手くいったりするんでしょうね。

でも僕はやっぱりワイド文字の扱いが良く分かっていないので、
もしよければワイド文字処理版を作ってみてくださいな。


497 名前:デフォルトの名無しさん mailto:sage [2007/07/10(火) 02:01:23 ]
なんだかなぁ

498 名前:デフォルトの名無しさん mailto:sage [2007/07/10(火) 17:42:56 ]
using System;using System.Drawing;class P{static void Main(string[]a){Bitmap
m=new Bitmap(a[0]);int o,p,q,r,g,b,t,l,z=int.Parse(a[2]),w,h=0,W=m.Width,H=m.
Height;Bitmap v=new Bitmap(W,H);Color c;for(;h<H;h++)for(w=0;w<W;w++){p=r=g=b=
0;for(t=-z;t<2;t++)if((o=h+t)>0&&o<H)for(l=-z;l<2;l++)if((q=w+l)>0&&q<W){c=m.
GetPixel(q,o);r+=c.R;g+=c.G;b+=c.B;p++;}v.SetPixel(w,h,Color.FromArgb(r/p,g/p,
b/p));}v.Save(a[1]);}}

画像ぼかし。
これならマスク使える…?

499 名前:498 mailto:sage [2007/07/10(火) 19:23:38 ]
using System;using System.Drawing;class P{static void Main(string[]a){Bitmap m
=new Bitmap(a[0]);int o,p,q,r,g,b,t,l,z=int.Parse(a[2]),w,h=0,W=m.Width,H=m.
Height;Bitmap v=new Bitmap(W,H);Color c;for(;h<H;h++)for(w=0;w<W;w++){p=r=g=b=
0;for(t=-z;t<z;t++)if((o=h+t)>-1&&o<H)for(l=-z;l<z;l++)if((q=w+l)>-1&&q<W){c=m
.GetPixel(q,o);r+=c.R;g+=c.G;b+=c.B;p++;}v.SetPixel(w,h,Color.FromArgb(r/p,g/p
,b/p));}v.Save(a[1]);}}

範囲が-指定値から2までになってたのを修正 orz

using System;using System.Drawing;using System.Drawing.Imaging;using System.
Runtime.InteropServices;class P{static void Main(string[]a){Bitmap m=new 
Bitmap(a[0]);int o,p,q,r,g,b,t,l,z=int.Parse(a[2]),w,h=0,W=m.Width,H=m.Height,
y=W*H*3,e;byte[]src,dst;src=dst=new byte[y];BitmapData d=m.LockBits(new 
Rectangle(0,0,W,H),ImageLockMode.ReadWrite,PixelFormat.Format24bppRgb);e=d.
Stride;Marshal.Copy(d.Scan0,src,0,y);for(;h<H;h++)for(w=0;w<W;w++){p=r=g=b=0;
for (t=-z;t<z;t++)if((o=h+t)>-1&&o<H)for(l=-z;l<z;l++)if((q=w+l)>-1&&q<W){
r+=src[o*e+q*3];g+=src[o*e+q*3+1];b+=src[o*e+q*3+2];p++;}dst[h*e+w*3]=(byte)(
r/p);dst[h*e+w*3+1]=(byte)(g/p);dst[h*e+w*3+2]=(byte)(b/p);}Marshal.Copy(dst,
0,d.Scan0,y);m.UnlockBits(d);m.Save(a[1]);}}

高速化版。誰か短くして orz

500 名前:デフォルトの名無しさん mailto:sage [2007/07/11(水) 00:07:15 ]
総和テーブルでいいじゃんか



501 名前:デフォルトの名無しさん mailto:sage [2007/07/11(水) 08:57:14 ]
そうわ思わないな

502 名前:デフォルトの名無しさん mailto:sage [2007/07/12(木) 02:21:33 ]
CPU対戦の七行すごろくを考えてみたんだが、
動作確認テストをやっている最中に虚しくなってやめた。

ゲームって難しいなぁ。


503 名前:デフォルトの名無しさん mailto:sage [2007/07/13(金) 00:56:21 ]
>>1 を見てたんだけど、
part4って297レスしかつかなかったの?


504 名前:デフォルトの名無しさん mailto:sage [2007/07/13(金) 00:58:33 ]
>>40にあった。ごめん。


505 名前:デフォルトの名無しさん mailto:sage [2007/07/15(日) 13:11:08 ]
自動生成の迷路ゲーム…なんて無理か。

506 名前:デフォルトの名無しさん mailto:sage [2007/07/15(日) 19:06:02 ]
迷路を作るだけなら前あったかも

507 名前:デフォルトの名無しさん mailto:sage [2007/07/15(日) 22:41:39 ]
Javaの3Dな迷路があったと思ふ

508 名前:6 mailto:sage [2007/07/16(月) 01:29:02 ]
交点の座標を詳しく求めてる

俺工房だから間違えてるのかもしれない

509 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 01:58:27 ]
#include <stdio.h>
double s(double c){double x;int i,n;n = 10;x = 0;do {x += 1;} while (x * x < c);
for (i = 0;i < n;i++) {x = (x + c / x)/2;}return x;}int main(){double c;int a;
scanf("%d", &a);c = s(a);printf("√は%lfです。\n", c);return 0;}



ニュートン法を使ったあれです。
いじくってやってください。

510 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 21:05:29 ]
1.空白はつめる
2.初期化と代入は一緒に
3.+=1は++に
でだいぶ短くなる予感。
ニュートン法とやらがあってるんかは知らんけどw



511 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 21:27:20 ]
int printf(const char*,...);int scanf(const char*,...);main(){int c,n=10;double
x=0;scanf("%d",&c);do x++;while(x*x<c);while(--n)x=(x+c/x)/2;printf("sqrt(%d)=\
%f\n",c,x);return 0;}

512 名前:デフォルトの名無しさん mailto:sage [2007/07/16(月) 23:12:42 ]
typedef int f(const char*,...);f printf,scanf;double c,x,n=10;main(){for(scan\
f("%lf",&c);x*x<c;)++x;for(;n--;x/=2)x+=c/x;return!printf("√は%fです。\n",x);}

513 名前:デフォルトの名無しさん mailto:sage [2007/07/22(日) 20:17:55 ]
>++++++++++[>+>+++>++++++++++++[<]>-]> > >++++........<<+++.---.> >..<++..
..>...<<+++.---.> >..<....>...<..................>..<.............>...<.................>..<<+++.---.>
>.......<...>..<..>..<..>.....<..................>..<............>.....<..>..<..>..<<+++.---.> >..<..
..>..<..>....<...>..<...>..<...>..<.>..<.>....<..>......<.>..<...>..<.>..<...>..<.>..<.>..<<++
+.---.> >..<.....>..<.>..<......>......<...>..<.>...<...>..<...>..<...>..<...>..<.>..<......>...<<
+++.---.> >..<....>...<.>..<.....>..<...>..<...>..<.>..<....>..<...>..<...>..<...>..<.>..<...>..
<.>..<.>..<<+++.---.> >........<..>..<......>....<.>...<.>..<.>..<....>..<...>..<....>.....<...>.....<..>..<...>..

514 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 13:01:28 ]
>>513
なんのプログラム?

515 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 13:02:57 ]
標準出力にBrainfuckと読める絵を出力するプログラム。

516 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 13:03:45 ]
>>515
言語は何なのかおせーて

517 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 13:04:23 ]
Brainfuck

518 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 13:08:58 ]
なにこれおもすれw

+++++++++[>++++++++>+++++++++++>+++++<<<-]>.>++.+++++++..+++.>-.
------------.<++++++++.--------.+++.------.--------.>+.

519 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 21:50:24 ]
ローマ字をSJIS半角カタカナに変換する、そんな関数があると聞き
やってまいりました。
ヘボン式訓令式どちらもサポートすると
おそらく300バイト程度の関数になるでしょうか?

520 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 22:40:25 BE:360093863-S★(511223)]
「aiueo」のローマ字半角カナ変換して表示。
●ローマ字半角カナ変換(Sの|Sを)
 A=(「shi|chi|tsu|fu|wi|wu|we|ji|kya|kyu|kyo|sya|syu|syo|tya|tyu|tyo|nya|nyu|nyo|hya|hyu|hyo|mya|myu|myo|rya|ryu|
ryo|gya|gyu|gyo|zya|zyu|zyo|bya|byu|byo|pya|pyu|pyo|sha|shu|sho|cha|chu|cho|ja|ju|jo|ka|ki|ku|ke|ko|sa|si|su|se|so|
ta|ti|tu|te|to|na|ni|nu|ne|no|ha|hi|hu|he|ho|ma|mi|mu|me|mo|ya|yu|yo|ra|ri|ru|re|ro|wa|wo|ga|gi|gu|ge|go|za|zi|zu|ze|
zo|da|di|du|de|do|ba|bi|bu|be|bo|pa|pi|pu|pe|po|nn|n|a|i|u|e|o」の改行を空に置換)を"|"で区切る。
 B=(「シ|チ|ツ|フ|ウィ|ウ|ウェ|ジ|キャ|キュ|キョ|シャ|シュ|ショ|チャ|チュ|チョ|ニャ|ニュ|ニョ|ヒャ|ヒュ|ヒョ|ミャ|ミュ|ミョ|リャ|リュ|リョ|ギャ|ギュ|ギョ|ジャ|ジュ|ジョ|ビャ|
ビュ|ビョ|ピャ|ピュ|ピョ|シャ|シュ|ショ|チャ|チュ|チョ|ジャ|ジュ|ジョ|カ|キ|ク|ケ|コ|サ|シ|ス|セ|ソ|タ|チ|ツ|テ|ト|ナ|ニ|ヌ|ネ|ノ|ハ|ヒ|フ|ヘ|ホ|マ|ミ|ム|メ|モ|ヤ|ユ|ヨ|ラ|
リ|ル|レ|ロ|ワ|ヲ|ガ|ギ|グ|ゲ|ゴ|ザ|ジ|ズ|ゼ|ゾ|ダ|ヂ|ヅ|デ|ド|バ|ビ|ブ|ベ|ボ|パ|ピ|プ|ペ|ポ|ン|ン|ア|イ|ウ|エ|オ」の改行を空に置換)を"|"で区切る。
 Aで反復、S=Sの対象をB[回数-1]に置換。
 Sで戻る。

誰か短くしてくれ



521 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 22:48:23 ]
ye/イェ とか dhu/デュ とかあるんだよ?

522 名前:デフォルトの名無しさん mailto:sage [2007/07/30(月) 22:55:52 BE:980255377-S★(511223)]
「ローマ字」のwiki見て書いたから忘れてたすまんorz

523 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 00:25:27 ]
wyi,wyeって半角カタカナないんだな。

524 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 03:37:18 ]
ローマ字変換、正攻法で攻めたらJavaScriptで18行になってしまた…
スレに貼れないし。鬱だ氏のうorz

525 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 08:02:16 ]
>>520
それって擬似コード?それともなでしこ?

526 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 14:31:21 BE:480125838-S★(511224)]
なでしこですよ
正攻法がどんなんかわからん・・・この方法じゃこれ以上削れそうにないし・・・

527 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 14:57:44 ]
>>526
トェェイがうまく変換できません・・・

528 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 15:01:03 ]
アッー

529 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 16:32:24 BE:120031823-S★(511224)]
「kyouhasuunennburinidaigakuniittekoyoutoomoimasutoleleia-ltu」をローマ字半角カナ変換して言う。
//キョウハスウネンブリニダイガクニイッテコヨウトオモイマストェェイアーッ
●ローマ字半角カナ変換(Sの|Sを)
 A=(「-|ltu|xtu|la|li|lu|le|lo|xa|xi|xu|xe|xo|bb|cc|dd|ff|gg|hh|jj|kk|ll|mm|pp|qq|rr|ss|tt|vv|ww|xx|yy|zz|ye|dhu|shi|chi|tsu|
fu|wi|wu|we|ji|kya|kyu|kyo|sya|syu|syo|tya|tyu|tyo|nya|nyu|nyo|hya|hyu|hyo|mya|myu|myo|rya|ryu|ryo|gya|gyu|gyo|zya|
zyu|zyo|bya|byu|byo|pya|pyu|pyo|sha|shu|sho|cha|chu|cho|ja|ju|jo|ka|ki|ku|ke|ko|sa|si|su|se|so|ta|ti|tu|te|to|na|ni|nu|ne|
no|ha|hi|hu|he|ho|ma|mi|mu|me|mo|ya|yu|yo|ra|ri|ru|re|ro|wa|wo|ga|gi|gu|ge|go|za|zi|zu|ze|zo|da|di|du|de|do|ba|bi|bu|be|
bo|pa|pi|pu|pe|po|nn|n|a|i|u|e|o」の改行を空に置換)を"|"で区切る。
 B=(「ー|ッ|ッ|ァ|ィ|ゥ|ェ|ォ|ァ|ィ|ゥ|ェ|ォ|ッb|ッc|ッd|ッf|ッg|ッh|ッj|ッk|ッl|ッm|ッp|ッq|ッr|ッs|ッt|ッv|ッw|ッx|ッy|ッz|イェ|デュ|シ|チ|ツ|フ|ウィ|ウ|ウェ|ジ|キャ|
キュ|キョ|シャ|シュ|ショ|チャ|チュ|チョ|ニャ|ニュ|ニョ|ヒャ|ヒュ|ヒョ|ミャ|ミュ|ミョ|リャ|リュ|リョ|ギャ|ギュ|ギョ|ジャ|ジュ|ジョ|ビャ|ビュ|ビョ|ピャ|ピュ|ピョ|シャ|シュ|ショ|
チャ|チュ|チョ|ジャ|ジュ|ジョ|カ|キ|ク|ケ|コ|サ|シ|ス|セ|ソ|タ|チ|ツ|テ|ト|ナ|ニ|ヌ|ネ|ノ|ハ|ヒ|フ|ヘ|ホ|マ|ミ|ム|メ|モ|ヤ|ユ|ヨ|ラ|リ|ル|レ|ロ|ワ|ヲ|ガ|ギ|グ|ゲ|ゴ|
ザ|ジ|ズ|ゼ|ゾ|ダ|ヂ|ヅ|デ|ド|バ|ビ|ブ|ベ|ボ|パ|ピ|プ|ペ|ポ|ン|ン|ア|イ|ウ|エ|オ」の改行を空に置換)を"|"で区切る。
 Aで反復、S=Sの対象をB[回数-1]に置換。
 Sで戻る。


:::::::::::.: .:. . ∧_∧ . . . .: ::::::::
:::::::: :.: . . /彡ミ゛ヽ;)ヽ、. ::: : ::
::::::: :.: . . / :::/:: ヽ、ヽ、i . .:: :.: :::
 ̄ ̄ ̄(_,ノ  ̄ ̄ヽ、_ノ ̄

530 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 17:02:01 ]
>>529
ちょw
スレタイを7回音読しろよw



531 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 17:05:29 BE:900234959-S★(511224)]
>>529からがんばっても10行にしかなりませんでした 難しいわorz

532 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 19:11:57 ]
クァ/qa
クァ/qwa


533 名前:524 mailto:sage [2007/07/31(火) 20:50:37 ]
var A="xtu|ltu|kwa|ky|sw|sy|sh|tw|ty|th|ny|hy|my|ry|wh|gw|gy|zy|dw|dy|dh|by|"+
"py|qw|qy|fw|fy|jy|vy|cy|ch|xy|ly|k|s|t|n|h|m|y|r|w|g|z|d|b|p|q|f|j|v|c|x|l|"+
"a|i|u|e|o";var B="ッ|ッ|クァ|キy|スa|シy|シャ|シ|シュ|シェ|ショ|トa|チy|テy|ニy|ヒy|ミy|リy|ウァ|ウィ"+
"|ウ|ウェ|ウォ|グa|ギy|ジy|ドa|ヂy|デy|ビy|ピy|クa|キy|フa|フy|ジy|ヴy|チy|チャ|チ|チュ|チェ|"+
"チョ|y|y|カ@|サ@|タ@|ナ@|ハ@|マ@|ヤ|イ|ユ|イェ|ヨ|ラ@|ワ|ウィ|ウ|ウェ|ヲ|カ@゙|サ@゙|タ@゙|ハ@゙|ハ@゚|クァ|ク"+
"ィ|ク|クェ|クォ|ファ|フィ|フ|フェ|フォ|ジャ|ジ|ジュ|ジェ|ジョ|ヴァ|ヴィ|ヴ|ヴェ|ヴォ|カ|シ|ク|セ|コ|a|a"+
"|ア|イ|ウ|エ|オ";B=B.replace(/\|.@([゚゙]?)/g,function(e){var r="";for(var i=0;i<5;
i++)r+="|"+String.fromCharCode(e.charCodeAt(1)+i)+RegExp.$1;return r}).replace
(/([^\|]*)a\|/g,"$1ァ|$1ィ|$1ゥ|$1ェ|$1ォ|").replace(/([^\|]*)y\|/g,"$1ャ|$1ィ|$1ユ|"+
"$1ェ|$1ョ|").split("|");A=A.replace(/([^aiueo]{1,2})\|/g,"$1a|$1i|$1u|$1e|$1o|"
).split("|");var t=prompt().replace("nn","ン").replace(/([^aiueo])\1/g,"ッ$1").
replace(/n([^aiueo]|$)/g,"ン$1");for(var i=0;i<A.length;i++)t=t.replace(A[i],
B[i],"g");alert(t);
正規表現を使わないでやっていたが、なでしこのコードを参考にして13行。MS-IMEで出る字は大体出ると思うけど。
まだ冗長だなあ。

534 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 21:52:50 BE:960250368-S★(511224)]
S="";X="-|ltu|xtu|bb|cc|dd|ff|gg|hh|jj|kk|ll|mm|pp|qq|rr|ss|tt|vv|ww|xx|yy|zz|ye|dhu|shi|chi|tsu|fu|ji|";Y=空;Z=空;
M="ky|sy|ty|ny|hy|my|ry|gy|zy|by|py|sh|ch|j|y"を"|"で 区切;N="a|u|o"を"|"で区切;Mで反復,D=対象;Nで反復,YにD&対象を一行追加;
P="l|x|w|k|s|t|n|h|m|r|g|z|d|b|p"を"|"で区切;Q="a|i|u|e|o"を"|"で区切;Pで反復,E=対象;Qで反復,ZにE&対象を一行追加;
A="{Xを"|"で区切}{\n}{Y}{Z}nn{\n}n{\n}a{\n}i{\n}u{\n}e{\n}o";B=(("ー|ッ|ッ|ッb|ッc|ッd|ッf|ッg|ッh|ッj|ッk|ッl|ッm|ッp|ッq|ッr|ッs|ッt|ッv|ッw|ッx|ッy|ッz|イェ|デュ|シ|チ|ツ|
フ|ジ|キャ|キュ|キョ|シャ|シュ|ショ|チャ|チュ|チョ|ニャ|ニュ|ニョ|ヒャ|ヒュ|ヒョ|ミャ|ミュ|ミョ|リャ|リュ|リョ|ギャ|ギュ|ギョ|ジャ|ジュ|ジョ|ビャ|ビュ|ビョ|ピャ|ピュ|ピョ|シャ|シュ|ショ|チャ|チュ|チョ|
ジャ|ジュ|ジョ|ヤ|ユ|ヨ|ァ|ィ|ゥ|ェ|ォ|ァ|ィ|ゥ|ェ|ォ|ワ|ウィ|ウ|ウェ|ヲ|カ|キ|ク|ケ|コ|サ|シ|ス|セ|ソ|タ|チ|ツ|テ|ト|ナ|ニ|ヌ|ネ|ノ|ハ|ヒ|フ|ヘ|ホ|マ|ミ|ム|メ|モ|ラ|リ|ル|レ|ロ|ガ|ギ|グ|ゲ|ゴ|
ザ|ジ|ズ|ゼ|ゾ|ダ|ヂ|ヅ|デ|ド|バ|ビ|ブ|ベ|ボ|パ|ピ|プ|ペ|ポ|ン|ン|ア|イ|ウ|エ|オ")の改行を空に置換)を"|"で区切;Aで反復,S=Sの対象をB[回数-1]に置換;

>>533を参考にして苦しいがスレタイ通りに・・・(゚Д゚;)

535 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 21:54:14 ]
一行79文字が守られていません。お引取りください。

536 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 21:54:48 BE:360094436-S★(511224)]
\(^o^)/ ヽ ←さじ

537 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 22:19:30 ]
ソースコードをP2Pネットワークに置く
ソースコードのハッシュを算出する
ハッシュを元にソースコードをDLしてくる
  →事実上ソースコードはハッシュ文字数に圧縮される  ∩( ・ω・)∩ ばんざーい

538 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 22:34:10 BE:600156465-S★(511224)]
∩( ・ω・)∩ ばんざーい

539 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 22:36:23 ]
>>537
7行79桁でファイル共有ソフトを書けと。

540 名前:デフォルトの名無しさん mailto:sage [2007/07/31(火) 23:04:18 BE:280073827-S★(511224)]
「∩( ・ω・)∩ banza-i」をローマ字半角カナ変換して言う。
●ローマ字半角カナ変換(Sの|Sを)
 経過ダイアログはオフ。
 A=((「isoroku.net/A.txt」をHTTPデータ取得)の改行を空に置換)を"|"で区切る。
 B=((「isoroku.net/B.txt」をHTTPデータ取得)の改行を空に置換)を"|"で区切る。
 Aで反復、S=Sの対象をB[回数-1]に置換。
 Sで戻る。

//∩( ・ω・)∩ ばんざーい
//orz



541 名前:デフォルトの名無しさん [2007/08/01(水) 03:10:59 ]
>>525-526
疑似コードにしか見えんw

542 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 08:49:44 ]
日本語でプログラミング気持ち悪い

543 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 15:08:00 ]
>>540お前はアホか

544 名前:デフォルトの名無しさん mailto:sage [2007/08/01(水) 15:26:47 ]
日本語でプログラミングはなしがいい

545 名前:デフォルトの名無しさん mailto:age [2007/09/03(月) 14:33:17 ]
保守

546 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 14:40:00 ]
データ外部に置いたらダメだろ
httpでプログラム取得、実行、というプログラムを書けば
汎用七行になってしまう

547 名前:デフォルトの名無しさん [2007/09/03(月) 14:41:49 ]
httpでとってきて、evalか?

こええよw


548 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 16:38:26 ]
httpでとってきてCreateProcess

549 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 18:44:35 ]
>>547
JavaScript が怖くて常に OFF にしてるの?

サンドボックスがまともならそんなに怖くないかと

550 名前:デフォルトの名無しさん mailto:sage [2007/09/03(月) 18:45:58 ]
実はperl



551 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 02:51:01 ]
実はzipとか

552 名前:デフォルトの名無しさん mailto:sage [2007/09/04(火) 02:59:15 ]
ttp://www.amazon.co.jp/Short-Coding-~%E8%81%B7%E4%BA%BA%E9%81%94%E3%81%AE%E6%8A%80%E6%B3%95~-Ozy/dp/4839925232/ref=pd_bbs_sr_3/249-8159845-3310719?ie=UTF8&s=books&qid=1188842300&sr=8-3
中身見たこと無いけどこの本のことは話題にはならないのね。

553 名前:デフォルトの名無しさん [2007/09/04(火) 12:23:18 ]
図書スレで話題になってたな

554 名前:デフォルトの名無しさん mailto:sage [2007/09/12(水) 20:08:51 ]
>>553
どんな内容かおせーて

555 名前:デフォルトの名無しさん [2007/09/22(土) 00:10:16 ]
トリッキースレがなくなってますね。
トリッキースレの後継スレみたいなのないのかな。

別のスレで出た話ですが、

int my_fputwc(wint_t c, FILE *fp)
{ wint_t r = fputwc(c, fp);
return (r == WEOF) ? EOF : r;
}

int wtbl[0x10000];
void dokkade_jikkou(void ) {
int i;
for (i = 0; i < 0x10000; i++)
wtbl[i] = i;
wtbl[0xffff] = EOF;
}
int my_fputwc(wint_t c, FILE *fp) return wtbl[fputwc(c, fp);]; }

みたいなこと(WEOF(wint_tの0xffff)をEOF(intの-1)に変換)
をもっとスマートに行う方法ないですかね。

556 名前:デフォルトの名無しさん mailto:age [2007/09/22(土) 00:37:10 ]
インラインアセンブラが使え無い言語は
基本的に劣っていると考えたい・・・


557 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 01:01:47 ]
適当に書いてみた。スマートなのかも、速いのかもよくわからん。反省はしてない。
int my_fputwc(wint_t c, FILE *fp)
{
  wint_t r = fputwc(c, fp);
  return ((!(r ^ 0xffff)) * EOF) | r;
}

558 名前:デフォルトの名無しさん mailto:age [2007/09/22(土) 01:04:03 ]
エラー デバッグ ブラウザ ツール
www.mozilla-japan.org/
シンプル プログミング ツール
proforceone.web.fc2.com/
素因数分解サンプルプログラム
Calculation processing にコピーして[RUN]

A=2*3*5*11*13*17*19;
x=A;write(" "+x+" ⇒");
for(i=2;x>=i;i++){if(0==x%i){k=0;
 for(j=2;(i>=j)&&(1>=k);j++){
  if(0==i%j){k++;}
 } if(1==k){write(" "+i);}
}}

559 名前:デフォルトの名無しさん mailto:sage [2007/09/22(土) 14:40:32 ]
>>555
どう考えてもfputwcが重すぎで大差ない気がするが
int my_fputwc(wint_t c, FILE *fp)
{ wint_t r = fputwc(c, fp);
return (~r + 0xFFFF&0xFFFF0000)^r;
}


560 名前:デフォルトの名無しさん mailto:sage [2007/10/14(日) 21:43:13 ]
保守



561 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 22:52:05 ]
保守


562 名前:デフォルトの名無しさん mailto:sage [2007/11/14(水) 23:09:49 ]
なんかネタないかね

563 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 04:38:01 ]
echoサーバとか

564 名前:デフォルトの名無しさん mailto:sage [2007/11/15(木) 04:41:30 ]
10 OPEN "COM1:" FOR INPUT AS #1
20 LINE INPUT #1, A$
30 PRINT #1, A$
40 IF NOT EOF(1) THEN GOTO 20
50 CLOSE #1
60 END
70

565 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 08:34:20 ]
[,.]

4文字v

566 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 12:01:10 ]
>>565
これなに?

567 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 13:46:53 ]
入力したものを出力するだけのプログラムなんじゃない?

568 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 13:57:06 ]
何もしないで戻るような気がする

569 名前:デフォルトの名無しさん mailto:sage [2007/11/17(土) 14:27:16 ]
これTCP? ポートってデフォルトは何番になるの?

570 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 01:00:54 ]
>>565はBFのコードだろ?



571 名前:デフォルトの名無しさん mailto:sage [2007/11/18(日) 03:11:21 ]
>>565
そりゃただのechoコマンドじゃないか。

572 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 19:24:25 ]
>>569
TCP/UDP 7

573 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 19:31:43 ]
RFC 3091 "Pi Digit Generation Protocol" のサーバーとかどうだろう。

574 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 23:16:44 ]
lispで何か書こうかな。。。。


もしかして過疎?

575 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 23:27:59 ]
187byte スロットはスレ違い?

576 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 23:30:57 ]
>>575
とりあえず書いてけよ。

577 名前:デフォルトの名無しさん mailto:sage [2007/11/19(月) 23:55:55 ]
つ <body onload=n=[1,b=2,x=3];setInterval('for(i=3;b<i--;)if(i<x)n[2-i]+=n[2-i]-7?1:-6;b+=b?-1:2;document.body.innerHTML=x?n:n+(n[0]-n[1]|n[1]-n[2]?"\\nx":"\\no")',50) onmousedown=x+=x?-1:3>


誰かもっと削ってー

578 名前:デフォルトの名無しさん mailto:sage [2007/11/20(火) 18:47:23 ]
スルーとはお前らなかなかやってくれるなw
でもやっぱりスレチだよな。ゲ製に投下してくる

579 名前:デフォルトの名無しさん mailto:sage [2007/11/20(火) 18:50:49 ]
>>577
スルーしたわけじゃないんだ。
ちょっと分野が違った。
すまね。

580 名前:デフォルトの名無しさん mailto:sage [2007/11/20(火) 20:12:05 ]
俺は1時間くらい考えてみたけど <body id=B くらいしか思いつかなかった
あとは表示が 1,2,3,x になってもいいならn=[1,b=2,x=3,"\\n"]とするとか



581 名前:デフォルトの名無しさん mailto:sage [2007/11/20(火) 21:17:33 ]
>>579
あっちで好評だったからもう気にしないんだぜw


>>580
考えてくれてたのかサンクス
なるほど、id=B はまったく思い付かなかった。コンマも気にしないからやってみたら
n=[1,b=2,x=3,"\n"]; ってエスケープ1つで動いた

これで結局 179Byte wwwこれ以上は想像もつかんw
ああ、 onclick はなんとなくタブーねww

582 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 00:16:20 ]
何をするスクリプト?

583 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 00:21:47 ]
>>582
使ってみるがよろし。

584 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 00:34:49 ]
PCが見知らぬ動きをはじめた・・・!

585 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 00:49:34 ]
n[0]-n[1]|n[1]-n[2]
n[0]*6-n[1]*5-n[2]
n[2-i]+=n[2-i]-7?1:-6;
n[2-i]=n[2-i]%7+1;

n[0]*6-n[1]*5-n[2]はちゃんと動くか分からん

586 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 01:05:20 ]
>>585
上のは [2,1,7] で誤作動しますね
下のは (; Д )゚ ゚

587 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 01:15:21 ]
n[0]*7-n[1]*6-n[2]
だと大丈夫?

588 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 01:23:00 ]
動かしたけどさっぱり
最後の桁がぐるぐる回り続けてるだけだった

589 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 01:24:21 ]
素晴らしい。
いま 174Byte ですか。まだまだ削れそうな気がしてきました

590 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 01:30:39 ]
>>588
<body id=B onload=n=[1,b=2,x=3,"\n"];setInterval('for(i=3;b<i--;)if(i<x)n[2-i]=n[2-i]%7+1;b+=b?-1:2;B.innerHTML=x?n:n+(n[0]*7-n[1]*6-n[2]?"x":"o")',50) onmousedown=x+=x?-1:3>
これで動かないか?



591 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 01:34:08 ]
>>590
うごく

592 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 02:05:57 ]
ああ、わかった
B使うとかあらゆる意味で邪道だな
クソだ

593 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 08:26:49 ]
グローバル使わないでって火狐は怒るだろうな

594 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 08:49:45 ]
HTMLで短くするのなんてナンセンスだよ
onload=""って括ってないとか、<title>タグが無いとか、
innerHTMLで配列を代入とか、仕様違反が多すぎる。

595 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 09:00:48 ]
titleを指摘する前に、htmlなのにhtml要素がないことに突っ込めw

596 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 09:09:20 ]
htmlタグはHTML4では省略可能なので別になくていい
そもそもDTD宣言がないからHTML4かどうかもわからないんだけどな

597 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 09:27:11 ]
>>594
配列は toString メソッドが暗黙に呼び出されて文字列になる

598 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 15:55:51 ]
>>597
そもそもinnerHTMLが仕様にないので、暗黙的にtoStringが呼ばれるとは限らない
しかしArrayのtoStringの仕様がjoinだとはしらなんだ

599 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 16:45:57 ]
そもそもここは標準規格に適合しないといけないスレじゃないだろ。

600 名前:デフォルトの名無しさん mailto:sage [2007/11/21(水) 16:53:46 ]
むしろ仕様と戦うスレ








[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<140KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef