!extend:checked:vvvvv:1000:512
↑
次スレを作る時は上記1行をコピーして2行に増やして必ず1行目に入るようにしてください。
C言語の話題のみ取り扱います C++の話題はC++スレへ
質問には最低限の情報(ソース/コンパイラ/OS)を付ける
数行で収まらないソースは以下を適当に使ってURLを晒す
https://paiza.io/
https://ideone.com/
http://codepad.org/
C11
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1570.pdf
C99
http://www.open-std.org/jtc1/sc22/WG14/www/docs/n1256.pdf
http://kikakurui.com/x3/X3010-2003-01.html
C FAQ 日本語訳
http://www.kouno.jp/home/c_faq/
JPCERT C コーディングスタンダード
https://www.jpcert.or.jp/sc-rules/
※前スレ
C言語なら俺に聞け 148
https://mevius.5ch.net/test/read.cgi/tech/1537347410/
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured
探検
C言語なら俺に聞け 149
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ af9f-7TBo)
2018/10/28(日) 22:01:44.38ID:D9Gt7gmT0176デフォルトの名無しさん (スッップ Sd1f-TL5M)
2018/11/25(日) 17:16:56.38ID:XilAUoVOd177デフォルトの名無しさん (ワッチョイ c364-m15j)
2018/11/25(日) 20:07:43.14ID:74eaLfxV0 ごめんバカみたいな質問なんだけど
その「遅い」っていうのは実行時の速度だよね。コンパイルが遅いってことじゃないよね。
だとすると8の倍数のbit数のCPUでint<8×N>型を使ってもタイムロスって起きない気がするんだけど……。
その「遅い」っていうのは実行時の速度だよね。コンパイルが遅いってことじゃないよね。
だとすると8の倍数のbit数のCPUでint<8×N>型を使ってもタイムロスって起きない気がするんだけど……。
178デフォルトの名無しさん (アウアウカー Sa87-rBFN)
2018/11/25(日) 21:05:52.83ID:6ChQfOQca メモリに詰めて格納してると嫌な感じ
179デフォルトの名無しさん (アウアウカー Sa87-ZX3B)
2018/11/26(月) 06:54:36.44ID:xHCVYRaTa >>177
そういうのはSSE命令とか使うXMMレジスタ使う話。
Intelコンパイラでも無いとアセンブラの話。
単純に上位ビットを0で埋める。(分遅くなる)
ただ、CPUアーキテクチャにも依存する。
95年当時はpentiumは32ビットCPUだが16ビットの方が速く、pentiumU以降で32ビットの方が速くなった。
Core2は32ビットが速く、64ビットは遅く、Core iから64ビットの方が速くなった。
(ハードレベルでも、ただ実装しただけと、最適化したのとある)
そういうのはSSE命令とか使うXMMレジスタ使う話。
Intelコンパイラでも無いとアセンブラの話。
単純に上位ビットを0で埋める。(分遅くなる)
ただ、CPUアーキテクチャにも依存する。
95年当時はpentiumは32ビットCPUだが16ビットの方が速く、pentiumU以降で32ビットの方が速くなった。
Core2は32ビットが速く、64ビットは遅く、Core iから64ビットの方が速くなった。
(ハードレベルでも、ただ実装しただけと、最適化したのとある)
180デフォルトの名無しさん (スフッ Sd1f-TETZ)
2018/11/26(月) 14:44:44.56ID:00kzfg0Id encode.exe
PGM 形式の画像ファイルを入力に与え,Run Length 法によって圧縮したデータを出力す る
decode.exe
encode.exe で圧縮したデータを入力に与え,PGM 形式の画像ファイルを出力する。
これをc言語で書くにはどうすればいいですか?
osはUnix開発環境はMSYS2です。
PGM 形式の画像ファイルを入力に与え,Run Length 法によって圧縮したデータを出力す る
decode.exe
encode.exe で圧縮したデータを入力に与え,PGM 形式の画像ファイルを出力する。
これをc言語で書くにはどうすればいいですか?
osはUnix開発環境はMSYS2です。
181デフォルトの名無しさん (アークセー Sx47-4vBw)
2018/11/26(月) 15:15:00.32ID:t9INuUY1x ランレングスと画像フォーマットは何ら関係ないよ。
てかもしかしてランレングスのコードそのものを教えてもらうつもり?
学校の課題は自分でやりな。
てかもしかしてランレングスのコードそのものを教えてもらうつもり?
学校の課題は自分でやりな。
182デフォルトの名無しさん (スフッ Sd1f-TETZ)
2018/11/26(月) 15:19:44.48ID:00kzfg0Id コードはかけたのですがエラーが出ないのに圧縮するとデータサイズが大きくなるはずなのに小さくなります。それがわからないです。
183デフォルトの名無しさん (アークセー Sx47-4vBw)
2018/11/26(月) 15:25:50.47ID:t9INuUY1x >>182
私はあなたの言ってることが分からないです。
私はあなたの言ってることが分からないです。
184デフォルトの名無しさん (アウアウウー Sa27-ml8p)
2018/11/26(月) 15:27:58.32ID:mDHVgMsLa 元のファイルと出来上がったファイルの中身を16進ダンプしたりして調べれば良いのでは?
それとプログラムもよーく読み直してみな。
それとプログラムもよーく読み直してみな。
185デフォルトの名無しさん (アークセー Sx47-4vBw)
2018/11/26(月) 15:36:52.43ID:t9INuUY1x186デフォルトの名無しさん (アウアウウー Sa27-ml8p)
2018/11/26(月) 15:44:04.38ID:mDHVgMsLa Run Length は連続データが少ないと大きくなる事があるからその辺は特に不思議はない。
187デフォルトの名無しさん (アウアウカー Sa87-rBFN)
2018/11/26(月) 15:45:34.47ID:n96xVY2na でかくなる様なデータで確かめる課題かね?
ちょっとそのまんま見てみたいね
ちょっとそのまんま見てみたいね
188デフォルトの名無しさん (アークセー Sx47-4vBw)
2018/11/26(月) 15:47:36.67ID:t9INuUY1x >>186
ああ、単純な実装なら確かにそうね。
ああ、単純な実装なら確かにそうね。
189デフォルトの名無しさん (ワッチョイ 63b3-jnO+)
2018/11/26(月) 18:55:01.13ID:XECRUPoh0 PGMのランレングスは何かしら工夫してんのかな
(行単位で生列とRLを切り替えできるとか? 連続性の強い色空間を選択してるとか?)
(行単位で生列とRLを切り替えできるとか? 連続性の強い色空間を選択してるとか?)
190デフォルトの名無しさん (ワッチョイ 63b3-jnO+)
2018/11/26(月) 19:58:24.72ID:XECRUPoh0 あー ちゃんと読んでなかった 189 は無しで
191デフォルトの名無しさん (ワッチョイ c380-1YVs)
2018/11/26(月) 22:38:09.76ID:404pxOU70 0バイトのデータを圧縮すると間違いなく大きくなる
192デフォルトの名無しさん (ワッチョイ cf81-zhOP)
2018/11/26(月) 22:54:04.60ID:9UWiUoMZ0 虚数空間にデータを書き移すから、さらに小さくなる、かも
193デフォルトの名無しさん (ワッチョイ 63b3-jnO+)
2018/11/26(月) 22:58:35.51ID:XECRUPoh0 ホログラフィーみたいに3次元情報?が2次元に畳み込まれてなんて話ではないんだろう
194デフォルトの名無しさん (アウアウウー Sa27-rBFN)
2018/11/26(月) 23:10:34.44ID:4Tpz9uQJa 単に乱数とかね
195デフォルトの名無しさん (ワッチョイ cf81-zhOP)
2018/11/26(月) 23:21:21.04ID:9UWiUoMZ0 任意のデータをその半分に出来る圧縮技法、誰か考えて
196デフォルトの名無しさん (ワッチョイ 33ab-kvwJ)
2018/11/27(火) 00:17:38.39ID:sRUlwxGC0 SERNをハックしてLHCでマイクロブラックホールを作ってどうたらこうたらするとかなり圧縮できるよ
197デフォルトの名無しさん (ブーイモ MMff-X8Q6)
2018/11/27(火) 00:21:47.09ID:E9za3JrpM 綴りを間違えるとホワイトホールができちゃうかもしれんぞ
198デフォルトの名無しさん (ワッチョイ cf81-zhOP)
2018/11/27(火) 00:22:04.16ID:ugyzpzqZ0 圧縮は出来ても、復元が出来なさそうw
199デフォルトの名無しさん (ワッチョイ c364-m15j)
2018/11/27(火) 01:23:33.76ID:UHpiRGCo0 マジレスすると情報っていうのは消失しないと考えられているので
BH表面にエネルギー運動量テンソルの波動として,飲み込まれた物質郡の属性
(電荷など)が記録される……筈w
少なくとも現状の場の量子論と重力宇宙論ではそういう結論が出てる。
C言語とは関係ないけど,BHを記憶装置として用いるっていう考えは
突拍子もないけど理論的には可能だよねぇ,上記の理屈が正しいとすると。
BH表面にエネルギー運動量テンソルの波動として,飲み込まれた物質郡の属性
(電荷など)が記録される……筈w
少なくとも現状の場の量子論と重力宇宙論ではそういう結論が出てる。
C言語とは関係ないけど,BHを記憶装置として用いるっていう考えは
突拍子もないけど理論的には可能だよねぇ,上記の理屈が正しいとすると。
200デフォルトの名無しさん (ワッチョイ 6f9f-KQkZ)
2018/11/27(火) 01:29:33.86ID:IxTjeZ9T0 みんなが何を言っているのかよくわからない
201デフォルトの名無しさん (ワッチョイ 7ff9-/93F)
2018/11/27(火) 02:18:13.33ID:enNfKuoe0 C言語でok
202デフォルトの名無しさん (ワッチョイ 6f9b-nNS8)
2018/11/27(火) 22:26:43.87ID:/aKqcH8H0 >>195
例えば100bitの長さのデータは全部で2^100種類作ることができる
50bitの長さのデータは全部で2^50種類作ることができる
任意のデータを半分に圧縮できる方法があるとして
100bitで作れる2^100種類のデータをすべて圧縮したなら
50bitの長さで2^100種類の異なるデータができなくてはいけないがそれは不可能
例えば100bitの長さのデータは全部で2^100種類作ることができる
50bitの長さのデータは全部で2^50種類作ることができる
任意のデータを半分に圧縮できる方法があるとして
100bitで作れる2^100種類のデータをすべて圧縮したなら
50bitの長さで2^100種類の異なるデータができなくてはいけないがそれは不可能
203デフォルトの名無しさん (ワッチョイ 6f9f-zhOP)
2018/11/28(水) 01:13:46.19ID:BkKDQWNJ0 いやいや、ちょっと待て。ここは発想の転換が必要だ。例えば8インチのフロッピーディスクから3.5インチの
いや、なんでもない。みんなには内緒にしておいてくれ。
いや、なんでもない。みんなには内緒にしておいてくれ。
204デフォルトの名無しさん (ワッチョイ ff2b-pqc8)
2018/11/28(水) 02:27:03.19ID:iOF+GVq50 「任意の」データを半分に圧縮できるとすると
圧縮した後のデータもさらに半分に圧縮できるはず
そうやって圧縮を繰り返せば最後には全てのデータは1ビットになる
よってそのような圧縮法がないことは明らか
可逆でないならそれでもいいかw
圧縮した後のデータもさらに半分に圧縮できるはず
そうやって圧縮を繰り返せば最後には全てのデータは1ビットになる
よってそのような圧縮法がないことは明らか
可逆でないならそれでもいいかw
205デフォルトの名無しさん (ワッチョイ c364-m15j)
2018/11/28(水) 05:46:42.41ID:N04UITTm0 しかしソースコードとかって圧縮率高いよね。
やっぱり同じような文字が続いたりインデントに空白文字が続いたりするからだろうか。
やっぱり同じような文字が続いたりインデントに空白文字が続いたりするからだろうか。
206デフォルトの名無しさん (アウアウウー Sa27-9MLK)
2018/11/28(水) 07:08:14.21ID:82iiMHmWa コルモゴロフの複雑性もあります
207デフォルトの名無しさん (ワッチョイ ffd2-f63u)
2018/11/28(水) 09:24:07.52ID:seMAmMUm0 そこでTHCompですよ
208デフォルトの名無しさん (ワッチョイ e3ea-jnO+)
2018/11/28(水) 09:40:55.66ID:0XeeIlyH0 情報のエントロピー
209デフォルトの名無しさん (アウアウクー MM47-Zoqv)
2018/11/28(水) 13:43:56.99ID:rECr01ZDM 今から趣味でプログラミング始めます!激励してください!!
210デフォルトの名無しさん (ワッチョイ c364-m15j)
2018/11/28(水) 17:27:07.00ID:N04UITTm0 悪いこと言わないからPython3やれ
211デフォルトの名無しさん (ブーイモ MMe7-X8Q6)
2018/11/28(水) 17:57:49.24ID:Vqd4vFOqM 趣味で初プログラミングなら、俺からもpythonを勧める。
GUIが手軽だとモチベーション違うよ。
GUIが手軽だとモチベーション違うよ。
212デフォルトの名無しさん (アウアウクー MM47-Zoqv)
2018/11/28(水) 18:00:54.28ID:rECr01ZDM 分かった!いやよくわかんないけどそっちから始める!
XCodeでできるかな、ありがとう!
XCodeでできるかな、ありがとう!
213デフォルトの名無しさん (ワッチョイ c364-m15j)
2018/11/28(水) 18:48:28.91ID:N04UITTm0 $ brew install python
とやって
$ python
これで起動する。もうスレチだし「macOS Python3」とかでググれ。
とやって
$ python
これで起動する。もうスレチだし「macOS Python3」とかでググれ。
214デフォルトの名無しさん (アウアウウー Sa27-ml8p)
2018/11/28(水) 19:51:31.92ID:wHjpMIAFa Kotlinもよろしく
215デフォルトの名無しさん (ブーイモ MMe7-X8Q6)
2018/11/28(水) 20:05:07.50ID:Vqd4vFOqM まだマイナーすぎ。入門書があふれてきたら推すよ
216デフォルトの名無しさん (アウアウウー Sa27-/Yu/)
2018/11/28(水) 22:31:15.42ID:xsmtECg3a ttps://bituse.info/c/kadai/44
上記のサイトなどを参考に
簡単な九九の表を作ると
1 2 3 4 5 6 7 8 9
2 4 6 8 10 12 14 16 18
3 6 9 12 15...
...
...
(略)
このようになると思いますが、
隣の数字を参照にして足して
3 5 7 9 11 13 15 17
6 10 14 18 22 26 30 34
9 15 21 27 33...
...
...
(略)
と、表示するには上記のサイトの様なプログラムをどのようにすれば良いのでしょうか?
宜しくお願いします。
上記のサイトなどを参考に
簡単な九九の表を作ると
1 2 3 4 5 6 7 8 9
2 4 6 8 10 12 14 16 18
3 6 9 12 15...
...
...
(略)
このようになると思いますが、
隣の数字を参照にして足して
3 5 7 9 11 13 15 17
6 10 14 18 22 26 30 34
9 15 21 27 33...
...
...
(略)
と、表示するには上記のサイトの様なプログラムをどのようにすれば良いのでしょうか?
宜しくお願いします。
217デフォルトの名無しさん (ワッチョイ 034f-1YVs)
2018/11/28(水) 22:37:30.42ID:IOIePrN/0 >>216
死ね
死ね
218デフォルトの名無しさん (ワッチョイ 63b3-jnO+)
2018/11/28(水) 23:13:58.25ID:MBR3DrMT0 puts("3 5 7 9 11 13 15 17\n");
puts("6 10 14 18 22 26 30 34\n");
puts("9 15 21 27 33...\n");
puts("6 10 14 18 22 26 30 34\n");
puts("9 15 21 27 33...\n");
219デフォルトの名無しさん (ササクッテロ Sp47-FLrG)
2018/11/28(水) 23:24:49.65ID:30WXuBf5p >>218
puts は改行するので、文字列の末尾に \n を付けると2回改行することになる
puts は改行するので、文字列の末尾に \n を付けると2回改行することになる
220デフォルトの名無しさん (ワッチョイ 63b3-jnO+)
2018/11/28(水) 23:26:32.45ID:MBR3DrMT0 あっー 指摘ありがと
221デフォルトの名無しさん (アウアウオー Sa92-LBlS)
2018/11/29(木) 02:39:17.93ID:d0mF96D3a >>216
#include <stdio.h>
int main(void){
int i, j, k, n, m;
n = 0;
m = 0;
for (i = 1; i <= 9; i++){
n += 3;
m += 2;
k = n;
printf("%3d", k);
for (j = 1; j <= 9; j++){
k = k + m;
printf(" %3d", k);
}
printf("\n");
}
return 0;
}
#include <stdio.h>
int main(void){
int i, j, k, n, m;
n = 0;
m = 0;
for (i = 1; i <= 9; i++){
n += 3;
m += 2;
k = n;
printf("%3d", k);
for (j = 1; j <= 9; j++){
k = k + m;
printf(" %3d", k);
}
printf("\n");
}
return 0;
}
222デフォルトの名無しさん (ワッチョイ 0bb3-C0zt)
2018/11/29(木) 04:25:22.53ID:+QhJBOyD0 int main() {
char *ary[] = { "AAAA" , "BBBB" , "CCCC" };
printf("%s\n%s\n%s\n" , ary[0], ary[1], ary[2]);
printf("%x\n%x\n%x\n" , ary[0] , ary[1] , ary[2]);
printf("%x\n%x\n%x\n" , &ary[0] , &ary[1] , &ary[2]);
return 0;
}
実行結果
AAAA
BBBB
CCCC
405064
405069
40506e
61ff24
61ff28
61ff2c
っていうのでよくわからなくなったんですが
0061FF24==00405064で00405064==41414141
なのに、同じary[n]で参照?してるアドレスが違うのは%sが特別だからですか?
それと、AAAA,BBBB,CCCCはどの変数にも格納されていなくて、ただポインタがその文字列たちを指しているっていう理解であってます?
*がよくわからない・・・・・
char *ary[] = { "AAAA" , "BBBB" , "CCCC" };
printf("%s\n%s\n%s\n" , ary[0], ary[1], ary[2]);
printf("%x\n%x\n%x\n" , ary[0] , ary[1] , ary[2]);
printf("%x\n%x\n%x\n" , &ary[0] , &ary[1] , &ary[2]);
return 0;
}
実行結果
AAAA
BBBB
CCCC
405064
405069
40506e
61ff24
61ff28
61ff2c
っていうのでよくわからなくなったんですが
0061FF24==00405064で00405064==41414141
なのに、同じary[n]で参照?してるアドレスが違うのは%sが特別だからですか?
それと、AAAA,BBBB,CCCCはどの変数にも格納されていなくて、ただポインタがその文字列たちを指しているっていう理解であってます?
*がよくわからない・・・・・
223デフォルトの名無しさん (ワッチョイ 0bb3-C0zt)
2018/11/29(木) 04:37:33.83ID:+QhJBOyD0 ああ直接ポインタを作っててそれで変数がある必要もないのかな?
AAAA,BBBB,CCCCを普通に配列で作って、それを1つのポインタでオフセットを指定して選ぶ。みたいなのってCでできるんですか?
AAAA,BBBB,CCCCを普通に配列で作って、それを1つのポインタでオフセットを指定して選ぶ。みたいなのってCでできるんですか?
224デフォルトの名無しさん (ワッチョイ a7c3-o5Pc)
2018/11/29(木) 05:10:38.21ID:ljP5qN1x0 any[]には各文字列のアドレスが格納される。文字列へのポインターの配列。
%sはポインターが指すアドレスの文字列を、%xはポインターに格納されたアドレスを表示する。
&any[]とすると、ポインターそのもののアドレスを取得して表示する。
61ff24 -> 405064 -> "AAAA"
みたいになってる。
%sはポインターが指すアドレスの文字列を、%xはポインターに格納されたアドレスを表示する。
&any[]とすると、ポインターそのもののアドレスを取得して表示する。
61ff24 -> 405064 -> "AAAA"
みたいになってる。
225デフォルトの名無しさん (ワッチョイ a7c3-o5Pc)
2018/11/29(木) 05:25:57.02ID:ljP5qN1x0 一つのポインターでオフセットを指定することはできるけど、
"AAAA"はAAAAの4byteではなくて、文字列の終端である0を含めた5byteになる。
char *any = "AAAABBBBCCCC";
こういうイメージで+4や+8でアクセスしようとしたら
%sで表示したとき意図する結果にならないかもしれない。
文字列として扱わなければ問題ないです。
char *any = "AAAA\0BBBB\0CCCC";
こんな書き方もできますが、*を理解したほうがよいと思います。
アドレスやオフセットの概念は理解しているようですので。
"AAAA"はAAAAの4byteではなくて、文字列の終端である0を含めた5byteになる。
char *any = "AAAABBBBCCCC";
こういうイメージで+4や+8でアクセスしようとしたら
%sで表示したとき意図する結果にならないかもしれない。
文字列として扱わなければ問題ないです。
char *any = "AAAA\0BBBB\0CCCC";
こんな書き方もできますが、*を理解したほうがよいと思います。
アドレスやオフセットの概念は理解しているようですので。
226デフォルトの名無しさん (ワッチョイ 2393-abuG)
2018/11/29(木) 07:00:11.93ID:f12HiZt90 >>222 の実行結果を解釈すると...
文字列 "AAAA" "BBBB" "CCCC" の実体は 0x405064 から格納されていて、
16進ダンプだと
0x405064: 41 41 41 41 00 ; {'A', 'A', 'A', 'A', '\0'}
0x405069: 42 42 42 42 00 ; {'B', 'B', 'B', 'B', '\0'}
0x40506e: 43 43 43 43 00 ; {'C', 'C', 'C', 'C', '\0'}
という具合に(アラインメントのためのパディングなしに)詰め込まれている。
行分けせずに
0x405064: 41 41 41 41 00 42 42 42 42 00 43 43 43 43 00
と書けば「詰め込む」のイメージが分かりやすいかも。
charへのポインタの配列 ary[] は 0x61ff24 から配置されていて
番地: 0x61ff24 == &ary[0], 値: 0x00405064 == ary[0] (== "AAAA"の先頭番地)
番地: 0x61ff28 == &ary[1], 値: 0x00405069 == ary[1] (== "BBBB"の先頭番地)
番地: 0x61ff2c == &ary[2], 値: 0x0040506e == ary[2] (== "CCCC"の先頭番地)
これで分からんかな。
ポインタが指す実体(文字列)の番地、その(文字列の)番地が格納された配列の値、
(値としてポインタが格納された)配列要素の番地。
文字列 "AAAA" "BBBB" "CCCC" の実体は 0x405064 から格納されていて、
16進ダンプだと
0x405064: 41 41 41 41 00 ; {'A', 'A', 'A', 'A', '\0'}
0x405069: 42 42 42 42 00 ; {'B', 'B', 'B', 'B', '\0'}
0x40506e: 43 43 43 43 00 ; {'C', 'C', 'C', 'C', '\0'}
という具合に(アラインメントのためのパディングなしに)詰め込まれている。
行分けせずに
0x405064: 41 41 41 41 00 42 42 42 42 00 43 43 43 43 00
と書けば「詰め込む」のイメージが分かりやすいかも。
charへのポインタの配列 ary[] は 0x61ff24 から配置されていて
番地: 0x61ff24 == &ary[0], 値: 0x00405064 == ary[0] (== "AAAA"の先頭番地)
番地: 0x61ff28 == &ary[1], 値: 0x00405069 == ary[1] (== "BBBB"の先頭番地)
番地: 0x61ff2c == &ary[2], 値: 0x0040506e == ary[2] (== "CCCC"の先頭番地)
これで分からんかな。
ポインタが指す実体(文字列)の番地、その(文字列の)番地が格納された配列の値、
(値としてポインタが格納された)配列要素の番地。
227デフォルトの名無しさん (ワッチョイ db64-VZvV)
2018/11/29(木) 09:05:40.33ID:Msn7clch0 どうでもいいけど略すならaryじゃなくて,arrでは。
228デフォルトの名無しさん (アークセー Sx3b-Gcmv)
2018/11/29(木) 09:24:21.59ID:b4PauqdMx >>227
aryもまれによく見る。
aryもまれによく見る。
229デフォルトの名無しさん (ワッチョイ 0bb3-C0zt)
2018/11/29(木) 12:11:40.55ID:+QhJBOyD0230デフォルトの名無しさん (ワッチョイ 4e80-gjgg)
2018/11/29(木) 16:00:56.19ID:Pq9K3tWa0 >>216-221
Ruby で作った
NUMBERS = ( 1..5 ).to_a
Count = NUMBERS.length
# 九九の表、Times Table ( Multiplication table ) を作る。
# map は1次元配列を作るので、each_slice で、2次元配列にする
Multiplication_table = NUMBERS.product( NUMBERS ).map { | x, y | x * y }
.each_slice( Count ).to_a
result = [ ]
Multiplication_table.each do | ary | # 1行ずつ処理する
result.push ary.each_cons( 2 ).map { | x, y | x + y } # 隣同士を足す
end
p result
結果
[[3, 5, 7, 9], [6, 10, 14, 18], [9, 15, 21, 27], [12, 20, 28, 36], [15, 25, 35, 45]]
Ruby で作った
NUMBERS = ( 1..5 ).to_a
Count = NUMBERS.length
# 九九の表、Times Table ( Multiplication table ) を作る。
# map は1次元配列を作るので、each_slice で、2次元配列にする
Multiplication_table = NUMBERS.product( NUMBERS ).map { | x, y | x * y }
.each_slice( Count ).to_a
result = [ ]
Multiplication_table.each do | ary | # 1行ずつ処理する
result.push ary.each_cons( 2 ).map { | x, y | x + y } # 隣同士を足す
end
p result
結果
[[3, 5, 7, 9], [6, 10, 14, 18], [9, 15, 21, 27], [12, 20, 28, 36], [15, 25, 35, 45]]
231デフォルトの名無しさん (アメ MMff-egAi)
2018/11/29(木) 16:15:48.88ID:qd4rCcG0M >>230
Rubyすげぇ〜!!!
https://gigazine.net/news/20181116-top-programming-languages-2018/
https://www.softantenna.com/wp/software/the-state-of-the-octoverse-2018/
https://www.softantenna.com/wp/software/ieee-spectrum-top-programming-languages-2018/
https://findy-code.io/engineer-lab/github-programming-language-ranking
大人気Ruby!
Ruby大人気!!
Rubyすげぇ〜!!!
https://gigazine.net/news/20181116-top-programming-languages-2018/
https://www.softantenna.com/wp/software/the-state-of-the-octoverse-2018/
https://www.softantenna.com/wp/software/ieee-spectrum-top-programming-languages-2018/
https://findy-code.io/engineer-lab/github-programming-language-ranking
大人気Ruby!
Ruby大人気!!
232デフォルトの名無しさん (ワッチョイ db64-VZvV)
2018/11/29(木) 16:20:18.55ID:Msn7clch0233デフォルトの名無しさん (ワッチョイ a7c3-o5Pc)
2018/11/29(木) 18:14:40.72ID:ljP5qN1x0 (´-`).oO(aryだったのね……)
234デフォルトの名無しさん (ワッチョイ db64-VZvV)
2018/11/29(木) 18:49:51.71ID:Msn7clch0 いやarrやろ(しつこい)
235デフォルトの名無しさん (アウアウウー Sa47-2q9Y)
2018/11/29(木) 19:09:36.82ID:8tueZiBHa array
236デフォルトの名無しさん (ワッチョイ 0bb3-Gcmv)
2018/11/29(木) 19:12:17.70ID:sIB7nB920 いいやaryもまれによく見る。
俺は省略せずarray派だが。
俺は省略せずarray派だが。
237デフォルトの名無しさん (ワッチョイ db64-VZvV)
2018/11/29(木) 19:19:19.48ID:Msn7clch0 まあarrayくらい省略するなって話よな
creatじゃないんだからw
creatじゃないんだからw
238デフォルトの名無しさん (アウアウウー Sa47-2q9Y)
2018/11/29(木) 19:46:28.81ID:8tueZiBHa >>236
「まれによく見る」とは?
「まれによく見る」とは?
239デフォルトの名無しさん (ワッチョイ 83b3-YERU)
2018/11/29(木) 19:51:20.93ID:lt3dDpp60 総体としての頻度は稀だが、とある人の書いたソースには悉く ary として書かれており、
その書いた人というスコープ内においては良く見る
その書いた人というスコープ内においては良く見る
240デフォルトの名無しさん (ワッチョイ 0bb3-Gcmv)
2018/11/29(木) 19:53:37.10ID:sIB7nB920 >>238
weblio辞書より
まれによくある
別表記:稀によくある、稀に良くある
起こり得る事柄を形容して用いられることのある言い回し。
滑稽な表現であるが、あからさまな形容矛盾であり、日本語としては意味をなさない。
「ブロント語」として広まったインターネットスラング。
「まれによくある」の語のニュアンスは、使用者や使用場面によって異なるといえるが、
「頻繁に起こるとも言えるし、めったに起きないとも言える」といった意味合いだったり、「特定の人においてはよくあるが、その他の人には起こらない」といった意味合いだったり、あるいは、いわゆる「あるあるネタ」を指していたりする。
weblio辞書より
まれによくある
別表記:稀によくある、稀に良くある
起こり得る事柄を形容して用いられることのある言い回し。
滑稽な表現であるが、あからさまな形容矛盾であり、日本語としては意味をなさない。
「ブロント語」として広まったインターネットスラング。
「まれによくある」の語のニュアンスは、使用者や使用場面によって異なるといえるが、
「頻繁に起こるとも言えるし、めったに起きないとも言える」といった意味合いだったり、「特定の人においてはよくあるが、その他の人には起こらない」といった意味合いだったり、あるいは、いわゆる「あるあるネタ」を指していたりする。
241デフォルトの名無しさん (ワッチョイ 0bb3-C0zt)
2018/11/29(木) 20:38:21.77ID:+QhJBOyD0 ちなみに>>222のやつは入門サイトにあったやつを少しいじったやつです
242デフォルトの名無しさん (アウアウウー Sa47-gzl5)
2018/11/29(木) 21:38:47.98ID:FncUCYw3a スッキリわかるC言語と苦しんで覚えるC言語
どちらで勉強するか迷ってるんですがどっちがいいと思いますか?
どちらで勉強するか迷ってるんですがどっちがいいと思いますか?
244デフォルトの名無しさん (ワッチョイ baf9-+PYh)
2018/11/29(木) 22:01:35.59ID:kX/wXhND0 >>242
立ち読みして自分にとって説明が理解しやすいと思った方を選んだら?
立ち読みして自分にとって説明が理解しやすいと思った方を選んだら?
245デフォルトの名無しさん (ワッチョイ 0bb3-C0zt)
2018/11/29(木) 22:30:54.22ID:+QhJBOyD0 苦CのほうはWebにサイトがあるのでそっちを見ては?
246デフォルトの名無しさん (アウアウウー Sa47-gzl5)
2018/11/29(木) 22:40:45.52ID:FncUCYw3a まだ新しいスッキリわかるC言語をベースにウェブで分からない時に苦しーも見る方針に決めました
皆さんありがとうございます
皆さんありがとうございます
247デフォルトの名無しさん (ワッチョイ 2b4f-y69T)
2018/11/29(木) 22:48:01.10ID:TPe/tu+/0 >>241
IDEを使ってメモリウインドウから>>226の内容を納得いくまで確認しろ。
> AAAA,BBBB,CCCCを普通に配列で作って、それを1つのポインタでオフセットを指定して選ぶ。みたいなのってCでできるんですか?
それを222で君がやっているように見えるが。
書き方が気に入らないのなら、以下でも多分行ける。
for (int i=0;i<3;i++) printf("%s", *(ary+i));
他言語とは文字列の扱いが異なる。Cの方がより原始的で、はっきり言って使いにくい。
他言語:文字は長さ1の文字列
C言語:文字はcharで、文字列はcharの配列
ただ、char周りなんてどうせ大して使わないから飛ばしていい。さらに言うと、
> AAAA,BBBB,CCCCを普通に配列で作って、それを1つのポインタでオフセットを指定して選ぶ。
なんてのはbotとかでも作るわけでなければ使わない。
printfべた書きで大体事足りる。
IDEを使ってメモリウインドウから>>226の内容を納得いくまで確認しろ。
> AAAA,BBBB,CCCCを普通に配列で作って、それを1つのポインタでオフセットを指定して選ぶ。みたいなのってCでできるんですか?
それを222で君がやっているように見えるが。
書き方が気に入らないのなら、以下でも多分行ける。
for (int i=0;i<3;i++) printf("%s", *(ary+i));
他言語とは文字列の扱いが異なる。Cの方がより原始的で、はっきり言って使いにくい。
他言語:文字は長さ1の文字列
C言語:文字はcharで、文字列はcharの配列
ただ、char周りなんてどうせ大して使わないから飛ばしていい。さらに言うと、
> AAAA,BBBB,CCCCを普通に配列で作って、それを1つのポインタでオフセットを指定して選ぶ。
なんてのはbotとかでも作るわけでなければ使わない。
printfべた書きで大体事足りる。
248デフォルトの名無しさん (ワッチョイ 0bb3-C0zt)
2018/11/29(木) 23:07:20.28ID:+QhJBOyD0 >>247
一応プロセスメモリエディタとか使いながらやってたんですよ、それでも混乱するので聞きました。
多言語はやったことないのでよくわかりませんが、高級言語のよくわからずに使う感じが苦手なので、むしろ原始的なのは好きです。
> AAAA,BBBB,CCCCを普通に配列で作って、それを1つのポインタでオフセットを指定して選ぶ。
っていうのがbotを作るうえで必要というのは初めて知りましたが、botは作りたいと思ってました。
一応プロセスメモリエディタとか使いながらやってたんですよ、それでも混乱するので聞きました。
多言語はやったことないのでよくわかりませんが、高級言語のよくわからずに使う感じが苦手なので、むしろ原始的なのは好きです。
> AAAA,BBBB,CCCCを普通に配列で作って、それを1つのポインタでオフセットを指定して選ぶ。
っていうのがbotを作るうえで必要というのは初めて知りましたが、botは作りたいと思ってました。
249デフォルトの名無しさん (ワッチョイ 2b4f-y69T)
2018/11/30(金) 00:06:17.84ID:tn7d6mNM0 >>248
> プロセスメモリエディタ
なんじゃそりゃ?と思ってみてみたが、どっちかというとハッキングツールだな。
マジな話、IDE使え。個人開発レベルの糞ツールとは次元が違うから。
俺はVSがいいと思うが。
言い忘れてたが当然return文にブレークポイントを当てて止めて見るんだよ。
というか他に何言語やってるんだ?
> AAAA,BBBB,CCCCを普通に配列で作って、それを1つのポインタでオフセットを指定して選ぶ。
これは全くの初心者の発想ではないはず。
明らかに他言語ではこう書ける、これをCでやりたい、というように読めるが。
> っていうのがbotを作るうえで必要というのは初めて知りましたが
というか、文字列を配列に持って切換ながら使う=それらの文字列は同列に扱うべき、
という使い方をすることがほぼ無いんだよ。他の言語でも、アプリでも。
大体文字列なんてリテラルでその場で使って終わり、が殆どだ。
それ以前に、charを主として使うアプリ(bot含む)をCでやろうというのも間違いだが。
char出力は結局UIであって、どうせI/Oで引っかかるから、Cの優位性(速度)が生かせない。
そして原始的な分、生産性自体は悪いから、そのデメリットだけ受けてしまう。
AIbotとかで演算部分に相当速度が必要でない限り、スクリプト言語で作った方がいいと思うぞ。
この意味で、Cでの文字出力はほぼログ生成でしかなく、
だからこそ貧弱なライブラリでも間に合ってる訳だが。
> 高級言語のよくわからずに使う感じが苦手
いやこれは違う。
「余計なことを考えなくて済む」という意味で後発言語はよく出来てるんだよ。
まあこれはじきに分かるだろうさ。
> プロセスメモリエディタ
なんじゃそりゃ?と思ってみてみたが、どっちかというとハッキングツールだな。
マジな話、IDE使え。個人開発レベルの糞ツールとは次元が違うから。
俺はVSがいいと思うが。
言い忘れてたが当然return文にブレークポイントを当てて止めて見るんだよ。
というか他に何言語やってるんだ?
> AAAA,BBBB,CCCCを普通に配列で作って、それを1つのポインタでオフセットを指定して選ぶ。
これは全くの初心者の発想ではないはず。
明らかに他言語ではこう書ける、これをCでやりたい、というように読めるが。
> っていうのがbotを作るうえで必要というのは初めて知りましたが
というか、文字列を配列に持って切換ながら使う=それらの文字列は同列に扱うべき、
という使い方をすることがほぼ無いんだよ。他の言語でも、アプリでも。
大体文字列なんてリテラルでその場で使って終わり、が殆どだ。
それ以前に、charを主として使うアプリ(bot含む)をCでやろうというのも間違いだが。
char出力は結局UIであって、どうせI/Oで引っかかるから、Cの優位性(速度)が生かせない。
そして原始的な分、生産性自体は悪いから、そのデメリットだけ受けてしまう。
AIbotとかで演算部分に相当速度が必要でない限り、スクリプト言語で作った方がいいと思うぞ。
この意味で、Cでの文字出力はほぼログ生成でしかなく、
だからこそ貧弱なライブラリでも間に合ってる訳だが。
> 高級言語のよくわからずに使う感じが苦手
いやこれは違う。
「余計なことを考えなくて済む」という意味で後発言語はよく出来てるんだよ。
まあこれはじきに分かるだろうさ。
250デフォルトの名無しさん (ワッチョイ 6a80-6Zjp)
2018/11/30(金) 01:05:40.46ID:qUT8id4/0 void君は相変わらずだな
251デフォルトの名無しさん (ワッチョイ 0bb3-C0zt)
2018/11/30(金) 01:14:13.61ID:dHzryZqK0 プログラミングというより解析系に興味があっていろいろ調べてただけです。
Cのこともプログラミングのこともまだ全然わからないです
Cのこともプログラミングのこともまだ全然わからないです
252デフォルトの名無しさん (ワッチョイ db64-VZvV)
2018/11/30(金) 01:40:17.87ID:ZZJKHSVT0 puts()関数とかの「s」ってストリングのsなんだね。
今までずっとputの三単現だと思ってたわw
今までずっとputの三単現だと思ってたわw
253デフォルトの名無しさん (ワッチョイ 4e80-gjgg)
2018/11/30(金) 08:28:07.36ID:VjmtC3o00 >>242-246
スッキリJava は、250ページにも及ぶ、猿向けにオブジェクト指向を解説した、伝説の書。
単純な言語の文法書ではない
前半はフレームワークを使う人の立場で、後半はフレームワークを作る人の立場での解説。
だから初心者は、後半を読まなくてもよい
苦しんでC は、手順書。
14歳以下とか、中学生に教えるたぐいの本。手順を教えるだけ。
たいていのAndroid アプリの本と同じ
なぜ、こういうデザインパターンをするのかとか、概念の説明などはない。
漏れは、2時間で読める。
理解して考える要素がないから、ライトノベルと同じ
スッキリJava は、250ページにも及ぶ、猿向けにオブジェクト指向を解説した、伝説の書。
単純な言語の文法書ではない
前半はフレームワークを使う人の立場で、後半はフレームワークを作る人の立場での解説。
だから初心者は、後半を読まなくてもよい
苦しんでC は、手順書。
14歳以下とか、中学生に教えるたぐいの本。手順を教えるだけ。
たいていのAndroid アプリの本と同じ
なぜ、こういうデザインパターンをするのかとか、概念の説明などはない。
漏れは、2時間で読める。
理解して考える要素がないから、ライトノベルと同じ
254デフォルトの名無しさん (ワッチョイ ff7b-egAi)
2018/11/30(金) 08:32:59.05ID:xQIq6Uyn0 理解して考える脳の無いRuby厨であった
255253 (ワッチョイ 4e80-gjgg)
2018/11/30(金) 08:36:47.97ID:VjmtC3o00 例えば、WEB+DB 106号の「実践 Android/iOS アプリ設計」を読んでみ
DI, MVVM, Flux とか、なぜこういうデザインパターンを使うのか、
自分で理解して考えないといけないから、こういう概念の話は難しい
デザインパターンを参考にして、Ruby などでいじくり回すのが、最も身につく。
ポインターのバグ取りに、時間を取られないし
DI, MVVM, Flux とか、なぜこういうデザインパターンを使うのか、
自分で理解して考えないといけないから、こういう概念の話は難しい
デザインパターンを参考にして、Ruby などでいじくり回すのが、最も身につく。
ポインターのバグ取りに、時間を取られないし
256デフォルトの名無しさん (アウアウウー Sa47-7zod)
2018/11/30(金) 09:22:30.92ID:KWzr3gbka DIって外部の設定を使いましょうって話なんですか?
257デフォルトの名無しさん (アウアウウー Sa47-gzl5)
2018/11/30(金) 09:39:20.17ID:vcs52++Va >>253
スッキリわかるC言語はパズドラ作りながらC言語が学べるみたいです
スッキリわかるC言語はパズドラ作りながらC言語が学べるみたいです
258253 (ワッチョイ 4e80-gjgg)
2018/11/30(金) 10:35:00.21ID:VjmtC3o00 DI は、C++ の、p-impl パターン。
外部から、後に作られる、依存性を注入する
class A { new B(引数); }
class A { b = 構築メソッド }
上のように、クラスA 内で、直接B を作らず、
構築メソッドで、Bインスタンスを作る
例えば、クラスBの引数の変更が、クラスAに及ばないように、疎結合にしている。
クラスA・Bの作者が、同一でない場合に、効果が大きい
間接的に、Duck Typing, Interface を使う事で、インターフェース・構築メソッドが固定されるが、
同じ構築メソッドを使うことで、似たようなクラスを扱いやすい
外部から、後に作られる、依存性を注入する
class A { new B(引数); }
class A { b = 構築メソッド }
上のように、クラスA 内で、直接B を作らず、
構築メソッドで、Bインスタンスを作る
例えば、クラスBの引数の変更が、クラスAに及ばないように、疎結合にしている。
クラスA・Bの作者が、同一でない場合に、効果が大きい
間接的に、Duck Typing, Interface を使う事で、インターフェース・構築メソッドが固定されるが、
同じ構築メソッドを使うことで、似たようなクラスを扱いやすい
259デフォルトの名無しさん (ワッチョイ a79f-C0zt)
2018/11/30(金) 14:03:17.31ID:wR5wJL4H0 苦Cから入ったけどつまずいて1年くらい何も触らなかったおもひで
260デフォルトの名無しさん (ワッチョイ 0ed6-C0zt)
2018/11/30(金) 16:07:52.38ID:cYaYTjx50 何もわからんうちからえり好みしないでK&R
これですんなり入れることが適性試験
これですんなり入れることが適性試験
261デフォルトの名無しさん (JP 0H63-X2R9)
2018/11/30(金) 17:16:53.52ID:fQi4U1HQH ループとか条件分岐とか関数とかは別言語で十分習得したという前提でならそれでよい。
262デフォルトの名無しさん (ワッチョイ a79f-C0zt)
2018/11/30(金) 17:20:44.30ID:wR5wJL4H0 アセンブラの入門かじった程度でもイメージはつかめるしCで躓くことはかなり減ると思う
263デフォルトの名無しさん (ワッチョイ 0ed6-C0zt)
2018/11/30(金) 18:19:25.99ID:cYaYTjx50 俺はサブルーチンが関数な言語を1つも知らずにK&Rで憶えた
強いて言うならBASICのUSR関数くらいか
強いて言うならBASICのUSR関数くらいか
264デフォルトの名無しさん (アウアウウー Sa47-2q9Y)
2018/11/30(金) 18:33:32.23ID:vx8Iixcxa BASICの全てグローバル変数だとか行番号に苦しんでいた時に徐々にMS-DOSでCが使える状態になってきて、PC-98でMS-DOSが使えるようになり、TurboCとかも出て俺は救われた。
しかしその後UNIX関係の仕事になったのでCができて当たり前の環境になってしまった。
しかしその後UNIX関係の仕事になったのでCができて当たり前の環境になってしまった。
265デフォルトの名無しさん (ワッチョイ 0e30-C0zt)
2018/11/30(金) 19:07:15.02ID:m3TSK4YL0 大学でunixでCをやるようになってvim系の操作が気持ち悪かったからノリで大学を辞めた
人生で最悪の選択をしてしまった
人生で最悪の選択をしてしまった
266デフォルトの名無しさん (バットンキン MM77-Gcmv)
2018/11/30(金) 19:17:21.91ID:9hh85ykUM >>263
BASICならGOSUBだろ。
BASICならGOSUBだろ。
267デフォルトの名無しさん (ワッチョイ 0ed6-C0zt)
2018/11/30(金) 21:49:44.97ID:cYaYTjx50 >>266
GOSUBが、どのように関数なんだ?
GOSUBが、どのように関数なんだ?
268デフォルトの名無しさん (ワッチョイ 4e81-C0zt)
2018/11/30(金) 22:03:56.69ID:5CDqtXe60 関数と言えるのは、DEF FN かな?
>>253
>スッキリJava は、250ページにも及ぶ、猿向けにオブジェクト指向を解説した、伝説の書。
私が知りたいのはスッキリC++(そんなものが存在するのですか?限りなく胡散臭いですね)の話です
>スッキリJava は、250ページにも及ぶ、猿向けにオブジェクト指向を解説した、伝説の書。
私が知りたいのはスッキリC++(そんなものが存在するのですか?限りなく胡散臭いですね)の話です
271デフォルトの名無しさん (ワッチョイ b3af-C0zt)
2018/11/30(金) 23:34:56.47ID:PIchVJHi0 #define C Java
273デフォルトの名無しさん (ワッチョイ 0bb3-C0zt)
2018/12/01(土) 07:43:03.30ID:7EJdQB2R0 PC6001でBASICを覚えてPLAY,SOUNDで音楽作ってたな
PSGの音を聞くだけで懐かしい気分になる
そしてMSXでMSX-Cを覚えた
cursesがあったからローグもどきのゲーム作って遊んでたよ
PSGの音を聞くだけで懐かしい気分になる
そしてMSXでMSX-Cを覚えた
cursesがあったからローグもどきのゲーム作って遊んでたよ
274デフォルトの名無しさん (ワッチョイ 1761-o5Pc)
2018/12/01(土) 07:47:36.67ID:+NY+xI8A0 サブルーチンって用語はもう消えた?
275デフォルトの名無しさん (ワッチョイ 9ab3-TLTW)
2018/12/01(土) 09:16:07.78ID:4Hoi4/y50 C言語以降関数と手続きを区別しない言語が増えたこととOOPでは一部がメソッドと呼ばれるようになったので使用頻度は下がったな
なくなってはいないけど
なくなってはいないけど
276デフォルトの名無しさん (ワッチョイ 2393-abuG)
2018/12/01(土) 09:27:06.02ID:TOuK5lWF0 関数と手続きを総称して、「メインルーチン」に対して「サブルーチン」って
言い方なら今でも使うんじゃないかな。
プログラミング教育の初期の段階での説明。
BASICでの「サブルーチン」は言語仕様での用語だっけ?
言い方なら今でも使うんじゃないかな。
プログラミング教育の初期の段階での説明。
BASICでの「サブルーチン」は言語仕様での用語だっけ?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【速報】中国、水産物輸入停止と通達 「処理水」理由、日本政府へ ★5 [おっさん友の会★]
- 高市首相答弁を“引き出した”立民・岡田克也氏が改めて説明「なぜ慎重な答弁をされなかったのか。非常に残念に思っている」 [ぐれ★]
- 【速報】 米大使「はっきりさせておこう、米国は尖閣諸島含め日本の防衛に全面コミット、中国がどうしようが変わらない」 [お断り★]
- 中国側が首相答弁の撤回要求、日本側拒否★7 [夜のけいちゃん★]
- 自民、経済対策で子ども1人に2万円給付へ 児童手当に上乗せ 所要額は約4000億円 [ぐれ★]
- 日本行き空路49万件キャンセル 中国自粛呼びかけ 日本行きチケット予約の約32%に相当 ★7 [ぐれ★]
- 【速報】高市首相「つい言い過ぎた」 存立危機事態の答弁について [237216734]
- 偏差値35大臣「英語話せない」 [834922174]
- 【ネトウヨ朗報】イギリスのトラス元首相、高市有事で高市早苗の支持を表明 [603416639]
- 【速報】中国、水産物輸入停止★2 [989870298]
- 【高市訃報】ホタテ業者、死亡😇😇😇 [573041775]
- 【悲報】斎藤元彦陣営のネット広報担当会社が投稿したnoteで騒然 ★950 [931948549]
