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言語なら俺に聞け 144
https://mevius.5ch.net/test/read.cgi/tech/1514025223/
次スレを立てる時は本文の1行目に以下を追加して下さい
!extend:on:vvvvv:1000:512
-
※前スレ
C言語なら俺に聞け 145
http://mevius.5ch.net/test/read.cgi/tech/1519046038/
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
C言語なら俺に聞け 146
レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん (ワッチョイ 839f-AnMQ)
2018/04/30(月) 04:47:37.50ID:XX4FB8lc02デフォルトの名無しさん (アウアウカー Sadd-wPGC)
2018/04/30(月) 18:40:05.50ID:NF3/uQW/a 1乙
3デフォルトの名無しさん (ワッチョイ c9ab-luqG)
2018/05/01(火) 00:44:35.15ID:+Dd51E210 C勉強してるんすけど、どの方面の分野で活かされそうですか
4デフォルトの名無しさん (ワッチョイ 219f-AnMQ)
2018/05/01(火) 02:49:59.77ID:D2CDUI2h0 組み込み関係、OSやデバイスドライバ作成。及び昔Cで書かれたシステムのデバッグ。
その他、Linux等のUNIX系OSで小規模なツール作る時にも使うかも。
その他、Linux等のUNIX系OSで小規模なツール作る時にも使うかも。
5デフォルトの名無しさん (ワッチョイ 4193-JpCb)
2018/05/01(火) 06:35:10.72ID:74eVqb5T0 もっと高級な言語を使うときに、裏で何やってるか見当がつくようになる、
というのも大きな利点かも。
Cやるならマシン語の知識も…
マシン語の前にTTL回路を…
TTLを理解するためにトランジスタ…
キリがないけどな。
というのも大きな利点かも。
Cやるならマシン語の知識も…
マシン語の前にTTL回路を…
TTLを理解するためにトランジスタ…
キリがないけどな。
6デフォルトの名無しさん (ワッチョイ 938a-2Ypg)
2018/05/01(火) 06:50:33.19ID:FY3WOjcl0 >>5
アセンブラ(アセンブリ言語)ではなくてマシン語、電子回路・論理回路ではなくてTTL回路と言う所から判断して1980年代の8ビットパソコン世代かな
アセンブラ(アセンブリ言語)ではなくてマシン語、電子回路・論理回路ではなくてTTL回路と言う所から判断して1980年代の8ビットパソコン世代かな
8デフォルトの名無しさん
2018/05/01(火) 09:19:30.14 >>7
すごいね、おじいちゃん!
すごいね、おじいちゃん!
9デフォルトの名無しさん (ワッチョイ c9ab-luqG)
2018/05/01(火) 14:46:07.71ID:+Dd51E210 私はCを利用してでど底辺から成りあがりたいんですよ
とにかく人生を向上させたいホームレス予備軍
ツールとして今目下格闘中
とにかく人生を向上させたいホームレス予備軍
ツールとして今目下格闘中
10デフォルトの名無しさん (ワッチョイ 938a-N95W)
2018/05/01(火) 15:01:37.73ID:FY3WOjcl0 実益求めるならJava かPython あたりの方が需要あると思うけどな
今やC言語は学習用の通過点か、あるいはニッチな趣味人のためのプログラム言語だよ
今やC言語は学習用の通過点か、あるいはニッチな趣味人のためのプログラム言語だよ
11デフォルトの名無しさん (ワッチョイ 4193-JpCb)
2018/05/01(火) 17:37:53.41ID:74eVqb5T0 さもなければ「Cでプログラムを組んでみせる」が持ちネタのYoutube芸人とか。
現在は何でもエンタテインメント化できる時代らしいから、演出次第だね。
今から地道にやれば学校のプログラミング教育にうまいこと乗っかって
NHK教育で番組持てるかもしれんぞ。
現在は何でもエンタテインメント化できる時代らしいから、演出次第だね。
今から地道にやれば学校のプログラミング教育にうまいこと乗っかって
NHK教育で番組持てるかもしれんぞ。
12デフォルトの名無しさん (ワッチョイ 5360-c97c)
2018/05/01(火) 18:15:30.40ID:bK+upqA80 >>4
lC++ はひどい言語だ。これは、多くの平均以下のプログラマーが使ってるために
さらに輪をかけてゲロゲロになっていて、どうしようもないゴミが
簡単に生産されるようになってる。正直いって、C を選ぶ理由が C++ プログラマーを
追っぱらうため *だけ* だったとしても、それ自体、C を使う強力な理由になりうる。
C++ はトンでもなく悪い設計の元になりうる。どうせこの言語ではいつも STL やら
Boost やら、その他ゲロゲロベロベロの「素敵な」ライブラリの機能を使って、
それがあんたのプログラムに「役立つ」んだろうが、以下のことが起きる:
- うまく動かないときにもたらされる際限のない苦痛 (あと STL とか、特に Boost が
安定してるとか移植性があるとかいう奴は、どいつもこいつも大ウソつきで、
もはや笑えるレベルを超えている)
- 非効率な抽象プログラミングモデルで、2年たった後にこれらが実はそんなに
効率的じゃなかったことに気づくケース。でもそのときにはすでに全部の
コードがその素晴らしいオブジェクトモデルに依存していて、直すためには
アプリ全体を書き直さなきゃなんない。
言いかえれば、唯一まともで、効率がよくて、システムレベルで使えて、移植性がある
C++ ってのは、基本的に C で使える機能だけに限ったときなんだ。そして C だけに
限定するってことは、他の人がそれをめちゃくちゃにしないってことで、
ついでに沢山のプログラマが実際に低水準の問題を理解することができて、アホらしい
「オブジェクト・モデル」のたわごとを持ちこまないってことだ。
すべての用途にCは適切な選択である!
lC++ はひどい言語だ。これは、多くの平均以下のプログラマーが使ってるために
さらに輪をかけてゲロゲロになっていて、どうしようもないゴミが
簡単に生産されるようになってる。正直いって、C を選ぶ理由が C++ プログラマーを
追っぱらうため *だけ* だったとしても、それ自体、C を使う強力な理由になりうる。
C++ はトンでもなく悪い設計の元になりうる。どうせこの言語ではいつも STL やら
Boost やら、その他ゲロゲロベロベロの「素敵な」ライブラリの機能を使って、
それがあんたのプログラムに「役立つ」んだろうが、以下のことが起きる:
- うまく動かないときにもたらされる際限のない苦痛 (あと STL とか、特に Boost が
安定してるとか移植性があるとかいう奴は、どいつもこいつも大ウソつきで、
もはや笑えるレベルを超えている)
- 非効率な抽象プログラミングモデルで、2年たった後にこれらが実はそんなに
効率的じゃなかったことに気づくケース。でもそのときにはすでに全部の
コードがその素晴らしいオブジェクトモデルに依存していて、直すためには
アプリ全体を書き直さなきゃなんない。
言いかえれば、唯一まともで、効率がよくて、システムレベルで使えて、移植性がある
C++ ってのは、基本的に C で使える機能だけに限ったときなんだ。そして C だけに
限定するってことは、他の人がそれをめちゃくちゃにしないってことで、
ついでに沢山のプログラマが実際に低水準の問題を理解することができて、アホらしい
「オブジェクト・モデル」のたわごとを持ちこまないってことだ。
すべての用途にCは適切な選択である!
13デフォルトの名無しさん (ワッチョイ 219f-AnMQ)
2018/05/01(火) 21:03:14.34ID:D2CDUI2h015デフォルトの名無しさん (アウアウウー Sa45-luqG)
2018/05/02(水) 19:18:05.28ID:intU8xfFa お楽しみ?
C++信者が釣れるってこと?
この程度で釣れるかなあ?
C++信者が釣れるってこと?
この程度で釣れるかなあ?
16デフォルトの名無しさん (ワッチョイ 6b8a-V8ON)
2018/05/03(木) 09:53:31.82ID:bSsMxU7b0 linuxだってglibという"素敵ライブラリ"に完全依存してるけどな
17デフォルトの名無しさん (ラクッペ MM33-uZHU)
2018/05/03(木) 16:20:53.83ID:ej+jV7h/M glibに依存してるのはGtk+を使うGUIアプリが主でそれ以外はぼちぼちって感じだぞ
18デフォルトの名無しさん (ワッチョイ bb9f-XJxX)
2018/05/04(金) 05:33:19.95ID:sij7cbOA0 glib ではなく glibc なのでは?
19デフォルトの名無しさん (ワッチョイ bb9f-2OZq)
2018/05/04(金) 05:49:32.75ID:sij7cbOA0 ま、しかし、Linuxはkernelだけでその周りはGNU関係のもので埋め尽くされている。
20デフォルトの名無しさん (ワッチョイ cb96-5xfy)
2018/05/12(土) 10:50:36.15ID:9KHqPvG60 >>2
2otu
2otu
21デフォルトの名無しさん (ドコグロ MM93-nBTi)
2018/05/12(土) 22:35:28.33ID:PPDk2n5SM LinuxカーネルだってGCC拡張が無いとコンパイル通らないだろ。
22デフォルトの名無しさん (ワッチョイ 259f-klMC)
2018/05/13(日) 03:30:03.29ID:YKXy/MBP0 そだねー
23デフォルトの名無しさん (ササクッテロロ Sp21-4Ye1)
2018/05/14(月) 21:02:48.20ID:/gxAL6M9p 3次元配列を動的に確保する際に、メモリ領域を連続にする以下の処理について解説をいただければと思います。
全部わからないのですが、とくに矢印のところがわかりません。
// メモリ領域が連続な2x3x4の配列
int ***d = (int***)malloc(2 * sizeof(int**));
d[0] = (int**)malloc(2 * 3 * sizeof(int*));
d[0][0] = (int*)malloc(2 * 3 * 4 * sizeof(int));
for (int i = 0; i < 2; i++) {
d[i] = d[0] + i * 3; ←不明
for (int j = 0; j < 3; j++) d[i][j] = d[0][0] + i * 3 * 4 + j * 4; ←不明
}
// 解放
free(d[0][0]);
free(d[0]);
free(d);
よろしくお願いいたします。
全部わからないのですが、とくに矢印のところがわかりません。
// メモリ領域が連続な2x3x4の配列
int ***d = (int***)malloc(2 * sizeof(int**));
d[0] = (int**)malloc(2 * 3 * sizeof(int*));
d[0][0] = (int*)malloc(2 * 3 * 4 * sizeof(int));
for (int i = 0; i < 2; i++) {
d[i] = d[0] + i * 3; ←不明
for (int j = 0; j < 3; j++) d[i][j] = d[0][0] + i * 3 * 4 + j * 4; ←不明
}
// 解放
free(d[0][0]);
free(d[0]);
free(d);
よろしくお願いいたします。
24デフォルトの名無しさん (ワッチョイ 059f-YHaA)
2018/05/14(月) 23:35:56.77ID:Tfg/PkXw0 >>23
その本は捨てておk
その本は捨てておk
25デフォルトの名無しさん (ワッチョイ cb81-Iyo3)
2018/05/15(火) 00:01:48.63ID:1kH4gY7r0 >>23
それが載っていた本の著者とタイトル教えて
それが載っていた本の著者とタイトル教えて
26デフォルトの名無しさん (ワッチョイ 55b3-4Ye1)
2018/05/15(火) 00:36:08.09ID:7fXm/AVB027片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd43-CqHk)
2018/05/15(火) 00:47:49.82ID:p8+U0bQkd 一次配列で確保して、インデックスで多次元配列のように使うのが一手かな。
int *pi = (int *)malloc(2*3*4);
#define MULTIARRAY(i0, i1, i2) \
pi[((i0) * 3 + (i1)) * 4 + (i2)]
これだと区間チェックがないから、本番ではもっと改良が必要だけど。
int *pi = (int *)malloc(2*3*4);
#define MULTIARRAY(i0, i1, i2) \
pi[((i0) * 3 + (i1)) * 4 + (i2)]
これだと区間チェックがないから、本番ではもっと改良が必要だけど。
28片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd43-CqHk)
2018/05/15(火) 00:48:58.20ID:p8+U0bQkd29デフォルトの名無しさん (ワッチョイ cb81-Iyo3)
2018/05/15(火) 00:52:28.34ID:1kH4gY7r030片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd43-CqHk)
2018/05/15(火) 00:53:21.99ID:p8+U0bQkd allocaが使えるなら、解放の手間も省ける。
31片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd43-CqHk)
2018/05/15(火) 00:56:18.63ID:p8+U0bQkd C99なら、動的に配列サイズを指定できるから、そんな汚いコードを書く面倒は要らない。
32片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd43-CqHk)
2018/05/15(火) 00:57:32.82ID:p8+U0bQkd グーグル八分やっちゃい魔性
33デフォルトの名無しさん (ワッチョイ 059f-YHaA)
2018/05/15(火) 01:04:46.59ID:Qrh/McUF0 >>26
Cでここまであからさまに間違えているのも今時珍しいが、
そもそもその程度の個人サイトなんて見る価値無いからやめとけ。
その次の検索結果の以下とか、図もあるし、その件についても解説されてるし、そっち読め。
http://www.ibe.kagoshima-u.ac.jp/edu/gengo0/p12.html
見分け方を教えておくと、
10-20行程度のソースをさも一生懸命書いた=初心者レベルと分かるだろ。
Cは歴史も長いからガチの解説サイトも大量にある。
逆に言えば、ガチで解説してないところは全部ゴミ扱いでいい。
あと、メンテされてるかも見ろ。具体的には日付な。
Cでここまであからさまに間違えているのも今時珍しいが、
そもそもその程度の個人サイトなんて見る価値無いからやめとけ。
その次の検索結果の以下とか、図もあるし、その件についても解説されてるし、そっち読め。
http://www.ibe.kagoshima-u.ac.jp/edu/gengo0/p12.html
見分け方を教えておくと、
10-20行程度のソースをさも一生懸命書いた=初心者レベルと分かるだろ。
Cは歴史も長いからガチの解説サイトも大量にある。
逆に言えば、ガチで解説してないところは全部ゴミ扱いでいい。
あと、メンテされてるかも見ろ。具体的には日付な。
34片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd43-CqHk)
2018/05/15(火) 01:05:40.78ID:p8+U0bQkd 処理完了。皆の者、乙。
35片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd43-CqHk)
2018/05/15(火) 01:11:00.87ID:p8+U0bQkd 計算機の安全と、プログラマーの業務を守るための意義のある戦いであった。
36デフォルトの名無しさん (ワッチョイ 55b3-4Ye1)
2018/05/15(火) 01:11:18.49ID:7fXm/AVB037デフォルトの名無しさん (ワッチョイ 059f-YHaA)
2018/05/15(火) 01:16:31.94ID:Qrh/McUF038デフォルトの名無しさん (ブーイモ MM49-7zco)
2018/05/15(火) 01:45:28.10ID:BF34cu+AM 大学っつうても、研究室のお遊びブログ的なのはだめだぞ
39片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd43-CqHk)
2018/05/15(火) 01:48:53.87ID:p8+U0bQkd 大学だってちゃんと社会貢献してる。
でも最近は高過ぎるし、多すぎる。
でも最近は高過ぎるし、多すぎる。
40片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd43-CqHk)
2018/05/15(火) 01:52:58.39ID:p8+U0bQkd 大学ジェノサイドを宣言します。
42片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd43-CqHk)
2018/05/15(火) 02:03:09.54ID:p8+U0bQkd だれか来たみたい。
43片山博文MZ ◆T6xkBnTXz7B0 (スフッ Sd43-CqHk)
2018/05/15(火) 02:33:11.47ID:p8+U0bQkd 我が人生、フィクションの世界で生活しないといけないんだ。
44デフォルトの名無しさん (ワッチョイ 23d2-MBoQ)
2018/05/15(火) 11:06:26.73ID:S5XiWI2a0 ttps://stdput.com/dat/program/allocppp.zip
45デフォルトの名無しさん (ワッチョイ 23d2-MBoQ)
2018/05/15(火) 11:07:56.34ID:S5XiWI2a0 >>44
は自分が前に試しに書いた物
は自分が前に試しに書いた物
46デフォルトの名無しさん (ワッチョイ 7161-H2w1)
2018/05/17(木) 00:33:27.83ID:rZP0knh60 >>23
一応元のサイトでやろうとしてたことだけ解説しておくと、
(int*)malloc(2 * 3 * 4 * sizeof(int));
が実際に整数値が入るメモリ領域で、このメモリ領域に
d[0][1][1] = num;
でアクセスできるようなアドレスの配列を別に malloc してる。
でも普通はこう書くと思うわ。(面倒だったので3x3x3で書いた)
int dim1[3][3][3] = {
{{0x0000, 0x0001, 0x0002}, {0x0010, 0x0011, 0x0012}, {0x0020, 0x0021, 0x0022}},
{{0x0100, 0x0101, 0x0102}, {0x0110, 0x0111, 0x0112}, {0x0120, 0x0121, 0x0122}},
{{0x0200, 0x0201, 0x0202}, {0x0210, 0x0211, 0x0212}, {0x0220, 0x0221, 0x0222}},};
int *dim2 = calloc(1, sizeof(int) * 3 * 3 * 3);
for (int i = 0; i < 3; i++)
for (int j = 0; j < 3; j++)
for (int k = 0; k < 3; k++)
dim2[k + j*3 + i*3*3] = i * 256 + j * 16 + k;
(gdb) p dim2
$1 = (int *) 0x602010
(gdb) x/28x 0x602010
0x602010: 0x00000000 0x00000001 0x00000002 0x00000010
0x602020: 0x00000011 0x00000012 0x00000020 0x00000021
0x602030: 0x00000022 0x00000100 0x00000101 0x00000102
0x602040: 0x00000110 0x00000111 0x00000112 0x00000120
0x602050: 0x00000121 0x00000122 0x00000200 0x00000201
0x602060: 0x00000202 0x00000210 0x00000211 0x00000212
0x602070: 0x00000220 0x00000221 0x00000222 0x00000000
一応元のサイトでやろうとしてたことだけ解説しておくと、
(int*)malloc(2 * 3 * 4 * sizeof(int));
が実際に整数値が入るメモリ領域で、このメモリ領域に
d[0][1][1] = num;
でアクセスできるようなアドレスの配列を別に malloc してる。
でも普通はこう書くと思うわ。(面倒だったので3x3x3で書いた)
int dim1[3][3][3] = {
{{0x0000, 0x0001, 0x0002}, {0x0010, 0x0011, 0x0012}, {0x0020, 0x0021, 0x0022}},
{{0x0100, 0x0101, 0x0102}, {0x0110, 0x0111, 0x0112}, {0x0120, 0x0121, 0x0122}},
{{0x0200, 0x0201, 0x0202}, {0x0210, 0x0211, 0x0212}, {0x0220, 0x0221, 0x0222}},};
int *dim2 = calloc(1, sizeof(int) * 3 * 3 * 3);
for (int i = 0; i < 3; i++)
for (int j = 0; j < 3; j++)
for (int k = 0; k < 3; k++)
dim2[k + j*3 + i*3*3] = i * 256 + j * 16 + k;
(gdb) p dim2
$1 = (int *) 0x602010
(gdb) x/28x 0x602010
0x602010: 0x00000000 0x00000001 0x00000002 0x00000010
0x602020: 0x00000011 0x00000012 0x00000020 0x00000021
0x602030: 0x00000022 0x00000100 0x00000101 0x00000102
0x602040: 0x00000110 0x00000111 0x00000112 0x00000120
0x602050: 0x00000121 0x00000122 0x00000200 0x00000201
0x602060: 0x00000202 0x00000210 0x00000211 0x00000212
0x602070: 0x00000220 0x00000221 0x00000222 0x00000000
47デフォルトの名無しさん (オイコラミネオ MM7e-0hM8)
2018/05/21(月) 05:05:51.70ID:93Sw8Is1M まず2次元で説明した方がいいような気がする
48デフォルトの名無しさん (ワッチョイ b632-NEzo)
2018/05/21(月) 05:52:43.98ID:SySmX4Pj0 int (*dim2)[3][3];
これができないばかりに
アホらしい努力を・・・
これができないばかりに
アホらしい努力を・・・
49デフォルトの名無しさん (JP 0Hda-NEzo)
2018/05/21(月) 12:25:57.79ID:zaHYspypH そろそろ、GUI勉強したいんだけど
どれ覚えたほうがいいかわかりません
解説サイト知りませんか?
どれ覚えたほうがいいかわかりません
解説サイト知りませんか?
50デフォルトの名無しさん (アウアウカー Sa4d-k3+m)
2018/05/21(月) 12:45:27.07ID:BZDB6VKYa C言語で?
>>49
https://www.google.co.jp/search?q=Win32+API+入門
「Win32 API 入門」でググった一番目
手元のWindows7で確かめた範囲では、クリップボードビューアチェインがうまく動かなかった、あとは妥当なところ
https://www.google.co.jp/search?q=Win32+API+入門
「Win32 API 入門」でググった一番目
手元のWindows7で確かめた範囲では、クリップボードビューアチェインがうまく動かなかった、あとは妥当なところ
52デフォルトの名無しさん (ワッチョイ 5593-4AU5)
2018/05/21(月) 19:23:20.49ID:gyCATXvC0 googleさんは同じ検索ワードの組み合わせでも
人によって結果の表示順序が違うと聞いたことがあるけど、
その紹介の仕方で大丈夫なのかしら。
人によって結果の表示順序が違うと聞いたことがあるけど、
その紹介の仕方で大丈夫なのかしら。
>>52
うーん…
うーん…
54デフォルトの名無しさん (ワッチョイ 7d8a-Ut3B)
2018/05/21(月) 20:11:38.84ID:P8ewQ4i90 Windows APIのwikipediaが表示されてる
55デフォルトの名無しさん (アウアウカー Sa4d-k3+m)
2018/05/21(月) 20:39:05.84ID:M7fGJX8za X Window System ってのもあるが・・・あまり使われないか。
まあしかしGUIの学習そのものなら話は別だが、何か実用的なプログラム作りたいのなら他の言語使った方が楽だと思うよ。
まあしかしGUIの学習そのものなら話は別だが、何か実用的なプログラム作りたいのなら他の言語使った方が楽だと思うよ。
56デフォルトの名無しさん (ワッチョイ 559f-XfH4)
2018/05/21(月) 22:54:53.65ID:3ykR0RBK0 >>49
他の人も言っているが、CでGUIはやめとけ。
今現在、また今後とも、GUIをCで積極的に作る理由はない。
GUI用の言語としてオススメなのはJavaScript/HTML/CSSだ。これはほぼ間違いない。
ただし、JavaScriptはコミュニティが腐っていて、
Web情報/紙媒体その他全般的に間違いが多すぎるから、
全くの初心者が正しく学ぶのは難しい。
それでもCでGUIを学ぶよりはマシだ。
今の君には分からないだろうが、CはGUI向けの言語ではない。(変数の生存期間等が)
他の人も言っているが、CでGUIはやめとけ。
今現在、また今後とも、GUIをCで積極的に作る理由はない。
GUI用の言語としてオススメなのはJavaScript/HTML/CSSだ。これはほぼ間違いない。
ただし、JavaScriptはコミュニティが腐っていて、
Web情報/紙媒体その他全般的に間違いが多すぎるから、
全くの初心者が正しく学ぶのは難しい。
それでもCでGUIを学ぶよりはマシだ。
今の君には分からないだろうが、CはGUI向けの言語ではない。(変数の生存期間等が)
57デフォルトの名無しさん (ブーイモ MM99-ZY9B)
2018/05/22(火) 01:11:45.29ID:WtATr0xJM 間違いないオススメなのか、難しいけどマシなのかハッキリしろよ
てか真面目な質問だったら可哀想だからネタ回答はやめれ
てか真面目な質問だったら可哀想だからネタ回答はやめれ
58デフォルトの名無しさん (ワッチョイ 559f-XfH4)
2018/05/22(火) 01:46:17.90ID:dh6iCve70 >>57
JavaScript/HTML/CSSは今現在最強だ。これは否定できないし、やれば分かる。
だから、他でGUIを既に知っており、自分で組めるのなら、これでやれってこと。
ここまでは間違いない。
ただし質問者はGUIが初めてだろ。だとするとWebや文献を漁ることになるが、
JavaScriptに関しては間違った情報が多すぎるから、
少なくとも「そんなわけないだろ」と自分で見抜けないとおかしな事になる。
これもほぼ見えた展開だ。だからJavaScripterは馬鹿が再生産されまくってる。
だからGUIもJavaScriptも知らない奴がGUIをJavaScriptで始めるのは問題があり、
判断は分かれるだろう。
それでも俺はGUIをCで始めるよりはマシだろう、という判断だということ。
JavaScript自体は簡単だから、C言語を十分に使えるのなら習熟は容易い。これは事実だ。
ただ、その過程で当然ググルわけだが、
これに間違いが多すぎて、ものすごく回り道をさせられる。
それでも正しい位置に帰ってこられればいいのだが、それは間違いを見抜けるからであって、
間違いを見抜けない奴に間違った教科書を渡したら終わるだろ。
とはいえ、CのGUIなんて(当時はさておき)今から考えたら完全に間違いでしかない。
当たり前だが、GUIなんて無い時代の言語にGUIをやらせようというのは無理があるんだよ。
そしてJavaScriptは最初からGUI用の言語だから、当然相性はいい。
で、どっちを取るか?となると、
今後CのGUIなんて要らんし、JavaScriptの方がまだマシだろ、という判断。
JavaScript/HTML/CSSは今現在最強だ。これは否定できないし、やれば分かる。
だから、他でGUIを既に知っており、自分で組めるのなら、これでやれってこと。
ここまでは間違いない。
ただし質問者はGUIが初めてだろ。だとするとWebや文献を漁ることになるが、
JavaScriptに関しては間違った情報が多すぎるから、
少なくとも「そんなわけないだろ」と自分で見抜けないとおかしな事になる。
これもほぼ見えた展開だ。だからJavaScripterは馬鹿が再生産されまくってる。
だからGUIもJavaScriptも知らない奴がGUIをJavaScriptで始めるのは問題があり、
判断は分かれるだろう。
それでも俺はGUIをCで始めるよりはマシだろう、という判断だということ。
JavaScript自体は簡単だから、C言語を十分に使えるのなら習熟は容易い。これは事実だ。
ただ、その過程で当然ググルわけだが、
これに間違いが多すぎて、ものすごく回り道をさせられる。
それでも正しい位置に帰ってこられればいいのだが、それは間違いを見抜けるからであって、
間違いを見抜けない奴に間違った教科書を渡したら終わるだろ。
とはいえ、CのGUIなんて(当時はさておき)今から考えたら完全に間違いでしかない。
当たり前だが、GUIなんて無い時代の言語にGUIをやらせようというのは無理があるんだよ。
そしてJavaScriptは最初からGUI用の言語だから、当然相性はいい。
で、どっちを取るか?となると、
今後CのGUIなんて要らんし、JavaScriptの方がまだマシだろ、という判断。
59デフォルトの名無しさん (アウアウカー Sa4d-7qef)
2018/05/22(火) 02:15:32.22ID:w898UC2za ツッコミどころ満載なんだが・・・
60デフォルトの名無しさん (ワッチョイ 559f-XfH4)
2018/05/22(火) 02:34:10.26ID:dh6iCve7061デフォルトの名無しさん (ワッチョイ 7d8a-Ut3B)
2018/05/22(火) 03:36:18.98ID:VvoCofw20 歴史的経緯からJavaScriptが有名だけど現在では本来の標準仕様はECMAScript
方言や派生の情報が混乱の原因
https://ja.wikipedia.org/wiki/ECMAScript
方言や派生の情報が混乱の原因
https://ja.wikipedia.org/wiki/ECMAScript
62デフォルトの名無しさん (ワッチョイ 758a-ZY9B)
2018/05/22(火) 09:40:13.57ID:QrwgoN2z0 そもそも「GUI勉強」が何を指してるか次第だな
Windowsアプリを作れるようになればいいだけなのか
スマホ等も含めたクロスプラットフォームな環境を考慮する必要があるのか…
Windowsアプリを作れるようになればいいだけなのか
スマホ等も含めたクロスプラットフォームな環境を考慮する必要があるのか…
63デフォルトの名無しさん (スップ Sdda-D7Hy)
2018/05/22(火) 09:41:29.14ID:NvZKtgFgd 人間工学の勉強から
64デフォルトの名無しさん (スプッッ Sdc2-NEzo)
2018/05/22(火) 09:57:26.79ID:FbkuHrezd GUIっていっても実際の学習ではGとUに分かれてるんじゃないかなあ
手段としてはGraphicalなんだけど、本質のUser Interfaceは不変というかなんというか
C言語はGraphicalに向いている訳ではないけど、できなくもないのがコメントしにくい
手段としてはGraphicalなんだけど、本質のUser Interfaceは不変というかなんというか
C言語はGraphicalに向いている訳ではないけど、できなくもないのがコメントしにくい
65デフォルトの名無しさん (ワッチョイ 1a81-HRP5)
2018/05/22(火) 10:03:13.74ID:EWE1U2i10 人間工学まで含めて考えるなら、
例えばWeb画面レイアウトや画面遷移もそういう要素あるからなあ
例えばWeb画面レイアウトや画面遷移もそういう要素あるからなあ
66デフォルトの名無しさん
2018/05/22(火) 11:58:54.60 組み込み機器のHMIはC言語で実装するのも珍しくないだろ
CソースはXMLから自動生成とかしてるかもだけどさ
CソースはXMLから自動生成とかしてるかもだけどさ
67デフォルトの名無しさん (アウアウカー Sa4d-k3+m)
2018/05/22(火) 12:19:16.89ID:s7oQSYg1a テキスト画面に表示してるけどGUIみたいなやつはあるな。BIOS画面とか。
68デフォルトの名無しさん (アウアウカー Sa4d-k3+m)
2018/05/22(火) 12:23:01.49ID:s7oQSYg1a BIOS画面でもグラフィックスの画面で本当にGUIになってるの見たことあるな。多分中にLinuxとX入れちゃってるんだろうけど。
69デフォルトの名無しさん (ワッチョイ da73-zy2s)
2018/05/22(火) 16:27:03.48ID:2Df2QouG0 Cなら普通にgtkだろう
日本語でも本あるし
日本語でも本あるし
70デフォルトの名無しさん (ワッチョイ 76ea-X8Mh)
2018/05/22(火) 17:09:57.41ID:0kM/wJRC0 >>68
USBマウス刺さってれば、ちゃんとポインティングしよるぜ 最近のBIOS
USBマウス刺さってれば、ちゃんとポインティングしよるぜ 最近のBIOS
71デフォルトの名無しさん (ドコグロ MMfa-/8Ls)
2018/05/22(火) 17:45:19.93ID:LzyusK+ZM >>70
BIOSにLinuxとかXとか言ってる奴に構うなよ
BIOSにLinuxとかXとか言ってる奴に構うなよ
72デフォルトの名無しさん (アウアウカー Sa4d-k3+m)
2018/05/22(火) 18:14:47.02ID:jJOm7blDa >>71
なんで?
なんで?
73デフォルトの名無しさん (ワッチョイ 1a81-HRP5)
2018/05/22(火) 18:32:15.47ID:EWE1U2i10 そのままBIOS上で動かしていればOS不要だな
74デフォルトの名無しさん (アウアウカー Sa4d-k3+m)
2018/05/22(火) 18:36:15.88ID:jJOm7blDa75デフォルトの名無しさん (ワッチョイ b179-RYnA)
2018/05/22(火) 19:32:38.26ID:xB2s/DOg0 そしてBIOSがウィルス感染すると。
76デフォルトの名無しさん (ワッチョイ 4623-NEzo)
2018/05/22(火) 20:05:11.55ID:hUFcheQs0 そんなこともあろうかとレスキュー用のミニBIOSが用意してある
77デフォルトの名無しさん (アウアウカー Sa4d-k3+m)
2018/05/22(火) 20:22:51.24ID:jJOm7blDa ところで元の話はなんだったっけ?
CでGUIならGTKがおすすめだっけ?
CでGUIならGTKがおすすめだっけ?
78デフォルトの名無しさん (ワッチョイ 1a81-HRP5)
2018/05/22(火) 20:23:17.70ID:EWE1U2i10 パターン青です、使徒にセントラルドグマを侵食されました
自爆装置が作動します
自爆装置が作動します
79デフォルトの名無しさん (ワッチョイ 75eb-PcTF)
2018/05/22(火) 21:41:56.59ID:7iMo1JsI0 CでのGUIプログラミングは、オススメといっても人それぞれだし。
本人が興味のある手法、あるいは必要に迫らせた手法から順に
手を出してみればいいんじゃないかな
本人が興味のある手法、あるいは必要に迫らせた手法から順に
手を出してみればいいんじゃないかな
80デフォルトの名無しさん (スップ Sdda-Gfen)
2018/05/22(火) 22:39:27.93ID:VDgucXQJd Cで低レイヤーなプログラミングを学ぶように低レイヤーなGUIを学ぶならXかなぁ
実用性は皆無とこそ言わずともほぼないが
実用性は皆無とこそ言わずともほぼないが
81デフォルトの名無しさん (アウアウカー Sa4d-bfnn)
2018/05/22(火) 22:53:36.42ID:I6C5yE2aa c、open gl glfw+glew
とか
とか
82デフォルトの名無しさん (ワッチョイ 559f-XfH4)
2018/05/22(火) 23:09:30.41ID:dh6iCve70 結局ろくな突っ込みねえじゃねえかよ。
・CではGUIをやらないのがオススメ
だよ。
WindowsアプリにしたければC#でフロントエンドだけ作ってCプログラムを呼べばいいだけ。
VisualStudioがこの作りだろ。
組み込み機器でネットワークありなら鯖立ててブラウザから設定してもらうのがベスト。
ルーターとか全てこれだろ。
今時ネットワークもない機器でGUIなんてほぼねえよ。
そもそもお前らがGTKもQtも使ってねえだろ。
・CではGUIをやらないのがオススメ
だよ。
WindowsアプリにしたければC#でフロントエンドだけ作ってCプログラムを呼べばいいだけ。
VisualStudioがこの作りだろ。
組み込み機器でネットワークありなら鯖立ててブラウザから設定してもらうのがベスト。
ルーターとか全てこれだろ。
今時ネットワークもない機器でGUIなんてほぼねえよ。
そもそもお前らがGTKもQtも使ってねえだろ。
83デフォルトの名無しさん (ワッチョイ 1a81-HRP5)
2018/05/22(火) 23:16:53.04ID:EWE1U2i10 >C#でフロントエンドだけ作ってCプログラムを呼べばいいだけ。
>VisualStudioがこの作りだろ。
そうだったのか、知らなかった。
VBで作っているのかと思ってた。
>VisualStudioがこの作りだろ。
そうだったのか、知らなかった。
VBで作っているのかと思ってた。
84デフォルトの名無しさん (アウアウウー Sa39-qvI5)
2018/05/22(火) 23:36:12.88ID:+l1sIeYUa あれ、JavaScript最強とか言ってたのどうしたの?
85デフォルトの名無しさん (ワッチョイ 559f-XfH4)
2018/05/22(火) 23:47:04.75ID:dh6iCve70 >>83
ポイントはそこじゃねえ。VisualStudio自体が何で書かれているかは知らんよ。
ただ、今時、GUIまで含めてCで書く必然性はほぼないんだよ。
保守性を上げる為にも、GUIは設定ファイルを生成し、
各種プログラムを呼び出すだけの単純なコントローラに徹するべきなんだよ。
だからこそVSは各種プログラミング言語をカバーできているのであって。
ポイントはそこじゃねえ。VisualStudio自体が何で書かれているかは知らんよ。
ただ、今時、GUIまで含めてCで書く必然性はほぼないんだよ。
保守性を上げる為にも、GUIは設定ファイルを生成し、
各種プログラムを呼び出すだけの単純なコントローラに徹するべきなんだよ。
だからこそVSは各種プログラミング言語をカバーできているのであって。
86デフォルトの名無しさん (ワッチョイ 559f-XfH4)
2018/05/22(火) 23:50:10.95ID:dh6iCve70 >>84
C#もGUI用言語としてはゴミだぞ。Cよりはマシだが。
C#もGUI用言語としてはゴミだぞ。Cよりはマシだが。
87デフォルトの名無しさん (ブーイモ MMa1-yvvh)
2018/05/22(火) 23:54:28.08ID:Gcdgd5MGM まあお前ら口だけだしな
88デフォルトの名無しさん (ワッチョイ 059f-HRP5)
2018/05/22(火) 23:55:54.11ID:IBCwJBRn0 ぺろぺろ
89デフォルトの名無しさん (ワッチョイ 91e3-RYnA)
2018/05/23(水) 00:45:45.99ID:QPyFSXnY090放置された蟻人間 ◆T6xkBnTXz7B0 (スフッ Sdfa-ifJz)
2018/05/23(水) 01:00:02.58ID:ITuVOjj6d91デフォルトの名無しさん (ワッチョイ 4623-NEzo)
2018/05/23(水) 08:59:17.25ID:t/lZ7Uw+092デフォルトの名無しさん (ワッチョイ b678-NEzo)
2018/05/23(水) 09:01:01.98ID:CpOh1zRO0 だな
93デフォルトの名無しさん (ワッチョイ 559f-XfH4)
2018/05/23(水) 22:23:10.76ID:ZyQgvcA80 >>91
ならまずお前がオススメを出せよ、自称苦労人さんよ。
俺なら新規で自由に選択出来るのならまずElectronを検討する。
元々のコードが相当量有るのならグダグダ言わずにそれを使うしかない。
それ以前に、お前らJavaScript/HTML/CSSを知らんだろ?
実際はさらにそれ以前で、お前らGUIなんてほぼやってないだろ?
だからそんな低レベルな突っ込みしか出来ないわけでさ。
Cが十分出来るのなら、JavaScript/HTML/CSSの習熟は簡単だ。
CのGUIなんて悲惨なコードにしかならない。
次の機会があるのなら、騙されたと思って、
ElectronからCプログラム/DLLを呼び出すのも検討に加えてみろよ。
どんだけCのGUIがゴミだったか実感出来るから。
web系()が馬鹿ばかりというのも事実だが、逆に言えば、
馬鹿でも何とかなるようにシステムが組まれてるからこそ成立してるのであって、
この意味では学ぶことも多いぞ。
ならまずお前がオススメを出せよ、自称苦労人さんよ。
俺なら新規で自由に選択出来るのならまずElectronを検討する。
元々のコードが相当量有るのならグダグダ言わずにそれを使うしかない。
それ以前に、お前らJavaScript/HTML/CSSを知らんだろ?
実際はさらにそれ以前で、お前らGUIなんてほぼやってないだろ?
だからそんな低レベルな突っ込みしか出来ないわけでさ。
Cが十分出来るのなら、JavaScript/HTML/CSSの習熟は簡単だ。
CのGUIなんて悲惨なコードにしかならない。
次の機会があるのなら、騙されたと思って、
ElectronからCプログラム/DLLを呼び出すのも検討に加えてみろよ。
どんだけCのGUIがゴミだったか実感出来るから。
web系()が馬鹿ばかりというのも事実だが、逆に言えば、
馬鹿でも何とかなるようにシステムが組まれてるからこそ成立してるのであって、
この意味では学ぶことも多いぞ。
94デフォルトの名無しさん (ワッチョイ 75eb-PcTF)
2018/05/23(水) 23:37:46.76ID:ZozwcPKn0 (ノ∀`) アチャー
95デフォルトの名無しさん (ワッチョイ 93d4-GP3k)
2018/05/24(木) 00:55:07.41ID:XyvIQswZ0 >>93
うーん・・・23点かな、赤点だよキミ
うーん・・・23点かな、赤点だよキミ
96デフォルトの名無しさん (ワッチョイ 198a-CZLf)
2018/05/24(木) 01:27:26.00ID:YYT9dX/p0 Electron、少し気になって調べてみたらhello worldアプリのファイルサイズが100MB近くになるとか書いてあってワロタ
さすが最強だなw
さすが最強だなw
97デフォルトの名無しさん (ワッチョイ d99f-CK0H)
2018/05/24(木) 02:25:19.76ID:yJx+fTIp0 >>96
動作環境同梱だからな。
でも実際、それで問題ないからVSCodeやatomに使われてる。
しかしこのスレも本当にゴミになったな。
揚げ足取りしか出来ない馬鹿しか居ない。
文句を言う前に、まずオススメのGUIを出してみろよ。
事実として、CのGUI環境でオススメ出来る物なんて存在しないだろ。
そもそもGUIをCで書いてる奴が居ないんだから。
Electronにはそれ以外にも色々問題はある。
だからElectronが許されるかどうかは確かに問題だが、
それでもいい環境なら今現在GUIに最適なのは間違いない。
動作環境同梱だからな。
でも実際、それで問題ないからVSCodeやatomに使われてる。
しかしこのスレも本当にゴミになったな。
揚げ足取りしか出来ない馬鹿しか居ない。
文句を言う前に、まずオススメのGUIを出してみろよ。
事実として、CのGUI環境でオススメ出来る物なんて存在しないだろ。
そもそもGUIをCで書いてる奴が居ないんだから。
Electronにはそれ以外にも色々問題はある。
だからElectronが許されるかどうかは確かに問題だが、
それでもいい環境なら今現在GUIに最適なのは間違いない。
98デフォルトの名無しさん (ワッチョイ 198a-CZLf)
2018/05/24(木) 03:15:02.23ID:YYT9dX/p0 ある程度大きなツールなら問題ないだろうけど、
ちょっとしたアプリだと驚きのサイズかな
個人的にお手軽なのはC#(WinForms)で
気合入れるならC++(Win32API)だけど
オススメと言われると悩ましいな
Cはその手のには使ってない
ちょっとしたアプリだと驚きのサイズかな
個人的にお手軽なのはC#(WinForms)で
気合入れるならC++(Win32API)だけど
オススメと言われると悩ましいな
Cはその手のには使ってない
99デフォルトの名無しさん (ワッチョイ a98a-bPUQ)
2018/05/24(木) 05:39:55.69ID:4UVzqDc60 Win32APIはC++必要ないよ
Cでも十分
Cでも十分
100デフォルトの名無しさん (ワッチョイ 0b78-vxiR)
2018/05/24(木) 06:20:19.99ID:+Xu6In4O0 Win32APIの肥大化を危惧してCOMを使うようになったな
101デフォルトの名無しさん (ドコグロ MM3d-Lo1h)
2018/05/24(木) 06:45:39.64ID:MTt26arvM102デフォルトの名無しさん (ワッチョイ 0b78-vxiR)
2018/05/24(木) 06:59:58.23ID:+Xu6In4O0 こいつおそらくWin32APIで何か作ったことないんだろうな
103デフォルトの名無しさん (アウアウカー Sa95-NVy/)
2018/05/24(木) 09:17:20.14ID:vh6bvB4+a Xlibも仲間に入れてあげてください
104デフォルトの名無しさん (アウアウウー Sadd-DqgS)
2018/05/24(木) 10:47:49.63ID:9AnTU2Mna 今北。なんだこの流れ。
元をたどれば>>49がGUI未経験なのでどれを勉強すればいいか聞いてたのが始まりだよな。
おそらく49はプログラミング初心者だろうから、別にC言語を使わなきゃならないという縛りもないはずだ。
C言語スレではあるものの、サクッとGUIアプリが作れる言語を教えるというのは理にかなっていると思う。
初学者がC言語しか知らないというのも珍しいことではない。
実際、大学や高専ではいまだ最初にC言語を教える学科が多い。
だが、それはC言語を学べば他の言語を学ぶ時の学習コストが大幅に下がるというのも理由の1つとしてあると俺は思う。
ということで、このスレではおすすめのGUIフレームワークの話題が繰り広げられているみたいなのだが、
これはおそらく収拾がつかないぞ。
フレームワークの種類だって数多くあるし、言語もケースバイケースだからなぁ。
結局>>49がどういうプラットフォームでGUIアプリを作ってみたいかによるんだよ。
普段使ってるOSがWindowsかLinuxかだけでも大分違うし、
動くならWindowsだけでいいのか、できるだけクロスプラットフォームにしたいのかでも違うし。
なので、49が黙っている以上、誰もが納得する回答なんて出るわけないんだよなぁ。
元をたどれば>>49がGUI未経験なのでどれを勉強すればいいか聞いてたのが始まりだよな。
おそらく49はプログラミング初心者だろうから、別にC言語を使わなきゃならないという縛りもないはずだ。
C言語スレではあるものの、サクッとGUIアプリが作れる言語を教えるというのは理にかなっていると思う。
初学者がC言語しか知らないというのも珍しいことではない。
実際、大学や高専ではいまだ最初にC言語を教える学科が多い。
だが、それはC言語を学べば他の言語を学ぶ時の学習コストが大幅に下がるというのも理由の1つとしてあると俺は思う。
ということで、このスレではおすすめのGUIフレームワークの話題が繰り広げられているみたいなのだが、
これはおそらく収拾がつかないぞ。
フレームワークの種類だって数多くあるし、言語もケースバイケースだからなぁ。
結局>>49がどういうプラットフォームでGUIアプリを作ってみたいかによるんだよ。
普段使ってるOSがWindowsかLinuxかだけでも大分違うし、
動くならWindowsだけでいいのか、できるだけクロスプラットフォームにしたいのかでも違うし。
なので、49が黙っている以上、誰もが納得する回答なんて出るわけないんだよなぁ。
105デフォルトの名無しさん (ワッチョイ 9381-DqgS)
2018/05/24(木) 11:31:40.73ID:zzDqKHlT0 質問者そっちのけで盛り上がるのはいつもの事
106デフォルトの名無しさん (アウアウウー Sadd-1ahM)
2018/05/24(木) 14:20:09.73ID:40zeL6yya C初心者です
苦Cを一通り終えたので練習問題をとこうと思っているのですが、お手頃なレベルの問題が載ってるサイトや問題集とかありますか?
苦Cを一通り終えたので練習問題をとこうと思っているのですが、お手頃なレベルの問題が載ってるサイトや問題集とかありますか?
107デフォルトの名無しさん (アウアウウー Sadd-DqgS)
2018/05/24(木) 15:01:48.55ID:9AnTU2Mna >>106
AIZU ONLINE JUDGE
http://judge.u-aizu.ac.jp/onlinejudge/
会員登録が必要だけど、たくさんのプログラミングの問題が載っている。
言語はC言語だけでなく様々な言語が選択可能で、
入力されたテキスト(標準入力)に対し正しい回答(標準出力)を出せればOK。
アルゴリズム力や数学力を鍛えるのには役立つだろう。
序盤は入門者・初心者向けだが、上級者向けの問題もある(というか大半が上級者向け)。
AIZU ONLINE JUDGE
http://judge.u-aizu.ac.jp/onlinejudge/
会員登録が必要だけど、たくさんのプログラミングの問題が載っている。
言語はC言語だけでなく様々な言語が選択可能で、
入力されたテキスト(標準入力)に対し正しい回答(標準出力)を出せればOK。
アルゴリズム力や数学力を鍛えるのには役立つだろう。
序盤は入門者・初心者向けだが、上級者向けの問題もある(というか大半が上級者向け)。
108デフォルトの名無しさん (ワッチョイ 2b23-vxiR)
2018/05/24(木) 15:55:26.31ID:7K/jnbfl0109デフォルトの名無しさん (アウアウウー Sadd-DqgS)
2018/05/24(木) 17:12:34.79ID:9AnTU2Mna111デフォルトの名無しさん (ワッチョイ 493c-1ahM)
2018/05/24(木) 20:12:37.44ID:Ex4Q+/Nt0112デフォルトの名無しさん (アウアウカー Sa95-NVy/)
2018/05/24(木) 20:29:25.26ID:j4DAPFSka >>106
お手軽かどうかはわからないが一応この板にはプログラミングのお題スレがある。
お手軽かどうかはわからないが一応この板にはプログラミングのお題スレがある。
113デフォルトの名無しさん (アウアウエー Sae3-TUnL)
2018/05/24(木) 20:51:23.65ID:xmDpqFfVa 配列名に動詞使うのは違和感ありますか?
week_of_day = get_week_of_day[(year + year / 4 - year / 100 +
year / 400 + (13 * month + 8) / 5 + day) % 7];
week_of_day = get_week_of_day[(year + year / 4 - year / 100 +
year / 400 + (13 * month + 8) / 5 + day) % 7];
114デフォルトの名無しさん (アウアウエー Sae3-TUnL)
2018/05/24(木) 20:57:56.73ID:xmDpqFfVa char *get_week_of_day[7] = {"Sunday",
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday"};
"Monday",
"Tuesday",
"Wednesday",
"Thursday",
"Friday",
"Saturday"};
116デフォルトの名無しさん (アウアウエー Sae3-TUnL)
2018/05/24(木) 21:02:46.26ID:xmDpqFfVa あ、忘れてました
おとなしく関数化したほうがいいでしょうか?
おとなしく関数化したほうがいいでしょうか?
117デフォルトの名無しさん (ワッチョイ 19eb-7zkz)
2018/05/24(木) 21:04:24.13ID:AZN1ZAoP0 違和感といえば week_of_day よりも day_of_week の方がよさそうな点が(以下略
118デフォルトの名無しさん (アウアウエー Sae3-TUnL)
2018/05/24(木) 21:06:57.97ID:xmDpqFfVa119デフォルトの名無しさん (ワッチョイ d99f-CK0H)
2018/05/24(木) 22:01:19.97ID:yJx+fTIp0 >>101
> なんでこんな視野の狭い奴がこんなスレに居着いてるんだよ...
自己紹介乙。
お前は他言語が何も出来ないからその程度の視野なんだよ。
お前ら自身が今現在もGTKを使っててオススメだと思っているのならそれでいいが、
実際はお前らもGTKを使っておらず、それ以前に使ったこともない知ったかぶりだろ。
そういうミスリードはマジで止めろ。
Electronが生まれた理由はあるんだよ。
そして同様に、MSがMFC->Form->WPFと進化してきた理由もある。
この辺を理解出来ないのなら自分は馬鹿だと自覚して自重しろ。迷惑でしかない。
> なんでこんな視野の狭い奴がこんなスレに居着いてるんだよ...
自己紹介乙。
お前は他言語が何も出来ないからその程度の視野なんだよ。
お前ら自身が今現在もGTKを使っててオススメだと思っているのならそれでいいが、
実際はお前らもGTKを使っておらず、それ以前に使ったこともない知ったかぶりだろ。
そういうミスリードはマジで止めろ。
Electronが生まれた理由はあるんだよ。
そして同様に、MSがMFC->Form->WPFと進化してきた理由もある。
この辺を理解出来ないのなら自分は馬鹿だと自覚して自重しろ。迷惑でしかない。
120デフォルトの名無しさん (アウアウカー Sa95-eopN)
2018/05/24(木) 22:08:16.86ID:4h4bAGNya WPF止まりかー
Electron使ってるの?web系の人向けフレームワークに見えるんだけど
本当に心から最強と思ってる?
Electron使ってるの?web系の人向けフレームワークに見えるんだけど
本当に心から最強と思ってる?
121デフォルトの名無しさん (ドコグロ MM63-Lo1h)
2018/05/24(木) 22:14:53.56ID:vWpWkuPHM122デフォルトの名無しさん (アウアウウー Sadd-DqgS)
2018/05/24(木) 22:20:14.28ID:TB88mWSYa 初心者がGUI勉強したいって言ったらPCやスマホのアプリ程度だと思うんだが…
123デフォルトの名無しさん (ワッチョイ d99f-CK0H)
2018/05/24(木) 22:31:34.31ID:yJx+fTIp0124デフォルトの名無しさん (ワッチョイ 13b3-Lo1h)
2018/05/24(木) 22:41:44.12ID:6yspu/tD0125デフォルトの名無しさん (アウアウウー Sadd-DqgS)
2018/05/24(木) 22:44:50.76ID:TB88mWSYa126デフォルトの名無しさん (ワッチョイ 13b3-Lo1h)
2018/05/24(木) 22:45:14.24ID:6yspu/tD0127デフォルトの名無しさん (ワッチョイ 13b3-Lo1h)
2018/05/24(木) 22:47:15.80ID:6yspu/tD0 >>125
Cとは言ってないけどここはCスレだし
Cとは言ってないけどここはCスレだし
128放置された蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd33-s+lB)
2018/05/24(木) 22:49:10.73ID:KKfGUbdHd 自分がC++の半分を理解できる知能を持たないなら、Tcl/Tkでもやっとけ
129デフォルトの名無しさん (ワッチョイ d99f-CK0H)
2018/05/24(木) 22:54:40.75ID:yJx+fTIp0 とりあえず初心者向けにガイドラインを出すと、
・とにかく新しい物を使え
に尽きる。Cは歴史も長いから当然色々あるのだが、
GUIも色々試行錯誤していて、結果的に昔のは基本的にゴミだ。
当たり前だが新しい奴はいろいろ改善されているわけでね。
そして初心者なら自分で判断出来る能力はないのだから、他人の判断能力にすがれ。
これも当たり前だがみんなそれぞれの状況で「最適解だ」と考えた物を使ってる。
結果的に、割と妥当な物が採用される確率が高くなる。
んで、今時みんなWebでやってるだろ。理由は簡単、一番簡単だからだよ。
Web系()が馬鹿ばっかりなのは事実だが、
逆に言えば、本当に簡単にGUIが実現出来るからこそ、それで成り立ってる。
これは本当にJavaScript/HTML/CSSをやれば分かる。
これまでのGUIは何だったんだ?と思えるくらい間抜けなほど簡単に色々出来るから。
・とにかく新しい物を使え
に尽きる。Cは歴史も長いから当然色々あるのだが、
GUIも色々試行錯誤していて、結果的に昔のは基本的にゴミだ。
当たり前だが新しい奴はいろいろ改善されているわけでね。
そして初心者なら自分で判断出来る能力はないのだから、他人の判断能力にすがれ。
これも当たり前だがみんなそれぞれの状況で「最適解だ」と考えた物を使ってる。
結果的に、割と妥当な物が採用される確率が高くなる。
んで、今時みんなWebでやってるだろ。理由は簡単、一番簡単だからだよ。
Web系()が馬鹿ばっかりなのは事実だが、
逆に言えば、本当に簡単にGUIが実現出来るからこそ、それで成り立ってる。
これは本当にJavaScript/HTML/CSSをやれば分かる。
これまでのGUIは何だったんだ?と思えるくらい間抜けなほど簡単に色々出来るから。
130デフォルトの名無しさん (ワッチョイ d99f-CK0H)
2018/05/24(木) 22:58:33.48ID:yJx+fTIp0131デフォルトの名無しさん (ワッチョイ 13b3-Lo1h)
2018/05/24(木) 23:06:49.88ID:6yspu/tD0 いくら説明してもダメなバカっているんだな...
スレタイ100回声に出して読んでから出直してこい
スレタイ100回声に出して読んでから出直してこい
132デフォルトの名無しさん (ワッチョイ 19b3-ol5y)
2018/05/24(木) 23:14:43.05ID:oUXC6l2s0 「どーしてもCでやりたいのなら○○だが……
そもそも論で、CでGUIコントロールを記述するのはめんどくせーから余所言語学んだほうが近道」
そもそも論で、CでGUIコントロールを記述するのはめんどくせーから余所言語学んだほうが近道」
133デフォルトの名無しさん (アウアウカー Sa95-eopN)
2018/05/24(木) 23:29:36.95ID:4h4bAGNya >>123
CXって何?もしかしてC++/CXのこと?
CXって何?もしかしてC++/CXのこと?
134デフォルトの名無しさん (ワッチョイ d99f-CK0H)
2018/05/24(木) 23:35:00.83ID:yJx+fTIp0135デフォルトの名無しさん (アウアウカー Sa95-eopN)
2018/05/24(木) 23:59:23.49ID:4h4bAGNya136デフォルトの名無しさん (ワッチョイ d99f-CK0H)
2018/05/25(金) 00:07:25.24ID:DRvoryYO0 >>132
とりあえずは同意だが、俺はCではGUIは学べないと思ってるんだよ。
Linusは「Cでもオブジェクト指向は出来る」と言うだろ。確かにこれも事実だが、
これは「既にオブジェクト指向を完全に理解しているから、文法サポート無しでも出来る」のであって、
「何も分かってない奴がいきなりCで出来る」ようにはならないと思うんだよ。
GUIもそうで、今現在最先端なのはJavaScript/HTML/CSSだと俺は思っているから、俺はそれを勧めてる。
それで正しいGUIが出来るようになれば、あとは昔のCのゴミみたいなGUIフレームワークでも何とかなるだろうさ。
しかしGUIのイロハも分かっていない奴に昔の=今から考えたら間違ったフレームワークでは、
間違った方向にしか進めないと思ってる。
これは逆説的だがJavaScripterがOOPを全く理解出来ていないことからも言える。
JavaScriptは全般的にOOPではないので、抽象クラスでコードを一本化ってのが割と出来ない。
PHPはもっと悲惨で、言語内に色々矛盾があるから普通にコードを書いていても躓く。
あれでは上達しないのも分かる。当然OOP(継承)の利点も理解出来ないし。
OOPと同様にGUIでド定番なのはMVCだが、逆にこれをお前らは理解してないだろ。
これも当然で、MVCなんて昔はなかったから、当然昔のGUIフレームワークは『文法的には』サポートしてない。
勿論それでもやれば出来るのだが、それは知っているからであって、知らないようでは組みようがない。
だからとりあえず今最新の物を使っておけ、というオススメになる。
少なくとも、今現在正しいとされている構成にしやすい物になってるから。
とりあえずは同意だが、俺はCではGUIは学べないと思ってるんだよ。
Linusは「Cでもオブジェクト指向は出来る」と言うだろ。確かにこれも事実だが、
これは「既にオブジェクト指向を完全に理解しているから、文法サポート無しでも出来る」のであって、
「何も分かってない奴がいきなりCで出来る」ようにはならないと思うんだよ。
GUIもそうで、今現在最先端なのはJavaScript/HTML/CSSだと俺は思っているから、俺はそれを勧めてる。
それで正しいGUIが出来るようになれば、あとは昔のCのゴミみたいなGUIフレームワークでも何とかなるだろうさ。
しかしGUIのイロハも分かっていない奴に昔の=今から考えたら間違ったフレームワークでは、
間違った方向にしか進めないと思ってる。
これは逆説的だがJavaScripterがOOPを全く理解出来ていないことからも言える。
JavaScriptは全般的にOOPではないので、抽象クラスでコードを一本化ってのが割と出来ない。
PHPはもっと悲惨で、言語内に色々矛盾があるから普通にコードを書いていても躓く。
あれでは上達しないのも分かる。当然OOP(継承)の利点も理解出来ないし。
OOPと同様にGUIでド定番なのはMVCだが、逆にこれをお前らは理解してないだろ。
これも当然で、MVCなんて昔はなかったから、当然昔のGUIフレームワークは『文法的には』サポートしてない。
勿論それでもやれば出来るのだが、それは知っているからであって、知らないようでは組みようがない。
だからとりあえず今最新の物を使っておけ、というオススメになる。
少なくとも、今現在正しいとされている構成にしやすい物になってるから。
137デフォルトの名無しさん (ワッチョイ d99f-CK0H)
2018/05/25(金) 00:09:47.97ID:DRvoryYO0138デフォルトの名無しさん (アウアウカー Sa95-eopN)
2018/05/25(金) 00:21:44.03ID:KhvSHsgHa139デフォルトの名無しさん (ワッチョイ d99f-CK0H)
2018/05/25(金) 00:24:55.86ID:DRvoryYO0140デフォルトの名無しさん (ワッチョイ d99f-CK0H)
2018/05/25(金) 00:27:41.04ID:DRvoryYO0141デフォルトの名無しさん (アウアウカー Sa95-eopN)
2018/05/25(金) 00:32:21.58ID:KhvSHsgHa142デフォルトの名無しさん (ワッチョイ 9381-DqgS)
2018/05/25(金) 00:35:41.85ID:BiCg0uer0 プラットフォームはWindowsって事で良いのかな?
あんまり話広げても困ると思うが
あんまり話広げても困ると思うが
143デフォルトの名無しさん (ワッチョイ d3f9-8LEC)
2018/05/25(金) 00:35:44.32ID:OTj3d8ZM0 もういい加減Cから離れた話になってるから、さっさと終わらせてくれ
144デフォルトの名無しさん (ワッチョイ d99f-CK0H)
2018/05/25(金) 00:40:30.62ID:DRvoryYO0 >>141
お前みたいなクソガキではないからな。
お前がWin32APIを『今』使っていてそれを勧めるのなら、それもありだろう。しかし、そうではない。
お前は今Formsを使っている。なら、それを勧めるのならそれもありだが、それもしない。
おかしいと思わないか?
Formsを使っているうちはFormsの問題に気づけない。
丁度、Cを使っている奴がCで何も問題を感じないのと同じだ。そんなもんだと思っている。
だから古いフレームワークをずっと使い続けている奴が古いのを勧めるのはあり得るし、不思議ではない。
しかし、お前はそうではない。
そりゃ単なる荒らし行為だよ。或いは構ってちゃんか?
お前みたいなクソガキではないからな。
お前がWin32APIを『今』使っていてそれを勧めるのなら、それもありだろう。しかし、そうではない。
お前は今Formsを使っている。なら、それを勧めるのならそれもありだが、それもしない。
おかしいと思わないか?
Formsを使っているうちはFormsの問題に気づけない。
丁度、Cを使っている奴がCで何も問題を感じないのと同じだ。そんなもんだと思っている。
だから古いフレームワークをずっと使い続けている奴が古いのを勧めるのはあり得るし、不思議ではない。
しかし、お前はそうではない。
そりゃ単なる荒らし行為だよ。或いは構ってちゃんか?
145デフォルトの名無しさん (ワッチョイ 13b3-Lo1h)
2018/05/25(金) 01:04:47.66ID:sRNwQo8C0 スレタイも読まずに中身のない長文書くアホが早く居なくならないかなぁ...
146デフォルトの名無しさん (アウアウカー Sa95-eopN)
2018/05/25(金) 01:13:49.55ID:KhvSHsgHa ログ読み返して見たら最強とかオススメとか最新とかは言ってるけど
使ってるとは書いてないのな、ちょっと尊敬するわ
>>144
現行で使えるしな、条件次第では別に勧められても不思議じゃないだろ
勉強なら別に今使ってなきゃオススメ出来ないってこともないと思うし
GUI関係ないけどプログラミングの勉強にCASLとかオススメだぞ
使ってるとは書いてないのな、ちょっと尊敬するわ
>>144
現行で使えるしな、条件次第では別に勧められても不思議じゃないだろ
勉強なら別に今使ってなきゃオススメ出来ないってこともないと思うし
GUI関係ないけどプログラミングの勉強にCASLとかオススメだぞ
147デフォルトの名無しさん (ワッチョイ d99f-CK0H)
2018/05/25(金) 01:19:35.26ID:DRvoryYO0148デフォルトの名無しさん (ワッチョイ 93d4-GP3k)
2018/05/25(金) 01:28:16.78ID:DdMVyRqo0149デフォルトの名無しさん (オイコラミネオ MM8b-DYXr)
2018/05/25(金) 02:12:57.50ID:HzazF40RM c言語というかwindowsAPIとかのがGUI学ぶならいいと思うが
大抵肝の部分隠蔽されてるし
cでGUI書くのがめんどくさいってなら同意できるけど
大抵肝の部分隠蔽されてるし
cでGUI書くのがめんどくさいってなら同意できるけど
150デフォルトの名無しさん (ワッチョイ 398a-EdLk)
2018/05/25(金) 13:09:14.22ID:slKDy5Ac0 匿名掲示板で憂さ晴らし
ちょっとかっこ悪い
ちょっとかっこ悪い
151デフォルトの名無しさん (アウアウカー Sa95-NVy/)
2018/05/25(金) 13:19:04.78ID:aaZ+YEFMa 最初の質問から遠く離れてしまった感
152デフォルトの名無しさん (ワッチョイ 0b78-vxiR)
2018/05/25(金) 13:38:23.63ID:OWfOKoxu0 ネットでは人を小馬鹿にした発言ばかりする
リアルでは小心者なやつがいるね
リアルでは小心者なやつがいるね
153デフォルトの名無しさん (ドコグロ MM63-Lo1h)
2018/05/25(金) 20:31:15.03ID:pg3QaIMjM154デフォルトの名無しさん (ワッチョイ f103-jDrj)
2018/05/25(金) 21:49:19.64ID:q1degsPf0 >>136
>GUIもそうで、今現在最先端なのはJavaScript/HTML/CSSだ
その大部分はテキスト処理ではないか?HTMLもテキストベースの処理のためなのではないか?
GUI の要素からはかけ離れている気がする
たとえば GUI ならば新しいウィンドウを起こし、新しいツリービューを起こし、任意のタイミングで音を出し、
映像をコントロールする(あらかじめ内容の決まったものを垂れ流すのではない)
HTML/CSS/Javascript って、そんなことができるのか?
smalltalk とかだったらまだ意見として分かる、でも HTML とかが GUI のもっとも成功したものだとは思わない
そもそも HTML/CSS/Javascript と GUI とを結びつけるのがへんだと思う
対案:そうだな、いまだったら Java で GUI をやるのがわかりやすいのではないか?まあ、現状廃れているのではあるが
>GUIもそうで、今現在最先端なのはJavaScript/HTML/CSSだ
その大部分はテキスト処理ではないか?HTMLもテキストベースの処理のためなのではないか?
GUI の要素からはかけ離れている気がする
たとえば GUI ならば新しいウィンドウを起こし、新しいツリービューを起こし、任意のタイミングで音を出し、
映像をコントロールする(あらかじめ内容の決まったものを垂れ流すのではない)
HTML/CSS/Javascript って、そんなことができるのか?
smalltalk とかだったらまだ意見として分かる、でも HTML とかが GUI のもっとも成功したものだとは思わない
そもそも HTML/CSS/Javascript と GUI とを結びつけるのがへんだと思う
対案:そうだな、いまだったら Java で GUI をやるのがわかりやすいのではないか?まあ、現状廃れているのではあるが
156デフォルトの名無しさん (ワッチョイ a98a-WOsZ)
2018/05/26(土) 15:05:51.97ID:Zru1hJqs0 HTML5/JavaScript の実装例としてはGoogleマップが有名
マウスでブラウザの表示をグリグリ動かすのは今や当たり前
マウスでブラウザの表示をグリグリ動かすのは今や当たり前
157放置された蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd33-s+lB)
2018/05/26(土) 16:28:32.02ID:zyN05tSDd jQueryとかWordPressなどのウェブ技術は、DHTMLでGUIをバリバリ実現してるよ。
158デフォルトの名無しさん (ワッチョイ 13b3-Lo1h)
2018/05/26(土) 16:30:27.73ID:xltAFcbA0159デフォルトの名無しさん
2018/05/26(土) 16:32:10.63 >>155
おじいちゃんの脳内はHTML5登場前の知識で止まってるんだな
おじいちゃんの脳内はHTML5登場前の知識で止まってるんだな
>>159
HTML5 で新しいウィンドウを発生させることができますか?
HTML5 で新しいウィンドウを発生させることができますか?
161デフォルトの名無しさん (ワッチョイ d99f-CK0H)
2018/05/26(土) 16:38:10.94ID:UEpiBtAT0 >>155
お前がそんなに馬鹿なのにコテなのが本当に意味不明。
お前が嫌われているのも当然だよ。
> たとえば GUI ならば(以下略)
出来ないと思っているのなら、WebページなりVSCodeなり見て考え直せ。
> そもそも HTML/CSS/Javascript と GUI とを結びつけるのがへんだと思う
それはお前のGUIの定義が間違っているからだ。
前にも言ったがお前は抽象思考が出来てない。だから三流のままなんだよ。
Webページ自体がGUIなんだよ。お前はこれを理解出来ていない。
あからさまな「ボタン」である必要はなく、クリックに反応するのならそれは「ボタン」なんだよ。
或いは、Webページと同様にマウスに反応する画面を他GUIで作ってみることを考えろ。
明らかに死ねるだろ。
> Java で GUI
JavaのGUIなんてC以上に使われていないゴミだ。
ミスリードどころではないぞ、マジで死ね。
> でも HTML とかが GUI のもっとも成功したものだとは思わない
今のところHTMLがGUIの最も成功したものだよ。
・現状のGUIは、Webで済む場合はすべてWebが使われている。
・他GUIはWebを周回遅れで追っている。
GTK確認したが、GTK2はForms相当のゴミ、GTK3はWPF相当のゴミだった。
CXでご不満ならUWPか?と仮定しそちらも確認したが、
UWPで採用された「async/await」「セキュリティ」については、
最初からJavaScriptはそのアーキテクチャだった。結果的に、さらにWebに寄って来てる。
ただ、UWP/WinJSについてはElectron相当のポテンシャルはあるのかもしれん。
採用事例がほぼ無いらしいが。
あと、GTK3のバージョニングがおかしいから、GTK4がもうすぐ出てくるのかもしれん。
「HTMLパーサ」「CSS」が出てくればまだ戦える可能性は残る。
お前がそんなに馬鹿なのにコテなのが本当に意味不明。
お前が嫌われているのも当然だよ。
> たとえば GUI ならば(以下略)
出来ないと思っているのなら、WebページなりVSCodeなり見て考え直せ。
> そもそも HTML/CSS/Javascript と GUI とを結びつけるのがへんだと思う
それはお前のGUIの定義が間違っているからだ。
前にも言ったがお前は抽象思考が出来てない。だから三流のままなんだよ。
Webページ自体がGUIなんだよ。お前はこれを理解出来ていない。
あからさまな「ボタン」である必要はなく、クリックに反応するのならそれは「ボタン」なんだよ。
或いは、Webページと同様にマウスに反応する画面を他GUIで作ってみることを考えろ。
明らかに死ねるだろ。
> Java で GUI
JavaのGUIなんてC以上に使われていないゴミだ。
ミスリードどころではないぞ、マジで死ね。
> でも HTML とかが GUI のもっとも成功したものだとは思わない
今のところHTMLがGUIの最も成功したものだよ。
・現状のGUIは、Webで済む場合はすべてWebが使われている。
・他GUIはWebを周回遅れで追っている。
GTK確認したが、GTK2はForms相当のゴミ、GTK3はWPF相当のゴミだった。
CXでご不満ならUWPか?と仮定しそちらも確認したが、
UWPで採用された「async/await」「セキュリティ」については、
最初からJavaScriptはそのアーキテクチャだった。結果的に、さらにWebに寄って来てる。
ただ、UWP/WinJSについてはElectron相当のポテンシャルはあるのかもしれん。
採用事例がほぼ無いらしいが。
あと、GTK3のバージョニングがおかしいから、GTK4がもうすぐ出てくるのかもしれん。
「HTMLパーサ」「CSS」が出てくればまだ戦える可能性は残る。
162デフォルトの名無しさん
2018/05/26(土) 16:40:58.14 >>162
なるほど、ありがとう
なるほど、ありがとう
164デフォルトの名無しさん (ワッチョイ 8b9a-2NJ2)
2018/05/26(土) 19:18:25.85ID:2tHVmW7A0 優勢と見るやまた長文レスか
>>161
>Webページ自体がGUIなんだよ。お前はこれを理解出来ていない。
ブラウザの手のひらの上で踊るのが GUI なんですか?
>JavaのGUIなんてC以上に使われていないゴミだ。
そのとおりだと思いますが、では、どうしてゴミになってしまったのでしょう?Java-GUI のどこがまずかったのでしょうか?
>Webページ自体がGUIなんだよ。お前はこれを理解出来ていない。
ブラウザの手のひらの上で踊るのが GUI なんですか?
>JavaのGUIなんてC以上に使われていないゴミだ。
そのとおりだと思いますが、では、どうしてゴミになってしまったのでしょう?Java-GUI のどこがまずかったのでしょうか?
166デフォルトの名無しさん (ワッチョイ d99f-CK0H)
2018/05/26(土) 20:16:40.70ID:UEpiBtAT0 >>165
> ブラウザの手のひらの上で踊るのが GUI なんですか?
そういう問題じゃねえ。つか、理解出来て無いのお前だけだぞ。
> Java-GUI のどこがまずかったのでしょうか?
全部だろ。
元々Javaは現在のWebが担っている所を負担出来るポテンシャルはあった。
統一バイナリの対象はUWPよりも広く、Linuxまで含まれていたし、
つい先日までブラウザにはJavaの動作環境は同梱状態だった。
最初期には、今は当たり前のようにWebで行われる事も
Javaアプリ(2chで言う専ブラ相当品)の配布で対応されていたこともあったはず。
んで、今この状態だろ。Cより死んでいるのは全部駄目駄目だったからだよ。
GTKはGnomeとFireFoxが適用事例らしい。(どうもドイツ人はGTKが大好きのようだ)
Javaなんてマジで誰も使ってないだろ。(Eclipseがそうなのかもしれんが)
それは誰も使う価値があると認めないからだよ。
とはいえ、Java自体は最も成功したプログラミング言語なのも事実なんだが。
> ブラウザの手のひらの上で踊るのが GUI なんですか?
そういう問題じゃねえ。つか、理解出来て無いのお前だけだぞ。
> Java-GUI のどこがまずかったのでしょうか?
全部だろ。
元々Javaは現在のWebが担っている所を負担出来るポテンシャルはあった。
統一バイナリの対象はUWPよりも広く、Linuxまで含まれていたし、
つい先日までブラウザにはJavaの動作環境は同梱状態だった。
最初期には、今は当たり前のようにWebで行われる事も
Javaアプリ(2chで言う専ブラ相当品)の配布で対応されていたこともあったはず。
んで、今この状態だろ。Cより死んでいるのは全部駄目駄目だったからだよ。
GTKはGnomeとFireFoxが適用事例らしい。(どうもドイツ人はGTKが大好きのようだ)
Javaなんてマジで誰も使ってないだろ。(Eclipseがそうなのかもしれんが)
それは誰も使う価値があると認めないからだよ。
とはいえ、Java自体は最も成功したプログラミング言語なのも事実なんだが。
>>166
>>ブラウザの手のひらの上で踊るのが GUI なんですか?
>そういう問題じゃねえ。
ふふ、まあおっしゃりたいことは分かるのですが、私は仮想的な存在はデフォルトで否定的にみるものでして
>とはいえ、Java自体は最も成功したプログラミング言語なのも事実なんだが。
私は、Java の現状の状況を Java に内在した原因として捉えたいと考えています。
Java のまずい状況は Java 自体に原因があるはず
さて、それはなんでしょうか?
Java アプレットもあれほどだったのに、現在ではほとんどのブラウザに採用されなくされてしまった
なぜなのでしょうか?
>>ブラウザの手のひらの上で踊るのが GUI なんですか?
>そういう問題じゃねえ。
ふふ、まあおっしゃりたいことは分かるのですが、私は仮想的な存在はデフォルトで否定的にみるものでして
>とはいえ、Java自体は最も成功したプログラミング言語なのも事実なんだが。
私は、Java の現状の状況を Java に内在した原因として捉えたいと考えています。
Java のまずい状況は Java 自体に原因があるはず
さて、それはなんでしょうか?
Java アプレットもあれほどだったのに、現在ではほとんどのブラウザに採用されなくされてしまった
なぜなのでしょうか?
168デフォルトの名無しさん (ワッチョイ d99f-CK0H)
2018/05/26(土) 20:38:22.76ID:UEpiBtAT0 >>167
つか、お前が書けよ。
俺は何でそうなったかは知ってる。
それは政治的でもあり、技術的でもある。
が、馬鹿が煽ってくるスレでは情報はやらないことに決めてるんだよ。
だから敢えて書いてない。(自学用の鍵を与えるに留め、外して書いている)
ただし、馬鹿が馬鹿なりに考えて自学するのは手伝ってやるから、
お前が勝手に書け。それが俺の認識と合ってるかどうかくらいは答えるよ。
それで俺の認識が間違ってるのなら勿論叩いてくれていい。
ここはそういう場所だし、その為の場所でもあるし。
ただお前の問題はそこじゃない。
君は詳細を詰めるのではなく、抽象思考の癖を付けた方がいい。
今時詳細はググレば分かることが多いんだよ。ただの知識でしかない。
Javaアプレットが死んだ理由なんてすぐ出てくるだろ。
そんなことよりも、WebがGUIだと直感的に思えないことの方がものすごく問題だ。
つか、お前が書けよ。
俺は何でそうなったかは知ってる。
それは政治的でもあり、技術的でもある。
が、馬鹿が煽ってくるスレでは情報はやらないことに決めてるんだよ。
だから敢えて書いてない。(自学用の鍵を与えるに留め、外して書いている)
ただし、馬鹿が馬鹿なりに考えて自学するのは手伝ってやるから、
お前が勝手に書け。それが俺の認識と合ってるかどうかくらいは答えるよ。
それで俺の認識が間違ってるのなら勿論叩いてくれていい。
ここはそういう場所だし、その為の場所でもあるし。
ただお前の問題はそこじゃない。
君は詳細を詰めるのではなく、抽象思考の癖を付けた方がいい。
今時詳細はググレば分かることが多いんだよ。ただの知識でしかない。
Javaアプレットが死んだ理由なんてすぐ出てくるだろ。
そんなことよりも、WebがGUIだと直感的に思えないことの方がものすごく問題だ。
169デフォルトの名無しさん (アウアウウー Sadd-eopN)
2018/05/26(土) 20:45:33.77ID:83AeDi6ka 布石打ってまで逃げるくらいなら書かなきゃいいのに
QZからも逃げるとか徹底してんな、それとも今ググってるのか?w
QZからも逃げるとか徹底してんな、それとも今ググってるのか?w
>>168
>馬鹿が馬鹿なりに考えて自学するのは手伝ってやる
嬉しい!じゃ、お言葉に甘えて
私は Java 仮想マシンの存在自体がまずいと考えています。
Java はネイティブコンパイルできているべきだった、現在は LLVM コンパイラ環境もあることだし
仮想マシンの意義は当初から疑問に考えていたことでした
逆に Java のライブラリ体制は強く推しているつもり、これは C/C++ にはないリソース(=多数の人間で共有されうる共同幻想)だと思います
GUI も、同様に共同幻想として許容できるか、という視点で考えています
Java のそれや Win32API がそうだとはとても思えませんが、さりとて現時点でのベストはわからない
web 系を意識しだしたのは最近なのでこれについては意見はありません、手元で redmine を導入したときは gem が便利だったし、
rust も同様のパッケージ管理機構を持っているのは好感をもっています
>馬鹿が馬鹿なりに考えて自学するのは手伝ってやる
嬉しい!じゃ、お言葉に甘えて
私は Java 仮想マシンの存在自体がまずいと考えています。
Java はネイティブコンパイルできているべきだった、現在は LLVM コンパイラ環境もあることだし
仮想マシンの意義は当初から疑問に考えていたことでした
逆に Java のライブラリ体制は強く推しているつもり、これは C/C++ にはないリソース(=多数の人間で共有されうる共同幻想)だと思います
GUI も、同様に共同幻想として許容できるか、という視点で考えています
Java のそれや Win32API がそうだとはとても思えませんが、さりとて現時点でのベストはわからない
web 系を意識しだしたのは最近なのでこれについては意見はありません、手元で redmine を導入したときは gem が便利だったし、
rust も同様のパッケージ管理機構を持っているのは好感をもっています
171デフォルトの名無しさん (ワッチョイ d99f-CK0H)
2018/05/26(土) 20:55:39.37ID:UEpiBtAT0 >>167
> Java のまずい状況は Java 自体に原因があるはず
ちなみに、俺は今Javaが不味いとは思ってないぞ。
GUIは死んだが、それは些細なことだ。
ここら辺が根本的に違うかもしれん。
俺は一つの言語で全てが出来るべきだとは思ってない。
むしろそれを目指しているのはC++だが、迷走しつつあるだろ。
> Java のまずい状況は Java 自体に原因があるはず
ちなみに、俺は今Javaが不味いとは思ってないぞ。
GUIは死んだが、それは些細なことだ。
ここら辺が根本的に違うかもしれん。
俺は一つの言語で全てが出来るべきだとは思ってない。
むしろそれを目指しているのはC++だが、迷走しつつあるだろ。
172デフォルトの名無しさん (ワッチョイ d3f9-8LEC)
2018/05/26(土) 21:00:53.53ID:gIREkBj10 さあ、適切なスレに引っ越すか、黙るか、自分の振る舞いを見直そうか。
173デフォルトの名無しさん (ワッチョイ d99f-CK0H)
2018/05/26(土) 21:26:39.92ID:UEpiBtAT0 >>170
> 私は Java 仮想マシンの存在自体がまずいと考えています。
それは後付だ。
当時は各マシン毎に別々にバイナリを用意するのは大変な手間だったし、
実現すれば確かに素晴らしかったんだよ。
で、実際、ある程度実現はしたわけだが、
今現在「マルチプラットフォーム」に関しては完全にWebに取って代わられた。
だからJavaが現在これを宣伝文句に使うことはなくなったが、あって悪いものでもない。
ただ、本質的にはそこは問題ではないんだよ。
エコシステムにとっては、「上質なコードが相当量有る」ことが重要なのであって、
Javaは完全にこれを満たしている。
ネイティブでLLVMを生かしたいのなら、
技術的には、Javaソースコードをネイティブコンパイルするコンパイラを作ればいいだけ。
仕様としてはほぼC++のサブセットなんだから、技術的にはすぐ出来る。
当然GC機構はバイナリに同梱だ。
これだけで、ソースコードを1文字も改変することなく動く。
だから、言語としては「上質なソースコード」が財産なんだよ。
動作環境なんてすぐ変えられる。
現在これが出来ないのは、オラクルが許さないからでしかない。
だから、所有者が変われば変わる可能性もあるだろうさ。
ただ、実験的にはgoogleとかで試されていてもおかしくないし、
音沙汰無しなのは脈無しだとも思うが。
主にJavaについて話したいのなら、Javaスレに移動でこちらは構わない。
その場合はリンクしてくれ。
> 私は Java 仮想マシンの存在自体がまずいと考えています。
それは後付だ。
当時は各マシン毎に別々にバイナリを用意するのは大変な手間だったし、
実現すれば確かに素晴らしかったんだよ。
で、実際、ある程度実現はしたわけだが、
今現在「マルチプラットフォーム」に関しては完全にWebに取って代わられた。
だからJavaが現在これを宣伝文句に使うことはなくなったが、あって悪いものでもない。
ただ、本質的にはそこは問題ではないんだよ。
エコシステムにとっては、「上質なコードが相当量有る」ことが重要なのであって、
Javaは完全にこれを満たしている。
ネイティブでLLVMを生かしたいのなら、
技術的には、Javaソースコードをネイティブコンパイルするコンパイラを作ればいいだけ。
仕様としてはほぼC++のサブセットなんだから、技術的にはすぐ出来る。
当然GC機構はバイナリに同梱だ。
これだけで、ソースコードを1文字も改変することなく動く。
だから、言語としては「上質なソースコード」が財産なんだよ。
動作環境なんてすぐ変えられる。
現在これが出来ないのは、オラクルが許さないからでしかない。
だから、所有者が変われば変わる可能性もあるだろうさ。
ただ、実験的にはgoogleとかで試されていてもおかしくないし、
音沙汰無しなのは脈無しだとも思うが。
主にJavaについて話したいのなら、Javaスレに移動でこちらは構わない。
その場合はリンクしてくれ。
174デフォルトの名無しさん (ワッチョイ 53fe-DqgS)
2018/05/26(土) 21:36:14.60ID:U/ZGluCF0 小学校でプログラミング必修と聞いてBASICやるのかと思ったら
GUI版タートルグラフィックを想定かよ。
GUI版タートルグラフィックを想定かよ。
175放置された蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd33-s+lB)
2018/05/26(土) 23:09:29.29ID:zyN05tSDd 後世のために、デジタルテレビにJavaが使われていることを覚えておいてくれ。
176デフォルトの名無しさん (ワッチョイ a98a-bPUQ)
2018/05/27(日) 02:30:20.66ID:X1xnlCWt0 Javaと言えば今年の秋にリリース予定のJava11から無償のJDKが廃止されるのがどう影響するかだな
下手すれば一気にシェアを落とすことも考えられる
下手すれば一気にシェアを落とすことも考えられる
177デフォルトの名無しさん (ワッチョイ 399f-EK2Y)
2018/05/27(日) 03:31:43.71ID:cn9TbCYJ0 OpenJDKは?
>>177
使う方法を教えてください
使う方法を教えてください
179デフォルトの名無しさん (ワッチョイ 53fe-DqgS)
2018/05/27(日) 09:42:16.43ID:Ezl3r8+N0 今後泥アプリは無料で作れなくなるの?
180デフォルトの名無しさん (ワッチョイ d99f-CK0H)
2018/05/27(日) 09:54:19.62ID:CPM9xRzw0181デフォルトの名無しさん
2018/05/27(日) 11:20:24.54 言うほどひどい変更か?
RHEEとCentOSと同じだろ
RHEEとCentOSと同じだろ
182デフォルトの名無しさん (ワッチョイ 399f-DqgS)
2018/05/27(日) 16:17:28.83ID:cn9TbCYJ0 >>178
Windowsの場合はこことか読めばわかるんじゃないかな。
http://blog.fieldnotes.jp/entry/install-openjdk-on-windows
https://qiita.com/ykubota/items/582caa8621a5fc86d0a1
Linux の場合は何も考えなくても最初から入ってるディストリビューション結構あるのではないか?
少なくとも RHEL, CentOS, Ubuntu のような主要なディストリビューションにはある。
なくても yum や apt で追加可能。
Windowsの場合はこことか読めばわかるんじゃないかな。
http://blog.fieldnotes.jp/entry/install-openjdk-on-windows
https://qiita.com/ykubota/items/582caa8621a5fc86d0a1
Linux の場合は何も考えなくても最初から入ってるディストリビューション結構あるのではないか?
少なくとも RHEL, CentOS, Ubuntu のような主要なディストリビューションにはある。
なくても yum や apt で追加可能。
183デフォルトの名無しさん (ワッチョイ 399f-DqgS)
2018/05/27(日) 16:22:56.43ID:cn9TbCYJ0 しかし Windows のコマンドプロンプトから curl や tar が使えるようになっていたのは知らなかった。
これは良いな。一々余計なアーカイブソフトを後から入れなくても済む。
これは良いな。一々余計なアーカイブソフトを後から入れなくても済む。
184デフォルトの名無しさん (ワッチョイ 8b9a-2NJ2)
2018/05/27(日) 16:34:10.01ID:OKZJ+Sja0 いつまでやってんの
185デフォルトの名無しさん (アウアウカー Sa95-NVy/)
2018/05/28(月) 12:09:22.29ID:0ow6THVWa 苔のむすまで
186デフォルトの名無しさん (ワッチョイ d179-Ockd)
2018/05/28(月) 12:34:46.04ID:FlDMWdNW0 一億と二千年経っても
187デフォルトの名無しさん (ワッチョイ a9a5-huhd)
2018/05/29(火) 00:01:56.34ID:I2Hl4RWx0 > 「上質なコードが相当量有る」ことが重要
フォートラン圧勝
フォートラン圧勝
188デフォルトの名無しさん (ワッチョイ d320-CdF7)
2018/05/30(水) 22:41:12.50ID:LgzWe7xH0 printfでなにか文字表示させた場合と何もしない場合で結果が変わることってありますか?
189デフォルトの名無しさん (ワッチョイ d320-CdF7)
2018/05/30(水) 22:46:22.46ID:LgzWe7xH0 自己解決しました
190デフォルトの名無しさん (アウアウウー Sadd-DqgS)
2018/05/30(水) 23:22:02.29ID:TSp4NAvfa とりあえず、値を取得する系の関数では副作用を起こすような記述はやめような
例えばグローバル変数をいじるとかポインタをいじるとか標準入力・標準出力・ファイル操作するとかはやめろよな
int getValue(int x, int y) {
…
return ○○;
}
こういう関数で printf とかするのは論外
あっ、ちなみに setter でも値の設定だけを行い、標準入力・標準出力・ファイル操作などはするなよ
void setValue(struct MyClass *obj, int x, int y) {
obj->r = x * x + y * y;
obj->theta = atan2(y, x);
}
みたいな感じで
例えばグローバル変数をいじるとかポインタをいじるとか標準入力・標準出力・ファイル操作するとかはやめろよな
int getValue(int x, int y) {
…
return ○○;
}
こういう関数で printf とかするのは論外
あっ、ちなみに setter でも値の設定だけを行い、標準入力・標準出力・ファイル操作などはするなよ
void setValue(struct MyClass *obj, int x, int y) {
obj->r = x * x + y * y;
obj->theta = atan2(y, x);
}
みたいな感じで
191デフォルトの名無しさん (ワッチョイ d59f-NLsb)
2018/05/31(木) 01:29:57.08ID:FEa+Gvkc0 デバッグする時はいいのでは?
192デフォルトの名無しさん (ワッチョイ fa12-XWOY)
2018/05/31(木) 01:31:10.71ID:g4jt9Ien0 とりあえずsetter/getterはクソだな
オブジェクト界最大の汚点だ
オブジェクト界最大の汚点だ
193デフォルトの名無しさん (ワッチョイ cd8a-ci/K)
2018/05/31(木) 01:52:22.10ID:HP6OddUA0 つ プロパティ
194デフォルトの名無しさん (ワッチョイ a623-NLsb)
2018/05/31(木) 09:09:16.76ID:lN1dVvxL0 >>193
それこそ真ゲッターだろ
それこそ真ゲッターだろ
195デフォルトの名無しさん (ワッチョイ cd8a-ci/K)
2018/05/31(木) 09:20:10.03ID:HP6OddUA0 プログラム言語がサポートしていればそれ程酷いことにはならない
https://ja.wikipedia.org/wiki/%E3%83%97%E3%83%AD%E3%83%91%E3%83%86%E3%82%A3_(%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0)
https://ja.wikipedia.org/wiki/%E3%83%97%E3%83%AD%E3%83%91%E3%83%86%E3%82%A3_(%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0)
196デフォルトの名無しさん (ワッチョイ 4161-tKKY)
2018/06/01(金) 21:19:49.50ID:L4m1DFki0 バッチなのですがスペースの問題にぶち当たってます
素敵仕様って言うんですかね?
フルパスから拡張子を抜いたファイル名を取得したいんですが
%^n1でファイル名を取得しているんですが
ファイル名に全角スペースが入っているため完全なファイル名が取得できなく困っています
""で囲っても取得できないです 全角スペースと半角スペースが混ざっていると取得できるのですがなにかいい方法ありますか?
"D&Dで渡したファイルのパスが欲しい"に拘らなければ、テキストファイルにパスリストを書いて読み込むみたいな外部ファイルを使う方法にするとか
Powershellみたいに.Net Framwork呼ぶとか
もしくはファイル名取得用のコンパイルファイルをかますとか
Google先生以上の回答は出ないでしょうか?
素敵仕様って言うんですかね?
フルパスから拡張子を抜いたファイル名を取得したいんですが
%^n1でファイル名を取得しているんですが
ファイル名に全角スペースが入っているため完全なファイル名が取得できなく困っています
""で囲っても取得できないです 全角スペースと半角スペースが混ざっていると取得できるのですがなにかいい方法ありますか?
"D&Dで渡したファイルのパスが欲しい"に拘らなければ、テキストファイルにパスリストを書いて読み込むみたいな外部ファイルを使う方法にするとか
Powershellみたいに.Net Framwork呼ぶとか
もしくはファイル名取得用のコンパイルファイルをかますとか
Google先生以上の回答は出ないでしょうか?
197デフォルトの名無しさん (ワッチョイ d680-vgbR)
2018/06/01(金) 21:35:57.65ID:Hbp4Wjs80 C言語との関連を1行で述べよ
198デフォルトの名無しさん (ワッチョイ 1dbb-667V)
2018/06/03(日) 16:23:01.05ID:i7wWwbyd0 void func(char *const restrict ary)
{
printf("%s\n",ary);
*(ary + 1) = '\0';
printf("%s\n",ary);
}
int main( int argc, char *argv[] )
{
char ary[] = "hoge";
func(ary);
return 0;
}
{
printf("%s\n",ary);
*(ary + 1) = '\0';
printf("%s\n",ary);
}
int main( int argc, char *argv[] )
{
char ary[] = "hoge";
func(ary);
return 0;
}
199デフォルトの名無しさん (ワッチョイ 1dbb-667V)
2018/06/03(日) 16:24:38.29ID:i7wWwbyd0 このコードで配列の中身が書き換えられてしまうんですけどなぜですか?
constとrestrictの関係性がいまいちよくわかってないです・・・
constとrestrictの関係性がいまいちよくわかってないです・・・
201デフォルトの名無しさん (アウアウウー Sa09-44S8)
2018/06/03(日) 17:20:37.50ID:DGByVz/ba スマホでポチポチ入力してたら既に書かれてるけど
>>198-199
とりあえずrestrictは無視するとして
>char *const ary
aryが定数。ary=0はコンパイルエラー。*ary=0はOK
>const char* aryまたは char const* ary
aryの参照先が定数。ary=0はOK、*ary=0はエラー
>>198-199
とりあえずrestrictは無視するとして
>char *const ary
aryが定数。ary=0はコンパイルエラー。*ary=0はOK
>const char* aryまたは char const* ary
aryの参照先が定数。ary=0はOK、*ary=0はエラー
202デフォルトの名無しさん (ワッチョイ d59f-NLsb)
2018/06/03(日) 17:23:51.40ID:m3SIxw/I0 >>198>>199
func() の中の *(any + 1) = '\0' がコンパイルエラーにならない理由は const が any に対するものであって
*any に対するものではないから。そのプログラムの場合 any そのものを変化させる any = NULL や any++
みたいな記述があるとエラーになる。
restrict はコンパイラの最適化に対するヒントで、そのポインタが別のポインタによって指されていないことを
前提とした最適化をして良いことをコンパイラに伝えるためのものだ。伝えられた側のコンパイラはそのような
最適化をやってもいいしやらなくても良い。
func() の中の *(any + 1) = '\0' がコンパイルエラーにならない理由は const が any に対するものであって
*any に対するものではないから。そのプログラムの場合 any そのものを変化させる any = NULL や any++
みたいな記述があるとエラーになる。
restrict はコンパイラの最適化に対するヒントで、そのポインタが別のポインタによって指されていないことを
前提とした最適化をして良いことをコンパイラに伝えるためのものだ。伝えられた側のコンパイラはそのような
最適化をやってもいいしやらなくても良い。
204デフォルトの名無しさん (ワッチョイ d59f-NLsb)
2018/06/03(日) 17:25:19.52ID:m3SIxw/I0 うう。ゆっくり書いてたら間に二つも回答が・・・
205デフォルトの名無しさん (ワッチョイ 7aca-NLsb)
2018/06/03(日) 17:29:03.88ID:xPBqnvux0 >>198-199
俺C言語詳しくない素人だけど、
ポインタに const 修飾子をつけるとき、
修飾子の位置によって定数化されるのが「ポインタ」か「ポインタの指す値」かが異なる。
char *const ary の場合はポインタ(アドレス)を書き換え不可。
++ary; は不可
*ary = 'A'; はOK
const char *ary の場合は値(文字列)を書き換え不可。
++ary; はOK
*ary = 'A'; は不可
restrict 修飾子は初めて見たけど、ググった限りは最適化に使うもので、
プログラムの意味は変わらないので無視してよかろう。
俺C言語詳しくない素人だけど、
ポインタに const 修飾子をつけるとき、
修飾子の位置によって定数化されるのが「ポインタ」か「ポインタの指す値」かが異なる。
char *const ary の場合はポインタ(アドレス)を書き換え不可。
++ary; は不可
*ary = 'A'; はOK
const char *ary の場合は値(文字列)を書き換え不可。
++ary; はOK
*ary = 'A'; は不可
restrict 修飾子は初めて見たけど、ググった限りは最適化に使うもので、
プログラムの意味は変わらないので無視してよかろう。
206デフォルトの名無しさん (ワッチョイ 7aca-NLsb)
2018/06/03(日) 17:29:56.23ID:xPBqnvux0 >>204
俺なんかゆっくり書いてる間に回答が3つも…
俺なんかゆっくり書いてる間に回答が3つも…
207デフォルトの名無しさん (ワッチョイ 7aca-NLsb)
2018/06/03(日) 17:32:22.37ID:xPBqnvux0 ポインタも値もどっちも書き換え不可にするには
const 型* const 変数名;
としないといけなそうだな。
const 型* const 変数名;
としないといけなそうだな。
208デフォルトの名無しさん (ワッチョイ d59f-NLsb)
2018/06/03(日) 20:58:34.59ID:m3SIxw/I0 型 const * const 変数名; でも良い。
209デフォルトの名無しさん
2018/06/03(日) 22:02:08.16 いつかどこかで見たこの流れ
210デフォルトの名無しさん (ドコグロ MMe2-/PkI)
2018/06/04(月) 08:50:32.40ID:3BCLNr2eM *const 変数名
って書くより
変数名[ ]
って書く方が好き
って書くより
変数名[ ]
って書く方が好き
211デフォルトの名無しさん (ワッチョイ 1a5e-msj4)
2018/06/04(月) 19:56:59.58ID:/VyRep/C0 全然関係ないのを比べてるアホ
モノクロA4レーザープリンタが、値段も含めていい感じになっていますね…
213デフォルトの名無しさん (ワッチョイ d97f-m6Zz)
2018/06/07(木) 23:22:34.08ID:69L/zpo00 >>213
const 修飾子を型指定より前にもってくる書き方は正直いってなじめないですよね
const 修飾子を型指定より前にもってくる書き方は正直いってなじめないですよね
関係ないけれども、今日から「民法」を勉強しはじめました、民法20条まで進みました
こういうのも新鮮でおもしろいなあ、と思いました
こういうのも新鮮でおもしろいなあ、と思いました
216デフォルトの名無しさん (ワッチョイ 131e-5NZz)
2018/06/08(金) 05:45:49.36ID:524P9UER0 民法総則からキチンと基本原理を体型立ててやらないと理解できんぞ
217デフォルトの名無しさん (アウアウカー Sa2d-22KU)
2018/06/08(金) 09:37:11.15ID:1PlqYTvda そうか。じゃあ俺は拳法始めよう。
218デフォルトの名無しさん (ワッチョイ 198a-EqDK)
2018/06/08(金) 17:49:04.15ID:rAAW+Mj80 >>215
2chのルールも覚えろよ、タコ
2chのルールも覚えろよ、タコ
220デフォルトの名無しさん (ワッチョイ d3f9-5aY/)
2018/06/09(土) 05:48:25.82ID:nuHHgQUg0 >>219
さあ、適切なスレに移動してそこで10年くらい引きこもっていようか。
さあ、適切なスレに移動してそこで10年くらい引きこもっていようか。
221デフォルトの名無しさん (アウアウカー Sa93-r4GM)
2018/06/21(木) 21:10:00.20ID:uId0yWCha 配列の中身を一つずつ見て0じゃなかったら0にするみたいなプログラムがあります。
中身を見て代入するか分岐するのと、
投機的に0を代入する方法のどちらが速いのでしょうか
中身を見て代入するか分岐するのと、
投機的に0を代入する方法のどちらが速いのでしょうか
222デフォルトの名無しさん (JP 0H13-pn72)
2018/06/21(木) 21:18:45.56ID:PKzn8umZH 推測するな、計測せよ
223デフォルトの名無しさん (ワッチョイ 7f81-GwbS)
2018/06/21(木) 21:21:14.62ID:bCLvNhPr0 無条件に0代入する方がそりゃ速いだろう
224デフォルトの名無しさん (ワッチョイ 9fbd-yRyg)
2018/06/21(木) 21:24:54.22ID:sKPxBIBt0 >>221
もちろん見ないほうが早い。
memsetで一気に0にするのが最速。
気になるなら測定しましょう。測定しない効率化なんてありえないよ。
それと、こいつを壁に飾っとくべし。
「プログラム最適化の第一法則:最適化するな」
もちろん見ないほうが早い。
memsetで一気に0にするのが最速。
気になるなら測定しましょう。測定しない効率化なんてありえないよ。
それと、こいつを壁に飾っとくべし。
「プログラム最適化の第一法則:最適化するな」
225デフォルトの名無しさん (ワッチョイ ff0d-GwbS)
2018/06/21(木) 21:46:17.50ID:KRXESqZV0 >>218
ここは5chだ ぼけ
ここは5chだ ぼけ
226デフォルトの名無しさん (ワッチョイ 1f9f-6R0o)
2018/06/21(木) 21:52:50.57ID:+L4M88hA0 最適化されたらどう書いても memset 使ったのと同じになるかも知れないけどな
227デフォルトの名無しさん (アウアウカー Sa93-tQU5)
2018/06/21(木) 22:26:17.21ID:iolQTPDna なんで開発要件も聞かないうちから見ないほうが速いに決まってるって言いきれるの?
0以外が入ってる可能性が低くて、書くより読むのが圧倒的に速いハードだったら責任取れんのかよ!
0以外が入ってる可能性が低くて、書くより読むのが圧倒的に速いハードだったら責任取れんのかよ!
228デフォルトの名無しさん (ワッチョイ 1f9f-GwbS)
2018/06/21(木) 22:39:37.01ID:+L4M88hA0 そんな特殊な環境なら最初からそう書いてくれない限りまともな回答はなくて当然
229デフォルトの名無しさん (ワッチョイ 9fe3-DJU/)
2018/06/22(金) 00:33:00.46ID:Er730np30 DRAMは読み書き同じ速度だけど
MRAMとかは書くのが遅いんで
チェックして書くのを最低限にするのが常識になる時代が来るかも
MRAMとかは書くのが遅いんで
チェックして書くのを最低限にするのが常識になる時代が来るかも
230デフォルトの名無しさん (ワッチョイ 7fb3-MaHJ)
2018/06/22(金) 00:53:38.92ID:/eT76nj20231デフォルトの名無しさん (ワッチョイ 1f50-ddCb)
2018/06/22(金) 01:43:13.95ID:Hssdw/9K0 >>227
これおれも思った
圧倒的じゃなくても0率がたかくて書くのが遅ければそう
組み込みならメモリマップでメモリ以外のデバイスがつながってるかも知れないし
あとはコードがそうなってる可能性としては
0じゃない個数を数えるコードを入れやすいようにとか
SFRで書く命令が決まってるとか
キャッシュの関係でなるべく書きたくないとか
C言語スレだからな
組み込みの可能性も当然考えなければ
あと、
条件が整えばmemcpyより速いコードは作れる
アラインメントが事前にわかってるとか
SIMD命令が使える事がわかっているとか
DMAが有効とか
これおれも思った
圧倒的じゃなくても0率がたかくて書くのが遅ければそう
組み込みならメモリマップでメモリ以外のデバイスがつながってるかも知れないし
あとはコードがそうなってる可能性としては
0じゃない個数を数えるコードを入れやすいようにとか
SFRで書く命令が決まってるとか
キャッシュの関係でなるべく書きたくないとか
C言語スレだからな
組み込みの可能性も当然考えなければ
あと、
条件が整えばmemcpyより速いコードは作れる
アラインメントが事前にわかってるとか
SIMD命令が使える事がわかっているとか
DMAが有効とか
232デフォルトの名無しさん (ワッチョイ 1f9f-2Io7)
2018/06/22(金) 02:00:59.03ID:F3L5fVz60 >>228
完全に同意
完全に同意
233デフォルトの名無しさん (ワッチョイ 1f50-ddCb)
2018/06/22(金) 02:54:33.68ID:Hssdw/9K0 経験の無さ自慢?
特殊なコードに対して特殊な状況を考えられないアホ自慢?
特殊なコードに対して特殊な状況を考えられないアホ自慢?
234デフォルトの名無しさん (ワッチョイ 1feb-vy4s)
2018/06/22(金) 03:26:32.81ID:+fWpKJrf0235デフォルトの名無しさん (ワッチョイ 1f50-ddCb)
2018/06/22(金) 06:50:11.82ID:Hssdw/9K0 特殊な状況が考えられないアホ
236デフォルトの名無しさん (ワッチョイ 7f81-GwbS)
2018/06/22(金) 09:18:53.30ID:xGEr9UFx0 暇だと盛り上がるな
そんなに仕事が無いのか
そんなに仕事が無いのか
237デフォルトの名無しさん (アウアウカー Sa93-ndvs)
2018/06/22(金) 09:40:17.18ID:TLETRHnoa 自分は特殊な状況を考えられる特別な人と思いたいんですね。わかります。
238デフォルトの名無しさん (スップ Sd1f-ddCb)
2018/06/22(金) 09:45:14.96ID:0px4TqJVd 普通の人
考えられないのはアホと言うだけの話
考えられないのはアホと言うだけの話
239デフォルトの名無しさん (アウアウカー Sa93-ndvs)
2018/06/22(金) 10:10:27.57ID:TLETRHnoa なんとしてでも自分以外をアホということにしておきたい。わかります。
240デフォルトの名無しさん (ワッチョイ 7f81-GwbS)
2018/06/22(金) 10:39:59.24ID:xGEr9UFx0 特殊な環境でしか生きられないなら、そこから出てくるなよ
241デフォルトの名無しさん (ワッチョイ 9f8a-1M3p)
2018/06/22(金) 10:54:33.90ID:VkaCaqwn0 実測が基本で、実測が出来ないなら
一般的な環境を想定してシンプルに記述するのが基本じゃないの
一般的な環境を想定してシンプルに記述するのが基本じゃないの
242デフォルトの名無しさん (ワッチョイ 1f61-DJU/)
2018/06/22(金) 11:42:26.55ID:mMOSdCU40 Q.xxとxxどっちの書き方が速いですか?
A.環境依存
A.環境依存
243デフォルトの名無しさん (スップ Sd1f-ddCb)
2018/06/22(金) 18:28:15.80ID:0px4TqJVd まあ明らかな場合もあるけどね
特定の環境用コードなら実測が基本
でも仕事だと全てのパターンを実測してる暇は無い
そこでプロの勘を使う
特定の環境用コードなら実測が基本
でも仕事だと全てのパターンを実測してる暇は無い
そこでプロの勘を使う
244デフォルトの名無しさん (ワッチョイ 7ffe-GwbS)
2018/06/22(金) 19:23:17.01ID:SPkT+A/00 大多数に当てはまるならそれでいい派 VS 1例でも当てはまらないならダメ派
245デフォルトの名無しさん (スップ Sd1f-ddCb)
2018/06/22(金) 19:28:58.41ID:0px4TqJVd 特殊なコードに対して大多数とか
246デフォルトの名無しさん (ワッチョイ 7ffe-GwbS)
2018/06/22(金) 19:40:06.51ID:SPkT+A/00 今回だけじゃないだろ。
「xxxでどうなんですか?」
「(基本的な環境では)xxxだよ」
「いや、xxxxという稀な環境だと当てはまらないからそれは間違いだ!!」
しょっちゅう見かけるわ。
「xxxでどうなんですか?」
「(基本的な環境では)xxxだよ」
「いや、xxxxという稀な環境だと当てはまらないからそれは間違いだ!!」
しょっちゅう見かけるわ。
247デフォルトの名無しさん (アウアウウー Sae3-GwbS)
2018/06/22(金) 19:59:19.08ID:/0JmIthOa 命名
特殊厨
特殊厨
248デフォルトの名無しさん (ワッチョイ 7ffe-GwbS)
2018/06/23(土) 00:09:39.96ID:PyIuKJwY0 「極稀に当てはまらない場合がある」
↓
「だから気を付けよう」→穏便に話が終わる
「そんなことも知らない(思いつかない)のか!!」→荒れる
↓
「だから気を付けよう」→穏便に話が終わる
「そんなことも知らない(思いつかない)のか!!」→荒れる
249デフォルトの名無しさん (ワッチョイ 7f81-GwbS)
2018/06/23(土) 00:22:38.81ID:j+rjEHjB0 荒らすのが目的なんだろう
250デフォルトの名無しさん (ワッチョイ 1f9f-GwbS)
2018/06/23(土) 00:38:49.81ID:EFPp8pY40 極稀な事を思いつく自分は頭が良くて偉いと言いたいのでしょう。仕方のない事です。
彼はこれまでずっと馬鹿にされ蔑まされてきたのですから。このような機会がなければ
うっぷんを晴らすことができません。もしここで人を罵倒する事が出来なければ彼は
益々ストレスを溜め鉈を持って新幹線に乗ってしまうかも知れません。もはや誰でも
良いのです。掲示板でこの程度のやり取りで大事件が防げるのならば安いものです。
彼はこれまでずっと馬鹿にされ蔑まされてきたのですから。このような機会がなければ
うっぷんを晴らすことができません。もしここで人を罵倒する事が出来なければ彼は
益々ストレスを溜め鉈を持って新幹線に乗ってしまうかも知れません。もはや誰でも
良いのです。掲示板でこの程度のやり取りで大事件が防げるのならば安いものです。
251デフォルトの名無しさん (ラクッペ MM33-DrGR)
2018/06/23(土) 00:44:54.58ID:5Wb6fwhKM 「hogeとfugaのどちらが速いのでしょうか?」
「推測するな、計測せよ」
「極稀に当てはまらない場合がある」
「えっ???」
「推測するな、計測せよ」
「極稀に当てはまらない場合がある」
「えっ???」
252デフォルトの名無しさん (ワッチョイ 1f61-DJU/)
2018/06/23(土) 07:59:41.23ID:9burbaTH0 結局最後はマウント合戦
253デフォルトの名無しさん (ワッチョイ 7fb3-MaHJ)
2018/06/23(土) 08:15:09.58ID:v6rjk3zs0254デフォルトの名無しさん (ワッチョイ 7ff9-CDaA)
2018/06/23(土) 10:36:50.42ID:ul2D0Jgq0 >>227も、指摘の内容はいいんだけど、責任とれるのかよなんて攻撃的な言い方するのは余計なんだよね。
255デフォルトの名無しさん (ブーイモ MM43-/QFz)
2018/06/23(土) 10:41:43.05ID:VDaSN7SRM256デフォルトの名無しさん (ワッチョイ 1f50-ddCb)
2018/06/23(土) 10:41:52.76ID:UiVIxiJp0 技術的な話が出来ない人が人たたき
257デフォルトの名無しさん (ワッチョイ 1f50-ddCb)
2018/06/23(土) 10:43:35.40ID:UiVIxiJp0 >>221が速さしか考えてないってのがそもそも素人
258デフォルトの名無しさん (ワッチョイ 1f50-ddCb)
2018/06/23(土) 10:47:10.93ID:UiVIxiJp0 memsetが最速とか素人丸出し
259デフォルトの名無しさん (ワッチョイ 7fb3-MaHJ)
2018/06/23(土) 11:04:40.17ID:v6rjk3zs0260デフォルトの名無しさん (ワッチョイ ff0d-GwbS)
2018/06/23(土) 11:14:50.84ID:ONikHNCn0 素人素人と連呼してるやつ
自分が言われて傷ついているんだなw
memsetは速いぜ?
逆汗までしなくとも
ベンチマークくらいしてみたか
自分が言われて傷ついているんだなw
memsetは速いぜ?
逆汗までしなくとも
ベンチマークくらいしてみたか
261デフォルトの名無しさん (ワッチョイ 1f50-ddCb)
2018/06/23(土) 12:36:39.74ID:UiVIxiJp0 パフォーマンス最高な汎用コピー関数など存在しない
262デフォルトの名無しさん (ワッチョイ ff8a-GwbS)
2018/06/23(土) 12:40:49.76ID:2drravQ10 memcpyとmemsetの混同か?
263デフォルトの名無しさん (ワッチョイ 1f50-ddCb)
2018/06/23(土) 12:44:28.88ID:UiVIxiJp0 ライブラリや開発環境
使える命令やハード
コア数、キャッシュサイズ、アーキテクチャ
クリアするサイズ
アラインメント
クリアするデバイス
データの出現率
こんなことで最速は変わる
memsetが1バイトずつちまちま代入するようなライブラリも世の中にはたくさんある
小規模組み込みの環境では大抵そう
使える命令やハード
コア数、キャッシュサイズ、アーキテクチャ
クリアするサイズ
アラインメント
クリアするデバイス
データの出現率
こんなことで最速は変わる
memsetが1バイトずつちまちま代入するようなライブラリも世の中にはたくさんある
小規模組み込みの環境では大抵そう
264デフォルトの名無しさん (ワッチョイ 1f9f-6R0o)
2018/06/23(土) 13:39:04.42ID:EFPp8pY40 この頃のCPUだと特定の領域を0にする命令自体が最初からあったりしないのかね?ありそうな感じするんだけど。で、最適化されるとmemsetがその命令一つに置き換わって終わり。
265デフォルトの名無しさん (ワッチョイ 7fb3-MaHJ)
2018/06/23(土) 14:01:42.25ID:v6rjk3zs0 >>262
memcpy って言ってるのは一人だけだしあまり賢くないみたいだから無視していいかと
memcpy って言ってるのは一人だけだしあまり賢くないみたいだから無視していいかと
266デフォルトの名無しさん (ワッチョイ 1f50-ddCb)
2018/06/23(土) 14:05:45.27ID:UiVIxiJp0 遅くていいならREP STOSD命令
CPUを使わない方法もいくつか
DMAを使ったり
SRAMの場合デバイスリセットで0クリアされたり
FLASHだとイレースコマンドとか
PCでDMAを使う簡単な方法は
GPUのメモリをゼロクリアしておいて転送する
CPUを使わない方法もいくつか
DMAを使ったり
SRAMの場合デバイスリセットで0クリアされたり
FLASHだとイレースコマンドとか
PCでDMAを使う簡単な方法は
GPUのメモリをゼロクリアしておいて転送する
267デフォルトの名無しさん (ワッチョイ 7f81-GwbS)
2018/06/23(土) 14:06:13.14ID:j+rjEHjB0 大抵のCPUにあるだろう
268デフォルトの名無しさん (ワッチョイ 1f50-ddCb)
2018/06/23(土) 14:07:19.32ID:UiVIxiJp0 >>262
あ、ごめんコピーじゃなくてクリアの間違い
あ、ごめんコピーじゃなくてクリアの間違い
269デフォルトの名無しさん (ワッチョイ 1f50-ddCb)
2018/06/23(土) 14:09:24.26ID:UiVIxiJp0270デフォルトの名無しさん (ワッチョイ 1f50-ddCb)
2018/06/23(土) 14:15:50.50ID:UiVIxiJp0 レジスタからメモリにコピーすると考えれば
コピーでも間違いではないけど
コピーでも間違いではないけど
271デフォルトの名無しさん (ワッチョイ 9f8a-1M3p)
2018/06/23(土) 14:18:09.09ID:xQlm4MUY0 だから実測しろっての
272デフォルトの名無しさん (ブーイモ MM43-/QFz)
2018/06/23(土) 14:42:28.77ID:VDaSN7SRM >>271
妄想で生きてる奴には何言っても無駄だよ
妄想で生きてる奴には何言っても無駄だよ
273デフォルトの名無しさん (ワッチョイ 1f50-ddCb)
2018/06/23(土) 14:45:35.16ID:UiVIxiJp0274デフォルトの名無しさん (ワッチョイ ffe7-WDJb)
2018/06/24(日) 12:30:50.34ID:wvlf5m9A0 前工程で処理するのが最善
275デフォルトの名無しさん (ワッチョイ ff23-GwbS)
2018/06/25(月) 12:44:11.34ID:UNYa6OHo0 というか、高速化しなきゃなやばいかなー と思ったのなら
void SAKUJO(dst,size){ memset(dst,0,size); }
くらいクソ適当に書いておいて、「あとで」 ごちゃごちゃいじればよろしい
それか、>>274のように 事前に済ませておく かだな
void SAKUJO(dst,size){ memset(dst,0,size); }
くらいクソ適当に書いておいて、「あとで」 ごちゃごちゃいじればよろしい
それか、>>274のように 事前に済ませておく かだな
276デフォルトの名無しさん (アウアウカー Sa93-ndvs)
2018/06/25(月) 12:54:48.48ID://DXoKuSa ま、しかし、よくよく考えてみれば全てを同じ値で埋めておかねばならない状況はあまりないのではないか?
面倒だから一気に全て0にしておいて後から必要な所を埋めるなんてのはよくあるかも知れないが。
そういうのでも calloc() でメモリ確保するなら考える必要ないよな。
面倒だから一気に全て0にしておいて後から必要な所を埋めるなんてのはよくあるかも知れないが。
そういうのでも calloc() でメモリ確保するなら考える必要ないよな。
277デフォルトの名無しさん (スッップ Sd9f-ddCb)
2018/06/25(月) 12:57:20.57ID:ol2B/pPQd 誰がどんな意図で書いたかわからないもの
わざわざ変えなくていいよ
問題があるとわかった時点で考えればいい
わざわざ変えなくていいよ
問題があるとわかった時点で考えればいい
278デフォルトの名無しさん (ワッチョイ 9f8a-cge6)
2018/06/25(月) 13:16:25.31ID:aMpIUa/b0 0クリアの話題でると思い出す事件があったな
某サイトでは業務Gと制御Gの2グループがあって
制御Gは業務Gの処理(データ値)には介入しないという建前があった
あるレコードを更新する時、その整合性の確認をとるため、
制御Gは、キーとなる構造体をmemcmpして一致の判定していた
業務Gは、処理関数の中で構造体を自動変数として確保し、
メンバーに一つ一つ値を設定していた
キーを指定し更新処理を呼んでも一致するデータが見つからないと
エラーが返される結果となった
何故エラーにされるのか、しばらくの間、原因が分からなかった。
某サイトでは業務Gと制御Gの2グループがあって
制御Gは業務Gの処理(データ値)には介入しないという建前があった
あるレコードを更新する時、その整合性の確認をとるため、
制御Gは、キーとなる構造体をmemcmpして一致の判定していた
業務Gは、処理関数の中で構造体を自動変数として確保し、
メンバーに一つ一つ値を設定していた
キーを指定し更新処理を呼んでも一致するデータが見つからないと
エラーが返される結果となった
何故エラーにされるのか、しばらくの間、原因が分からなかった。
279デフォルトの名無しさん (アウアウカー Sa93-ndvs)
2018/06/25(月) 13:19:21.95ID://DXoKuSa ={0} での初期化を布教した方が良いね
280デフォルトの名無しさん (スッップ Sd9f-ddCb)
2018/06/25(月) 13:29:18.12ID:ol2B/pPQd >>278
初心者がいると大変だよね
初心者がいると大変だよね
281デフォルトの名無しさん (ドコグロ MM7f-MaHJ)
2018/06/25(月) 20:22:42.87ID:HTnjHonAM282デフォルトの名無しさん (ワッチョイ 1f50-ddCb)
2018/06/25(月) 23:31:05.64ID:LSXBma6V0 みんなわかってるからそんな事いちいち書かなくて良いんだよ
283デフォルトの名無しさん (ワッチョイ 7fd2-XQuB)
2018/06/26(火) 07:01:33.06ID:tL55F/sw0 H8:EEPMOV
284デフォルトの名無しさん (ワッチョイ a9d2-JxBb)
2018/07/01(日) 01:54:22.43ID:WAYB1PLl0 すいません質問です
C言語の勉強をしようと思っているのですがIDE?というのが沢山ありすぎてどれを選べばいいのか分かりません!
迷える子羊に何卒ご教授下さいませ・・・
C言語の勉強をしようと思っているのですがIDE?というのが沢山ありすぎてどれを選べばいいのか分かりません!
迷える子羊に何卒ご教授下さいませ・・・
285デフォルトの名無しさん (ワッチョイ 219f-iScA)
2018/07/01(日) 02:07:14.10ID:8/sCKaWm0286デフォルトの名無しさん (ワッチョイ 02d2-ZkQx)
2018/07/01(日) 02:08:06.13ID:T+EQOOQd0 >>284
WindowsならVisual Studio Community
LinuxならEclipse CDT
Macなら標準のXCode
最初はIDE使わないでテキストエディタでやるのがいいとは思うがね
WindowsならVisual Studio Community
LinuxならEclipse CDT
Macなら標準のXCode
最初はIDE使わないでテキストエディタでやるのがいいとは思うがね
287デフォルトの名無しさん (ワッチョイ 219f-iScA)
2018/07/01(日) 02:21:34.53ID:8/sCKaWm0288デフォルトの名無しさん (ワッチョイ 8671-OWdA)
2018/07/01(日) 02:37:32.75ID:TDXiV/Pp0 IDEもよくわからん状態からCをやるのはよした方がいいと思うけどなあ
289デフォルトの名無しさん (ワッチョイ 219f-iScA)
2018/07/01(日) 02:42:30.52ID:8/sCKaWm0290デフォルトの名無しさん (ワッチョイ 61b3-7NWm)
2018/07/01(日) 02:51:14.35ID:aoQiIM1T0 >>284
IDEでクエスチョンがつくということは、プログラミング初心者と見た。もしそうなら、Cはオススメしない。もっといい言語がたくさんあるので、プログラミングがどういったものであるかを、他の言語でざっくり掴んでから、Cに取り組むことをお勧めする。
その頃には、IDEがなんであるか、どのIDEが自分に向いているかは、もうわかっているはずだ。
どうしてもCに今すぐ取り掛からなければならないという事情があるなら、
MFCを使わなくてはならないなら、visual studio。
そうでなければ、またはターゲットがWindowsでなければ、Eclipse
どちらにせよ、タップリ不幸になれるので覚悟すること。
IDEでクエスチョンがつくということは、プログラミング初心者と見た。もしそうなら、Cはオススメしない。もっといい言語がたくさんあるので、プログラミングがどういったものであるかを、他の言語でざっくり掴んでから、Cに取り組むことをお勧めする。
その頃には、IDEがなんであるか、どのIDEが自分に向いているかは、もうわかっているはずだ。
どうしてもCに今すぐ取り掛からなければならないという事情があるなら、
MFCを使わなくてはならないなら、visual studio。
そうでなければ、またはターゲットがWindowsでなければ、Eclipse
どちらにせよ、タップリ不幸になれるので覚悟すること。
291デフォルトの名無しさん (ワッチョイ a9d2-JxBb)
2018/07/01(日) 03:12:41.99ID:WAYB1PLl0 >>285-290
皆様遅い時間なのに丁寧に答えて下さり感激の至りですありがとうございます
C言語を勉強しようと思っているのは使う予定があるからなんですすいません・・・
取り敢えず教えてもらったものDLして勉強します、重ね重ねありがとうございます!
皆様遅い時間なのに丁寧に答えて下さり感激の至りですありがとうございます
C言語を勉強しようと思っているのは使う予定があるからなんですすいません・・・
取り敢えず教えてもらったものDLして勉強します、重ね重ねありがとうございます!
292デフォルトの名無しさん (ワッチョイ 219f-iScA)
2018/07/01(日) 03:22:52.22ID:8/sCKaWm0293デフォルトの名無しさん (ワッチョイ 79b3-HrKv)
2018/07/01(日) 07:33:37.83ID:VIP13YQk0 Visual StudioにもLinuxターゲットがある。
294デフォルトの名無しさん (ワッチョイ 298a-4uRd)
2018/07/01(日) 08:01:39.26ID:Bxv8fbGo0 ターゲットの問題ではなくて動作環境の問題だろ
LinuxにVisualStudioは入れられないよ
LinuxにVisualStudioは入れられないよ
295デフォルトの名無しさん (ワッチョイ 79b3-HrKv)
2018/07/01(日) 08:04:14.93ID:VIP13YQk0 じゃあWSL使えば。
296デフォルトの名無しさん (ワッチョイ 298a-4uRd)
2018/07/01(日) 08:09:46.71ID:Bxv8fbGo0 何を言ってんだ?
WSLはWindowsだろ
WSLはWindowsだろ
297デフォルトの名無しさん (ワッチョイ 79b3-HrKv)
2018/07/01(日) 08:19:16.03ID:VIP13YQk0 Windowsのほうがいいし。
298デフォルトの名無しさん (ワッチョイ 298a-4uRd)
2018/07/01(日) 08:40:05.74ID:Bxv8fbGo0 いい悪いではなくてただの事実
自分もVisualStudioは使っているよ
Windows環境では最良のIDEだと思ってる
自分もVisualStudioは使っているよ
Windows環境では最良のIDEだと思ってる
299デフォルトの名無しさん (ワッチョイ 8212-iScA)
2018/07/01(日) 11:33:42.78ID:s3Ywi94+0 ポエムや日記用にもテキストエディタの2〜3は入れてていいんじゃないの
それとコマンドプロンプトの併用も考えてるんじゃない
今の時代の「C言語をやる初心者」は、CUIを知らないんだよ
コマンドを使ってみないと、何を何のために作ってるか分からなくなる
巷で言うスマホの「アプリ」とかのGUIじゃなくて、圧倒的に古いCUIなんだから、今の若いモンには明らかに異質なものを作らせるんだよ
出来上がってくるソフトウェアは「黒い窓」なる謎の儀式でしか動かない極めつけの謎だ
それとコマンドプロンプトの併用も考えてるんじゃない
今の時代の「C言語をやる初心者」は、CUIを知らないんだよ
コマンドを使ってみないと、何を何のために作ってるか分からなくなる
巷で言うスマホの「アプリ」とかのGUIじゃなくて、圧倒的に古いCUIなんだから、今の若いモンには明らかに異質なものを作らせるんだよ
出来上がってくるソフトウェアは「黒い窓」なる謎の儀式でしか動かない極めつけの謎だ
300デフォルトの名無しさん (ワッチョイ 219f-iScA)
2018/07/01(日) 12:41:57.93ID:8/sCKaWm0 つかそもそもEclipseっていいのか?
あれ、Linuxだと他選択肢がないから使われてるだけでは?
Cで使ったことはないが、Windows/NetBeans/PHPはだいぶ酷かったぞ。
もっさりしてるし、不安定だし。
この組み合わせが最悪なだけかもしれんが。
そして一応EclipseとNetBeansは検討対象らしいからな。
(俺的には比較するまでもなくVS>>>NetBeans)
VSとEclipse両方使っている奴いる?いたら感想を。
あれ、Linuxだと他選択肢がないから使われてるだけでは?
Cで使ったことはないが、Windows/NetBeans/PHPはだいぶ酷かったぞ。
もっさりしてるし、不安定だし。
この組み合わせが最悪なだけかもしれんが。
そして一応EclipseとNetBeansは検討対象らしいからな。
(俺的には比較するまでもなくVS>>>NetBeans)
VSとEclipse両方使っている奴いる?いたら感想を。
301デフォルトの名無しさん (ブーイモ MM4d-zt73)
2018/07/01(日) 14:04:36.18ID:iXNUK265M 今のところvsと肩を並べられるIDEなんてないので当然eclipseもvsより劣るわけだが、
リファクタリング機能だけは圧倒的にeclipseのほうが優秀だった。
独自環境用の多数のIDEがオープンソースのeclipseから派生して作成されてるので、個々に使い方を覚えなくていいのもメリットかもしれない。
使い始めた頃はプロジェクトとビルドルールの管理と、日本語が独特なのが、取っ付きにくかったかな。
まあ言いたかったことは、vscode輝け
リファクタリング機能だけは圧倒的にeclipseのほうが優秀だった。
独自環境用の多数のIDEがオープンソースのeclipseから派生して作成されてるので、個々に使い方を覚えなくていいのもメリットかもしれない。
使い始めた頃はプロジェクトとビルドルールの管理と、日本語が独特なのが、取っ付きにくかったかな。
まあ言いたかったことは、vscode輝け
302デフォルトの名無しさん (ワッチョイ 219f-iScA)
2018/07/01(日) 14:34:44.13ID:8/sCKaWm0 >>301
> リファクタリング機能だけは圧倒的にeclipseのほうが優秀だった。
それってCについてだよな。MSはVSについてはC#しかやる気出して無いから。なお、
Q. どうしてVC++のエディタはC#に比べて糞なのですか
A. だってお前らどうせemacsとか使ってエディタ機能使わないじゃん(なお公式)
だったはず。
そのとき、「え?そんなに違うんか?」と思って試し、その差に愕然とした覚えがある。
俺は最新環境を使ってはいないが、最新でもだいぶ見劣りしたと記憶している。
リファクタリング機能とかはユーザがアドオン書けた方がいいから、
それもあってVSCodeなのだろうね。
> リファクタリング機能だけは圧倒的にeclipseのほうが優秀だった。
それってCについてだよな。MSはVSについてはC#しかやる気出して無いから。なお、
Q. どうしてVC++のエディタはC#に比べて糞なのですか
A. だってお前らどうせemacsとか使ってエディタ機能使わないじゃん(なお公式)
だったはず。
そのとき、「え?そんなに違うんか?」と思って試し、その差に愕然とした覚えがある。
俺は最新環境を使ってはいないが、最新でもだいぶ見劣りしたと記憶している。
リファクタリング機能とかはユーザがアドオン書けた方がいいから、
それもあってVSCodeなのだろうね。
303デフォルトの名無しさん (アウアウカー Sac9-Vgsj)
2018/07/01(日) 16:25:12.59ID:skMhceRea Cぐらいならvimだけで十分だと思うがな
304デフォルトの名無しさん (アウアウカー Sac9-OWdA)
2018/07/01(日) 16:35:43.45ID:jK3pbtIRa まずvimの操作を覚えて、開発するならそれなりのプラグイン入れなきゃならないんですがそれは
305デフォルトの名無しさん (アウアウカー Sac9-Vgsj)
2018/07/01(日) 16:45:23.34ID:skMhceRea ブラグインなぞ不要
306デフォルトの名無しさん (ワッチョイ 2193-OY1D)
2018/07/01(日) 17:12:51.78ID:KJj1sYCg0 仕事や学校でCを使う予定があるなら、
現場で使ってる開発環境に合わせるのが最善だろう。
IDEの優劣よりも優先されるんじゃないかな。
今のご時世にCに関してまったくの素人だと、
Cを使うのにIDEが必須と勘違いしてる可能性もあったり。
任意のテキストエディタで.cファイルを打ち込んで
コマンドラインでコンパイル、実行という手順が
紹介されてない入門書や入門サイトがあるかも。
現場で使ってる開発環境に合わせるのが最善だろう。
IDEの優劣よりも優先されるんじゃないかな。
今のご時世にCに関してまったくの素人だと、
Cを使うのにIDEが必須と勘違いしてる可能性もあったり。
任意のテキストエディタで.cファイルを打ち込んで
コマンドラインでコンパイル、実行という手順が
紹介されてない入門書や入門サイトがあるかも。
307デフォルトの名無しさん (ワッチョイ 219f-iScA)
2018/07/01(日) 17:13:26.42ID:8/sCKaWm0 >>305
それはさすがに老害の発想だぜ。
今時のemacsはインテリセンスも出るし、
flyCheckで文法エラーもリアルタイムで表示される。
お前はそういうの知らずに言ってるだろ。
(なお、vimも同様だったはず)
最終的にはそういうのがうざくなって色々切ったりするけど、
俺は初心者こそIDE(というかゴテゴテの環境)でスタートすべきだと思ってる。
大体において、
「動きません。でも私のコードは完璧です。これはIDEのバグですか」と言ってくるんだから、
「ブレークポイントを全部の行に置いてループも1回ずつステップ実行して確認して死ね」
と返せないと意味無いだろ。
それはさすがに老害の発想だぜ。
今時のemacsはインテリセンスも出るし、
flyCheckで文法エラーもリアルタイムで表示される。
お前はそういうの知らずに言ってるだろ。
(なお、vimも同様だったはず)
最終的にはそういうのがうざくなって色々切ったりするけど、
俺は初心者こそIDE(というかゴテゴテの環境)でスタートすべきだと思ってる。
大体において、
「動きません。でも私のコードは完璧です。これはIDEのバグですか」と言ってくるんだから、
「ブレークポイントを全部の行に置いてループも1回ずつステップ実行して確認して死ね」
と返せないと意味無いだろ。
308デフォルトの名無しさん (ワッチョイ 219f-iScA)
2018/07/01(日) 17:22:47.54ID:8/sCKaWm0 >>306
> 紹介されてない入門書や入門サイトがあるかも。
VSがそうですが何か?(なおC++)
https://msdn.microsoft.com/ja-jp/library/jj620919.aspx
てかマジな話、VSで閉じていいのならそんな知識いらんて。
> 現場で使ってる開発環境に合わせるのが最善だろう。
> IDEの優劣よりも優先されるんじゃないかな。
これはその通りだが。
> 紹介されてない入門書や入門サイトがあるかも。
VSがそうですが何か?(なおC++)
https://msdn.microsoft.com/ja-jp/library/jj620919.aspx
てかマジな話、VSで閉じていいのならそんな知識いらんて。
> 現場で使ってる開発環境に合わせるのが最善だろう。
> IDEの優劣よりも優先されるんじゃないかな。
これはその通りだが。
309デフォルトの名無しさん (ワッチョイ 39bb-VCRa)
2018/07/02(月) 00:22:55.41ID:MZb/U4ur0 >>300
>つかそもそもEclipseっていいのか?
>あれ、Linuxだと他選択肢がないから使われてるだけでは?
組込みだとマイコンのメーカーのIDE(コンパイラ)が
EclipseベースなIDEな事があるから
VSではなくEclipseに馴れるって意味で選択する意味はあるかな
実際組込み現場でCでの開発想定したこの書籍だと
Eclipseで開発する事を想定して書かれてる
http://amzn.asia/5PyjxPA
あと余談だけど今さらvimだのemacsだの時代遅れじゃね?
マルチプラットフォームで動くVSCodeやAtom選択した方が
学習コストも少なく高機能だと思うんだけど
>つかそもそもEclipseっていいのか?
>あれ、Linuxだと他選択肢がないから使われてるだけでは?
組込みだとマイコンのメーカーのIDE(コンパイラ)が
EclipseベースなIDEな事があるから
VSではなくEclipseに馴れるって意味で選択する意味はあるかな
実際組込み現場でCでの開発想定したこの書籍だと
Eclipseで開発する事を想定して書かれてる
http://amzn.asia/5PyjxPA
あと余談だけど今さらvimだのemacsだの時代遅れじゃね?
マルチプラットフォームで動くVSCodeやAtom選択した方が
学習コストも少なく高機能だと思うんだけど
310デフォルトの名無しさん (ワッチョイ 219f-iScA)
2018/07/02(月) 01:24:09.53ID:Ael8RIVm0 >>309
> EclipseベースなIDEな事があるから
なるほどね。
> あと余談だけど今さらvimだのemacsだの時代遅れじゃね?
俺が勧めているわけではないが、「エディタ」という意味ではありだ。
「Emacsは100年のエディタだ」と言われるとおり、あれはマジで100年持つだろう。
そういう構造になっているし、実際今も余裕で現役だ。(Vimも同様)
最大の利点はDSLとしてのEmacsLispだ。(なお独立して使えるらしいが)
この点、VSCodeやAtomもOSSであり同レベルの拡張性を持ってはいるが、
ユーザーベースが違いすぎる。
今現在の状況なら、先に死ぬのはVSCodeやAtomの方だ。
学習コストなんて所詮慣れだし、数ヶ月もあれば問題ない。
当面使う予定がなければすぐに学ぶ必要性はないが、
時代遅れな事を肯定して欲しいのならそれは無理だ。
emacsとgdbは組み合わせて使うことは出来る。
ブレークポイント、変数等を表示出来るlispが提供されればそこそこ行けるはず。
もう既にあるかもしれんが。
> EclipseベースなIDEな事があるから
なるほどね。
> あと余談だけど今さらvimだのemacsだの時代遅れじゃね?
俺が勧めているわけではないが、「エディタ」という意味ではありだ。
「Emacsは100年のエディタだ」と言われるとおり、あれはマジで100年持つだろう。
そういう構造になっているし、実際今も余裕で現役だ。(Vimも同様)
最大の利点はDSLとしてのEmacsLispだ。(なお独立して使えるらしいが)
この点、VSCodeやAtomもOSSであり同レベルの拡張性を持ってはいるが、
ユーザーベースが違いすぎる。
今現在の状況なら、先に死ぬのはVSCodeやAtomの方だ。
学習コストなんて所詮慣れだし、数ヶ月もあれば問題ない。
当面使う予定がなければすぐに学ぶ必要性はないが、
時代遅れな事を肯定して欲しいのならそれは無理だ。
emacsとgdbは組み合わせて使うことは出来る。
ブレークポイント、変数等を表示出来るlispが提供されればそこそこ行けるはず。
もう既にあるかもしれんが。
311デフォルトの名無しさん (スップ Sd82-Bibe)
2018/07/02(月) 20:45:33.13ID:egmwRQ41d フォルダ一括コピーしたいです
c++だとファイルコピーにはCopyFileなるものがあるみたいなのだけどそれはフォルダのコピーはできないようなので、
他のものを探してたらSHFileStructでフォルダまるごとコピーができると知りました
これって再帰的に中身まで見てくれるのか見てくれないのか調べてたのですがわからなかったので
再帰的にコピーしてくれるか否か教えてほしいです
c++だとファイルコピーにはCopyFileなるものがあるみたいなのだけどそれはフォルダのコピーはできないようなので、
他のものを探してたらSHFileStructでフォルダまるごとコピーができると知りました
これって再帰的に中身まで見てくれるのか見てくれないのか調べてたのですがわからなかったので
再帰的にコピーしてくれるか否か教えてほしいです
312デフォルトの名無しさん (ブーイモ MM4d-zt73)
2018/07/02(月) 20:57:38.07ID:TkxJyVOaM313デフォルトの名無しさん (ワッチョイ 119f-qY4E)
2018/07/03(火) 00:01:21.27ID:Dmx6jLMV0 >>311
そういうのはOSによって、あるいは使用するライブラリによってやり方が変わるから最低でもOSが何なのか書いて質問した方が良い。
そういうのはOSによって、あるいは使用するライブラリによってやり方が変わるから最低でもOSが何なのか書いて質問した方が良い。
314デフォルトの名無しさん (ワッチョイ a227-7sJO)
2018/07/03(火) 01:16:11.07ID:F02z+tBP0 学生ならCLionも無料なのでおすすめ
VSCodeもまだ情報が少なめなものの悪くない
VSCodeもまだ情報が少なめなものの悪くない
315デフォルトの名無しさん (ワッチョイ 22cb-yQv9)
2018/07/03(火) 04:58:38.26ID:YXzbwHDm0 system("robocopy /? >tmp.txt");
system("notepad tmp.txt");
system("notepad tmp.txt");
316デフォルトの名無しさん (ワッチョイ 02b3-9w61)
2018/07/03(火) 05:54:36.73ID:2wRh2EpV0317デフォルトの名無しさん (ワッチョイ 2150-oAt+)
2018/07/03(火) 07:45:07.06ID:A8S8VjkX0 知らないなら書くなよ
318デフォルトの名無しさん (ワッチョイ 45fa-2e90)
2018/07/04(水) 21:52:51.64ID:gFgZc5FG0 HTQ
319デフォルトの名無しさん (ワッチョイ 02b3-9w61)
2018/07/04(水) 22:46:28.27ID:w3aVzChY0 やればわかる
やらない奴はいつまでたっても>>317みたいなボンクラなレスを返すだけ w
やらない奴はいつまでたっても>>317みたいなボンクラなレスを返すだけ w
320デフォルトの名無しさん (ワッチョイ adbd-zt73)
2018/07/04(水) 22:55:43.62ID:r5w7GwDZ0 迷わずいけよ!
321デフォルトの名無しさん (ワッチョイ 4281-yQv9)
2018/07/04(水) 23:02:16.01ID:dy7fWBja0 xcopyを呼び出すんじゃ駄目なのか?
車輪の何とかって気がするんだが
車輪の何とかって気がするんだが
322デフォルトの名無しさん (ワッチョイ 87ea-ybMY)
2018/07/05(木) 09:24:52.06ID:ppxwAApK0 SHFileOperation() はコピー先にフォルダが無い場合、再帰的にフォルダ作ってくれるね
ただ SHFILEOPSTRUCT の pTo に渡すパス文字列で
ディレクトリのセパレータが / はダメで \ じゃないと再帰がかかってくれない
D:\ 以下フォルダが無い状態で
pTo = "D:/aaa/bb/ccc/ddd";
SHFileOperation()
⇒ 「フォルダ ddd が作れない」 D:\ 以下のフォルダ状態は変わらず
pTo = "D:\\aaa\\bb\\ccc\\ddd";
SHFileOperation()
⇒ D:\aaa\bb\cc\ddd まで再起的にフォルダができる
ただ SHFILEOPSTRUCT の pTo に渡すパス文字列で
ディレクトリのセパレータが / はダメで \ じゃないと再帰がかかってくれない
D:\ 以下フォルダが無い状態で
pTo = "D:/aaa/bb/ccc/ddd";
SHFileOperation()
⇒ 「フォルダ ddd が作れない」 D:\ 以下のフォルダ状態は変わらず
pTo = "D:\\aaa\\bb\\ccc\\ddd";
SHFileOperation()
⇒ D:\aaa\bb\cc\ddd まで再起的にフォルダができる
323デフォルトの名無しさん (ワッチョイ 87b3-KMj/)
2018/07/10(火) 12:40:53.64ID:PTerA0wX0 超初級で申し訳ないですが、以下のコードのどこに問題があるのか教えてください。
円の周長と面積を求めるものです。(半径は整数値で入力。)
コンパイルはできましたが、.exeファイルが実行不能状態です。
#include<stdio.h>
main()
{
int hankei;
double pi = 3.1415926535;
double enshu;
double menseki;
printf("半径を入力して下さい:\n");
scanf("%d",&hankei);
enshu = 2 * pi * hankei;
menseki = pi * hankei * hankei;
printf("半径%dの円の円周は%lfで、面積は%lfです", hankei, enshu, menseki);
}
円の周長と面積を求めるものです。(半径は整数値で入力。)
コンパイルはできましたが、.exeファイルが実行不能状態です。
#include<stdio.h>
main()
{
int hankei;
double pi = 3.1415926535;
double enshu;
double menseki;
printf("半径を入力して下さい:\n");
scanf("%d",&hankei);
enshu = 2 * pi * hankei;
menseki = pi * hankei * hankei;
printf("半径%dの円の円周は%lfで、面積は%lfです", hankei, enshu, menseki);
}
324デフォルトの名無しさん (アウアウカー Sa1b-tqMh)
2018/07/10(火) 12:51:36.15ID:lacLn2e2a >>323
実行不能状態とはどのような状態か詳しく書くように。
実行不能状態とはどのような状態か詳しく書くように。
325デフォルトの名無しさん (ブーイモ MM2b-aMDz)
2018/07/10(火) 13:17:53.02ID:G1Ywym5SM >>323
ソースコードは問題ない。
戻り値型省略が警告になるくらい。
エスパーすると、
警告をエラー化するオプションが指定されていて、最新コードを実行しているつもりが古いコードを実行していたとか。
もしくはソースコードを直接実行しようとしているとか。
ソースコードは問題ない。
戻り値型省略が警告になるくらい。
エスパーすると、
警告をエラー化するオプションが指定されていて、最新コードを実行しているつもりが古いコードを実行していたとか。
もしくはソースコードを直接実行しようとしているとか。
326デフォルトの名無しさん (アウアウカー Sa1b-tqMh)
2018/07/10(火) 13:45:26.21ID:lacLn2e2a ま、何れにしてもどういう環境で何をやってどうなったか詳細書いてくれんとわからんな。
WindowsでEclipse使ってる場合とLinuxでvimで入力してgccでコンパイルしている場合では答えが大幅に変わるし。
exeと書いてあるからWindowsだろうと予想することはできるが実はWindowsじゃなくてexeが作られるものと誤解しているだけなんてことも初心者ならありうるしな。
WindowsでEclipse使ってる場合とLinuxでvimで入力してgccでコンパイルしている場合では答えが大幅に変わるし。
exeと書いてあるからWindowsだろうと予想することはできるが実はWindowsじゃなくてexeが作られるものと誤解しているだけなんてことも初心者ならありうるしな。
327323 (ワッチョイ 87b3-KMj/)
2018/07/10(火) 14:15:20.90ID:PTerA0wX0 Windows 10の開発者コマンドプロンプトでコンパイルしました。 cl (ファイル名).c
拡張子がexeのファイルが生成されました。
そのexeファイルをダブルクリックすると、マカフィーによって「脅威を隔離しました」というメッセージとともに削除されてしまいます。
何度やってもそうなります。
拡張子がexeのファイルが生成されました。
そのexeファイルをダブルクリックすると、マカフィーによって「脅威を隔離しました」というメッセージとともに削除されてしまいます。
何度やってもそうなります。
328デフォルトの名無しさん (ブーイモ MM2b-aMDz)
2018/07/10(火) 14:48:20.63ID:6oP6Hy+LM329デフォルトの名無しさん (ワッチョイ a78a-3XPo)
2018/07/10(火) 14:51:13.47ID:jUw0TWzI0 マカフィーが止めなかったら人類はその瞬間、消滅していたかも知れない
330デフォルトの名無しさん (アウアウカー Sa1b-tqMh)
2018/07/10(火) 15:35:28.40ID:c95ZcwpDa この頃は単にコマンドプロンプトと呼ばずに頭に開発者って付くのか?
331デフォルトの名無しさん (ワッチョイ 4793-1gjT)
2018/07/10(火) 15:52:40.79ID:sLQCr7o90 コマンドプロンプト上で実行したらどうなる?
cl で実行ファイルを作ったら、そのままコマンドプロンプトで
実行ファイルの名前を打ってEnter、で動くと思うけど。
コンソールアプリケーションをダブルクリックで実行した場合、
scanf系の標準入力に必要なコンソールってどうなるんだっけ?
cl で実行ファイルを作ったら、そのままコマンドプロンプトで
実行ファイルの名前を打ってEnter、で動くと思うけど。
コンソールアプリケーションをダブルクリックで実行した場合、
scanf系の標準入力に必要なコンソールってどうなるんだっけ?
332デフォルトの名無しさん (ワッチョイ 078a-qvnm)
2018/07/10(火) 16:44:44.45ID:b+i389ju0 Windows10(17134.137) + VisualStudio2017(Ent15.7.4) の開発者コマンドプロンプトで確認してみたけど問題ない
https://i.imgur.com/SZMlQ7g.png
https://i.imgur.com/SZMlQ7g.png
333デフォルトの名無しさん (アウアウカー Sa1b-tqMh)
2018/07/10(火) 17:11:41.78ID:c95ZcwpDa マカフィーのチェックがおかしいわけだな。
自宅のPCでマカフィー入ってるのあるから帰ったら試してみよう。
自宅のPCでマカフィー入ってるのあるから帰ったら試してみよう。
334323 (ワッチョイ 87b3-KMj/)
2018/07/10(火) 17:13:29.68ID:PTerA0wX0335デフォルトの名無しさん (アウアウカー Sa1b-tqMh)
2018/07/10(火) 17:23:53.95ID:c95ZcwpDa そういやマカフィーの創業者のジョン・マカフィーは壮絶な人生歩んでるのな。
知りたい人はWikipediaでジョン・マカフィーで検索してみな。
知りたい人はWikipediaでジョン・マカフィーで検索してみな。
336デフォルトの名無しさん (ワッチョイ c723-xnAo)
2018/07/10(火) 18:23:14.04ID:4twA9KsQ0 >>334
例外設定できんの
例外設定できんの
337デフォルトの名無しさん (ドコグロ MM1f-5lWM)
2018/07/10(火) 19:58:04.00ID:/C7aTWfLM なんでマカフィーを後出ししたのか教えて
>>323では隠してたよね
>>323では隠してたよね
338デフォルトの名無しさん (アウアウカー Sa1b-tqMh)
2018/07/10(火) 20:29:17.07ID:csDUndKHa このスレは超エスパーの常連が常駐していると聞いて
339デフォルトの名無しさん (ワッチョイ a781-UVFs)
2018/07/10(火) 20:55:39.23ID:XZttgo620 今頃常連は君のPCの中で、あんなことこんなことしてるかも
340デフォルトの名無しさん (ワッチョイ 478a-iyTs)
2018/07/11(水) 02:42:31.00ID:XTzeI4c20341323 (ワッチョイ 87b3-KMj/)
2018/07/11(水) 12:17:16.91ID:Z7jbd2VW0 そんなことは普通にできますが,インターネット接続を切ったり入れたりもしなきゃいけないじゃないですか
それも簡単ですが,マカフィーのいたずらのせいでそんなことをいちいちやるのは…という意味です
それも簡単ですが,マカフィーのいたずらのせいでそんなことをいちいちやるのは…という意味です
342デフォルトの名無しさん (JP 0H9b-Mm5l)
2018/07/11(水) 12:19:33.60ID:F9Ul8eGQH 止めたついでにアンインストールするのがいいと思うよ。
343デフォルトの名無しさん (ワッチョイ a781-UVFs)
2018/07/11(水) 12:23:38.80ID:ElMeoT060 プログラムを作成自体を犯罪者予備軍と見なしているのかな・・
344デフォルトの名無しさん (ワッチョイ 67bb-UVFs)
2018/07/11(水) 12:33:49.60ID:/qmyOvYB0 使ってるのがwindows10ならもうウィルス対策ソフトなんて要らないよ。重くなるだけ。
windowsDefenderで十分。2つ入れてるとトラブルの元。
windowsDefenderで十分。2つ入れてるとトラブルの元。
345デフォルトの名無しさん (アウアウカー Sa1b-I2Gp)
2018/07/11(水) 23:17:11.74ID:mjsZ1svma C++でディレクトリ無かったら作る関数って何かあります?
LinuxのPOSIX系だと見つからんかった
LinuxのPOSIX系だと見つからんかった
346デフォルトの名無しさん (ラクッペ MM6d-/3b1)
2018/07/12(木) 00:42:26.88ID:gvbwsRPLM >>345
man 2 mkdir
man 2 mkdir
347デフォルトの名無しさん (ワッチョイ 6d9f-LQig)
2018/07/12(木) 01:44:43.97ID:2elGYyrL0348デフォルトの名無しさん (ワッチョイ 5d8a-B+kh)
2018/07/12(木) 02:21:13.11ID:9sO/Jh060349デフォルトの名無しさん (スップ Sd0a-Se03)
2018/07/14(土) 08:48:08.32ID:xV7EJA5wd マカフィーのポリシーが気に入らないなら消せば
350デフォルトの名無しさん (ワッチョイ ead2-4lKT)
2018/07/15(日) 17:16:55.22ID:+OH6AID30 C言語で集合、和集合、積集合を実装したいのですが、正直アイデアが浮かびません。
どうすれば良いのでしょうか?
教えていただきたいです。
どうすれば良いのでしょうか?
教えていただきたいです。
>>350
まず集合の要素を何にするか?
集合自体の表現をどうするか?
そこからスタートするべきだと思います
C++ https://mevius.5ch.net/test/read.cgi/tech/1434079972/33
まず集合の要素を何にするか?
集合自体の表現をどうするか?
そこからスタートするべきだと思います
C++ https://mevius.5ch.net/test/read.cgi/tech/1434079972/33
352デフォルトの名無しさん (ワッチョイ 6680-2/B2)
2018/07/15(日) 18:24:43.00ID:yiVegLeV0 C++ちゃうやろ
353さまよえる蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ b5b3-gHxb)
2018/07/15(日) 18:43:53.92ID:wAtjArzX0 C++のstd::setを参考にしない手はないな。
集合をデータとして保持したいなら、要素の個数と、動的配列かリストが必要になる。
集合をデータとして保持したいなら、要素の個数と、動的配列かリストが必要になる。
354さまよえる蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd0a-gHxb)
2018/07/15(日) 18:50:09.68ID:uEXuZg9md 集合は順序列の順序を無視したものと考えられる。
比較する場合は、ソート済みにしてから比較する必要がある。
多重集合ではない場合は変更の際に要素を単一化しないといけない。
比較する場合は、ソート済みにしてから比較する必要がある。
多重集合ではない場合は変更の際に要素を単一化しないといけない。
355デフォルトの名無しさん (ブーイモ MM8e-4qXr)
2018/07/15(日) 18:57:55.11ID:chucpUaPM setは赤黒木だけど、実装したことある奴いるの?俺はaddだけ実装して満足して諦めたよ。
hashtableのほうが遥かに簡単だからオススメ。
整列済みの配列も簡単でいいと思うよ。
でも一番楽なのは、ライブラリを拾ってくること。
hashtableのほうが遥かに簡単だからオススメ。
整列済みの配列も簡単でいいと思うよ。
でも一番楽なのは、ライブラリを拾ってくること。
356さまよえる蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd0a-gHxb)
2018/07/15(日) 20:00:12.79ID:uEXuZg9md std::unordered_set
357デフォルトの名無しさん (スップ Sd0a-Se03)
2018/07/15(日) 23:33:22.03ID:ugn7dRUid >>350
積集合の方が比較的簡単
和集合は同一要素であるかをどうやって判別するか
要素を構造体で表した時に
異なる構造体でも同一要素である判別が出来なくてはならないので
単純な例だと
複素数型と実数型と有理数型とcharとintとfloatとdoubleとか
積集合の方が比較的簡単
和集合は同一要素であるかをどうやって判別するか
要素を構造体で表した時に
異なる構造体でも同一要素である判別が出来なくてはならないので
単純な例だと
複素数型と実数型と有理数型とcharとintとfloatとdoubleとか
358デフォルトの名無しさん (ワッチョイ 6680-2/B2)
2018/07/15(日) 23:57:35.35ID:yiVegLeV0359デフォルトの名無しさん (スップ Sd0a-Se03)
2018/07/15(日) 23:59:45.37ID:ugn7dRUid >>358
ああ、直積と勘違いした
ああ、直積と勘違いした
360デフォルトの名無しさん (スップ Sd0a-Se03)
2018/07/16(月) 00:10:17.99ID:RYaEyvned361デフォルトの名無しさん (ワッチョイ 6680-2/B2)
2018/07/16(月) 00:41:17.49ID:JxE01Fj60 一般論で言えば、集合の実装はハッシュを実装することに限りなく等しい。
どんなオブジェクトであれ、シリアライズ(要は文字列化)できる。
そうすればハッシュで一意な比較的小さい非負整数の番号に写像できる。(←条件により、ここが難関になりうる。ハッシュを使わずに済む番号が用意されていればそれが最適)
逆写像も用意できる。
最大番号までの要素数を持つ整数配列で0/1で要素の有無を表現したものが一つの集合を表す。
2つの集合の和と積は0/1の|と&で表せる。
配列サイズと計算時間の節約にはビットマップ化すればok。
どんなオブジェクトであれ、シリアライズ(要は文字列化)できる。
そうすればハッシュで一意な比較的小さい非負整数の番号に写像できる。(←条件により、ここが難関になりうる。ハッシュを使わずに済む番号が用意されていればそれが最適)
逆写像も用意できる。
最大番号までの要素数を持つ整数配列で0/1で要素の有無を表現したものが一つの集合を表す。
2つの集合の和と積は0/1の|と&で表せる。
配列サイズと計算時間の節約にはビットマップ化すればok。
362デフォルトの名無しさん (スップ Sd0a-Se03)
2018/07/16(月) 12:41:40.20ID:JYSC+BEod 視野の狭いアホ
364デフォルトの名無しさん (ワッチョイ 59bd-4qXr)
2018/07/16(月) 13:45:32.02ID:GVNh7z7o0 ハッシュの逆写像て何よ
365デフォルトの名無しさん (ワッチョイ 6680-2/B2)
2018/07/16(月) 15:04:36.42ID:JxE01Fj60366デフォルトの名無しさん (ワッチョイ 6d9f-kMqh)
2018/07/16(月) 16:32:35.47ID:ZuNymA1O0 >>350
ビット演算使えば良いのでは?
特に要素数が32とか64以下に収まるようなら今どきのPC用コンパイラならunsgnedのintやlongで行けるよ。
uint32tみたいなビット数保証するtypedefされた型使った方が良いけどね。
ビット演算使えば良いのでは?
特に要素数が32とか64以下に収まるようなら今どきのPC用コンパイラならunsgnedのintやlongで行けるよ。
uint32tみたいなビット数保証するtypedefされた型使った方が良いけどね。
367デフォルトの名無しさん (スッップ Sd0a-Se03)
2018/07/16(月) 16:42:31.55ID:fNWu8+xrd368デフォルトの名無しさん (ワッチョイ 59bd-jpfL)
2018/07/16(月) 16:58:23.91ID:GVNh7z7o0369デフォルトの名無しさん (スッップ Sd0a-Se03)
2018/07/16(月) 17:09:01.83ID:fNWu8+xrd 全順序化が簡単か
効率的なハッシュが(簡単に)作れるか
想定する集合の大きさ
比較のコスト
ノードのデータサイズ
この辺が違うと適した実装が全く異なる
この辺をヒアリングするのが先と思う
効率的なハッシュが(簡単に)作れるか
想定する集合の大きさ
比較のコスト
ノードのデータサイズ
この辺が違うと適した実装が全く異なる
この辺をヒアリングするのが先と思う
370デフォルトの名無しさん (ブーイモ MM0a-2/B2)
2018/07/16(月) 20:33:05.89ID:xLJ3m8O+M371デフォルトの名無しさん (ブーイモ MM0a-2/B2)
2018/07/16(月) 20:35:21.92ID:xLJ3m8O+M372デフォルトの名無しさん (ワッチョイ 59bd-4qXr)
2018/07/16(月) 21:05:16.49ID:GVNh7z7o0373デフォルトの名無しさん (ワッチョイ eab3-ziCw)
2018/07/16(月) 21:29:45.38ID:XBIjWYki0374デフォルトの名無しさん (ブーイモ MMc9-W33Q)
2018/07/16(月) 21:50:26.80ID:sxU6ARMDM375デフォルトの名無しさん (ブーイモ MM81-4qXr)
2018/07/16(月) 21:56:55.25ID:r56ZRtuEM c++のmapとsetの実装アルゴリズムだぜ。
検索速度はハッシュテーブルに劣るけど、使えないほど遅いってことはないだろ。
検索速度はハッシュテーブルに劣るけど、使えないほど遅いってことはないだろ。
376デフォルトの名無しさん (ワッチョイ 753c-L1xz)
2018/07/16(月) 22:18:00.48ID:d44IRZCy0 C言語初心者です。
typedef struct{
int tate;
int yoko;
double *mat;
} Mat;
void read(int x,int y,Mat *a){
for(int i=0;i<x;i++){
for(int j=0;j<y;j++){
printf("[%d][%d]->",i+1,j+1);
scanf("%lf",&a->mat[i][j]);
}
printf("\n");
}
return;
}
プログラムの一部を抜粋したものなのですが、これでコンパイルすると
subscripted value is neither array nor pointer
というエラーが出てしまいます。
二次元配列はポインタで表せないものなのでしょうか?
typedef struct{
int tate;
int yoko;
double *mat;
} Mat;
void read(int x,int y,Mat *a){
for(int i=0;i<x;i++){
for(int j=0;j<y;j++){
printf("[%d][%d]->",i+1,j+1);
scanf("%lf",&a->mat[i][j]);
}
printf("\n");
}
return;
}
プログラムの一部を抜粋したものなのですが、これでコンパイルすると
subscripted value is neither array nor pointer
というエラーが出てしまいます。
二次元配列はポインタで表せないものなのでしょうか?
377デフォルトの名無しさん (ワッチョイ 753c-L1xz)
2018/07/16(月) 22:23:31.47ID:d44IRZCy0 sageをつけ忘れました
申し訳ございません。
申し訳ございません。
378デフォルトの名無しさん (ワッチョイ 59e3-Y8gp)
2018/07/16(月) 22:43:27.11ID:BgE9oE4s0379デフォルトの名無しさん (ワッチョイ 59bd-4qXr)
2018/07/16(月) 23:01:36.27ID:GVNh7z7o0 >>376
matがdouble型へのポインタだからだよ。
結果mat[i]はdouble型になり、mat[i][j]はdouble型に[j]を付けたことになるので、配列でもポインタでもないのに[]つけるなって怒られてる。
きっとmatのメモリ確保は
mat = malloc(sizeof(double) * tate * yoko);
みたいにやってるだろうから、i列j行目にアクセスするときは
&a->mat[i + j * yoko]
みたいにしないといけない。
あと、上の例ならjを外側、iを内側のforにしたほうが最適化されやすいと思うよ
matがdouble型へのポインタだからだよ。
結果mat[i]はdouble型になり、mat[i][j]はdouble型に[j]を付けたことになるので、配列でもポインタでもないのに[]つけるなって怒られてる。
きっとmatのメモリ確保は
mat = malloc(sizeof(double) * tate * yoko);
みたいにやってるだろうから、i列j行目にアクセスするときは
&a->mat[i + j * yoko]
みたいにしないといけない。
あと、上の例ならjを外側、iを内側のforにしたほうが最適化されやすいと思うよ
380デフォルトの名無しさん (ブーイモ MMc9-W33Q)
2018/07/17(火) 00:14:58.01ID:TUtIYHCtM381デフォルトの名無しさん (ワッチョイ 753c-L1xz)
2018/07/17(火) 00:50:16.45ID:j9lU977L0382デフォルトの名無しさん (ワッチョイ 59bd-4qXr)
2018/07/17(火) 01:14:22.91ID:ZzFa01D50383デフォルトの名無しさん (ワッチョイ 119e-dYrz)
2018/07/17(火) 03:42:30.44ID:ZJqMOJYT0 Ruby のハッシュでは、データ数と共に、バケット数を増やしていく。
バケット数は、2 の累乗の次に現れる素数。
2^n + a, 2 <= n <= 30
8 + 3 = 11
16 + 3 = 19
32 + 5 = 37
64 + 3 = 67
128 + 3 = 131
256 + 27 = 283
512 + 9 = 521
データ数が、バケット数の5倍を超えると、ハッシュが再構成される。
再構成時には、極端に遅くなる
11 * 5 = 55 だから、データ数が56 個になると、バケット数が19 になる。
19 * 5 = 95 だから、データ数が96 個になると、バケット数が37 になる
バケット数は、2 の累乗の次に現れる素数。
2^n + a, 2 <= n <= 30
8 + 3 = 11
16 + 3 = 19
32 + 5 = 37
64 + 3 = 67
128 + 3 = 131
256 + 27 = 283
512 + 9 = 521
データ数が、バケット数の5倍を超えると、ハッシュが再構成される。
再構成時には、極端に遅くなる
11 * 5 = 55 だから、データ数が56 個になると、バケット数が19 になる。
19 * 5 = 95 だから、データ数が96 個になると、バケット数が37 になる
384デフォルトの名無しさん (ワッチョイ 119e-dYrz)
2018/07/17(火) 04:09:19.94ID:ZJqMOJYT0 AVL では、左右部分木の高さの差を、1 以内にしなければならないから、
2 になると、木の回転・縮約など、再構成をしなければならない。
つまり、しょっちゅう再構成が起こるので、遅くなる
赤黒木では、左右部分木の高さの差を2 倍以内にしたから、再構成が起こりにくい。
左が10 なら、右は20 まで、再構成が起こらない
タスクスケジューラーに使われる
例えば、100個のスリープしているタスクがある所に、
木に実行するタスクを追加して、重みに従ってソートすると、
追加したタスクが選ばれて、木から削除される
つまり、ほとんどの葉の順位が変わらなくて、
追加した葉が、すぐに削除されるようなものに適している
2 になると、木の回転・縮約など、再構成をしなければならない。
つまり、しょっちゅう再構成が起こるので、遅くなる
赤黒木では、左右部分木の高さの差を2 倍以内にしたから、再構成が起こりにくい。
左が10 なら、右は20 まで、再構成が起こらない
タスクスケジューラーに使われる
例えば、100個のスリープしているタスクがある所に、
木に実行するタスクを追加して、重みに従ってソートすると、
追加したタスクが選ばれて、木から削除される
つまり、ほとんどの葉の順位が変わらなくて、
追加した葉が、すぐに削除されるようなものに適している
385デフォルトの名無しさん (ワッチョイ 753c-KCFg)
2018/07/17(火) 21:50:50.91ID:j9lU977L0 makefileってPowerShellで作れないとかないですか?
386デフォルトの名無しさん (アウアウカー Sa55-jzog)
2018/07/18(水) 13:02:52.94ID:9IEVAZpRa >>385
君が何を言わんとしているのかがよくわからない
君が何を言わんとしているのかがよくわからない
387デフォルトの名無しさん (スップ Sd0a-Se03)
2018/07/18(水) 13:22:02.69ID:OuA1chkMd わからないならかくなあほ
388デフォルトの名無しさん (アウアウカー Sa55-jzog)
2018/07/18(水) 13:27:22.37ID:9IEVAZpRa >>387
あれで人に言葉が通じていると思い込んでる可能性があるから書くべきだろう
あれで人に言葉が通じていると思い込んでる可能性があるから書くべきだろう
389デフォルトの名無しさん (ワッチョイ b623-LQig)
2018/07/18(水) 15:13:21.80ID:rBfwKW3R0 >>385
作れますよ
作れますよ
390デフォルトの名無しさん (ワッチョイ 1793-pJKM)
2018/07/22(日) 17:00:55.76ID:QT86rkZL0 なんとなく、コマンド行をタブで始めてなくて(スペースで空白を作ってて)、
makeがエラー出してるような気がするなぁ。
エディタのTab→スペース自動変換が効いてるとか。
PowerShellとは直接関係なくて。
makeがエラー出してるような気がするなぁ。
エディタのTab→スペース自動変換が効いてるとか。
PowerShellとは直接関係なくて。
391デフォルトの名無しさん (ワッチョイ 9fd2-pvuh)
2018/07/23(月) 07:43:37.05ID:4YnpLRT90 C++ C言語 C#の初心者用スレはないんですか?
探してみたけどそれらしきスレが見当たらないです
探してみたけどそれらしきスレが見当たらないです
392デフォルトの名無しさん (ブーイモ MM7b-v52Z)
2018/07/23(月) 08:25:03.57ID:XREcIsoOM >>391
まずはどうやって探したのか聞こうか
まずはどうやって探したのか聞こうか
393デフォルトの名無しさん (ワッチョイ 9fd2-pvuh)
2018/07/23(月) 18:37:31.75ID:4YnpLRT90 >>392
まずスレッド一覧を開いてCTRL+FでC++と入れて検索しました
一応それらしき所を見つけたんですが書き込んだ瞬間変なおっさんに噛みつかれたので
初心者スレじゃないのかな。。。と。
入門にあったスレはないでしょうか
まずスレッド一覧を開いてCTRL+FでC++と入れて検索しました
一応それらしき所を見つけたんですが書き込んだ瞬間変なおっさんに噛みつかれたので
初心者スレじゃないのかな。。。と。
入門にあったスレはないでしょうか
394デフォルトの名無しさん (ワッチョイ 979f-lcCj)
2018/07/24(火) 00:16:29.41ID:jxAZ77iY0 無ければ作ったら良い
395デフォルトの名無しさん (ブーイモ MM7b-GemW)
2018/07/24(火) 00:25:40.41ID:WnIMuw3FM 初心者歓迎なのと甘えた初心者に手とり足とり教えるのとは違うよ
396デフォルトの名無しさん (スップ Sd3f-3g7x)
2018/07/24(火) 10:50:38.33ID:0p5SDr2Gd 回答者も甘えてる奴がほとんどだしな
397デフォルトの名無しさん (ドコグロ MM1b-+6on)
2018/07/24(火) 12:49:34.60ID:AIbS+cPKM 初心者といいつつそれ以前だったりするから
398デフォルトの名無しさん (スップ Sdbf-o8G/)
2018/07/24(火) 12:52:10.55ID:jy7p1ZdAd 回答する気が無いヤツは黙ってろ
目障り
目障り
399デフォルトの名無しさん (バッミングク MM1b-XsrH)
2018/07/24(火) 22:27:17.58ID:yuwuYFDqM400デフォルトの名無しさん (ワッチョイ 1750-o8G/)
2018/07/24(火) 22:55:24.02ID:0yPjFIBM0 回答する気が無いヤツは黙ってろ
目障り
目障り
401デフォルトの名無しさん (ワッチョイ 57d2-x5/2)
2018/07/25(水) 14:04:28.05ID:rhtXSHsm0 明解C言語は分かりにくいからやめとけ
苦Cの方がいい
苦Cの方がいい
402デフォルトの名無しさん (アウアウカー Saab-GY9v)
2018/07/25(水) 15:50:06.17ID:rOB4O81ba 明解と
書いてる方が
不明解
書いてる方が
不明解
403デフォルトの名無しさん (ブーイモ MMbf-4pMd)
2018/07/25(水) 18:17:36.85ID:LRuCLCqQM 今からC言語覚えて何に使うの?
404デフォルトの名無しさん (ブーイモ MMcf-6yTM)
2018/07/25(水) 18:38:39.52ID:ru0lrBQYM デバドラを書く
低速言語のボトルネックをカバーする
低速言語のボトルネックをカバーする
405デフォルトの名無しさん (スプッッ Sd3f-MwhK)
2018/07/25(水) 19:01:18.88ID:WBw1LCSkd こういう連続線をクリックで描きたいなんか参考になる本だとかサイトってありませんか?
https://i.imgur.com/Emj85bk.jpg
https://i.imgur.com/Emj85bk.jpg
406デフォルトの名無しさん (ワッチョイ 3781-H0hI)
2018/07/25(水) 19:07:02.74ID:h5CHP+XR0 >>405
それをCで書こうって考えている?
それをCで書こうって考えている?
407デフォルトの名無しさん (ワッチョイ 1750-o8G/)
2018/07/25(水) 19:11:06.73ID:WkyhwwwQ0408デフォルトの名無しさん (アウアウカー Saab-GY9v)
2018/07/25(水) 19:19:25.92ID:ekeRKo17a409デフォルトの名無しさん (ワッチョイ d7bb-4GkJ)
2018/07/25(水) 20:53:24.83ID:IVngiw360410デフォルトの名無しさん (ワッチョイ d7bb-4GkJ)
2018/07/25(水) 20:53:47.05ID:IVngiw360 大規模は違うの?って意味ね
411デフォルトの名無しさん (ワッチョイ 77bb-H0hI)
2018/07/25(水) 20:57:49.18ID:E4aNPZoQ0 まずint(4バイトとする)とmalloc(4)の違い教えて
話しはそれからだ
話しはそれからだ
412さまよえる蟻人間 ◆T6xkBnTXz7B0 (スフッ Sdbf-jdi9)
2018/07/25(水) 21:01:13.33ID:Gtkf0v1Td >>411
mallocは使い終わったらfreeで解放しないといけない。
mallocは使い終わったらfreeで解放しないといけない。
413デフォルトの名無しさん (ワッチョイ 578a-x2Yj)
2018/07/25(水) 21:02:09.90ID:DGkeAJEO0 Windows Win32 GDIで作ってみた
中身はいい加減だけど、マウスのボタンクリックイベントでポインタ座標を取得して順に直線で繋げているだけ
http://codepad.org/QqqOuloX
https://i.imgur.com/J8woM1h.png
中身はいい加減だけど、マウスのボタンクリックイベントでポインタ座標を取得して順に直線で繋げているだけ
http://codepad.org/QqqOuloX
https://i.imgur.com/J8woM1h.png
414さまよえる蟻人間 ◆T6xkBnTXz7B0 (スフッ Sdbf-jdi9)
2018/07/25(水) 21:04:29.51ID:Gtkf0v1Td 101回目のバッファオーバーフロー?
415デフォルトの名無しさん (ワッチョイ 578a-x2Yj)
2018/07/25(水) 21:09:14.98ID:DGkeAJEO0 エラー処理なし
ウインドウハンドラ作成もメッセージループの処理も適当なのでプロシージャもいい加減な作り
ウインドウハンドラ作成もメッセージループの処理も適当なのでプロシージャもいい加減な作り
416デフォルトの名無しさん (ワッチョイ 77bb-H0hI)
2018/07/25(水) 21:13:14.68ID:E4aNPZoQ0 俺の言い方がまずかったようだ。
int* a = (int*)malloc(4);
これはわかる
int* a = (int*)malloc(5);
この場合でもコンパイルは通るし実行も出来る。
でも、やっていいことなんだろうかってね。
余った1バイトは気にしないでいいのだろうか?
int* a = (int*)malloc(4);
これはわかる
int* a = (int*)malloc(5);
この場合でもコンパイルは通るし実行も出来る。
でも、やっていいことなんだろうかってね。
余った1バイトは気にしないでいいのだろうか?
417さまよえる蟻人間 ◆T6xkBnTXz7B0 (スフッ Sdbf-jdi9)
2018/07/25(水) 21:18:04.56ID:Gtkf0v1Td >>416
余分に確保しても大丈夫。連続したメモリーブロックと呼ばれるものだよ。頭に構造体を使ってもいいし。
余分に確保しても大丈夫。連続したメモリーブロックと呼ばれるものだよ。頭に構造体を使ってもいいし。
418さまよえる蟻人間 ◆T6xkBnTXz7B0 (スフッ Sdbf-jdi9)
2018/07/25(水) 21:21:01.07ID:Gtkf0v1Td 例えば、int *p = (int*)malloc(5*sizeof(int));と書けば、pは、int p[5];のように使える。
419デフォルトの名無しさん (ワッチョイ 77bb-H0hI)
2018/07/25(水) 21:24:03.17ID:E4aNPZoQ0420さまよえる蟻人間 ◆T6xkBnTXz7B0 (スフッ Sdbf-jdi9)
2018/07/25(水) 21:29:51.06ID:Gtkf0v1Td 連続したメモリーブロックからはみ出るから、そのアクセスは違法になるね。
421デフォルトの名無しさん (ワッチョイ 77bb-H0hI)
2018/07/25(水) 21:32:51.80ID:E4aNPZoQ0 ああ、なるほど。そういう時はエラー出るのね。
今試しにインクリメントしたら確かにエラーになった。なるほど良く出来てる。
なんか試すのも怖かったんだわ。ありがとう!
今試しにインクリメントしたら確かにエラーになった。なるほど良く出来てる。
なんか試すのも怖かったんだわ。ありがとう!
422デフォルトの名無しさん (JP 0H2b-GemW)
2018/07/25(水) 21:33:37.75ID:kwDgMq/WH423デフォルトの名無しさん (ワッチョイ 77bb-H0hI)
2018/07/25(水) 21:36:12.00ID:E4aNPZoQ0424さまよえる蟻人間 ◆T6xkBnTXz7B0 (スフッ Sdbf-jdi9)
2018/07/25(水) 21:36:50.93ID:Gtkf0v1Td ただし、アクセスにおいてエラーが出ない事もあり、この手のバクはやっかいで、下手をすると数億円が吹き飛ぶことがある。
だから、最近ではなるべく生ポインタを使わないでやるのがプロ。
だから、最近ではなるべく生ポインタを使わないでやるのがプロ。
425さまよえる蟻人間 ◆T6xkBnTXz7B0 (スフッ Sdbf-jdi9)
2018/07/25(水) 21:39:44.99ID:Gtkf0v1Td アクセス制御の貧弱なOSでは、不正アクセスは感知されない。
426デフォルトの名無しさん (ワッチョイ 1750-o8G/)
2018/07/25(水) 21:55:12.69ID:WkyhwwwQ0 >>409
大規模はC++の率が高くなる
大規模はC++の率が高くなる
427デフォルトの名無しさん (ワッチョイ 9f9b-MwhK)
2018/07/25(水) 21:56:03.32ID:LjfK0h7i0428デフォルトの名無しさん (ワッチョイ 9f9b-MwhK)
2018/07/25(水) 21:57:27.86ID:LjfK0h7i0 >>413
すげぇ。わざわざありがとうございます。
すげぇ。わざわざありがとうございます。
429デフォルトの名無しさん (ブーイモ MMbf-2nOz)
2018/07/25(水) 23:13:13.16ID:99/tYlRKM >>421
一般にエラーは出ないぞ
一般にエラーは出ないぞ
430デフォルトの名無しさん (アークセー Sx4b-ArLl)
2018/07/25(水) 23:32:18.85ID:RmE/AZ04x431デフォルトの名無しさん (アークセー Sx4b-ArLl)
2018/07/25(水) 23:53:34.35ID:RmE/AZ04x >>430
430ですが、mallocの返す番地は、大概の型にキャストできる境界になってるんだろうね、知らんけど
430ですが、mallocの返す番地は、大概の型にキャストできる境界になってるんだろうね、知らんけど
432デフォルトの名無しさん (ワッチョイ 2361-2QVD)
2018/07/26(木) 11:01:17.82ID:Oz5vlcaw0 C11はアラインメントが決めれるmallocがあるよ
普通は8の倍数になってる。
普通は8の倍数になってる。
433デフォルトの名無しさん (アウアウカー Saef-2Ess)
2018/07/26(木) 12:52:49.36ID:EM3EzxKLa ま、しかし、intが4バイトの保証はないし、malloc()で確保した範囲外がどうなってるかもライブラリ依存だし、変な事に挑戦しない方が良いと思うw
434デフォルトの名無しさん (ワッチョイ c623-53i4)
2018/07/26(木) 15:59:28.57ID:VR2PsH3f0 mallocの返すアドレスはワード教会に揃ってるように
POSIXで決まってなかったっけ? 気のせいか
POSIXで決まってなかったっけ? 気のせいか
435デフォルトの名無しさん (JP 0H8f-+hvm)
2018/07/26(木) 16:54:25.22ID:ixC9BcxzH >>432
aligned_alloc()だね
aligned_alloc()だね
436デフォルトの名無しさん (スップ Sd52-fKXU)
2018/07/26(木) 17:01:26.31ID:Vf/lMr8pd >>434
決まってる
決まってる
437デフォルトの名無しさん (JP 0H8f-J6FL)
2018/07/26(木) 17:03:12.87ID:0PbkpRUpH C99には
The pointer returned if the allocation succeeds is suitably aligned
so that it may be assigned to a pointer to any type of object and
then used to access such an object or an array of such objects
in the space allocated (until the space is explicitly deallocated).
とあるので、どんなオブジェクトでもその場所に置けることは保証されている。
ただ、アラインメントがずれてるとアクセスできるけど遅くなるとかいう
変態環境でどうなるかとかは規定されていない。
(ふつうの実装ならまともにアラインメントされていると思うが)
これをどうしても合法的に確実にアラインメントしたい人向けなのが、aligned_alloc()。
The pointer returned if the allocation succeeds is suitably aligned
so that it may be assigned to a pointer to any type of object and
then used to access such an object or an array of such objects
in the space allocated (until the space is explicitly deallocated).
とあるので、どんなオブジェクトでもその場所に置けることは保証されている。
ただ、アラインメントがずれてるとアクセスできるけど遅くなるとかいう
変態環境でどうなるかとかは規定されていない。
(ふつうの実装ならまともにアラインメントされていると思うが)
これをどうしても合法的に確実にアラインメントしたい人向けなのが、aligned_alloc()。
438デフォルトの名無しさん (ワッチョイ c623-53i4)
2018/07/26(木) 17:08:47.42ID:VR2PsH3f0439デフォルトの名無しさん (JP 0H8f-J6FL)
2018/07/26(木) 17:17:59.96ID:0PbkpRUpH >>438
そりゃもちろんそういう用途にも使えるよ
そりゃもちろんそういう用途にも使えるよ
440デフォルトの名無しさん (スップ Sd52-fKXU)
2018/07/26(木) 19:04:38.15ID:Vf/lMr8pd441デフォルトの名無しさん (スップ Sd52-fKXU)
2018/07/26(木) 19:07:36.39ID:Vf/lMr8pd442デフォルトの名無しさん (ワッチョイ 4bb3-hins)
2018/07/27(金) 00:14:41.96ID:J2z2B0JS0 家でC言語の独学してたけど眠くなって続かないから週末だけ学校にいこうと思う。関西でお勧めはどこですか?
443デフォルトの名無しさん (フリッテル MM6e-qjVX)
2018/07/27(金) 07:12:56.09ID:GxaYOivnM 金の無駄遣い
444デフォルトの名無しさん (スッップ Sd32-dAIm)
2018/07/27(金) 09:20:14.17ID:UMN2C6wAd 大阪大学基礎工学部情報科学科
445デフォルトの名無しさん (ブーイモ MM5b-d/YJ)
2018/07/27(金) 09:52:20.15ID:mngCBxZNM 勉強を成功させるには強い動機付けが必要
やる気も効率も上がらないのはまずそこに失敗してる
やる気も効率も上がらないのはまずそこに失敗してる
447デフォルトの名無しさん (ブーイモ MM32-cF50)
2018/07/27(金) 21:04:40.28ID:Gi4wb1wwM 個人的にはLinuxのデバドラから入るのがおすすめ
分かってくると俺の方が上手く書けるとか拗らせる
分かってくると俺の方が上手く書けるとか拗らせる
448デフォルトの名無しさん (ワッチョイ 6f9f-YSnv)
2018/07/28(土) 02:43:37.63ID:E0E9ZkiG0 動機を自分で意識的に付けようとしても中々出来ないのが普通なのでは?
何かそれなりのメリットがあると信じられないと何もしないのが普通の人間だろうし。
例えば何かをするとモテモテになるだとか、そういう自分にとってのメリットがあるならその何かをやる気は出るだろうけど、そんなのがないなら、あるいはもしあってもそれに気付けないなら普通はやる気は起きんでしょう。
何かそれなりのメリットがあると信じられないと何もしないのが普通の人間だろうし。
例えば何かをするとモテモテになるだとか、そういう自分にとってのメリットがあるならその何かをやる気は出るだろうけど、そんなのがないなら、あるいはもしあってもそれに気付けないなら普通はやる気は起きんでしょう。
449デフォルトの名無しさん (ワッチョイ 6f06-h18z)
2018/07/28(土) 07:47:22.78ID:CM3Pz0hR0 C言語、あるいはプログラムそのものの入門書で、文庫か新書サイズの良書はありますか?
450デフォルトの名無しさん (ワッチョイ 6f40-53i4)
2018/07/28(土) 08:07:15.42ID:xtvz/nLF0 C++ならこれならわかるC++があるが・・・
451デフォルトの名無しさん (ワッチョイ 9f50-fKXU)
2018/07/28(土) 08:08:34.90ID:8G21bbxI0 はじめてのC
452デフォルトの名無しさん (ワッチョイ 9f93-BNWp)
2018/07/28(土) 09:55:07.43ID:VMG9DnUG0453デフォルトの名無しさん (ワッチョイ 6f06-h18z)
2018/07/28(土) 10:28:26.03ID:CM3Pz0hR0 電車の中や、昼飯食べながら片手で読めるものがあれば、と思ったんです
パソコンいじりながら読むなら大きい方がいいんですけどね
パソコンいじりながら読むなら大きい方がいいんですけどね
454デフォルトの名無しさん (ワッチョイ c65a-FZq6)
2018/07/28(土) 11:19:05.91ID:fTj3LZGS0 Kindleで読めば?
455デフォルトの名無しさん (ラクッペ MM17-WsON)
2018/07/28(土) 12:06:22.12ID:s8FQvaoRM さっさとkindleで読めアホ
456デフォルトの名無しさん (ワッチョイ 6f40-53i4)
2018/07/28(土) 14:09:45.43ID:xtvz/nLF0 マンガはタブレット端末で見るけど
参考書系は紙じゃないとなんか駄目だわ。全然集中できない。
参考書系は紙じゃないとなんか駄目だわ。全然集中できない。
457デフォルトの名無しさん (アウアウウー Sa43-SAHc)
2018/07/28(土) 16:49:06.40ID:XyATpAmoa kindleとか電子書籍って参考書系読みにくいよね
漫画みたいにページそのままならいいのに
漫画みたいにページそのままならいいのに
458デフォルトの名無しさん (ワッチョイ c65a-FZq6)
2018/07/28(土) 17:02:27.00ID:fTj3LZGS0 何年も前からiPadや電子ペーパー端末でプログラミングや法律の本読んでるけど特に不都合感じてないな
むしろ紙は持ち運びし辛いし検索もできないから不便だわ
むしろ紙は持ち運びし辛いし検索もできないから不便だわ
459デフォルトの名無しさん (ワッチョイ 12e4-oxGy)
2018/07/28(土) 19:13:56.62ID:sJabZ7tp0 すみません
この2行のコードを1行にするスマートな書き方ってありますか?
idx = idx << 12;
idx = idx ^ _data;
この2行のコードを1行にするスマートな書き方ってありますか?
idx = idx << 12;
idx = idx ^ _data;
460デフォルトの名無しさん (ワッチョイ 6f06-h18z)
2018/07/28(土) 19:15:47.78ID:CM3Pz0hR0 kindleですか、参考にします。
ありがとうごさいました。
ありがとうごさいました。
461さまよえる蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd32-HzQc)
2018/07/28(土) 19:31:07.68ID:g7V8p7HEd462デフォルトの名無しさん (ワッチョイ d273-typb)
2018/07/28(土) 19:52:37.67ID:mee2LTKv0 >>461
うむ
うむ
463デフォルトの名無しさん (ラクッペ MM17-0qT5)
2018/07/28(土) 20:05:12.26ID:0bzuzSMVM 初心者スレじゃないんだからidxがvolatileの場合を無視した回答は良くない
464デフォルトの名無しさん (フリッテル MM6e-qjVX)
2018/07/28(土) 20:12:34.82ID:cv0xu0xkM それを言うならvolatileでない場合を無視するのが問題では?
volatileであれば問題ないだろ
volatileであれば問題ないだろ
465デフォルトの名無しさん (ワッチョイ d273-typb)
2018/07/28(土) 20:26:36.40ID:mee2LTKv0 わしここの住人じゃなくて通りすがりなんだけど、
>>461 だとなにか問題あるの?
>>461 だとなにか問題あるの?
466デフォルトの名無しさん (ブーイモ MM32-l4h2)
2018/07/28(土) 21:15:36.33ID:DyF9e7oqM >>465
もしもidxが送信データを書き込み受信データを読み出すためのレジスタだったら、
複数回書き変えること自体が重要だったり、読み込み時は異なる値を返却するかもしれない、
という割とどうでもいい話。
もしもidxが送信データを書き込み受信データを読み出すためのレジスタだったら、
複数回書き変えること自体が重要だったり、読み込み時は異なる値を返却するかもしれない、
という割とどうでもいい話。
467デフォルトの名無しさん (ワッチョイ d273-typb)
2018/07/28(土) 21:32:40.43ID:mee2LTKv0 >>466
C的に見れば無駄なコードが実は必要だったという、そういう話しかな
C的に見れば無駄なコードが実は必要だったという、そういう話しかな
468デフォルトの名無しさん (ワッチョイ 1680-1o86)
2018/07/28(土) 21:52:57.65ID:jbwKRPPF0 最適化で一瞬レジスタの値が変わらなくなったから
それがどうしたのという話だからな
むしろ一瞬レジスタの値が変わるようなコードがそもそもぜんぜんダメ
それがどうしたのという話だからな
むしろ一瞬レジスタの値が変わるようなコードがそもそもぜんぜんダメ
469デフォルトの名無しさん (ワッチョイ e3bb-53i4)
2018/07/28(土) 21:55:35.27ID:remUbofq0 そういう話になってくるとレジスタってなんや?って話になるからな?
470デフォルトの名無しさん (ワッチョイ 1680-1o86)
2018/07/28(土) 22:00:32.66ID:jbwKRPPF0 ちゃんと確定値入れろよ
なんで計算中の値いれてんの
なんでそんな頭悪いことすんの
一行にしたいということは
間違いなく計算過程のコードだからな
なんで計算中の値いれてんの
なんでそんな頭悪いことすんの
一行にしたいということは
間違いなく計算過程のコードだからな
471デフォルトの名無しさん (ワッチョイ 4b81-53i4)
2018/07/28(土) 22:02:55.51ID:aLrZyGnX0 通信プロトコルでCPUレジスタ使ってやり取りする様な方法ってあったっけ?
472デフォルトの名無しさん (ワッチョイ 1680-1o86)
2018/07/28(土) 22:05:44.90ID:jbwKRPPF0 メモリマップドI/Oなんか簡単に消える
473デフォルトの名無しさん (ワッチョイ 03e3-tjON)
2018/07/29(日) 00:51:03.42ID:++N1yuL90 >>471
「レジスタ」って「CPUのレジスタ」だけじゃなくて「I/Oチップのレジスタ」って使い方もするよ
「レジスタ」って「CPUのレジスタ」だけじゃなくて「I/Oチップのレジスタ」って使い方もするよ
474デフォルトの名無しさん (ワッチョイ 9f50-fKXU)
2018/07/29(日) 07:02:57.29ID:YD8oKrYq0475デフォルトの名無しさん (ワッチョイ 9f50-fKXU)
2018/07/29(日) 07:15:13.10ID:YD8oKrYq0 質問というよりスレのレベルを見るための問題だな
>>468みたいな素人が見事に引っかかっちゃう
>>468みたいな素人が見事に引っかかっちゃう
476デフォルトの名無しさん (ワッチョイ 72fe-53i4)
2018/07/29(日) 09:00:29.62ID:+KuOy2bC0 触らぬ質問に騒乱無し
477デフォルトの名無しさん (ワッチョイ 6f9f-53i4)
2018/07/29(日) 09:09:25.31ID:7lOBGcOb0 実は本物の初心者で volatile などというものの存在すら知らず最初の回答で全く問題なかったのだが
知識があるものが知識がある故にあらゆる妄想を膨らませまくって勝手に争って大混乱になり、
最初に質問した者は怖くなって素早く逃亡。このスレで質問するのは止めようと固く心に誓う。←いまここ
知識があるものが知識がある故にあらゆる妄想を膨らませまくって勝手に争って大混乱になり、
最初に質問した者は怖くなって素早く逃亡。このスレで質問するのは止めようと固く心に誓う。←いまここ
478デフォルトの名無しさん (ワッチョイ 12b3-BiRP)
2018/07/29(日) 10:14:38.25ID:Ga4xmacd0 明示してないvolatileなんて考慮する必要ないわ
479デフォルトの名無しさん (ワッチョイ 1680-1o86)
2018/07/29(日) 11:40:21.87ID:LQAkWqzt0 知恵遅れのクソニートが
またテキトーなこといってるわ
2ちゃんねるはどこのスレも同じだわ
クソニートはどこにでもいる
やっぱりなクソニート2ちゃんねるから
クソニートの駆除が必要
またテキトーなこといってるわ
2ちゃんねるはどこのスレも同じだわ
クソニートはどこにでもいる
やっぱりなクソニート2ちゃんねるから
クソニートの駆除が必要
480デフォルトの名無しさん (ワッチョイ 1680-1o86)
2018/07/29(日) 11:43:48.42ID:LQAkWqzt0 まずプロフェッショナルなカンペキなオレの回答の
どこがおかしいか
だれも指摘できてないからな
どこがおかしいか
だれも指摘できてないからな
481デフォルトの名無しさん (ワッチョイ 1680-1o86)
2018/07/29(日) 11:51:38.06ID:LQAkWqzt0 ちなみに知恵遅れどものテキトーな回答のどこがおかしいか
オレはすべて回答してる
ここも同じだ
オレはすべて回答してる
ここも同じだ
482デフォルトの名無しさん (ワッチョイ 4b81-53i4)
2018/07/29(日) 11:58:20.56ID:1hBCvnSx0 夏休み?
483デフォルトの名無しさん (ワッチョイ 1680-1o86)
2018/07/29(日) 11:59:21.49ID:LQAkWqzt0 プロフェッショナルの回答に
シロウトが口をはさむ余地はない
クソニートは毎日が夏休みだもんな
シロウトが口をはさむ余地はない
クソニートは毎日が夏休みだもんな
484デフォルトの名無しさん (ワッチョイ 1680-1o86)
2018/07/29(日) 12:01:00.22ID:LQAkWqzt0 マジでなクソニートどもは身の程知らずなわけ
クソニートがまともな社会生活を送ってる社会人に勝てると思ってんの
クソニートがまともな社会生活を送ってる社会人に勝てると思ってんの
485デフォルトの名無しさん (ワッチョイ 378a-04EM)
2018/07/29(日) 12:08:05.09ID:Rgaf8fSN0 プロフェッショナルかなんか知らんけど組み込み系は苦手のようだな
486デフォルトの名無しさん (ワッチョイ 1680-1o86)
2018/07/29(日) 12:09:43.67ID:LQAkWqzt0 な知恵遅れがオレのレスのどこがおかしいか指摘できない
指摘しようがないからな
なぜならスキのないカンペキなレスだからな
どこのスレでも知恵遅れが偉そうにしてるのは同じだ
指摘しようがないからな
なぜならスキのないカンペキなレスだからな
どこのスレでも知恵遅れが偉そうにしてるのは同じだ
487デフォルトの名無しさん (ワッチョイ 6f9f-YSnv)
2018/07/29(日) 12:09:51.76ID:7lOBGcOb0 >>480
何処で回答してんの?
何処で回答してんの?
488デフォルトの名無しさん (ワッチョイ 1680-1o86)
2018/07/29(日) 12:11:10.71ID:LQAkWqzt0 >>470>>468 でおもいっきり回答してるわ
知恵遅れはなにが書いてあるか理解できない
知恵遅れはなにが書いてあるか理解できない
489デフォルトの名無しさん (ワッチョイ 6f9f-YSnv)
2018/07/29(日) 12:12:34.88ID:7lOBGcOb0 >>488
それ回答になってねえじゃん。ちゃんと回答書けよ。
それ回答になってねえじゃん。ちゃんと回答書けよ。
490デフォルトの名無しさん (ワッチョイ 1680-1o86)
2018/07/29(日) 12:14:12.01ID:LQAkWqzt0 それが回答になってないなら
オマエのオツムに問題があるか
ただの仕事未経験のクソニートがなにも分からずテキトーなこといってるだけだからな
ただクソニートである確度が極めて高い
オマエのオツムに問題があるか
ただの仕事未経験のクソニートがなにも分からずテキトーなこといってるだけだからな
ただクソニートである確度が極めて高い
491デフォルトの名無しさん (ワッチョイ 6f9f-YSnv)
2018/07/29(日) 12:15:16.00ID:7lOBGcOb0 >>490
はいはい。おだいじに。
はいはい。おだいじに。
492デフォルトの名無しさん (ワッチョイ 1680-1o86)
2018/07/29(日) 12:15:53.84ID:LQAkWqzt0 はい
クソニート図星
クソニート図星
493デフォルトの名無しさん (ワッチョイ 6f9f-YSnv)
2018/07/29(日) 12:17:35.80ID:7lOBGcOb0 やはり気温40℃超えは人をおかしくするには十分な気温だったようだな。
猛暑も酷なことをするもんだ。合掌。
猛暑も酷なことをするもんだ。合掌。
494デフォルトの名無しさん (ワッチョイ 1680-1o86)
2018/07/29(日) 12:19:13.56ID:LQAkWqzt0 クソニートは家からでないから関係ないだろ
電気代も親に払ってもらってるからな
クーラーの電気代もパチョコンの電気代もな
親が払ってくれてんだぞ
電気代も親に払ってもらってるからな
クーラーの電気代もパチョコンの電気代もな
親が払ってくれてんだぞ
495デフォルトの名無しさん (ワッチョイ 378a-04EM)
2018/07/29(日) 12:33:12.40ID:Rgaf8fSN0 組み込み系の周辺チップの制御レジスタの仕様書見たことある?
制御レジスタの特定ビットのRead/Write動作そのものに意味があるんだよ
直に制御レジスタをアクセスしないと駄目
最適化でCPUレジスタの中で値を書き換えても無意味、周辺チップは何の動作もしない
volatileはそんな時にコンパイラの最適化を抑制するために使用する
例えば、
idx = (idx << 12) ^ _data;
の例で言えば、(idx<<12)の部分で実際にidxのアドレスにマップされたメモリの値が変更される
その後に最終的に、(idx << 12) ^ _dataの値が上書きされる
idxがvolatile宣言されていない場合は、途中の評価結果はCPUの内部レジスタだけで最適化されてマップされたメモリの値は最終評価結果の書き込みしか保証されない可能性がある
組み込みの制御レジスタの例としてPICのデータシートのリンクを貼っておく
ビット毎にR/Wでチップの機能を制御している様子が分かる
https://www.microchip.co.jp/download/index.php?Mode=4&CategoryID=08ff3e00bf7fedc9fd6adb0aa9a3499b55a4aff3
制御レジスタの特定ビットのRead/Write動作そのものに意味があるんだよ
直に制御レジスタをアクセスしないと駄目
最適化でCPUレジスタの中で値を書き換えても無意味、周辺チップは何の動作もしない
volatileはそんな時にコンパイラの最適化を抑制するために使用する
例えば、
idx = (idx << 12) ^ _data;
の例で言えば、(idx<<12)の部分で実際にidxのアドレスにマップされたメモリの値が変更される
その後に最終的に、(idx << 12) ^ _dataの値が上書きされる
idxがvolatile宣言されていない場合は、途中の評価結果はCPUの内部レジスタだけで最適化されてマップされたメモリの値は最終評価結果の書き込みしか保証されない可能性がある
組み込みの制御レジスタの例としてPICのデータシートのリンクを貼っておく
ビット毎にR/Wでチップの機能を制御している様子が分かる
https://www.microchip.co.jp/download/index.php?Mode=4&CategoryID=08ff3e00bf7fedc9fd6adb0aa9a3499b55a4aff3
496デフォルトの名無しさん (ワッチョイ 1680-1o86)
2018/07/29(日) 12:46:01.14ID:LQAkWqzt0 最適化で、一瞬変わってたのが変わらなくなったらどうすんのとかいってるアホなこといってる知恵遅れに
その一瞬だけ変わってたコードが正しいコードとか
ホンキで思ってんのといってるだけだからな
そもそもvolatileついてなかったら
そのあと書き変わる保証すらどこにもない
そもそも保証がないコードのなんの保証をするわけ?
知恵遅れがいうことはさっぱり理解できないわ
その一瞬だけ変わってたコードが正しいコードとか
ホンキで思ってんのといってるだけだからな
そもそもvolatileついてなかったら
そのあと書き変わる保証すらどこにもない
そもそも保証がないコードのなんの保証をするわけ?
知恵遅れがいうことはさっぱり理解できないわ
497デフォルトの名無しさん (ワッチョイ 9f93-BNWp)
2018/07/29(日) 12:47:08.34ID:XJOvENJB0 C++相談室 part137 あたりに書き込もうと思った悪態を
間違えてこちらに投稿したのに気づいたが引っ込みがつかなくなった、
という感じがしないでもない。
今までの自分の態度をかえりみると「誤爆しました、すまん」と
書くことも照れ臭いと思ってる、かも知れない。
おそらく俺の勘違い(嫉妬に基づく邪推)だろうけどネ。
間違えてこちらに投稿したのに気づいたが引っ込みがつかなくなった、
という感じがしないでもない。
今までの自分の態度をかえりみると「誤爆しました、すまん」と
書くことも照れ臭いと思ってる、かも知れない。
おそらく俺の勘違い(嫉妬に基づく邪推)だろうけどネ。
498デフォルトの名無しさん (ワッチョイ 1680-1o86)
2018/07/29(日) 12:48:26.49ID:LQAkWqzt0 あっちもこっちも
クソニートがえらそうにしてるからな
2ちゃんねるからクソニートの駆除は必要
クソニートがえらそうにしてるからな
2ちゃんねるからクソニートの駆除は必要
499デフォルトの名無しさん (ワッチョイ 1680-1o86)
2018/07/29(日) 12:50:28.71ID:LQAkWqzt0 むしろあっちでもこっちでも
オレは間違った回答は一切してないからな
すべてカンペキなレスだ
知恵遅れがテキトーなこといってるのは
あっちもこっちも同じ
オレは間違った回答は一切してないからな
すべてカンペキなレスだ
知恵遅れがテキトーなこといってるのは
あっちもこっちも同じ
500デフォルトの名無しさん (ワッチョイ 378a-04EM)
2018/07/29(日) 12:57:17.34ID:Rgaf8fSN0 >>469
そりゃvolatileも万能ではないよ
最終的に確認するのは実機デバッグしかない
アセンブラで直接叩くしか解決できない場合もある
ICEで直接追跡しながらプログラムコードとチップの動作を確認するのが組み込みシステムの開発
ただしvolatileすら使わないのでは無駄に書き替え工数が膨れ上がる
最低限の対応はあらかじめ取っておくべき
そりゃvolatileも万能ではないよ
最終的に確認するのは実機デバッグしかない
アセンブラで直接叩くしか解決できない場合もある
ICEで直接追跡しながらプログラムコードとチップの動作を確認するのが組み込みシステムの開発
ただしvolatileすら使わないのでは無駄に書き替え工数が膨れ上がる
最低限の対応はあらかじめ取っておくべき
501デフォルトの名無しさん (ワッチョイ 378a-04EM)
2018/07/29(日) 12:57:38.10ID:Rgaf8fSN0 間違えた
>>498
>>498
502デフォルトの名無しさん (ブーイモ MM5b-l4h2)
2018/07/29(日) 13:10:28.41ID:x0a0gOqsM >>498
このスレの誰もが真っ先にキミを駆除したがってるのに、天才のはずのキミが気づいてない?おかしいねぇ
このスレの誰もが真っ先にキミを駆除したがってるのに、天才のはずのキミが気づいてない?おかしいねぇ
503デフォルトの名無しさん (ワッチョイ 1680-1o86)
2018/07/29(日) 13:14:35.44ID:LQAkWqzt0 クソニートのたまり場から
クソニートを駆除するだけだからな
部屋にいる人間の数より
南京虫やダニやノミの数のほうが多い
そういうスレだ
バルサン焚かないとなまともな人間がよりつかなくなる
その南京虫やダニやノミみたいなオマエを駆除するといってるわけ
わかった?
クソニートを駆除するだけだからな
部屋にいる人間の数より
南京虫やダニやノミの数のほうが多い
そういうスレだ
バルサン焚かないとなまともな人間がよりつかなくなる
その南京虫やダニやノミみたいなオマエを駆除するといってるわけ
わかった?
504デフォルトの名無しさん (スップ Sd32-fKXU)
2018/07/29(日) 13:26:52.38ID:OHU95624d505デフォルトの名無しさん (ワッチョイ d66e-53i4)
2018/07/29(日) 14:46:05.01ID:u6NN385t0 >>500
volatileの機能は明確に定義されていて
万能だとか頭の悪そうな話は必要ない
実機でデバッグしてコンパイラのバグが発覚することはあって
そのときの状況によってはアセンブラを使うこともあるが
アセンブラで「叩く」って言葉遣いは変だぜ
石を叩くのはCでもできるしな
ところで、おまえさんのところでは
JTAGじゃなくICEって言うのか
volatileの機能は明確に定義されていて
万能だとか頭の悪そうな話は必要ない
実機でデバッグしてコンパイラのバグが発覚することはあって
そのときの状況によってはアセンブラを使うこともあるが
アセンブラで「叩く」って言葉遣いは変だぜ
石を叩くのはCでもできるしな
ところで、おまえさんのところでは
JTAGじゃなくICEって言うのか
506デフォルトの名無しさん (ワッチョイ 378a-04EM)
2018/07/29(日) 15:04:54.06ID:Rgaf8fSN0 >>505
インサーキットエミュレータ(In Circuit Emulator:ICE)だな
もっともC言語でプログラム組んでたのは7,8年前までだけどな
当時はルネサス変更前のNECの78K0や東芝のTLCS780、松下(パナソニック)のMN101なんかで組み込み開発をやってた
インサーキットエミュレータ(In Circuit Emulator:ICE)だな
もっともC言語でプログラム組んでたのは7,8年前までだけどな
当時はルネサス変更前のNECの78K0や東芝のTLCS780、松下(パナソニック)のMN101なんかで組み込み開発をやってた
507デフォルトの名無しさん (スップ Sd32-SJhd)
2018/07/29(日) 15:12:25.34ID:h14Y8Y+4d volatileだって書いた通りに動く
コンパイラが信用できないときは逆アセンブルして確認する
実機デバッグしなければならないのは書いたやつが信用できないからで
volatileだからじゃないね
あとjtagはインターフェースのことでデバッガ自体は
ICEと呼ぶかな、うちも
コンパイラが信用できないときは逆アセンブルして確認する
実機デバッグしなければならないのは書いたやつが信用できないからで
volatileだからじゃないね
あとjtagはインターフェースのことでデバッガ自体は
ICEと呼ぶかな、うちも
508デフォルトの名無しさん (スップ Sd32-fKXU)
2018/07/29(日) 15:40:41.02ID:OHU95624d volatileをつけてコンパイラが(一見)正しいコードを生成しても
CPUが順番を変えて実行したりする
マルチコア、OoO時代は
同期コードを自分で書くのは色々な意味でやめた方が良い
SFRアクセスには使えるが
CPUが順番を変えて実行したりする
マルチコア、OoO時代は
同期コードを自分で書くのは色々な意味でやめた方が良い
SFRアクセスには使えるが
509デフォルトの名無しさん (スップ Sd32-fKXU)
2018/07/29(日) 15:52:36.85ID:OHU95624d >>507
本来の意味のICEなんて絶滅寸前
本来の意味のICEなんて絶滅寸前
510デフォルトの名無しさん (アウアウカー Saef-2Ess)
2018/07/29(日) 17:56:25.83ID:VgN+++E0a 夏はアイスだよね〜
511デフォルトの名無しさん (ワッチョイ 72fe-53i4)
2018/07/29(日) 17:57:28.24ID:+KuOy2bC0 割り込み禁止って今のOSだと無意味?
512デフォルトの名無しさん (ワッチョイ 12b3-BiRP)
2018/07/29(日) 18:45:23.92ID:Ga4xmacd0 >>511
普通に使ってると思うけど?
普通に使ってると思うけど?
513デフォルトの名無しさん (ワッチョイ d66e-53i4)
2018/07/29(日) 19:38:18.03ID:u6NN385t0 ユニプロセッサからマルチプロセッサへパラダイムシフトするにあたって
1つのCPUだけ割り込み禁止してもどうたらって話だろ
1つのCPUだけ割り込み禁止してもどうたらって話だろ
514デフォルトの名無しさん (アウアウカー Saef-2Ess)
2018/07/29(日) 20:17:45.56ID:VgN+++E0a515デフォルトの名無しさん (ワッチョイ 1680-1o86)
2018/07/29(日) 20:20:49.84ID:LQAkWqzt0 もしかして
ハードウェア割込とソフトウェア割込の違いすら分かってないのが
レスしてんのか
ハードウェア割込とソフトウェア割込の違いすら分かってないのが
レスしてんのか
516デフォルトの名無しさん (ワッチョイ 1680-1o86)
2018/07/29(日) 20:25:27.65ID:LQAkWqzt0 そもそもデバイスがCPUより超遅いことが分かってないようなのが
一瞬で値が変わってたのが、それが変わらなくなったらどうすんのとかいってるレベルだからな
ホントなコイツラの程度がイロイロと知れるわ
一瞬で値が変わってたのが、それが変わらなくなったらどうすんのとかいってるレベルだからな
ホントなコイツラの程度がイロイロと知れるわ
517デフォルトの名無しさん (スップ Sd52-SJhd)
2018/07/29(日) 20:25:43.86ID:QevJM+ENd いい加減秋田
518デフォルトの名無しさん (ドコグロ MMea-BiRP)
2018/07/29(日) 20:35:45.02ID:2vtczMQ4M >>513
どの割込みの話ししてるのか良くわからんけど、デバイスからの割り込みって予め指定したプロセッサが受け取る実装が多いぞ
どの割込みの話ししてるのか良くわからんけど、デバイスからの割り込みって予め指定したプロセッサが受け取る実装が多いぞ
519デフォルトの名無しさん (ワッチョイ 9f50-fKXU)
2018/07/29(日) 20:44:07.76ID:YD8oKrYq0 良くわからん人は素直に>>508の通りにしなさい
ここで一言で語れるような内容じゃないから
ここで一言で語れるような内容じゃないから
520デフォルトの名無しさん (ワッチョイ 9f50-fKXU)
2018/07/29(日) 20:44:37.09ID:YD8oKrYq0 特に半角君
521デフォルトの名無しさん (ワッチョイ 1680-1o86)
2018/07/29(日) 20:47:29.08ID:LQAkWqzt0 低学歴知恵遅れがドヤ顔で書いてるOoOの問題なんか
分かった上でオレはカンペキなレスしてるからな
分かった上でオレはカンペキなレスしてるからな
522デフォルトの名無しさん (ワッチョイ 1680-1o86)
2018/07/29(日) 20:48:20.64ID:LQAkWqzt0 もうねドヤ顔でレスしてるヤツの知能レベルが
致命的に低いワケ
致命的に低いワケ
523デフォルトの名無しさん (ワッチョイ 9f50-fKXU)
2018/07/29(日) 20:50:38.73ID:YD8oKrYq0 完璧なヤツが遅いとか速いとか
ハード割り込みとかソフト割り込みとか
まったくとんちんかんwww
書けば書くほど痛い
ハード割り込みとかソフト割り込みとか
まったくとんちんかんwww
書けば書くほど痛い
524デフォルトの名無しさん (ワッチョイ 1680-1o86)
2018/07/29(日) 20:51:15.80ID:LQAkWqzt0 はい低学歴のレス頂きました
525デフォルトの名無しさん (ワッチョイ 1680-1o86)
2018/07/29(日) 20:52:18.31ID:LQAkWqzt0 レスで簡単に判定できる
コイツはクソニート
コイツは低学歴
超簡単
コイツはクソニート
コイツは低学歴
超簡単
526デフォルトの名無しさん (ワッチョイ d66e-53i4)
2018/07/29(日) 20:55:32.94ID:u6NN385t0 ソフトウエア割り込みとかバカかw
センズリ野郎
センズリ野郎
527デフォルトの名無しさん (ガックシ 06ab-SJhd)
2018/07/30(月) 16:36:28.63ID:3BqaNEe76 キーボードから実数値を入力
3件のみを値が多い順に出力
最初にデータの件数(3件以上で、最大で100件とする)を入力
100件を超える場合、「エラー」と出力
ソートを使うみたいです。よろしくお願いします。
3件のみを値が多い順に出力
最初にデータの件数(3件以上で、最大で100件とする)を入力
100件を超える場合、「エラー」と出力
ソートを使うみたいです。よろしくお願いします。
528さまよえる蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd32-HzQc)
2018/07/30(月) 17:03:31.87ID:hdlApzlBd int i, num, array[100];
printf("Number of numbers: ");
scanf("%d", &num);
for (i = 0; i < num; ++i)
{
printf("array[%d]: ", i);
scanf("%d", &array[i]);
}
...
printf("Number of numbers: ");
scanf("%d", &num);
for (i = 0; i < num; ++i)
{
printf("array[%d]: ", i);
scanf("%d", &array[i]);
}
...
529さまよえる蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd32-HzQc)
2018/07/30(月) 17:04:07.39ID:hdlApzlBd 比較関数をqsortに渡せ。
530デフォルトの名無しさん (ワッチョイ 9f93-BNWp)
2018/07/30(月) 17:56:36.84ID:n1wK/LR00 アレ? 蟻のarrayはint配列だけど、問題で要求してるのは実数値じゃね?
531デフォルトの名無しさん (ブーイモ MM32-c8z2)
2018/07/30(月) 18:03:34.93ID:ehNSvi3pM 値が大きい順なのか
値の出現回数が多い順なのか
値の出現回数が多い順なのか
532さまよえる蟻人間 ◆T6xkBnTXz7B0 (ワッチョイ 27b3-HzQc)
2018/07/30(月) 18:12:03.23ID:6ITjo5O70 arrayをdoubleかfloatの配列にしてくれ。すまん。
533デフォルトの名無しさん (アウアウカー Saef-2Ess)
2018/07/30(月) 18:38:36.45ID:xHVHgAPAa 夏休みの宿題か・・・
534デフォルトの名無しさん (ワッチョイ d66e-53i4)
2018/07/30(月) 18:47:55.30ID:6X4H9pr00 floatならscanf/printfともに%f
doubleならscanfは%lfでprintfは%f
doubleならscanfは%lfでprintfは%f
535デフォルトの名無しさん (アウアウカー Saef-2Ess)
2018/07/30(月) 18:57:52.63ID:xHVHgAPAa 100件入力しても最初の3件だけを大きい順ではなく多い順に並べると・・・
変な宿題だな。読み間違えてないか?
変な宿題だな。読み間違えてないか?
536デフォルトの名無しさん (ワッチョイ 4b81-53i4)
2018/07/30(月) 19:07:25.93ID:Ei1MMj+i0 入力データに重複を許し、その出現数をカウントしろとか?
537デフォルトの名無しさん (ワッチョイ 9f50-fKXU)
2018/07/30(月) 19:26:58.25ID:aSIGzv/D0 上位3件
538デフォルトの名無しさん (ワッチョイ 9f50-fKXU)
2018/07/30(月) 19:27:37.61ID:aSIGzv/D0 だろ
普通に考えて
普通に考えて
539デフォルトの名無しさん (アウアウカー Saef-2Ess)
2018/07/30(月) 19:28:21.43ID:xHVHgAPAa 3件しかデータがないのに多い順となるとその内2件が同じ値でなければできない。
3件とも違うとか、あるいは3件とも同じなら並べかえる必要がない。
更に配列の先頭の二つが同じなら並べ変える必要がない。
それは既に多い順になっている。または全て同じ値だ。
とすると二番目の値と三番目の値を比較し、同じだったら最初の値と三番目の値を入れ換えれば良い。
三つとも全て同じ値の時に無駄な入れ換え処理をすることになるが、この程度はよかろう。
3件とも違うとか、あるいは3件とも同じなら並べかえる必要がない。
更に配列の先頭の二つが同じなら並べ変える必要がない。
それは既に多い順になっている。または全て同じ値だ。
とすると二番目の値と三番目の値を比較し、同じだったら最初の値と三番目の値を入れ換えれば良い。
三つとも全て同じ値の時に無駄な入れ換え処理をすることになるが、この程度はよかろう。
540デフォルトの名無しさん (アウアウカー Saef-2Ess)
2018/07/30(月) 19:29:45.17ID:xHVHgAPAa >>537
知らんがな。
知らんがな。
541デフォルトの名無しさん (ワッチョイ 9f50-fKXU)
2018/07/30(月) 19:37:02.99ID:aSIGzv/D0 「3件のみを」は「出力」にかかる
「値が多い」だから出現回数順
「多い順」のソート対象は書いてないが
普通に考えれば入力した全数
これがおれの解釈
「値が多い」だから出現回数順
「多い順」のソート対象は書いてないが
普通に考えれば入力した全数
これがおれの解釈
542デフォルトの名無しさん (ワッチョイ 7fb3-VTPF)
2018/07/30(月) 19:43:33.82ID:WDgnZ3L+0 出現頻度の上位3位分を出せ?
typedef double VAL_T;
struct {
VAL_T val;
int count;
} data[100] = { 0 };
線形探索して カウントアップして data[] を count をキーにソートして
data[0].val, data[1].val, data[2].val, を出力する
typedef double VAL_T;
struct {
VAL_T val;
int count;
} data[100] = { 0 };
線形探索して カウントアップして data[] を count をキーにソートして
data[0].val, data[1].val, data[2].val, を出力する
543デフォルトの名無しさん (ワッチョイ 378a-04EM)
2018/07/30(月) 19:44:19.20ID:v5YMtZ310 整数値ではなくて実数値で出現回数って些か問題に無理がないか?
544デフォルトの名無しさん (アウアウカー Saef-2Ess)
2018/07/30(月) 19:56:43.56ID:xHVHgAPAa >>541
その解釈が恐らく正しいと思うが、元の文章は素直に読むとそうならんよなあ。
その解釈が恐らく正しいと思うが、元の文章は素直に読むとそうならんよなあ。
545デフォルトの名無しさん (ワッチョイ 7fb3-VTPF)
2018/07/30(月) 19:58:59.40ID:WDgnZ3L+0 値の大きい順に上位3位なら
VAL_T data[100];
入力値をつっこんで data をソートして data[0], data[1], data[2], を出力する
int sortcmp(const void* c1, const void* c2)
{
VAL_T d1 = *(const VAL_T*)c1;
VAL_T d2 = *(const VAL_T*)c2;
if (d1 > d2) return -1;
else if (d1 < d2) return 1;
return 0;
}
・・・・
qsort(data, num, sizeof(VAL_T), sortcmp);
for (i=0; i<3 && i<num; i++)
printf("%d: %lg\n", i+1, (double)data[i]);
・・・・
VAL_T data[100];
入力値をつっこんで data をソートして data[0], data[1], data[2], を出力する
int sortcmp(const void* c1, const void* c2)
{
VAL_T d1 = *(const VAL_T*)c1;
VAL_T d2 = *(const VAL_T*)c2;
if (d1 > d2) return -1;
else if (d1 < d2) return 1;
return 0;
}
・・・・
qsort(data, num, sizeof(VAL_T), sortcmp);
for (i=0; i<3 && i<num; i++)
printf("%d: %lg\n", i+1, (double)data[i]);
・・・・
546デフォルトの名無しさん (ワッチョイ 9f50-fKXU)
2018/07/30(月) 20:08:25.88ID:aSIGzv/D0 >>544
そういう解釈も可能
そういう解釈も可能
547デフォルトの名無しさん (ワッチョイ 9f50-fKXU)
2018/07/30(月) 20:10:45.97ID:aSIGzv/D0 色々な解釈が可能な文
仕様書からコードにするときには
複数の解釈が無いか気にした方が良い
仕様書からコードにするときには
複数の解釈が無いか気にした方が良い
548デフォルトの名無しさん (ササクッテロラ Sp47-SJhd)
2018/07/30(月) 20:17:02.90ID:kECQyXHfp すみません。値が大きい順です。お願いします。
549デフォルトの名無しさん (ワッチョイ 4b81-53i4)
2018/07/30(月) 20:21:05.16ID:Ei1MMj+i0 良い試験問題だなw
550デフォルトの名無しさん (ワッチョイ 9f50-fKXU)
2018/07/30(月) 20:23:08.08ID:aSIGzv/D0 ずこーっ
上位3個でqsortとか使うのはアホ
上位3個でqsortとか使うのはアホ
551デフォルトの名無しさん (アウアウウー Sa43-53i4)
2018/07/30(月) 20:25:48.38ID:r0zEs9EBa ああ。sortコマンドとheadコマンド使いたくてうずうずする。
552デフォルトの名無しさん (アウアウウー Sa43-53i4)
2018/07/30(月) 20:30:04.49ID:r0zEs9EBa 上位三つなら全部チェックすりゃあ良いんじゃないか?
ループとif文3つか?
ループとif文3つか?
553デフォルトの名無しさん (ワッチョイ 7fb3-VTPF)
2018/07/30(月) 20:39:55.63ID:WDgnZ3L+0 なんやソート使えという制限はないのか
554デフォルトの名無しさん (ワッチョイ 1680-1o86)
2018/07/30(月) 22:01:25.27ID:WHL4n1uA0 ココではquickselectというアリゴリズムを使いなさい
というのが正解
やっぱりなこのスレは浅はかなクルクルパーしかいないわ
というのが正解
やっぱりなこのスレは浅はかなクルクルパーしかいないわ
555デフォルトの名無しさん (ワッチョイ 4b81-53i4)
2018/07/30(月) 22:06:32.60ID:Ei1MMj+i0 >>554
上位3名に入れそうだね?
上位3名に入れそうだね?
556デフォルトの名無しさん (ワッチョイ 9f50-fKXU)
2018/07/30(月) 22:17:34.44ID:aSIGzv/D0 quickselectもアホ
上位3個なら原始的なアルゴリズムが一番速い
上位3個なら原始的なアルゴリズムが一番速い
557デフォルトの名無しさん (ワッチョイ 9f50-fKXU)
2018/07/30(月) 22:18:31.28ID:aSIGzv/D0 速くて簡単でリソースも使わない
558デフォルトの名無しさん (ワッチョイ 232d-E0Ep)
2018/07/30(月) 22:19:07.01ID:Z5guDo9v0 課題みたいだし
・バブルソートを書けるか
・保持する要素は3つでいいことに気付けるか
をみる定型問題だろね
・バブルソートを書けるか
・保持する要素は3つでいいことに気付けるか
をみる定型問題だろね
559デフォルトの名無しさん (ガラプー KK1f-gj7S)
2018/07/31(火) 08:53:15.13ID:CiY/UjgCK アルゴリズムもわかってない
まず、問題解決のための適切なアルゴリズムの選択ができない
クイックソートは明らかに適切ではない
ここではクイックセレクトが適切
確かにこのスレには
まともな教育を受けたのはいない
基本的になにも知らなすぎる
白痴に近い
まず、問題解決のための適切なアルゴリズムの選択ができない
クイックソートは明らかに適切ではない
ここではクイックセレクトが適切
確かにこのスレには
まともな教育を受けたのはいない
基本的になにも知らなすぎる
白痴に近い
560デフォルトの名無しさん (ワッチョイ c623-53i4)
2018/07/31(火) 09:25:34.54ID:quzd6t9e0 クイックセレクトってどんなアルゴリズムなん?
元はクイックソートだけどソートしないで選択するだけって感じ?
元はクイックソートだけどソートしないで選択するだけって感じ?
561デフォルトの名無しさん (アウアウカー Saef-2Ess)
2018/07/31(火) 09:39:58.84ID:+/oTEV5Ja >>560
無駄な比較をしない感じ
無駄な比較をしない感じ
562デフォルトの名無しさん (JP 0H8f-+hvm)
2018/07/31(火) 11:52:18.67ID:Sty7sRvnH >>560
パーティショニングして目的の順位を含む方だけ再帰
パーティショニングして目的の順位を含む方だけ再帰
563デフォルトの名無しさん (フリッテル MM6e-qjVX)
2018/07/31(火) 12:06:11.93ID:TL2AM5+0M あー、そういうことか
564デフォルトの名無しさん (スップ Sd52-fKXU)
2018/07/31(火) 12:43:01.65ID:xftY0DAGd 明らかに上位3個の抽出には向かない
565デフォルトの名無しさん (スップ Sd52-fKXU)
2018/07/31(火) 12:45:03.91ID:xftY0DAGd 最大値を探すのにクイックセレクトを使うアホはいない
そういうこと
3個でも同じ
そういうこと
3個でも同じ
566デフォルトの名無しさん (ワッチョイ 6f02-FeqO)
2018/07/31(火) 13:12:03.24ID:kZi5wZ5a0 入力毎に判定。
3プールのmin以下なら無視。
maxより大きいなら順位シフト。
mid以下ならmin上書き。
それいがいはmidをminにしてmid上書き。
3プールのmin以下なら無視。
maxより大きいなら順位シフト。
mid以下ならmin上書き。
それいがいはmidをminにしてmid上書き。
567デフォルトの名無しさん (スップ Sd52-fKXU)
2018/07/31(火) 13:17:53.66ID:xftY0DAGd そういう原始的なアルゴリズムが最良
568デフォルトの名無しさん (スップ Sd52-fKXU)
2018/07/31(火) 13:21:36.88ID:xftY0DAGd 最悪パターンは小さい順に並んだ時だが
これでもせいぜい数倍になるだけ
クイックセレクトの最悪値は酷い
もちろん典型例でも原始的アルゴリズムの方が速い
元データも変更不要
メモリも3個分だけ
これでもせいぜい数倍になるだけ
クイックセレクトの最悪値は酷い
もちろん典型例でも原始的アルゴリズムの方が速い
元データも変更不要
メモリも3個分だけ
569デフォルトの名無しさん (ワッチョイ e3bb-53i4)
2018/07/31(火) 13:29:26.70ID:NZiCEZHW0 1,ソート対象...data[5, 3, 12 ,8 ,6]
2,メモリをソート対象の最大値個数分確保...a[12]
3,ループでa[5]=data[5], a[3]=data[3]...と全部入れる
4.詰めてオシマイ
史上最速ソートだと思わないか?ループ1回で終わるどw
2,メモリをソート対象の最大値個数分確保...a[12]
3,ループでa[5]=data[5], a[3]=data[3]...と全部入れる
4.詰めてオシマイ
史上最速ソートだと思わないか?ループ1回で終わるどw
570デフォルトの名無しさん (ワッチョイ 232d-E0Ep)
2018/07/31(火) 13:45:59.26ID:j6W8yzMq0571デフォルトの名無しさん (ワッチョイ 378a-qjVX)
2018/07/31(火) 13:49:32.57ID:hTiFVqvS0 質問内容によるとソート対象は実数値なんだが
572デフォルトの名無しさん (ワッチョイ e3bb-53i4)
2018/07/31(火) 13:49:52.96ID:NZiCEZHW0573デフォルトの名無しさん (ワッチョイ 6fe5-FeqO)
2018/07/31(火) 14:44:47.46ID:riS9l2jZ0 値をいれる必要はない。
各要素を出現回数のカウンタにすれば重複数も記録できる。
だがこれができるのは入力が整数で表せる場合だけ。
各要素を出現回数のカウンタにすれば重複数も記録できる。
だがこれができるのは入力が整数で表せる場合だけ。
574デフォルトの名無しさん (アウアウカー Saef-2Ess)
2018/07/31(火) 14:46:44.33ID:UZkSYp0La ま、しかし、普通の数値で100しかデータがないと今時のPCだとどんなアルゴリズム使っても人間が感じられないぐらいのスピードで実行しちゃうと思う。
わざとsleepとかするなら別だが。
わざとsleepとかするなら別だが。
575デフォルトの名無しさん (ワッチョイ 4b8a-vSp+)
2018/07/31(火) 14:57:40.88ID:PCFGvven0 今は熱対策が必要だな
576デフォルトの名無しさん (スップ Sd52-fKXU)
2018/07/31(火) 17:49:39.11ID:xftY0DAGd577デフォルトの名無しさん (アウアウカー Saef-2Ess)
2018/07/31(火) 17:55:01.37ID:UZkSYp0La あー。1万桁のデータが100個とか。w
578デフォルトの名無しさん (アウアウカー Saef-zedw)
2018/07/31(火) 17:58:48.84ID:zWbJ6Mhya スレッドの引数に渡す構造体を↓みたいにして、
クラスのメンバ関数ポインタを渡そうとしたんですがエラーになります。
info.pfunc = test.callの部分はどう書くのが正解ですか?
typedef struct
{
void (*pfunc)();
} TInfo;
class TestClass
{
public:
void Call(void)
{
cout << "呼んだ" << endl;
}
};
main()
{
TestClass test;
TInfo info;
info.pfunc = test.call;
}
クラスのメンバ関数ポインタを渡そうとしたんですがエラーになります。
info.pfunc = test.callの部分はどう書くのが正解ですか?
typedef struct
{
void (*pfunc)();
} TInfo;
class TestClass
{
public:
void Call(void)
{
cout << "呼んだ" << endl;
}
};
main()
{
TestClass test;
TInfo info;
info.pfunc = test.call;
}
579デフォルトの名無しさん (ワッチョイ 9f50-fKXU)
2018/07/31(火) 18:03:58.43ID:Yh1Yhi2x0 最近はC言語にクラスがあるの?
580デフォルトの名無しさん (ワッチョイ e3bb-53i4)
2018/07/31(火) 19:15:37.92ID:NZiCEZHW0 static void Call()
581デフォルトの名無しさん (ワッチョイ 1680-1o86)
2018/07/31(火) 20:20:43.19ID:4WdKzGL90 #include <stdio.h>
typedef struct tag_baka_t t_baka_t;
typedef int (*baka_func_t)(t_baka_t const* pt_baka);
typedef struct tag_baka_t {
char* text;
baka_func_t function;
} t_baka_t;
int call_baka1(t_baka_t const* ct_baka) { fprintf(stdout, "baka1:%s\n", ct_baka->text); return 1; }
int call_baka2(t_baka_t const* ct_baka) { fprintf(stdout, "baka2:%s\n", ct_baka->text); return 2; }
int call_baka3(t_baka_t const* ct_baka) { fprintf(stdout, "baka3:%s\n", ct_baka->text); return 3; }
int call(t_baka_t const* ct_baka) {
return ct_baka->function(ct_baka);
}
int main(int argc, char* argv[]) {
t_baka_t baka1 = { "boo", call_baka1 };
t_baka_t baka2 = { "foo", call_baka2 };
t_baka_t baka3 = { "woo", call_baka3 };
fprintf(stdout, "called baka1 -> returned %d\n", call(&baka1));
fprintf(stdout, "called baka2 -> returned %d\n", call(&baka2));
fprintf(stdout, "called baka3 -> returned %d\n", call(&baka3));
return 0;
}
C言語の構造体ならコレでいける
コレならバカでも分かるハズ
C++の構造体でも同じように書ける
typedef struct tag_baka_t t_baka_t;
typedef int (*baka_func_t)(t_baka_t const* pt_baka);
typedef struct tag_baka_t {
char* text;
baka_func_t function;
} t_baka_t;
int call_baka1(t_baka_t const* ct_baka) { fprintf(stdout, "baka1:%s\n", ct_baka->text); return 1; }
int call_baka2(t_baka_t const* ct_baka) { fprintf(stdout, "baka2:%s\n", ct_baka->text); return 2; }
int call_baka3(t_baka_t const* ct_baka) { fprintf(stdout, "baka3:%s\n", ct_baka->text); return 3; }
int call(t_baka_t const* ct_baka) {
return ct_baka->function(ct_baka);
}
int main(int argc, char* argv[]) {
t_baka_t baka1 = { "boo", call_baka1 };
t_baka_t baka2 = { "foo", call_baka2 };
t_baka_t baka3 = { "woo", call_baka3 };
fprintf(stdout, "called baka1 -> returned %d\n", call(&baka1));
fprintf(stdout, "called baka2 -> returned %d\n", call(&baka2));
fprintf(stdout, "called baka3 -> returned %d\n", call(&baka3));
return 0;
}
C言語の構造体ならコレでいける
コレならバカでも分かるハズ
C++の構造体でも同じように書ける
582さまよえる蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd32-HzQc)
2018/07/31(火) 20:29:50.71ID:qpn2fVfCd ばかばっか
583デフォルトの名無しさん (ワッチョイ 129f-lgLX)
2018/07/31(火) 20:29:50.72ID:V319xmHP0 >>578
節子それc言語やないで
節子それc言語やないで
584デフォルトの名無しさん (ワッチョイ 232d-E0Ep)
2018/07/31(火) 20:33:19.91ID:j6W8yzMq0585デフォルトの名無しさん (アウアウオー Saea-zedw)
2018/07/31(火) 21:00:04.51ID:YzKZx0BTa586デフォルトの名無しさん (ワッチョイ 6f9f-53i4)
2018/07/31(火) 23:06:10.75ID:ljgZb1RQ0 次からはC++の質問はC++のスレへ。
587デフォルトの名無しさん (ワッチョイ 1681-2QVD)
2018/08/01(水) 16:42:35.83ID:9yb7YrdQ0 クイックソートのwikipediaに書いてあるc言語のソースに、
【value_type tmp, pivot = med3(a[i], a[i + (j - i) / 2], a[j]); /* (i+j)/2 ではオーバーフローしてしまう */】
と書いてあるのですが、「(i+j)/2ではオーバーフローしてしまう」のオーバーフローする場合がまったくわかりません。
教えていただけますか。
【value_type tmp, pivot = med3(a[i], a[i + (j - i) / 2], a[j]); /* (i+j)/2 ではオーバーフローしてしまう */】
と書いてあるのですが、「(i+j)/2ではオーバーフローしてしまう」のオーバーフローする場合がまったくわかりません。
教えていただけますか。
588さまよえる蟻人間 ◆T6xkBnTXz7B0 (スフッ Sd32-HzQc)
2018/08/01(水) 17:40:34.16ID:TGp/sEuFd i, jがどんな値かによる。
i == 0x7fffffff && j == 0x7fffffff
で、i + jがどんな整数値になるか考えたまえ。
i == 0x7fffffff && j == 0x7fffffff
で、i + jがどんな整数値になるか考えたまえ。
589デフォルトの名無しさん (ワッチョイ 1681-2QVD)
2018/08/01(水) 18:09:35.03ID:9yb7YrdQ0 ありがとうございます。理解出来ました。
下限上限への理解がまだまだでした…
下限上限への理解がまだまだでした…
590デフォルトの名無しさん (ガックシ 06de-fBTW)
2018/08/01(水) 18:20:26.56ID:edgaccID6591デフォルトの名無しさん (ワッチョイ e3bb-53i4)
2018/08/01(水) 19:46:12.42ID:xh0kKqMn0 >>578が578のやり方でtest.Callのアドレスを渡せないのはなんでなん?理由が知りたい。
592デフォルトの名無しさん (ワッチョイ 232d-E0Ep)
2018/08/01(水) 20:21:01.54ID:jfFEYUCE0 >>591
まず瑣末だけど、 test.call じゃなくて &Test::Call でメンバ関数のポインタを取らなきゃいけないってのはあるけど それはいいとして
ざっくり言えば「メンバ関数の型はクラスの型を含んでて、普通の関数とは型違うから」ってとこかねー
# g++
エラー: cannot convert ‘void (TestClass::*)()’ to ‘void (*)()’ in assignment
info.pfunc = &TestClass::Call;
スレチなので 解答が不足ならば「C++相談室」か「スレ勃てるまでもないC/C++の質問はここで」辺りで願います
詳しい人いるだろうし
まず瑣末だけど、 test.call じゃなくて &Test::Call でメンバ関数のポインタを取らなきゃいけないってのはあるけど それはいいとして
ざっくり言えば「メンバ関数の型はクラスの型を含んでて、普通の関数とは型違うから」ってとこかねー
# g++
エラー: cannot convert ‘void (TestClass::*)()’ to ‘void (*)()’ in assignment
info.pfunc = &TestClass::Call;
スレチなので 解答が不足ならば「C++相談室」か「スレ勃てるまでもないC/C++の質問はここで」辺りで願います
詳しい人いるだろうし
593デフォルトの名無しさん (ワッチョイ e3bb-53i4)
2018/08/01(水) 20:28:43.32ID:xh0kKqMn0 >>592
そのざっくりな説明だけでもわかりやすい。なるほどありがとう。
そのざっくりな説明だけでもわかりやすい。なるほどありがとう。
594デフォルトの名無しさん (ワッチョイ e3bb-53i4)
2018/08/01(水) 20:34:52.96ID:xh0kKqMn0 ググったら安定のロベールさん出てきた。買った方がいいなこれ基礎力でえらい差が出てしまう気がしてきた
595デフォルトの名無しさん (アウアウウー Sa43-53i4)
2018/08/01(水) 20:52:58.87ID:WDXOLOCva C++の話はC++スレでやれ。
596デフォルトの名無しさん (ワッチョイ 129f-lgLX)
2018/08/01(水) 21:33:20.86ID:jJEMbL0b0 なんだ結局ロベールのステマかよしょうもねえな
597デフォルトの名無しさん (アウアウカー Saef-zedw)
2018/08/01(水) 22:23:36.11ID:ArWxfDp8a >>592
分かりやすい説明
分かりやすい説明
598デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/02(木) 00:25:44.59ID:6TeXhDWV0 オーバフロー以前に
ポインタ同士の足し算なんかしないからな(Cでは普通のやりかたではできない仕様になってる)
ポインタ同士の足し算なんかしたらおもいっきりオーバーフローすることがあるからな
つまり簡単にオーバーフローはおきうる
ポインタにはアドレスが入ってるからな
やってることは
基準になるオフセット(ここでは左端)に距離を足すだけといっていい
距離は通常ポインタの引き算で求める
距離は左端と右端の距離の半分の距離に
基準になるオフセットに足す
すると中間点になる
つまり中間点固定
しかしピボットが中間点固定だと最悪のケースの場合
クイックソートはものすごく遅くなる
で、ピボットを乱数で選択することで
その最悪のケースを回避するというやりかたもある
実際の現実のデータでそんな最悪のケースはほぼないといっていい
ポインタ同士の足し算なんかしないからな(Cでは普通のやりかたではできない仕様になってる)
ポインタ同士の足し算なんかしたらおもいっきりオーバーフローすることがあるからな
つまり簡単にオーバーフローはおきうる
ポインタにはアドレスが入ってるからな
やってることは
基準になるオフセット(ここでは左端)に距離を足すだけといっていい
距離は通常ポインタの引き算で求める
距離は左端と右端の距離の半分の距離に
基準になるオフセットに足す
すると中間点になる
つまり中間点固定
しかしピボットが中間点固定だと最悪のケースの場合
クイックソートはものすごく遅くなる
で、ピボットを乱数で選択することで
その最悪のケースを回避するというやりかたもある
実際の現実のデータでそんな最悪のケースはほぼないといっていい
599デフォルトの名無しさん (スプッッ Sd47-XO19)
2018/08/02(木) 00:29:26.39ID:c3/ck1cgd すいません初心者です、質問なんですが・・・
for文を使うときにfor(i = 1 ;i <= 5 ;i++ )でiが5より増えたときにループを抜けるようにiを1ずつ増やすというのは分かるんですが
何故ループするときにfor文のi = 1の代入の部分は無視されるんでしょうか・・・
for文を使うときにfor(i = 1 ;i <= 5 ;i++ )でiが5より増えたときにループを抜けるようにiを1ずつ増やすというのは分かるんですが
何故ループするときにfor文のi = 1の代入の部分は無視されるんでしょうか・・・
600デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/02(木) 00:39:59.52ID:6TeXhDWV0 そういう制御文だからな
そういう仕様だ
for ( [ループ前に行う演算]; [ループが処理される条件]; [次のループが処理される前に行う演算] )
i = 1;
whlle (i <= 5) {
・・・
i++
}
と同じ
どれもすべて入れても入れなくてもいい
for (;;) こう書くと無限ループになる
そういう仕様だ
for ( [ループ前に行う演算]; [ループが処理される条件]; [次のループが処理される前に行う演算] )
i = 1;
whlle (i <= 5) {
・・・
i++
}
と同じ
どれもすべて入れても入れなくてもいい
for (;;) こう書くと無限ループになる
601デフォルトの名無しさん (スプッッ Sd47-XO19)
2018/08/02(木) 00:43:35.36ID:c3/ck1cgd なるほどそういう仕様だったんですね・・・
丁寧にありがとうございますこれでようやく眠れる
丁寧にありがとうございますこれでようやく眠れる
602デフォルトの名無しさん (ブーイモ MM67-3qOU)
2018/08/02(木) 01:18:26.80ID:4HyEhcJnM >>600
continueがあるとちょっと書き換えが必要だけどね
continueがあるとちょっと書き換えが必要だけどね
603デフォルトの名無しさん (ドコグロ MM47-6jVY)
2018/08/02(木) 06:45:33.31ID:S4Pms+eVM604デフォルトの名無しさん (ワッチョイ 6350-3fy2)
2018/08/02(木) 07:13:00.94ID:PxPZ0mdd0605デフォルトの名無しさん (ワッチョイ d3d7-Xflc)
2018/08/02(木) 09:43:21.84ID:NSwKZwuS0 for文でのcontinueの挙動を最近知ったばかりで自慢したかったんだろ
606デフォルトの名無しさん (スップ Sd1f-3fy2)
2018/08/02(木) 09:48:48.46ID:Bu8RCR+yd if
for
while
do while
goto
break
continue
このくらいしか無いんだから全部覚えとけ
なぜかgotoの使い方を知らんヤツが多い
多重ループを抜けるのにわざわざフラグを使うアホとか
for
while
do while
goto
break
continue
このくらいしか無いんだから全部覚えとけ
なぜかgotoの使い方を知らんヤツが多い
多重ループを抜けるのにわざわざフラグを使うアホとか
607デフォルトの名無しさん (ワッチョイ d3d7-Xflc)
2018/08/02(木) 10:51:33.79ID:NSwKZwuS0 使い方を知らんというより
絶対使うなと刷り込まれているのが多い
なぜだと聞いても答えられないやつ全員
絶対使うなと刷り込まれているのが多い
なぜだと聞いても答えられないやつ全員
608デフォルトの名無しさん (アウアウカー Sa07-iFcb)
2018/08/02(木) 12:55:13.95ID:Cp7uV85Za gotoは悪という教義のある宗教の信者だから仕方がない。
609デフォルトの名無しさん (スップ Sd1f-rhtP)
2018/08/02(木) 13:54:18.40ID:4fjj7SMLd 大体使わなくて済むし
使う必要がある時に
さりげなく使うもの
使う必要がある時に
さりげなく使うもの
610デフォルトの名無しさん (ワッチョイ 63ea-47xK)
2018/08/02(木) 14:17:14.48ID:TfLreE+60 全く使わない 脱出用途なら使う 飛び込みでも使う
611デフォルトの名無しさん (アウアウカー Sa07-iFcb)
2018/08/02(木) 16:25:02.06ID:SFe9zIxEa 脱出時だけ使ってるな。
関数の途中で複数エラーが出る可能性がある場合とかは関数の最後の方にgotoさせてそこでまとめてメモリ解放などをする。
他の言語だと例外投げて try catch でなんとかするようなやつだな。
関数の途中で複数エラーが出る可能性がある場合とかは関数の最後の方にgotoさせてそこでまとめてメモリ解放などをする。
他の言語だと例外投げて try catch でなんとかするようなやつだな。
612デフォルトの名無しさん (ブーイモ MM67-2iw7)
2018/08/02(木) 18:05:39.94ID:QNpgl+2ZM 飛び込みはやめーや
613デフォルトの名無しさん (ガックシ 067f-8ycx)
2018/08/02(木) 18:57:08.60ID:yzfiTIk96 脱出はreturnにすればいい
614デフォルトの名無しさん (ワッチョイ 5381-Xflc)
2018/08/02(木) 19:01:34.31ID:xZR22mJ60 returnが複数あるのを嫌がる宗派があるからなあ
615デフォルトの名無しさん (スッップ Sd1f-3fy2)
2018/08/02(木) 19:11:54.12ID:1EegAYN5d >>613
宗教の信者さん?
宗教の信者さん?
616デフォルトの名無しさん (ワッチョイ e3b3-47xK)
2018/08/02(木) 19:12:56.06ID:jJ76BOdj0 初期化(1) if (エラー) goto E1;
初期化(2) if (エラー) goto E2;
初期化(3) if (エラー) goto E3;
:
return おっけー
E3: (3) の後始末
E2: (2) の後始末
E1: (1) の後始末
return エラーじゃ
初期化(2) if (エラー) goto E2;
初期化(3) if (エラー) goto E3;
:
return おっけー
E3: (3) の後始末
E2: (2) の後始末
E1: (1) の後始末
return エラーじゃ
>>614
確かに、misra が全力でそれを嫌うのは、なにか理由があってのことでしょうか?
確かに、misra が全力でそれを嫌うのは、なにか理由があってのことでしょうか?
618デフォルトの名無しさん (ワッチョイ ff73-lyTv)
2018/08/02(木) 19:20:08.81ID:zwgkA1lD0 >>616
俺もこれ派だわ
俺もこれ派だわ
619デフォルトの名無しさん (スッップ Sd1f-3fy2)
2018/08/02(木) 19:26:51.94ID:1EegAYN5d ○○派とか言うと他の方法を知らないように感じる
臨機応変に色々の方法を使い分けるのが良い
臨機応変に色々の方法を使い分けるのが良い
620デフォルトの名無しさん (ワッチョイ 5381-Xflc)
2018/08/02(木) 19:33:21.75ID:xZR22mJ60 コーディング規約を決める偉い人の信仰心に依存する、か
621デフォルトの名無しさん (ワッチョイ ff73-lyTv)
2018/08/02(木) 19:35:06.17ID:zwgkA1lD0622デフォルトの名無しさん (スッップ Sd1f-3fy2)
2018/08/02(木) 19:41:55.73ID:1EegAYN5d コーディング規約を偉い人が決めるような会社は嫌だな
623デフォルトの名無しさん (スッップ Sd1f-3fy2)
2018/08/02(木) 19:43:01.73ID:1EegAYN5d 偉い人はもっと大きな事を考えて
624デフォルトの名無しさん (ワッチョイ 6fe7-Mv1r)
2018/08/02(木) 20:10:50.62ID:Cjo1mv3c0 エラー起こす前にちゃんと検査しろ。
625デフォルトの名無しさん (ブーイモ MM67-xnas)
2018/08/02(木) 20:30:01.75ID:1NEFWSVpM retryとoutは使うわ
後始末不要ならその場でreturn
後始末必要なら最後にreturn
まあこの辺の書き方より関数名、変数名、変数の数を気にして欲しいと思う今日この頃
後始末不要ならその場でreturn
後始末必要なら最後にreturn
まあこの辺の書き方より関数名、変数名、変数の数を気にして欲しいと思う今日この頃
626デフォルトの名無しさん (ワッチョイ d3d7-Xflc)
2018/08/02(木) 22:24:28.26ID:NSwKZwuS0 Cのgotoが関数から出られない、という時点で
悪しきgotoの大部分が封じられているんだけど
せっかくそうなっているのに1関数で数千行なんてやらかす
何というか吹っ切れたやつが暗黒面に墜ちていると
とんでもねえんだよ
悪しきgotoの大部分が封じられているんだけど
せっかくそうなっているのに1関数で数千行なんてやらかす
何というか吹っ切れたやつが暗黒面に墜ちていると
とんでもねえんだよ
628デフォルトの名無しさん (ワッチョイ 5381-Xflc)
2018/08/02(木) 22:43:04.03ID:xZR22mJ60 longjmpでイスカンダルまで飛びたいんですけど
何故か地球に戻ってしまいます
何故か地球に戻ってしまいます
629デフォルトの名無しさん (ワッチョイ ff12-gYkF)
2018/08/03(金) 02:01:51.21ID:TY6Sib0f0 イスカンダルのトーフ屋
630デフォルトの名無しさん (ワッチョイ ff73-lyTv)
2018/08/03(金) 05:37:20.02ID:o9dqmONZ0 孫悟空はsetjmp/longjmpの使い手
631デフォルトの名無しさん (ワッチョイ 6fe7-Mv1r)
2018/08/03(金) 09:55:27.36ID:UvsVeV1Q0 組込み人は状態変数でワープする。
632デフォルトの名無しさん (ワッチョイ 5381-Xflc)
2018/08/03(金) 10:02:42.04ID:8VyIMXmS0 スタック上の戻りアドレスを自分で操作して、好きな場所にワープさせてた奴いたっけな
633デフォルトの名無しさん (ワッチョイ d3d7-Xflc)
2018/08/03(金) 10:12:18.20ID:9KGEdKKU0634デフォルトの名無しさん (ワッチョイ d3d7-Xflc)
2018/08/03(金) 14:40:50.79ID:9KGEdKKU0 悪しきgotoの大部分を封じるときに
巻き添えで封じられた悪しくないgotoを救う
アイテムがlongjmpだろうがよ
巻き添えで封じられた悪しくないgotoを救う
アイテムがlongjmpだろうがよ
635デフォルトの名無しさん (ワッチョイ 6fe7-Mv1r)
2018/08/03(金) 19:36:07.75ID:4c00FTp80 gotoの効率の良さは取立ての生うにの味
636デフォルトの名無しさん (アウアウカー Sa07-iFcb)
2018/08/03(金) 20:15:47.20ID:X+nM2ZWla gotoは良く切れる刀のようなもの。
その怪しい魅力に取り憑かれダークサイドに堕ちた者は数知れず。
その怪しい魅力に取り憑かれダークサイドに堕ちた者は数知れず。
637デフォルトの名無しさん (ブーイモ MM67-3qOU)
2018/08/03(金) 20:42:44.92ID:6lqoN/6FM 昔のBASICはその鋭い刃しかなかったってことか
638デフォルトの名無しさん (ワッチョイ 6350-3fy2)
2018/08/03(金) 20:43:55.37ID:I1YZhHYF0 GOSUBとかなかった?
639デフォルトの名無しさん (ワッチョイ 5381-Xflc)
2018/08/03(金) 20:49:49.72ID:8VyIMXmS0 fortranからの伝統芸
640デフォルトの名無しさん (ワッチョイ ffd2-ej6N)
2018/08/03(金) 21:11:54.24ID:1LNshpyd0 その昔サブルーチンの存在を知らなかった頃
gotoだけでスタックオーバーフロー的な
破綻をさせないで組んだのは結構自分の糧になってる
大人になってコーディング規約を作る側になった時
脱出のみ使用可能ってルールを作ったら
頑なに拒否するメンバーがいて仕事を外れてもらったことがる
宗教じみた反応でちょっと怖かった
gotoだけでスタックオーバーフロー的な
破綻をさせないで組んだのは結構自分の糧になってる
大人になってコーディング規約を作る側になった時
脱出のみ使用可能ってルールを作ったら
頑なに拒否するメンバーがいて仕事を外れてもらったことがる
宗教じみた反応でちょっと怖かった
641デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/03(金) 22:31:36.61ID:yp/iEsny0 gotoなんかよほどの理由がない限り使わない
適切に構造化できないアホが使うとロクなことにならない
原則禁止でいい
適切に構造化できないアホが使うとロクなことにならない
原則禁止でいい
642デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/03(金) 23:20:08.07ID:yp/iEsny0 >>616なんかではgoto使うケースなんかほぼない
普通にコード書いてればgotoなんかなくなる
後始末の仕方が判定できないコードを書くと
初期化が終わったあと、その初期化がむしろ不要になった場合その後始末が大変になる
知恵遅れほどいちいち不要なgotoを使いたがるからな
#define ERROR_INIT_AHO0 -1
#define ERROR_INIT_AHO1 -2
#define ERROR_INIT_AHO2 -3
#define ERROR_INIT_AHO3 -4
typedef struct tag_aho { char* p1; int fd2; FILE* fp3; } t_aho_t;
int 初期化(t_aho_t** ppt_aho) {
t_aho_t* pt_aho;
*ppt_aho = NULL;
if ((pt_aho = malloc(sizeof(t_aho_t)) == NULL) { return ERROR_INIT_AHO0; }
*ppt_aho = pt_aho;
if ((pt_aho->p1 = malloc()) == NULL) { 後始末(pt_aho); return ERROR_INIT_AHO1; }
if ((pt_aho->fd2 = open()) < 0) { 後始末(pt_aho); return ERROR_INIT_AHO2; }
if ((pt_aho->fp3 = fopen()) == NULL) { 後始末(pt_aho); return ERROR_INIT_AHO3; }
return 0;
}
void 後始末(t_aho_t* pt_aho) {
if (pt_aho == NULL) return;
if (pt_aho->p1 != NULL) { free(pt_aho->p1); }
if (pt_aho->fd2 > 2) { close(pt_aho->fd2); }
if (pt_aho->fp3 != NULL) { fclose(pt_aho->fp3); }
free(pt_aho);
}
普通にコード書いてればgotoなんかなくなる
後始末の仕方が判定できないコードを書くと
初期化が終わったあと、その初期化がむしろ不要になった場合その後始末が大変になる
知恵遅れほどいちいち不要なgotoを使いたがるからな
#define ERROR_INIT_AHO0 -1
#define ERROR_INIT_AHO1 -2
#define ERROR_INIT_AHO2 -3
#define ERROR_INIT_AHO3 -4
typedef struct tag_aho { char* p1; int fd2; FILE* fp3; } t_aho_t;
int 初期化(t_aho_t** ppt_aho) {
t_aho_t* pt_aho;
*ppt_aho = NULL;
if ((pt_aho = malloc(sizeof(t_aho_t)) == NULL) { return ERROR_INIT_AHO0; }
*ppt_aho = pt_aho;
if ((pt_aho->p1 = malloc()) == NULL) { 後始末(pt_aho); return ERROR_INIT_AHO1; }
if ((pt_aho->fd2 = open()) < 0) { 後始末(pt_aho); return ERROR_INIT_AHO2; }
if ((pt_aho->fp3 = fopen()) == NULL) { 後始末(pt_aho); return ERROR_INIT_AHO3; }
return 0;
}
void 後始末(t_aho_t* pt_aho) {
if (pt_aho == NULL) return;
if (pt_aho->p1 != NULL) { free(pt_aho->p1); }
if (pt_aho->fd2 > 2) { close(pt_aho->fd2); }
if (pt_aho->fp3 != NULL) { fclose(pt_aho->fp3); }
free(pt_aho);
}
643デフォルトの名無しさん (アウアウカー Sa07-KE4L)
2018/08/03(金) 23:26:42.29ID:Fao22p7ya gote使う前にそのループを関数化で分ける
644デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/03(金) 23:29:40.43ID:yp/iEsny0 正解!
645デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/03(金) 23:34:32.92ID:yp/iEsny0 >>642の簡単な例なら最初のmallocのあと
pt_aho->p1 = NULL;
pt_aho->fd2 = -1;
pt_aho->fp3 = NULL;
と初期化しておくだけでどう後始末すれば判定できる
pt_aho->p1 = NULL;
pt_aho->fd2 = -1;
pt_aho->fp3 = NULL;
と初期化しておくだけでどう後始末すれば判定できる
646デフォルトの名無しさん (ワッチョイ 5381-Xflc)
2018/08/03(金) 23:44:52.51ID:8VyIMXmS0647デフォルトの名無しさん (ワッチョイ 539e-e/QH)
2018/08/04(土) 00:39:50.00ID:iUNKVgUH0 Linux は、goto でエラー処理をまとめてる
return も、2箇所以上で使っている。
関数の冒頭で、処理しないものを、return ではじいたりしてる
MISRA-C のルール違反
トヨタなんか、MISRA-C で、5/100点とか聞くw
ルールの95% に違反w
return も、2箇所以上で使っている。
関数の冒頭で、処理しないものを、return ではじいたりしてる
MISRA-C のルール違反
トヨタなんか、MISRA-C で、5/100点とか聞くw
ルールの95% に違反w
648デフォルトの名無しさん (ワッチョイ a39f-Xflc)
2018/08/04(土) 04:04:56.84ID:2zclIjyW0 >>642
それだと毎回その関数用の構造体を作らねばならなくなっていまいち面倒ではないか?俺は>>616とその方式組み合わせたような感じにしてるよ。
int func()
{
int r = -1;
char *p1 = NULL;
int fd2 = -1;
FILE *fp3 = NULL;
if ((p1 = malloc()) == NULL) goto func_exit;
if ((fd2 = open()) == -1) {
r = -2;
goto func_exit;
}
if ((fp3 = fopen()) == NULL) {
r = -3;
goto func_exit;
}
/* 処理 */
// ここで p1, fd2, fp3 を使い終わった場合は func_exit より後でメモリ開放や
// クローズされないようにするために -1 や NULL を代入する。
r = 0; // 成功
func_exit:
if (p1) free(p1);
if (fd2 != -1) close(fd2);
if (fp3) fclose(fp3);
return r;
}
それだと毎回その関数用の構造体を作らねばならなくなっていまいち面倒ではないか?俺は>>616とその方式組み合わせたような感じにしてるよ。
int func()
{
int r = -1;
char *p1 = NULL;
int fd2 = -1;
FILE *fp3 = NULL;
if ((p1 = malloc()) == NULL) goto func_exit;
if ((fd2 = open()) == -1) {
r = -2;
goto func_exit;
}
if ((fp3 = fopen()) == NULL) {
r = -3;
goto func_exit;
}
/* 処理 */
// ここで p1, fd2, fp3 を使い終わった場合は func_exit より後でメモリ開放や
// クローズされないようにするために -1 や NULL を代入する。
r = 0; // 成功
func_exit:
if (p1) free(p1);
if (fd2 != -1) close(fd2);
if (fp3) fclose(fp3);
return r;
}
649デフォルトの名無しさん (ワッチョイ d3d7-Xflc)
2018/08/04(土) 05:10:46.07ID:YA1hWK5Y0 >>641
適切に構造化できないアホさん乙
適切に構造化できないアホさん乙
650デフォルトの名無しさん (アウアウカー Sa07-KE4L)
2018/08/04(土) 05:53:52.28ID:I5yMWHTla >>648
goto使わず普通に関数呼べばいいだけでは
goto使わず普通に関数呼べばいいだけでは
651デフォルトの名無しさん (ワッチョイ d3d7-Xflc)
2018/08/04(土) 07:40:44.39ID:YA1hWK5Y0 int func()
{
int r = 1;
//無駄な初期化はしない
char *p1;
int fd2;
FILE *fp3;
p1 = malloc(); if(p1 == NULL) goto malloc_failure;
fd2 = open(); if(fd2 == -1) goto open_failure;
fp3 = fopen(); if(fp3 == NULL) goto fopen_failure;
r = 0; // 成功
//フラグの類は極力使わない
fclose(fp3);
fopen_failure:
close(fd2);
open_failure:
free(p1);
malloc_failure:
return r;
}
{
int r = 1;
//無駄な初期化はしない
char *p1;
int fd2;
FILE *fp3;
p1 = malloc(); if(p1 == NULL) goto malloc_failure;
fd2 = open(); if(fd2 == -1) goto open_failure;
fp3 = fopen(); if(fp3 == NULL) goto fopen_failure;
r = 0; // 成功
//フラグの類は極力使わない
fclose(fp3);
fopen_failure:
close(fd2);
open_failure:
free(p1);
malloc_failure:
return r;
}
652デフォルトの名無しさん (ワッチョイ 6350-3fy2)
2018/08/04(土) 08:12:49.13ID:mQQzn2Q+0653デフォルトの名無しさん (ワッチョイ 6350-3fy2)
2018/08/04(土) 08:15:22.02ID:mQQzn2Q+0 わざわざ専用構造体と専用後始末関数と専用エラーコードをつくってわざわざ複雑にしてるアホもいるし
変数名で自己紹介してるから自覚はあるんだろうけど
変数名で自己紹介してるから自覚はあるんだろうけど
654デフォルトの名無しさん (ワッチョイ 6350-3fy2)
2018/08/04(土) 08:22:18.05ID:mQQzn2Q+0 初期化と後始末を包んだ関数もいるね
十数行で済むシンプルな関数に
何十行使うつもりだか
十数行で済むシンプルな関数に
何十行使うつもりだか
655デフォルトの名無しさん (ブーイモ MM67-xnas)
2018/08/04(土) 08:32:14.97ID:cyc8bEPyM Ok, so I'm looking at your code and your code is pure and utter *shit*.
656デフォルトの名無しさん (ワッチョイ cf81-Xflc)
2018/08/04(土) 08:42:16.32ID:+vznLLf60 goto hell
657デフォルトの名無しさん (ワッチョイ ffb3-6jVY)
2018/08/04(土) 09:32:53.84ID:AH7fLvgn0 >>647
MISRAの話だとそういう制御の話がよく取り上げらてて俺もほとんど守ってないけど、データ変換の話はよく考えられててなかなか為になるよ
MISRAの話だとそういう制御の話がよく取り上げらてて俺もほとんど守ってないけど、データ変換の話はよく考えられててなかなか為になるよ
658デフォルトの名無しさん (ワッチョイ ffb3-6jVY)
2018/08/04(土) 09:33:52.60ID:AH7fLvgn0659デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/04(土) 10:21:26.55ID:CpwGeL+S0 アホは後始末しないのもわかったわ
初期化がおわったあと
ファイルあけたらずーっとあけっぱなし
ヒープ作ったら作りっぱなし
なにがおきようが関数抜けたらずーっと放置
まずその部分で完結したコードが書けない
だいたいどんな知恵遅れがコード書いてんのか分かった
アホが自己紹介のコード書いてるしな
初期化がおわったあと
ファイルあけたらずーっとあけっぱなし
ヒープ作ったら作りっぱなし
なにがおきようが関数抜けたらずーっと放置
まずその部分で完結したコードが書けない
だいたいどんな知恵遅れがコード書いてんのか分かった
アホが自己紹介のコード書いてるしな
660デフォルトの名無しさん (ワッチョイ cf81-Xflc)
2018/08/04(土) 10:43:47.43ID:+vznLLf60 それは時代遅れの化石言語Cのせい
661デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/04(土) 11:02:01.24ID:CpwGeL+S0 やはりな
Cはオレみたいにエレガントなコード書けるヤツでないと使えない
オレみたいなプロフェッショナルでないとムリ
Cは言語規格が非常にシンプルで非常に優れている言語だからな
シンプルなせいで敷居も低い
そのせいでアホでも酷いコードが簡単に書けてしまう
非常に根が深い問題といっていい
Cはオレみたいにエレガントなコード書けるヤツでないと使えない
オレみたいなプロフェッショナルでないとムリ
Cは言語規格が非常にシンプルで非常に優れている言語だからな
シンプルなせいで敷居も低い
そのせいでアホでも酷いコードが簡単に書けてしまう
非常に根が深い問題といっていい
662デフォルトの名無しさん (スッップ Sd1f-sMWb)
2018/08/04(土) 11:09:25.30ID:tEqwX/6gd C11で開発してる人はいる?
663デフォルトの名無しさん (アウアウカー Sa07-KE4L)
2018/08/04(土) 11:14:47.57ID:/DYnKp4Pa fp = fopen(filen, "rb+");
if(fp == null) {
return 0;
}
func(fpやら処理する価);
fclose(fp);
ファイルオープンに失敗したらもどるし
関数呼び出しの結果がどうだろうと解放されるしgoto使う前にint func(void){return 0;}でわければいい
if(fp == null) {
return 0;
}
func(fpやら処理する価);
fclose(fp);
ファイルオープンに失敗したらもどるし
関数呼び出しの結果がどうだろうと解放されるしgoto使う前にint func(void){return 0;}でわければいい
664デフォルトの名無しさん (スップ Sd1f-3fy2)
2018/08/04(土) 12:43:49.90ID:2dadGiC9d 小さな機能の関数でgotoを避ける為に関数を分けるとか
665デフォルトの名無しさん (スップ Sd1f-3fy2)
2018/08/04(土) 12:44:20.27ID:2dadGiC9d まさしく宗教ですね
666デフォルトの名無しさん (アウアウカー Sa07-KE4L)
2018/08/04(土) 12:51:53.82ID:6FzZ70UGa goto使った方が見易いコードがとかいって関数分けた方が見やすいし戻る場所も関数呼んだ場所で分かりやすい
逆にgotoじゃなきゃ絶対駄目って宗教にはいってるんだろうか
逆にgotoじゃなきゃ絶対駄目って宗教にはいってるんだろうか
667デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/04(土) 13:03:02.54ID:CpwGeL+S0 gotoをさけるためじゃない
適切な初期化と適切な後始末ができる機能を提供している
しかもオレが書いたコードは
全部眺めなくても初期化のしかたと後始末の仕方が分かるエレガントなコードだからな
コードの見通しもよくなる
int void func() {
t_aho_t* pt_aho;
int i_ret;
// 初期化処理
if ((i_ret = 初期化(&pt_aho)) < 0) {return i_ret; }
if (read(pt_aho->fd, p_mem, 1) < 0) { 後始末(pt_aho); return ERROR_INIT_AHO4; }
if (fprintf(pt_aho->fd, "%c\n", *p_mem) < 0) { 後始末(pt_aho); return ERROR_INIT_AHO5; }
// 終了
後始末(pt_aho)
}
なんの処理をやってるコードかすぐに分かる
初期化処理と後始末ばっかりが何行も続くコードなんかだれも読みたくないからな
適切な初期化と適切な後始末ができる機能を提供している
しかもオレが書いたコードは
全部眺めなくても初期化のしかたと後始末の仕方が分かるエレガントなコードだからな
コードの見通しもよくなる
int void func() {
t_aho_t* pt_aho;
int i_ret;
// 初期化処理
if ((i_ret = 初期化(&pt_aho)) < 0) {return i_ret; }
if (read(pt_aho->fd, p_mem, 1) < 0) { 後始末(pt_aho); return ERROR_INIT_AHO4; }
if (fprintf(pt_aho->fd, "%c\n", *p_mem) < 0) { 後始末(pt_aho); return ERROR_INIT_AHO5; }
// 終了
後始末(pt_aho)
}
なんの処理をやってるコードかすぐに分かる
初期化処理と後始末ばっかりが何行も続くコードなんかだれも読みたくないからな
668デフォルトの名無しさん (ワッチョイ 5381-Xflc)
2018/08/04(土) 13:06:33.93ID:F7vd0ILk0 何年か前、一連のファイル群を読み、内容の検査をするプログラム書いたことがあった
複数Diskに跨がって処理を行っていたが、このDiskの検査はここで打ち切っていいとなったとき
三重ループから一気に抜けるのにgoto使ったな
goto next_disk;
使わないとそうしないと何分も時間を無駄にすることになるのでね
禁止しても良いけど、処理時間が掛かります、我慢してくれますか?ってことだな
複数Diskに跨がって処理を行っていたが、このDiskの検査はここで打ち切っていいとなったとき
三重ループから一気に抜けるのにgoto使ったな
goto next_disk;
使わないとそうしないと何分も時間を無駄にすることになるのでね
禁止しても良いけど、処理時間が掛かります、我慢してくれますか?ってことだな
669デフォルトの名無しさん (アウアウカー Sa07-KE4L)
2018/08/04(土) 13:17:16.66ID:uWq17v08a 三十ループなんてやるのだったら間違い無く関数わけする
しかし、関数分けたら処理hourが時間がかかるって
コンパイラが最適化してくれるだろうに
しかし、関数分けたら処理hourが時間がかかるって
コンパイラが最適化してくれるだろうに
670デフォルトの名無しさん (ワッチョイ ffb3-6jVY)
2018/08/04(土) 14:02:50.07ID:AH7fLvgn0671デフォルトの名無しさん (スップ Sd1f-3fy2)
2018/08/04(土) 14:16:48.41ID:2dadGiC9d >>669
小さな小さな3重ループでも
3重ループという理由だけで
わざわざ関数を分けるの?
関数を分けるべきか分けないべきかは
内容に大きく依存する
分けないべきな時に
gotoの使い方を知らないという理由で
わざわざ複雑にするのがアホだ
小さな小さな3重ループでも
3重ループという理由だけで
わざわざ関数を分けるの?
関数を分けるべきか分けないべきかは
内容に大きく依存する
分けないべきな時に
gotoの使い方を知らないという理由で
わざわざ複雑にするのがアホだ
672デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/04(土) 14:34:30.00ID:CpwGeL+S0 むしろそんなループは関数で分けるほうが適切だからな
だいたいそういうソースは知恵遅れしか追えないようなコードになってる
そして知恵遅れもどういう動きしてるか分からないようなコードになってる
だいたいそういうソースは知恵遅れしか追えないようなコードになってる
そして知恵遅れもどういう動きしてるか分からないようなコードになってる
673デフォルトの名無しさん (スップ Sd1f-3fy2)
2018/08/04(土) 14:34:45.90ID:2dadGiC9d674デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/04(土) 14:49:05.09ID:CpwGeL+S0 だいたいこの程度の制御文で十分なハズだからな
バカはいちいちgoto使って追えないようなコードにするワケ
int ahoaho_exam() {
for (int i = 0; i_disk_count; ++i) {
switch (i_ret = ahoaho_exam_disk()) {
case SKIP_ALL: return SKIP_ALL;
case SKIP_DISK: continue;
default: break;
}
・・・(ここでもSKIP_ALLが返却かもしれない)
}
return 0;
}
int ahoaho_exam_disk() {
for (int i = 0; i_dir_count; ++i) {
switch (i_ret = ahoaho_exam_dir()) {
case SKIP_ALL: return SKIP_ALL;
case SKIP_DISK: return SKIP_DISK;
case SKIP_DIR: continue;
default: break;
}
・・・(ここでもSKIP_ALL、SKIP_DISKが返却かもしれない)
}
return 0;
}
バカはいちいちgoto使って追えないようなコードにするワケ
int ahoaho_exam() {
for (int i = 0; i_disk_count; ++i) {
switch (i_ret = ahoaho_exam_disk()) {
case SKIP_ALL: return SKIP_ALL;
case SKIP_DISK: continue;
default: break;
}
・・・(ここでもSKIP_ALLが返却かもしれない)
}
return 0;
}
int ahoaho_exam_disk() {
for (int i = 0; i_dir_count; ++i) {
switch (i_ret = ahoaho_exam_dir()) {
case SKIP_ALL: return SKIP_ALL;
case SKIP_DISK: return SKIP_DISK;
case SKIP_DIR: continue;
default: break;
}
・・・(ここでもSKIP_ALL、SKIP_DISKが返却かもしれない)
}
return 0;
}
675デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/04(土) 14:50:14.72ID:CpwGeL+S0 (続き)
int ahoaho_exam_dir() {
for (int i = 0; i_file_count; ++i) {
switch (i_ret = ahoaho_exam_file()) {
case SKIP_ALL: return SKIP_ALL;
case SKIP_DISK: return SKIP_DISK;
case SKIP_DIR: return SKIP_DIR;
case SKIP_FILE: continue;
default: break;
}
・・・(ここでもSKIP_ALL、SKIP_DISK、SKIP_DISKが返却かもしれない)
}
return 0;
}
int ahoaho_exam_file() {
・・・(ここでもSKIP_ALL、SKIP_DISK、SKIP_DISK、SKIP_FILEが返却かもしれない)
return 0;
}
簡単にループなんか制御できる
こんなもんにgoto使うとか愚の骨頂
int ahoaho_exam_dir() {
for (int i = 0; i_file_count; ++i) {
switch (i_ret = ahoaho_exam_file()) {
case SKIP_ALL: return SKIP_ALL;
case SKIP_DISK: return SKIP_DISK;
case SKIP_DIR: return SKIP_DIR;
case SKIP_FILE: continue;
default: break;
}
・・・(ここでもSKIP_ALL、SKIP_DISK、SKIP_DISKが返却かもしれない)
}
return 0;
}
int ahoaho_exam_file() {
・・・(ここでもSKIP_ALL、SKIP_DISK、SKIP_DISK、SKIP_FILEが返却かもしれない)
return 0;
}
簡単にループなんか制御できる
こんなもんにgoto使うとか愚の骨頂
676デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/04(土) 15:17:23.18ID:CpwGeL+S0 まず処理を小さな単位に分割する能力がない
初期化処理は初期化処理
終了処理は終了処理
基本的にgoto濫用するヤツは知能に著しい欠陥がある傾向がある
複雑な問題を簡単な単純な問題に分割する能力もない
複雑な問題を簡単な問題へと段階的に詳細化していく能力もない
オツムに致命的な欠陥があるとそうなるワケ
初期化処理は初期化処理
終了処理は終了処理
基本的にgoto濫用するヤツは知能に著しい欠陥がある傾向がある
複雑な問題を簡単な単純な問題に分割する能力もない
複雑な問題を簡単な問題へと段階的に詳細化していく能力もない
オツムに致命的な欠陥があるとそうなるワケ
677デフォルトの名無しさん (ワッチョイ a39d-10BI)
2018/08/04(土) 16:00:07.62ID:rXNKJXgT0 goto くらいで混乱するような頭が不思議でならない。
gotoもlongjmpも普通に使う。
まあでも一つの関数はA4一枚くらいにはまとめて書くようには言っているが、1mくらい
の長いコードを書くやつもいるし俺も2mくらいなら十分ついていける。
gotoもlongjmpも普通に使う。
まあでも一つの関数はA4一枚くらいにはまとめて書くようには言っているが、1mくらい
の長いコードを書くやつもいるし俺も2mくらいなら十分ついていける。
678デフォルトの名無しさん (ワッチョイ c3c3-wqW+)
2018/08/04(土) 16:03:48.29ID:d5qEm5S/0 50行で辛い
100行以上は無理
100行以上は無理
679デフォルトの名無しさん (ワッチョイ 5381-Xflc)
2018/08/04(土) 16:06:56.87ID:F7vd0ILk0 >>677
昔、ソースが2万行、各関数が200行〜400行と言うプログラムをメンテしてた
しかも、それぞれがグローバル変数とスタティック変数を使いまくり
一つの関数がそのスタティック変数の値で自在に動きが変わるという
昔、ソースが2万行、各関数が200行〜400行と言うプログラムをメンテしてた
しかも、それぞれがグローバル変数とスタティック変数を使いまくり
一つの関数がそのスタティック変数の値で自在に動きが変わるという
680デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/04(土) 16:20:59.53ID:CpwGeL+S0 あの程度の初期化処理で重いとか軽いとかいってる時点で
もうね知能の程度がしれるワケ
そんなミジンコ未満の検出できないようなレベルの差よりな
オマエが書いたクソコードのボトルネックになってるアルゴリズムを見直したほうがいいわ
なにがボトルネックになってるか検証する能力がまずないからな
前のクイックセレクトのときも知恵遅れの程度がしれたからな
知恵遅れは目的に応じた適切なアルゴリズムの選択もできない
知恵遅れにテキトーにコード書かかせるとだいたいガッカリするような結果になる
もうね知能の程度がしれるワケ
そんなミジンコ未満の検出できないようなレベルの差よりな
オマエが書いたクソコードのボトルネックになってるアルゴリズムを見直したほうがいいわ
なにがボトルネックになってるか検証する能力がまずないからな
前のクイックセレクトのときも知恵遅れの程度がしれたからな
知恵遅れは目的に応じた適切なアルゴリズムの選択もできない
知恵遅れにテキトーにコード書かかせるとだいたいガッカリするような結果になる
681デフォルトの名無しさん (ブーイモ MM67-xnas)
2018/08/04(土) 16:33:39.62ID:WQN/l48RM gotoの有無なんかより関数の行数、変数の数、ネストの方を気にして欲しいわ
プログラムなんぞ如何にエントロピー抑えるかだけだからな
プログラムなんぞ如何にエントロピー抑えるかだけだからな
682デフォルトの名無しさん (ドコグロ MM47-6jVY)
2018/08/04(土) 16:40:55.55ID:eIBb6soGM 半角カナ使う奴がドヤッてて笑うわ
683デフォルトの名無しさん (ワッチョイ a39f-Xflc)
2018/08/04(土) 18:18:57.70ID:2zclIjyW0684デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/04(土) 18:40:31.54ID:CpwGeL+S0 例えば、このコード
https://ideone.com/SGwLK0
turnaround time ::= 0.0290 sec
turnaround time ::= 3.9219 sec
この差はなにに起因してるか
この差を解消する必要があるならどうすればいいか
そういったことを検証や分析できないからダメなワケ
もうねレスしてることがトンチンカンすぎるワケ
https://ideone.com/SGwLK0
turnaround time ::= 0.0290 sec
turnaround time ::= 3.9219 sec
この差はなにに起因してるか
この差を解消する必要があるならどうすればいいか
そういったことを検証や分析できないからダメなワケ
もうねレスしてることがトンチンカンすぎるワケ
685デフォルトの名無しさん (スップ Sd1f-3fy2)
2018/08/04(土) 19:22:28.12ID:2dadGiC9d 遅いコードしか書けないヤツが何言っても説得力ゼロ
686デフォルトの名無しさん (ワッチョイ d3d7-Xflc)
2018/08/04(土) 19:30:28.40ID:YA1hWK5Y0 gotoを宗教とか言ってるバカに説得力なんてあったのかw
687デフォルトの名無しさん (スップ Sd1f-3fy2)
2018/08/04(土) 19:34:25.24ID:2dadGiC9d688デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/04(土) 19:34:56.79ID:CpwGeL+S0 知恵遅れの負けず嫌いは異常だからな
知恵遅れは知恵遅れであることを自覚できない
だから知恵遅れは知恵遅れのまま
一生知恵遅れのまま
頭悪い低学歴底辺ほど自尊心だけは強い
もともとなにもないからっぽだからな
知恵遅れは知恵遅れであることを自覚できない
だから知恵遅れは知恵遅れのまま
一生知恵遅れのまま
頭悪い低学歴底辺ほど自尊心だけは強い
もともとなにもないからっぽだからな
689デフォルトの名無しさん (スップ Sd1f-3fy2)
2018/08/04(土) 19:36:15.87ID:2dadGiC9d 明らかに適さないアルゴリズムを
「クイックセレクトを選ぶのが正解」
とか言い出したアホ
まだこの発言が正しいと思ってるわけじゃないよなwww
「クイックセレクトを選ぶのが正解」
とか言い出したアホ
まだこの発言が正しいと思ってるわけじゃないよなwww
690デフォルトの名無しさん (スップ Sd1f-3fy2)
2018/08/04(土) 19:38:00.61ID:2dadGiC9d 速度が要求される低レベル処理に対して
遅い関数を使うアホ
遅い関数を使うアホ
691デフォルトの名無しさん (ワッチョイ d3d7-Xflc)
2018/08/04(土) 19:38:10.32ID:YA1hWK5Y0 形容詞に比較をつけない世間知らずが人様つかまえてアホとかもうあいた口が塞がらない
692デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/04(土) 19:38:18.83ID:CpwGeL+S0 クイックソートとかいってた池沼がなんかいってるわ
693デフォルトの名無しさん (スップ Sd1f-3fy2)
2018/08/04(土) 19:38:36.44ID:2dadGiC9d おまけに学歴コンプ
694デフォルトの名無しさん (スップ Sd1f-3fy2)
2018/08/04(土) 19:40:09.36ID:2dadGiC9d クイックソートを使うのはアホ
と最初に書き込んだのは私だけど
自分以外は全て同一人物だと思ってるのか?
と最初に書き込んだのは私だけど
自分以外は全て同一人物だと思ってるのか?
695デフォルトの名無しさん (スップ Sd1f-3fy2)
2018/08/04(土) 19:42:04.94ID:2dadGiC9d おれの書き込みを読めば
>>686 が勘違いということがわかる
>>686 が勘違いということがわかる
696デフォルトの名無しさん (ワッチョイ d3d7-Xflc)
2018/08/04(土) 19:43:24.56ID:YA1hWK5Y0 宗教だからね
教祖様が勘違いということにしたければ
いくらでもそういうことにできる
つきあってらんねー
教祖様が勘違いということにしたければ
いくらでもそういうことにできる
つきあってらんねー
697デフォルトの名無しさん (スップ Sd1f-3fy2)
2018/08/04(土) 19:43:52.39ID:2dadGiC9d698デフォルトの名無しさん (ワッチョイ d3d7-Xflc)
2018/08/04(土) 19:48:39.81ID:YA1hWK5Y0699デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/04(土) 19:57:51.70ID:CpwGeL+S0 https://ideone.com/GZWy0t
別の知恵遅れがお勧めしてた方法では(総なめ)
1000万件いかないうちに上位0.1%ですらWebシミュレータが拒否するほど酷い結果になってる
turnaround time ::= 4.8076 sec
※ 5秒越えたら実行されない
オレのエレガントなコードでは知恵遅れが最悪のケースといってたデータでも同じ条件も余裕
https://ideone.com/SGwLK0
turnaround time ::= 0.0534 sec
turnaround time ::= 0.0126 sec
別の知恵遅れがお勧めしてた方法では(総なめ)
1000万件いかないうちに上位0.1%ですらWebシミュレータが拒否するほど酷い結果になってる
turnaround time ::= 4.8076 sec
※ 5秒越えたら実行されない
オレのエレガントなコードでは知恵遅れが最悪のケースといってたデータでも同じ条件も余裕
https://ideone.com/SGwLK0
turnaround time ::= 0.0534 sec
turnaround time ::= 0.0126 sec
700デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/04(土) 20:01:49.72ID:CpwGeL+S0 やっぱりなPGなんか日本では低学歴しかやってない
701デフォルトの名無しさん (ワッチョイ d3d7-Xflc)
2018/08/04(土) 20:03:50.94ID:YA1hWK5Y0 自己紹介乙
類は友を呼ぶ
つきあってる範囲がそういうこと
というだけ
類は友を呼ぶ
つきあってる範囲がそういうこと
というだけ
702デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/04(土) 20:03:55.23ID:CpwGeL+S0 低学歴ですと自白してるヤツが何人かいるわ
わかりやすい
わかりやすい
703デフォルトの名無しさん (ワッチョイ d3d7-Xflc)
2018/08/04(土) 20:04:35.09ID:YA1hWK5Y0 おまえだよ、おまえ
704デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/04(土) 20:05:02.83ID:CpwGeL+S0 よほど低学歴なのが悔しいらしいな
残念なことに低学歴なのはレスからすぐにわかっちゃうワケ
バレてないと思ってるわけか。。。
残念なことに低学歴なのはレスからすぐにわかっちゃうワケ
バレてないと思ってるわけか。。。
705デフォルトの名無しさん (ワッチョイ d3d7-Xflc)
2018/08/04(土) 20:06:23.48ID:YA1hWK5Y0 高学歴が1人でもいたら
おまえの主張は破綻する
つーかセンズリこき野郎はwinnyくらい使ってるだろ?
おまえの主張は破綻する
つーかセンズリこき野郎はwinnyくらい使ってるだろ?
706デフォルトの名無しさん (ワッチョイ e3b3-47xK)
2018/08/04(土) 20:13:46.86ID:QBtHPmTG0 コンストラクタ/デストラクタの機構があれば楽できるのにな と思うことはある
707デフォルトの名無しさん (スップ Sd1f-3fy2)
2018/08/04(土) 20:15:59.70ID:2dadGiC9d708デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/04(土) 20:18:25.93ID:CpwGeL+S0 そもそもクイックセレクトがどんなアルゴリズムかすら分かってない
だから最悪な条件がどういう状態をさしてるのか分かってすらない
まあお話にならないわ
まともな教育を受けてないヤツと
話がかみあうわけがない
だから最悪な条件がどういう状態をさしてるのか分かってすらない
まあお話にならないわ
まともな教育を受けてないヤツと
話がかみあうわけがない
709デフォルトの名無しさん (ワッチョイ d3d7-Xflc)
2018/08/04(土) 20:19:50.04ID:YA1hWK5Y0 低学歴→まともな教育受けてない
ぶははは
ぶははは
710デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/04(土) 20:22:49.07ID:CpwGeL+S0 低学歴じゃなかったら
最低でも最悪の条件が分かってる上で
議論に参加するからな
そんなことも分からずに低学歴でもテキトーな書き込めるのが2ちゃんねるだからな
バレてないと思ってるらしいが低学歴とニートというのはレスからすぐにバレる
残念なことにな
最低でも最悪の条件が分かってる上で
議論に参加するからな
そんなことも分からずに低学歴でもテキトーな書き込めるのが2ちゃんねるだからな
バレてないと思ってるらしいが低学歴とニートというのはレスからすぐにバレる
残念なことにな
711デフォルトの名無しさん (スップ Sd1f-3fy2)
2018/08/04(土) 20:23:44.55ID:2dadGiC9d712デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/04(土) 20:25:19.01ID:CpwGeL+S0713デフォルトの名無しさん (ドコグロ MMdf-6jVY)
2018/08/04(土) 20:35:20.71ID:jfaT+4IfM714デフォルトの名無しさん (ワッチョイ d3d7-Xflc)
2018/08/04(土) 21:07:34.69ID:YA1hWK5Y0 低学歴とニートがすぐわかるなら具体的に名指ししてみな
誰にでも再検証できるように
つまり工学者として当たり前の様式で
誰にでも再検証できるように
つまり工学者として当たり前の様式で
715デフォルトの名無しさん (ワッチョイ ff23-yKTt)
2018/08/04(土) 21:27:00.60ID:RenjJImm0716デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/04(土) 21:30:24.21ID:CpwGeL+S0 両方とも選択された要素の順序は保証されてない
そういうアルゴリズムだ
ソートすれば同じ結果になる
上位の抽出結果のソートなんか一瞬でおわる
そういうアルゴリズムだ
ソートすれば同じ結果になる
上位の抽出結果のソートなんか一瞬でおわる
717デフォルトの名無しさん (ワッチョイ 6350-Xflc)
2018/08/04(土) 21:35:47.02ID:mQQzn2Q+0 出題は上位3個で要素数が可変
718デフォルトの名無しさん (ワッチョイ a39d-10BI)
2018/08/04(土) 21:43:01.41ID:rXNKJXgT0 Cが優れているのでC++なんて全く必要性を感じなかったが、gotoで頭が混乱する
とか1mのコードくらいで頭が混乱するような人はC++をぜひ使ってみるといいと思う。
最近C++を使ってみて驚いた。Cと何ら変わらない低レベルコードを吐き出す
低レベル言語のくせに機能的には100倍も優れている。
その優れた機能を一切使わなくてもいいが、namespaceやクラスをパッケージ化の
機能としてだけつかってもCよりは随分楽に管理できる。
Cの場合はパッケージにして頭の悪い人でも分かりやすくするにはサブルーチンを使う
以外に方法がない。しかしC++はnamespaceでスコープを自由に制限できてパッケージ化
ができる。しかも50行程度に小さく刻んでもコードには何の影響も与えない。
とか1mのコードくらいで頭が混乱するような人はC++をぜひ使ってみるといいと思う。
最近C++を使ってみて驚いた。Cと何ら変わらない低レベルコードを吐き出す
低レベル言語のくせに機能的には100倍も優れている。
その優れた機能を一切使わなくてもいいが、namespaceやクラスをパッケージ化の
機能としてだけつかってもCよりは随分楽に管理できる。
Cの場合はパッケージにして頭の悪い人でも分かりやすくするにはサブルーチンを使う
以外に方法がない。しかしC++はnamespaceでスコープを自由に制限できてパッケージ化
ができる。しかも50行程度に小さく刻んでもコードには何の影響も与えない。
719デフォルトの名無しさん (ワッチョイ 6350-Xflc)
2018/08/04(土) 21:45:18.43ID:mQQzn2Q+0720デフォルトの名無しさん (ワッチョイ 6350-Xflc)
2018/08/04(土) 21:47:30.05ID:mQQzn2Q+0 高速
コードサイズ小
1回スキャン
非破壊
コードサイズ小
1回スキャン
非破壊
721デフォルトの名無しさん (ワッチョイ a39d-10BI)
2018/08/04(土) 21:50:33.63ID:rXNKJXgT0 >>679
そうだよ。昔の人はそれでも平気だったんだよ。昔の人は賢かった。まあわが社では
いまでもそれは普通にやっている。
わが社の社員は現代人だから頭は変わらないと思うが特別根気があるのだろう。
だから賢くなる。つまり昔の人も頭が良かったというよりも根気があったのだろうと思う。
そうだよ。昔の人はそれでも平気だったんだよ。昔の人は賢かった。まあわが社では
いまでもそれは普通にやっている。
わが社の社員は現代人だから頭は変わらないと思うが特別根気があるのだろう。
だから賢くなる。つまり昔の人も頭が良かったというよりも根気があったのだろうと思う。
722デフォルトの名無しさん (ワッチョイ 6350-Xflc)
2018/08/04(土) 21:50:37.85ID:mQQzn2Q+0 半角君のコード
低速 (最悪値は特に)
コードサイズ大
複数回スキャン
破壊
低速 (最悪値は特に)
コードサイズ大
複数回スキャン
破壊
723デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/04(土) 21:53:40.18ID:CpwGeL+S0 オレのエレガントなコードに対して
最悪値になるデータ作ってみ
1000万件中上位3件程度しか抽出できないコード書いても意味ないからな
お題どおりなら3%は抽出できないといけない
上位30万件は抽出できないとな
最悪値になるデータ作ってみ
1000万件中上位3件程度しか抽出できないコード書いても意味ないからな
お題どおりなら3%は抽出できないといけない
上位30万件は抽出できないとな
724デフォルトの名無しさん (ワッチョイ 6350-Xflc)
2018/08/04(土) 21:56:59.42ID:mQQzn2Q+0 あ、なんか間違った
まあ時間は変わらんでしょう
まあ時間は変わらんでしょう
725デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/04(土) 21:58:48.83ID:CpwGeL+S0 https://ideone.com/uQbHYf
オレのエレガントなコードでは
上位30万件でもこの速さ
turnaround time ::= 0.0534 sec
turnaround time ::= 0.0126 sec
オツムが弱いのがコードではまず実現は不可能
まず処理が終了しない
オレのエレガントなコードでは
上位30万件でもこの速さ
turnaround time ::= 0.0534 sec
turnaround time ::= 0.0126 sec
オツムが弱いのがコードではまず実現は不可能
まず処理が終了しない
726デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/04(土) 22:01:03.23ID:CpwGeL+S0 なんか更新されてないわ
https://ideone.com/TbWDDb
turnaround time ::= 0.1077 sec
turnaround time ::= 0.0172 sec
オレのエレガントなコードにはまず勝てない
https://ideone.com/TbWDDb
turnaround time ::= 0.1077 sec
turnaround time ::= 0.0172 sec
オレのエレガントなコードにはまず勝てない
727デフォルトの名無しさん (ワッチョイ 6350-Xflc)
2018/08/04(土) 22:02:32.21ID:mQQzn2Q+0 「最悪値」って確率は関係ないから
文字通り「最悪値」
勝手に条件を変えてwww
出題は上位3個
出題後の書き込みもずっと上位3個という前提
文字通り「最悪値」
勝手に条件を変えてwww
出題は上位3個
出題後の書き込みもずっと上位3個という前提
728デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/04(土) 22:03:24.81ID:CpwGeL+S0 ランダムな値使ってるのに
まず最悪値になりようがない
だからな最悪値になるデータ作ってみろよ
まず最悪値になりようがない
だからな最悪値になるデータ作ってみろよ
729デフォルトの名無しさん (ワッチョイ 6350-Xflc)
2018/08/04(土) 22:05:26.79ID:mQQzn2Q+0730デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/04(土) 22:06:09.00ID:CpwGeL+S0 知恵遅れはランダムの値といってるから
入力値に疑似乱数使ってると思ってるかもしれないが
そもそもピボットの選択がランダムという意味だからな
入力値に疑似乱数使ってると思ってるかもしれないが
そもそもピボットの選択がランダムという意味だからな
731デフォルトの名無しさん (ワッチョイ 6350-Xflc)
2018/08/04(土) 22:06:54.29ID:mQQzn2Q+0 「最悪値」って確率は関係ないから
文字通り「最悪値」
文字通り「最悪値」
732デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/04(土) 22:07:29.19ID:CpwGeL+S0 だからな30万件抽出できるコード書いてみ
733デフォルトの名無しさん (ワッチョイ 6350-Xflc)
2018/08/04(土) 22:09:41.04ID:mQQzn2Q+0 --普通の人のコード--
高速
コードサイズ小
1回スキャン
非破壊
--半角君のコード--
低速 (典型例で4倍の時間、最悪値は特にひどい)
コードサイズ大
複数回スキャン
破壊
高速
コードサイズ小
1回スキャン
非破壊
--半角君のコード--
低速 (典型例で4倍の時間、最悪値は特にひどい)
コードサイズ大
複数回スキャン
破壊
734デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/04(土) 22:12:28.07ID:CpwGeL+S0 0.01秒オーダーが4倍とか議論不要なレベルだからな
そもそも知恵遅れが書いたコードは条件が少しかわるだけで
待ってても結果が戻ってこないからな
そもそも知恵遅れが書いたコードは条件が少しかわるだけで
待ってても結果が戻ってこないからな
735デフォルトの名無しさん (ワッチョイ cf81-Xflc)
2018/08/04(土) 22:13:07.54ID:+vznLLf60 データふやして比較しよう
736デフォルトの名無しさん (ワッチョイ 6350-Xflc)
2018/08/04(土) 22:15:28.18ID:mQQzn2Q+0737デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/04(土) 22:16:12.21ID:CpwGeL+S0 知恵遅れの精神的勝利きたわ。。。
738デフォルトの名無しさん (ワッチョイ b3bd-3LBS)
2018/08/04(土) 22:45:56.56ID:+Ac7xD+T0 半角また負けたのか…
739デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/04(土) 22:47:55.10ID:CpwGeL+S0 オレのエレガントなコードには勝てない
要素数,抽出数,エレガント(sec),アホ(sec)
10000,300,0.0000,0.0040
20000,600,0.0000,0.0150
30000,900,0.0000,0.0330
40000,1200,0.0000,0.0590
50000,1500,0.0000,0.0920
60000,1800,0.0010,0.1330
70000,2100,0.0000,0.1760
80000,2400,0.0010,0.2300
90000,2700,0.0010,0.2920
100000,3000,0.0020,0.3620
110000,3300,0.0020,0.4360
120000,3600,0.0020,0.5300
130000,3900,0.0020,0.6080
140000,4200,0.0020,0.7030
150000,4500,0.0030,0.8170
160000,4800,0.0020,0.9260
170000,5100,0.0020,1.0470
180000,5400,0.0020,1.1740
190000,5700,0.0030,1.3080
200000,6000,0.0020,1.4490
210000,6300,0.0020,1.5970
220000,6600,0.0020,1.7690
230000,6900,0.0020,1.9170
240000,7200,0.0030,2.0870
250000,7500,0.0030,2.2660
260000,7800,0.0050,2.4590
270000,8100,0.0040,2.6380
280000,8400,0.0020,2.8350
290000,8700,0.0010,3.0500
300000,9000,0.0020,3.2750
要素数,抽出数,エレガント(sec),アホ(sec)
10000,300,0.0000,0.0040
20000,600,0.0000,0.0150
30000,900,0.0000,0.0330
40000,1200,0.0000,0.0590
50000,1500,0.0000,0.0920
60000,1800,0.0010,0.1330
70000,2100,0.0000,0.1760
80000,2400,0.0010,0.2300
90000,2700,0.0010,0.2920
100000,3000,0.0020,0.3620
110000,3300,0.0020,0.4360
120000,3600,0.0020,0.5300
130000,3900,0.0020,0.6080
140000,4200,0.0020,0.7030
150000,4500,0.0030,0.8170
160000,4800,0.0020,0.9260
170000,5100,0.0020,1.0470
180000,5400,0.0020,1.1740
190000,5700,0.0030,1.3080
200000,6000,0.0020,1.4490
210000,6300,0.0020,1.5970
220000,6600,0.0020,1.7690
230000,6900,0.0020,1.9170
240000,7200,0.0030,2.0870
250000,7500,0.0030,2.2660
260000,7800,0.0050,2.4590
270000,8100,0.0040,2.6380
280000,8400,0.0020,2.8350
290000,8700,0.0010,3.0500
300000,9000,0.0020,3.2750
740デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/04(土) 23:17:38.19ID:CpwGeL+S0 やっと処理が終わった
アホのコードのせいでCPUが熱くなったわ
数10万件レベルでコレだからな
↓処理結果
http://fast-uploader.com/file/7088947692690/
一部抜粋
950000,28500,0.0140,33.5910
960000,28800,0.0100,33.4880
970000,29100,0.0190,34.1070
980000,29400,0.0080,34.8320
990000,29700,0.0100,35.4970
1000000,30000,0.0080,36.5600
↓グラフ
https://i.imgur.com/nr9h0pH.png
知恵遅れ息してない
アホのコードのせいでCPUが熱くなったわ
数10万件レベルでコレだからな
↓処理結果
http://fast-uploader.com/file/7088947692690/
一部抜粋
950000,28500,0.0140,33.5910
960000,28800,0.0100,33.4880
970000,29100,0.0190,34.1070
980000,29400,0.0080,34.8320
990000,29700,0.0100,35.4970
1000000,30000,0.0080,36.5600
↓グラフ
https://i.imgur.com/nr9h0pH.png
知恵遅れ息してない
741デフォルトの名無しさん (ワッチョイ 5381-Xflc)
2018/08/04(土) 23:21:13.53ID:F7vd0ILk0 いつまでこの話続けるの?
専用スレ立てたら?
専用スレ立てたら?
742デフォルトの名無しさん (ワッチョイ b3bd-3LBS)
2018/08/05(日) 00:06:32.62ID:yKLkGD1M0 >>740
元の課題を書き換えて勝利宣言とか流石に恥ずかしすぎて真似できんわ
元の課題を書き換えて勝利宣言とか流石に恥ずかしすぎて真似できんわ
743デフォルトの名無しさん (ブーイモ MM67-xnas)
2018/08/05(日) 01:04:35.95ID:9bzcKYpVM >>741
休日丸一日張り付いてるとこ見ると、他にやることないみたいだし、多分まだ続くで
休日丸一日張り付いてるとこ見ると、他にやることないみたいだし、多分まだ続くで
744デフォルトの名無しさん (ワッチョイ cf81-Xflc)
2018/08/05(日) 01:45:43.20ID:VRzYU/IV0 上位3件で比較したらどうなるん?
745683 (ワッチョイ a39f-Xflc)
2018/08/05(日) 05:43:14.02ID:cdvogGHQ0746デフォルトの名無しさん (ワッチョイ a39f-Xflc)
2018/08/05(日) 05:49:42.07ID:cdvogGHQ0747デフォルトの名無しさん (ワッチョイ 6350-Xflc)
2018/08/05(日) 07:52:08.09ID:5rt28jG50748デフォルトの名無しさん (ワッチョイ cf81-Xflc)
2018/08/05(日) 07:56:35.30ID:cQ22SoWZ0 暗澹として気持ちになる
半角君の言い分にも理はある
顧客がどういう方向にものごとを拡張したいと言い出すかなんてわからないんだ
なんでいりもしないくそコード増やしてんだと罵ることもできるし
これをスケーラビリティのある優れたコードだといって、もう一方クソ呼ばわりすることもできる
でも、書いたコードが結局どう評価されるかは将来を見通す能力で決まるんじゃない
顧客がこっちの様子みて事後的にきめてるんだ
半角君の言い分にも理はある
顧客がどういう方向にものごとを拡張したいと言い出すかなんてわからないんだ
なんでいりもしないくそコード増やしてんだと罵ることもできるし
これをスケーラビリティのある優れたコードだといって、もう一方クソ呼ばわりすることもできる
でも、書いたコードが結局どう評価されるかは将来を見通す能力で決まるんじゃない
顧客がこっちの様子みて事後的にきめてるんだ
749デフォルトの名無しさん (ワッチョイ 6350-3fy2)
2018/08/05(日) 08:03:17.72ID:5rt28jG50750デフォルトの名無しさん (ワッチョイ 6350-3fy2)
2018/08/05(日) 08:09:08.23ID:5rt28jG50751デフォルトの名無しさん (ワッチョイ 6350-3fy2)
2018/08/05(日) 08:17:28.22ID:5rt28jG50 多重ループを抜けるのに
半角君はどう書くつもりたろうか
switch / case からループを抜ける
これも良くあるコード
半角君はどう書くつもりたろうか
switch / case からループを抜ける
これも良くあるコード
752デフォルトの名無しさん (ワッチョイ e3b3-47xK)
2018/08/05(日) 08:34:00.38ID:UtRwebov0 ループの中を関数化したうえで case 句からは return で即脱出するのかな
勝手な想像だけど
勝手な想像だけど
753デフォルトの名無しさん (ワッチョイ a340-Xflc)
2018/08/05(日) 08:56:17.59ID:AVPuy+2E0 ここ喧嘩ばっかだから他所行くかーと思ってC++スレ行ったらそこでも喧嘩しててワロタ
754デフォルトの名無しさん (ワッチョイ cf01-Xflc)
2018/08/05(日) 08:57:44.72ID:RKME5Hq50 一緒にすんな失礼な
発 者 同 . 。_ ____ 争
生 同 .じ . /´ (ゝ___) い
.し 士 .レ .__/'r-┴<ゝi,,ノ ro、 は、
.な で .ベ ∠ゝ (ゝ.//` ./` }⌒j
.い し .ル } ⌒ /`ヽ、_∠l,ノ ・ヽ´
.! ! か の / ´..:.} >、、___, .r、 ソ、`\
/ ..:.:.} / ∨ ` ̄
/ ..:.:./ 丶
/ _、 ..:.:.:.{ .{.:.:. \
{ ..:Y .ゝ、 {.:.:.:.:. ヽ
、 ..:/ 丿 .:〉 >.- ⌒ . ヽ
/ {. ..:./ ソ ..:./ .( ..:.:.:` ..:}
./..:.:}.:.:./ ヘ、 ..:./ .\ ..:.:r_,ノ、.:.:}
./..:.:/.:/ {.:./ X.:.:}.} X X
/..:.:/ .}.: }:/ .Y丶ヽ Y.:Y
. __/.:/ { } 《.〈、 _,,__>.:》丶 Y.:\
/.:.:.:.:.::/ !.:.:ゝ ゝ.:. ̄ヾ ´:.:.:.:.:.:.:.:.:ヾゝ \.: ̄>
発 者 同 . 。_ ____ 争
生 同 .じ . /´ (ゝ___) い
.し 士 .レ .__/'r-┴<ゝi,,ノ ro、 は、
.な で .ベ ∠ゝ (ゝ.//` ./` }⌒j
.い し .ル } ⌒ /`ヽ、_∠l,ノ ・ヽ´
.! ! か の / ´..:.} >、、___, .r、 ソ、`\
/ ..:.:.} / ∨ ` ̄
/ ..:.:./ 丶
/ _、 ..:.:.:.{ .{.:.:. \
{ ..:Y .ゝ、 {.:.:.:.:. ヽ
、 ..:/ 丿 .:〉 >.- ⌒ . ヽ
/ {. ..:./ ソ ..:./ .( ..:.:.:` ..:}
./..:.:}.:.:./ ヘ、 ..:./ .\ ..:.:r_,ノ、.:.:}
./..:.:/.:/ {.:./ X.:.:}.} X X
/..:.:/ .}.: }:/ .Y丶ヽ Y.:Y
. __/.:/ { } 《.〈、 _,,__>.:》丶 Y.:\
/.:.:.:.:.::/ !.:.:ゝ ゝ.:. ̄ヾ ´:.:.:.:.:.:.:.:.:ヾゝ \.: ̄>
755デフォルトの名無しさん (ワッチョイ cf81-Xflc)
2018/08/05(日) 10:50:56.85ID:cQ22SoWZ0 というかだ
randとquickselectどっからコピペしてきたのか正直にいいなさい
非の打ちどころなく最適化されたロジック
筋のいい関数分割
的確な規約にのっとった命名
正確な英語
おまえがつくったのbakaとallocとfree_dataだけだろ
関数ごとにあまりにも作成者の知性差がありすぎる
randとquickselectどっからコピペしてきたのか正直にいいなさい
非の打ちどころなく最適化されたロジック
筋のいい関数分割
的確な規約にのっとった命名
正確な英語
おまえがつくったのbakaとallocとfree_dataだけだろ
関数ごとにあまりにも作成者の知性差がありすぎる
756デフォルトの名無しさん (ワッチョイ cf81-Xflc)
2018/08/05(日) 10:53:47.86ID:cQ22SoWZ0 partitionの中はそうでもないか
757デフォルトの名無しさん (ワッチョイ 5381-Xflc)
2018/08/05(日) 10:57:17.82ID:ekimy5CU0 質問者そっちのけで
議論だけは続きます
いつものパターン
議論だけは続きます
いつものパターン
758デフォルトの名無しさん (ワッチョイ cf81-Xflc)
2018/08/05(日) 11:03:06.42ID:cQ22SoWZ0 問題は解決してるじゃない
759デフォルトの名無しさん (ワッチョイ cf81-Xflc)
2018/08/05(日) 11:15:46.84ID:cQ22SoWZ0 そもそもどれが質問だったかわからない
760デフォルトの名無しさん (ワッチョイ 5381-Xflc)
2018/08/05(日) 11:25:14.55ID:ekimy5CU0 何を議論しているのかも誰も分からない
761デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/05(日) 11:25:39.76ID:BwCU11k30 https://ideone.com/H6J9g6
コレで上位3件と
コレで上位3%の比較ができる
ちなみにアホのコードが混じってるせいでWebでは動かない
https://en.wikipedia.org/wiki/Quickselect
ちなみにコードはコレみながらちゃんとオレが作ったからな
あとな quickselect は見直してたら一箇所コードに誤りがあったわ
動作自体に大きな影響はない
それがなんでかは、それでどう動作がかわわるか、それがどういう修正なのかは
きっとこのスレの知恵遅れたちには分からない
疑似乱数生成器は普通にxorshiftコピって作ったわ
あれならインターネッツにいるようなどんなバカが書いても同じ結果になるからな
その部分だけはあってるわ
で、あとは、テスト評価用関数の名前がどうこうしかないワケか
まあオツムの程度がよくしれるわ
コレで上位3件と
コレで上位3%の比較ができる
ちなみにアホのコードが混じってるせいでWebでは動かない
https://en.wikipedia.org/wiki/Quickselect
ちなみにコードはコレみながらちゃんとオレが作ったからな
あとな quickselect は見直してたら一箇所コードに誤りがあったわ
動作自体に大きな影響はない
それがなんでかは、それでどう動作がかわわるか、それがどういう修正なのかは
きっとこのスレの知恵遅れたちには分からない
疑似乱数生成器は普通にxorshiftコピって作ったわ
あれならインターネッツにいるようなどんなバカが書いても同じ結果になるからな
その部分だけはあってるわ
で、あとは、テスト評価用関数の名前がどうこうしかないワケか
まあオツムの程度がよくしれるわ
762デフォルトの名無しさん (スップ Sd1f-3fy2)
2018/08/05(日) 11:51:24.52ID:LOW4gkdBd 1個も自分で考えたアルゴリズムが無いっていう
選択も正しくない
選択も正しくない
763デフォルトの名無しさん (ワッチョイ 332d-1sSI)
2018/08/05(日) 11:54:12.46ID:aSQnOhv+0 ハンカク君「100件から上位3件のソートじゃダメだ!
100万件から上位3万件を抽出(未ソート)できるクイックセレクトがエレガント!」
全角君「1億件をソートするにはそれじゃダメだろ ヴォケが!
『マルチコアの並列ソート』こそがグレイシャス!」
二 倍 角 君 「 ダ ァ ホ が ! 1 0 0 億 じ ゃ !
量 子 C P U で 超 並 列 じ ゃ ー い ! !」
今後の展開を想像したらわくわくしてきた
にしても 今日もあっついなぁ……
100万件から上位3万件を抽出(未ソート)できるクイックセレクトがエレガント!」
全角君「1億件をソートするにはそれじゃダメだろ ヴォケが!
『マルチコアの並列ソート』こそがグレイシャス!」
二 倍 角 君 「 ダ ァ ホ が ! 1 0 0 億 じ ゃ !
量 子 C P U で 超 並 列 じ ゃ ー い ! !」
今後の展開を想像したらわくわくしてきた
にしても 今日もあっついなぁ……
764デフォルトの名無しさん (スップ Sd1f-3fy2)
2018/08/05(日) 11:56:40.45ID:LOW4gkdBd 元は100個だか1000個だかだよ確か
765デフォルトの名無しさん (ワッチョイ ff9f-Okn4)
2018/08/05(日) 12:05:44.10ID:AVxRrUx/0 なんかしょうもない争いしてんのな
どんぐりの背比べ
どんぐりの背比べ
766デフォルトの名無しさん (ワッチョイ 5381-Xflc)
2018/08/05(日) 12:19:17.66ID:ekimy5CU0 病気の発作みたいなもの
しばらく放置して、本人が落ち着くのを待つ
かまえばかまうほど、病気は進行する
しばらく放置して、本人が落ち着くのを待つ
かまえばかまうほど、病気は進行する
767デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/05(日) 12:25:21.31ID:BwCU11k30 またCPUが熱くなったわ
今回はvmwareで動作してるLinuxで動作させた
↓処理結果
http://fast-uploader.com/file/7088994902722/
上位3件
https://i.imgur.com/cBCyXmq.png
上位3%
https://i.imgur.com/SxxNkoj.png
もうねオレのコードがエレガントすぎて困るわ
キミラとはレベルが違うワケ レベルが
キミラとはステージが違うワケ ステージが
分かった?
今回はvmwareで動作してるLinuxで動作させた
↓処理結果
http://fast-uploader.com/file/7088994902722/
上位3件
https://i.imgur.com/cBCyXmq.png
上位3%
https://i.imgur.com/SxxNkoj.png
もうねオレのコードがエレガントすぎて困るわ
キミラとはレベルが違うワケ レベルが
キミラとはステージが違うワケ ステージが
分かった?
768デフォルトの名無しさん (スップ Sd1f-3fy2)
2018/08/05(日) 12:30:52.32ID:LOW4gkdBd よほどくやしかったんだろうね
769デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/05(日) 12:35:47.77ID:BwCU11k30 あとな、知恵遅れが自分で新しいアルゴリズムを考えるとか
1億年たってもムリだからな
オレレベルの人間ぐらいにならないとムリ
このスレにいるような知恵遅れを遥かに凌駕する先人が
考えたアルゴリズムすら使いこなせてない
はっきりいってな低学歴知恵遅れやクソニートは
自己評価が高すぎるワケ
低学歴知恵遅れやクソニートは自分のカスっぷりの自覚がない
まずココが問題なワケ
そんな知恵遅れが新しいアルゴリズムとかな逆立ちしてもムリだからな
知恵遅れや凡人はまず適切なアルゴリズムを選択できるようになるのが先だからな
1億年たってもムリだからな
オレレベルの人間ぐらいにならないとムリ
このスレにいるような知恵遅れを遥かに凌駕する先人が
考えたアルゴリズムすら使いこなせてない
はっきりいってな低学歴知恵遅れやクソニートは
自己評価が高すぎるワケ
低学歴知恵遅れやクソニートは自分のカスっぷりの自覚がない
まずココが問題なワケ
そんな知恵遅れが新しいアルゴリズムとかな逆立ちしてもムリだからな
知恵遅れや凡人はまず適切なアルゴリズムを選択できるようになるのが先だからな
770デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/05(日) 12:37:41.32ID:BwCU11k30 日本ではPGは低学歴底辺しかならない職業だからな
しょうがないという側面もなある
おのずと低学歴底辺の頭悪いのばっかりになる
しょうがないという側面もなある
おのずと低学歴底辺の頭悪いのばっかりになる
771デフォルトの名無しさん (スップ Sd1f-3fy2)
2018/08/05(日) 12:43:27.32ID:LOW4gkdBd 長文で自己紹介乙
772デフォルトの名無しさん (ワッチョイ cf81-Xflc)
2018/08/05(日) 12:57:32.94ID:cQ22SoWZ0 まちがいがあったんだろうか?
相手が間違ってるかもしれないのに知ったげして
相手が間違ってるかもしれないのに知ったげして
773デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/05(日) 13:07:24.80ID:BwCU11k30 いつもいってることだが
レスしてるヤツが低学歴か
レスしてるヤツがニートかなんかな
レスみればすぐに分かることだからな
残念なことにそれをいくら隠そうとしても
隠すことはできない
本人はバレてないつもりかもしれないが
チョンバレなワケ
レスしてるヤツが低学歴か
レスしてるヤツがニートかなんかな
レスみればすぐに分かることだからな
残念なことにそれをいくら隠そうとしても
隠すことはできない
本人はバレてないつもりかもしれないが
チョンバレなワケ
774デフォルトの名無しさん (ワッチョイ cf81-Xflc)
2018/08/05(日) 13:12:35.48ID:cQ22SoWZ0 お前の書き込みが病的だからお前が特定されてるだけだろ
ほかのやつの学歴なんか一切わからんわw
ほかのやつの学歴なんか一切わからんわw
775デフォルトの名無しさん (ワッチョイ cf9c-6Ev3)
2018/08/05(日) 13:22:37.54ID:yCkv1Zf90 #include <stdio.h>
int func(int n)
{
if(n==0)
return 0;
if(n==1)
return 1;
return(func(n-2)+func(n-1));
}
int main()
{
printf ("%d",func(4));
return 0;
}
これの出力は3なんだけど
これ、永久的数が増えていく気がするんだけど。。。
どういう考え方で3になるか教えてほしい
int func(int n)
{
if(n==0)
return 0;
if(n==1)
return 1;
return(func(n-2)+func(n-1));
}
int main()
{
printf ("%d",func(4));
return 0;
}
これの出力は3なんだけど
これ、永久的数が増えていく気がするんだけど。。。
どういう考え方で3になるか教えてほしい
776デフォルトの名無しさん (スップ Sd1f-3fy2)
2018/08/05(日) 13:28:13.17ID:LOW4gkdBd 4
2, 3
0, 1, 1, 2
0, 1, 1, 0, 1
2, 3
0, 1, 1, 2
0, 1, 1, 0, 1
777デフォルトの名無しさん (ワッチョイ cf9c-6Ev3)
2018/08/05(日) 13:29:48.92ID:yCkv1Zf90778デフォルトの名無しさん (ワッチョイ 332d-1sSI)
2018/08/05(日) 13:31:08.57ID:aSQnOhv+0 >>775
フィボナッチだってことは解ってる?
https://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A3%E3%83%9C%E3%83%8A%E3%83%83%E3%83%81%E6%95%B0
func(0) = 0
func(1) = 1
func(2) = func(0) + func(1) = 0 + 1 = 1
func(3) = func(1) + func(2) = 1 + 1 = 2
func(4) = func(2) + func(3) = 1 + 2 = 3
フィボナッチだってことは解ってる?
https://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A3%E3%83%9C%E3%83%8A%E3%83%83%E3%83%81%E6%95%B0
func(0) = 0
func(1) = 1
func(2) = func(0) + func(1) = 0 + 1 = 1
func(3) = func(1) + func(2) = 1 + 1 = 2
func(4) = func(2) + func(3) = 1 + 2 = 3
779デフォルトの名無しさん (ワッチョイ cf9c-6Ev3)
2018/08/05(日) 13:41:13.29ID:yCkv1Zf90780デフォルトの名無しさん (ワッチョイ c3c3-wqW+)
2018/08/05(日) 13:43:51.70ID:W7/dI3kf0 return 0;ってはっきり書いてあるやろ
781デフォルトの名無しさん (ワッチョイ cf9c-6Ev3)
2018/08/05(日) 13:45:55.07ID:yCkv1Zf90 >>780
え、リターンって 定型文というか終わりを意味するだけだと思ってた。
え、リターンって 定型文というか終わりを意味するだけだと思ってた。
782デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/05(日) 13:52:07.99ID:BwCU11k30 #include <stdio.h>
int func(int n, int stack)
{
++stack;
if(n==0) {
for (int i = 0; i < stack; ++i) printf(" ");
printf("[%d] returned func(%d) -> %d\n", stack, n, 0);
return 0;
}
if(n==1) {
for (int i = 0; i < stack; ++i) printf(" ");
printf("[%d] returned func(%d) -> %d\n", stack, n, 1);
return 1;
}
int i_ret = func(n-2, stack) + func(n-1, stack);
for (int i = 0; i < stack; ++i) printf(" ");
printf("[%d] returned func(%d) + func(%d) -> %d\n", stack, n - 2, n - 1, i_ret);
return(i_ret);
}
int main()
{
printf ("%d",func(4, 0));
return 0;
}
このスレの知恵遅れがどうこういうだけムダ
コレ動かして自分で考えればバカでもチョンでも分かる
int func(int n, int stack)
{
++stack;
if(n==0) {
for (int i = 0; i < stack; ++i) printf(" ");
printf("[%d] returned func(%d) -> %d\n", stack, n, 0);
return 0;
}
if(n==1) {
for (int i = 0; i < stack; ++i) printf(" ");
printf("[%d] returned func(%d) -> %d\n", stack, n, 1);
return 1;
}
int i_ret = func(n-2, stack) + func(n-1, stack);
for (int i = 0; i < stack; ++i) printf(" ");
printf("[%d] returned func(%d) + func(%d) -> %d\n", stack, n - 2, n - 1, i_ret);
return(i_ret);
}
int main()
{
printf ("%d",func(4, 0));
return 0;
}
このスレの知恵遅れがどうこういうだけムダ
コレ動かして自分で考えればバカでもチョンでも分かる
783デフォルトの名無しさん (ワッチョイ 332d-1sSI)
2018/08/05(日) 13:57:48.29ID:aSQnOhv+0 >>781
return は関数を抜けて 呼び出し元に戻り値を返すんだよ
return は関数を抜けて 呼び出し元に戻り値を返すんだよ
784デフォルトの名無しさん (ワッチョイ cf01-Xflc)
2018/08/05(日) 14:15:22.97ID:RKME5Hq50785デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/05(日) 14:56:39.59ID:BwCU11k30786デフォルトの名無しさん (ラクッペ MM47-YMl7)
2018/08/05(日) 16:39:28.00ID:HLNQqKaSM ヒープソートの参照のみならオーダー(計算量)はどうなるか。
先着順
当てたらアマギフ
先着順
当てたらアマギフ
787デフォルトの名無しさん (ワッチョイ a39f-Xflc)
2018/08/05(日) 16:43:08.34ID:cdvogGHQ0788デフォルトの名無しさん (ワッチョイ ff12-gYkF)
2018/08/06(月) 01:43:03.72ID:DWW9arOl0 低能事件に続き5chでも半角事件が来るのか?
789デフォルトの名無しさん (ワッチョイ a340-Xflc)
2018/08/06(月) 17:48:10.34ID:ODvV2Pda0 俺も何度かここで質問してるが、ム板にしては答えちゃんと返してくれるスレなんだよ。
ただただ質問者と回答者以外の第三者の介入が必ず発生して荒れ出すだけで・・・w
ただただ質問者と回答者以外の第三者の介入が必ず発生して荒れ出すだけで・・・w
790デフォルトの名無しさん (ワイモマー MM1f-Xflc)
2018/08/06(月) 20:11:30.49ID:Nuh0gMtFM >>785
なんでindent() のforの++iってなんか意味あるの?
なんでindent() のforの++iってなんか意味あるの?
791デフォルトの名無しさん (アウアウカー Sa07-iFcb)
2018/08/06(月) 20:12:03.76ID:PKEcOyRea 2ch慣れというか5ch慣れしてスルーカパワーが高まった人でないと中々難しいのかも知れんのう
792デフォルトの名無しさん (ワッチョイ cf81-Xflc)
2018/08/06(月) 22:34:10.82ID:d11E19u/0 一番上と内部でレベルが合ってるように見えてて実はズレてる気持ち悪さ
中に入れるか呼び出し場所で外に書くかどっちかにしる
中に入れるか呼び出し場所で外に書くかどっちかにしる
793デフォルトの名無しさん (ワッチョイ cf81-Xflc)
2018/08/06(月) 23:08:00.95ID:d11E19u/0 あとひどいのがprintしてる"return"の後ろの文字列の示すところが変わってること
固定値返してるところでfunc(n) -> n みたいにさらに下位を呼び出してるみたいにとれる書き方がしてあって
return func(2-2) + func(2-1) -> 1 とか計算内容を書いてるところと一貫性がとれてない
固定値返してるところでfunc(n) -> n みたいにさらに下位を呼び出してるみたいにとれる書き方がしてあって
return func(2-2) + func(2-1) -> 1 とか計算内容を書いてるところと一貫性がとれてない
794デフォルトの名無しさん (ワッチョイ cf81-Xflc)
2018/08/06(月) 23:12:24.56ID:d11E19u/0 でも計算内容を展開してるだけだからいいっちゃいいのか
うーん
うーん
795デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/06(月) 23:39:21.68ID:9v3Lf9b90 全然ずれてない
コールスタックの深さとぴったり一致してる
オツムが足りない知恵遅れのために
さらにムダな補助出力をつけてやったぞ(AとB)
https://ideone.com/2vP2kN
ここまでくると
メクラやツンボを誘導するのに近い。。。
↓この課題は、最終的には、コレにおちつくことになる
(なんでかは、nを増やせばきっと知恵遅れでも分かるとは思ってたからな)
https://ideone.com/eaJEjX
補助出力がないとなにやってるのかすら分からないメクラやツンボでは
コレがなにやってるかもきっと理解できないわ
u_l、u_r、u_yしかないからな
知恵遅れは再帰が理解できてないのが、よおく分かったわ
コールスタックの深さとぴったり一致してる
オツムが足りない知恵遅れのために
さらにムダな補助出力をつけてやったぞ(AとB)
https://ideone.com/2vP2kN
ここまでくると
メクラやツンボを誘導するのに近い。。。
↓この課題は、最終的には、コレにおちつくことになる
(なんでかは、nを増やせばきっと知恵遅れでも分かるとは思ってたからな)
https://ideone.com/eaJEjX
補助出力がないとなにやってるのかすら分からないメクラやツンボでは
コレがなにやってるかもきっと理解できないわ
u_l、u_r、u_yしかないからな
知恵遅れは再帰が理解できてないのが、よおく分かったわ
796デフォルトの名無しさん (ワッチョイ cf81-Xflc)
2018/08/06(月) 23:51:48.07ID:d11E19u/0 余計紛らわしくなっとるわ!同じレベルで連続でリターンすんなしw
関数の戻りと呼び出し先の戻りがごちゃごちゃに
関数の戻りと呼び出し先の戻りがごちゃごちゃに
797デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/07(火) 00:04:14.76ID:5k05bDr80798デフォルトの名無しさん (ワッチョイ cf81-Xflc)
2018/08/07(火) 00:19:28.13ID:bqsBgWbb0 とてもわかりよいです
799デフォルトの名無しさん (ワッチョイ 6350-3fy2)
2018/08/07(火) 00:21:00.39ID:JmB8aria0 フィボナッチごときでよくもまあ話題が続くねえ
800デフォルトの名無しさん (ワッチョイ 6350-3fy2)
2018/08/07(火) 00:22:04.86ID:JmB8aria0 一般項の求め方くらい学校で習わなかった?
801デフォルトの名無しさん (アウアウカー Sa07-iFcb)
2018/08/07(火) 12:37:07.91ID:r/NXRNz/a 記憶から消滅
802デフォルトの名無しさん (ワッチョイ 6323-SE3Y)
2018/08/07(火) 12:49:11.36ID:sFIHfBH10 一般項は実数を扱うせいで誤差が出るから論外
803デフォルトの名無しさん (スップ Sd1f-3fy2)
2018/08/07(火) 12:50:36.34ID:1Vrs+If4d 誤差www
そりゃアホが作れば誤差が問題になるだろうねえwww
そりゃアホが作れば誤差が問題になるだろうねえwww
804デフォルトの名無しさん (スップ Sd1f-3fy2)
2018/08/07(火) 12:51:27.81ID:1Vrs+If4d アホは素直に加算を繰り返せば良いよ
805デフォルトの名無しさん (アウアウカー Sa07-iFcb)
2018/08/07(火) 17:18:17.21ID:r/NXRNz/a あれ?今日は半角にしないんだ。
806デフォルトの名無しさん (スップ Sd1f-3fy2)
2018/08/07(火) 19:11:24.43ID:PQcYGo+5d おれは半角野郎じゃない
半角野郎はアホだから無理
半角野郎はアホだから無理
808デフォルトの名無しさん (ワッチョイ cf01-Xflc)
2018/08/07(火) 20:18:00.72ID:8+yE0dxd0 富士山麓オウム啼く・・・あれ?怖いなこれ
809デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/07(火) 22:59:36.12ID:5k05bDr80810デフォルトの名無しさん (ワッチョイ cf80-gYkF)
2018/08/07(火) 23:08:45.73ID:5k05bDr80811デフォルトの名無しさん (ワッチョイ 6350-3fy2)
2018/08/07(火) 23:43:22.81ID:JmB8aria0 相変わらずアホだね
視野が狭い
視野が狭い
812デフォルトの名無しさん (ワッチョイ 4381-Xflc)
2018/08/07(火) 23:47:20.78ID:oCoNsgzD0 ルートとn乗求める処理オーダーってどんなんじゃろ
64bitまでならルート使ったほうが早いだろうけど
結局桁数が大きくなったらルートとってn乗してって結構処理重そう
じつは全部足し算したほうが早かったりして
64bitまでならルート使ったほうが早いだろうけど
結局桁数が大きくなったらルートとってn乗してって結構処理重そう
じつは全部足し算したほうが早かったりして
813デフォルトの名無しさん (ワッチョイ cf01-Xflc)
2018/08/08(水) 05:09:15.02ID:d90b/R1Y0 重いのはべき乗のほうだね
814デフォルトの名無しさん (ワッチョイ 6350-3fy2)
2018/08/08(水) 07:15:16.24ID:UEEWq45u0 nが大きい場合の計算オーダー
足し算の繰り返しの場合 : n^2
一般項を普通に計算した場合 : n (log n)^2
足し算の繰り返しの場合 : n^2
一般項を普通に計算した場合 : n (log n)^2
815デフォルトの名無しさん (ワッチョイ 6323-SE3Y)
2018/08/08(水) 09:01:38.18ID:IJcCYJpk0 足し算の繰り返し:O(n)
一般項:O(1)
じゃないの?
一般項:O(1)
じゃないの?
816デフォルトの名無しさん (スップ Sd1f-3fy2)
2018/08/08(水) 12:44:41.36ID:DBa81iRmd 加算、乗算、expなどの計算がO(1)で出来る範囲ならそうだね
817デフォルトの名無しさん (ブーイモ MMa7-3LBS)
2018/08/08(水) 12:50:59.40ID:CvCa/3U5M >>816
まずはO(1)の定義を調べようか…
まずはO(1)の定義を調べようか…
818デフォルトの名無しさん (スップ Sd1f-3fy2)
2018/08/08(水) 12:52:04.40ID:DBa81iRmd お前より詳しいと思うよ
819デフォルトの名無しさん (ワッチョイ ff73-lyTv)
2018/08/08(水) 15:07:25.41ID:FOgunlIR0 お前のほうが可愛いよ
820デフォルトの名無しさん (スップ Sd1f-3fy2)
2018/08/08(水) 16:09:12.75ID:H7dQbZh7d ありがと
821デフォルトの名無しさん (ワッチョイ 6350-Xflc)
2018/08/08(水) 18:58:28.93ID:UEEWq45u0 フィボナッチの私の回答
nが比較的小さな数までである場合、テーブルを持つのが最速であることは間違いない
じゃあテーブルを持たない場合、
固定有効精度であれば、以下で求めるのが計算量のオーダーが1
(int)(exp(.4812118250596034475*n-.8047189562170501873)+0.5)
floatやdoubleではなく、4倍精度や100倍精度であってもオーダーは1
上の2個の定数は事前に計算しておけばいいし、
毎回計算してもnとは無関係
nが非常に小さい数でなければ単純に加算するよりは上記の方が速いでしょう
floatやdoubleであれば1行で済みます
nが比較的小さな数までである場合、テーブルを持つのが最速であることは間違いない
じゃあテーブルを持たない場合、
固定有効精度であれば、以下で求めるのが計算量のオーダーが1
(int)(exp(.4812118250596034475*n-.8047189562170501873)+0.5)
floatやdoubleではなく、4倍精度や100倍精度であってもオーダーは1
上の2個の定数は事前に計算しておけばいいし、
毎回計算してもnとは無関係
nが非常に小さい数でなければ単純に加算するよりは上記の方が速いでしょう
floatやdoubleであれば1行で済みます
822デフォルトの名無しさん (ワッチョイ 6350-Xflc)
2018/08/08(水) 19:03:59.97ID:UEEWq45u0 じゃあ多倍長演算を用いて任意のnに対して正確に求める場合を考える
以下は基礎知識
n番目のフィボナッチ数の桁数はnに比例する
乗算の計算オーダーは、桁数をnとすると n log(n)
ルートの計算オーダーは n log(n)
n乗は、オーダーlog(n)回の乗算で求まる
以上より、一般項の式の通りまじめに計算しても
オーダー n (log n)^2 で計算できる
以下は基礎知識
n番目のフィボナッチ数の桁数はnに比例する
乗算の計算オーダーは、桁数をnとすると n log(n)
ルートの計算オーダーは n log(n)
n乗は、オーダーlog(n)回の乗算で求まる
以上より、一般項の式の通りまじめに計算しても
オーダー n (log n)^2 で計算できる
823デフォルトの名無しさん (ワッチョイ 6350-Xflc)
2018/08/08(水) 19:10:00.90ID:UEEWq45u0 工夫すると、計算オーダーを n log n にすることが出来る
行列の形でフィボナッチ数列の漸化式を記述すると
|0 1|^n |0|
|1 1| . . |1|
でn番目とn+1番目のフィボナッチ数が求まることがわかる
この式を用いれば
計算オーダー n log n で正確に n 番目のフィボナッチ数を求めることができる
行列の形でフィボナッチ数列の漸化式を記述すると
|0 1|^n |0|
|1 1| . . |1|
でn番目とn+1番目のフィボナッチ数が求まることがわかる
この式を用いれば
計算オーダー n log n で正確に n 番目のフィボナッチ数を求めることができる
>>810,812,814
漸化式 f(n+2)=f(n+1)+f(n) から一般のf(n) を求めるオーダーはΟ(n)
一般式 >>807 から求めるオーダーはΟ(log n)
だと思う
https://mevius.5ch.net/test/read.cgi/tech/1434079972/49
c を定数として、c^n を求めるにはΟ(log n) でいける
漸化式 f(n+2)=f(n+1)+f(n) から一般のf(n) を求めるオーダーはΟ(n)
一般式 >>807 から求めるオーダーはΟ(log n)
だと思う
https://mevius.5ch.net/test/read.cgi/tech/1434079972/49
c を定数として、c^n を求めるにはΟ(log n) でいける
825デフォルトの名無しさん (スップ Sd1f-3fy2)
2018/08/08(水) 19:30:35.51ID:xXLtNtIVd826デフォルトの名無しさん (スップ Sd1f-3fy2)
2018/08/08(水) 19:34:04.93ID:xXLtNtIVd827デフォルトの名無しさん (スップ Sd1f-3fy2)
2018/08/08(水) 19:36:02.18ID:xXLtNtIVd 固定精度であれば
四則演算もexpも丸めも全て
値によらず固定時間で計算出来る
四則演算もexpも丸めも全て
値によらず固定時間で計算出来る
828デフォルトの名無しさん (スップ Sd1f-3fy2)
2018/08/08(水) 19:41:56.80ID:xXLtNtIVd てことで、
半角君に3勝ですね
コーディング
アルゴリズム
数学
全て勝ってしまった
まあ学歴も勝ってると思うので4勝か
半角君に3勝ですね
コーディング
アルゴリズム
数学
全て勝ってしまった
まあ学歴も勝ってると思うので4勝か
829デフォルトの名無しさん (ワッチョイ cf81-Xflc)
2018/08/08(水) 19:42:03.28ID:bSSLrH090 >>824
桁数分のnかからんの?
桁数分のnかからんの?
831デフォルトの名無しさん (ガラプー KK87-/9RV)
2018/08/08(水) 21:38:16.32ID:Iprz26WCK 頭悪いバカが半角に勝ったつもりでいる
半角はこのスレでは間違いなく天才
他のやつらがお話にならないぐらい頭悪いからな
典型的な頭悪いやつが半角に勝とうと必死になってる
半角はこのスレでは間違いなく天才
他のやつらがお話にならないぐらい頭悪いからな
典型的な頭悪いやつが半角に勝とうと必死になってる
832デフォルトの名無しさん (ワッチョイ cf81-Xflc)
2018/08/08(水) 23:31:41.87ID:bSSLrH090 ここまで一般式も行列もコードなし多倍長も
まだはじまってもいない
まだはじまってもいない
833デフォルトの名無しさん (ワッチョイ 4364-vmb7)
2018/08/08(水) 23:37:23.86ID:85EJM9li0 ISO C99に準拠して、なおかつある程度開発が盛んなOSSを教えてください。
ソースコードが綺麗なことで有名ならなお嬉しいです。
ソースコードが綺麗なことで有名ならなお嬉しいです。
>>832
多桁長は結構手間、というか C/C++ でやるのは実は大変だと思います、キャリーフラグが使えない…
多桁長は結構手間、というか C/C++ でやるのは実は大変だと思います、キャリーフラグが使えない…
835デフォルトの名無しさん (ワッチョイ 0b50-+oCX)
2018/08/09(木) 08:27:30.86ID:RmtKVlli0 素直にライブラリを使えば良いよ
加減乗算しか使わないから
速度を求めなければ自作するのも大した手間では無いけど
加減乗算しか使わないから
速度を求めなければ自作するのも大した手間では無いけど
836デフォルトの名無しさん (ワッチョイ 0b23-BtOx)
2018/08/09(木) 08:39:55.95ID:+YHL5mth0 >>833
勉強のためなのかな
もしそうならFreeBSDのコマンドのソースコードが良いと思う
短いものが多いからおすすめ
Linuxのものと比べると読みやすい
FreeBSDソースコードリポジトリ
https://svnweb.freebsd.org/base/release/11.2.0/
"bin"が名前に含まれるフォルダにコマンドのソースがある
勉強のためなのかな
もしそうならFreeBSDのコマンドのソースコードが良いと思う
短いものが多いからおすすめ
Linuxのものと比べると読みやすい
FreeBSDソースコードリポジトリ
https://svnweb.freebsd.org/base/release/11.2.0/
"bin"が名前に含まれるフォルダにコマンドのソースがある
837デフォルトの名無しさん (ワッチョイ 8a73-/icg)
2018/08/09(木) 10:23:18.39ID:vVjcL3xq0 GNUのツールチェインもいいんじゃないか
ストールマンのコードとか見れるよ
ストールマンのコードとか見れるよ
838デフォルトの名無しさん (ワッチョイ 0364-WYJg)
2018/08/09(木) 10:24:09.98ID:FWE3MOHN0 >>836
ありがとうございます。
> 勉強のため
その通りです。
プログラム言語自体がほぼ初めてなのですが
やはり教科書や仕様書ばかり見て 実際を見ないのでは身に付かない
と思いまして、OSSのソースコードであれば
コーディング規約が守られていたり
優秀なアルゴリズムが使われていたりするかなと予測して
OSSのソースコードリーディングをすることにしました。
ところが私が勉強の対象にしているのはISO/IEC 9899:1999(C99)であるのに対し、
ほとんどの有名なOSSはC89/90に準拠し、その古い制約に縛られていてC99の勉強の妨げになりそうでした。
というわけでC99に準拠した有名なOSSを探しているのです。
ありがとうございます。
> 勉強のため
その通りです。
プログラム言語自体がほぼ初めてなのですが
やはり教科書や仕様書ばかり見て 実際を見ないのでは身に付かない
と思いまして、OSSのソースコードであれば
コーディング規約が守られていたり
優秀なアルゴリズムが使われていたりするかなと予測して
OSSのソースコードリーディングをすることにしました。
ところが私が勉強の対象にしているのはISO/IEC 9899:1999(C99)であるのに対し、
ほとんどの有名なOSSはC89/90に準拠し、その古い制約に縛られていてC99の勉強の妨げになりそうでした。
というわけでC99に準拠した有名なOSSを探しているのです。
839デフォルトの名無しさん (JP 0Heb-5Ep3)
2018/08/09(木) 10:43:20.34ID:fhYwVVV8H C89とC99の差を何も見ずにここに書けるなら別だが、
そうでなければ勉強の妨げにはならんから安心しろ
そうでなければ勉強の妨げにはならんから安心しろ
840デフォルトの名無しさん (ワッチョイ 9e01-2km2)
2018/08/09(木) 10:54:41.59ID:wz655HRh0 多倍長ならGMPがあるやん
841デフォルトの名無しさん (ブーイモ MM27-AujL)
2018/08/09(木) 12:48:19.15ID:9ZSWxBpXM >>838
musl libc
musl libc
843デフォルトの名無しさん (ワッチョイ 0381-2km2)
2018/08/09(木) 22:23:11.20ID:MlnftC8O0 もうつくったんかはええw
順次加算とスピード同じくらい?
順次加算とスピード同じくらい?
845デフォルトの名無しさん (スップ Sd8a-+oCX)
2018/08/09(木) 23:30:35.12ID:8Br7DHMpd コードを見てないけど
多倍長は乗算がキモ
オーダーn log nで計算する方法を考えよう
フーリエ変換を使うのが普通
多倍長は乗算がキモ
オーダーn log nで計算する方法を考えよう
フーリエ変換を使うのが普通
846デフォルトの名無しさん (スップ Sd8a-+oCX)
2018/08/09(木) 23:45:29.15ID:8Br7DHMpd847デフォルトの名無しさん (ワッチョイ cebe-tyrq)
2018/08/10(金) 01:21:54.58ID:r84RRSaO0848デフォルトの名無しさん (ワッチョイ de80-oNxq)
2018/08/10(金) 21:12:30.49ID:Ao+gKXlH0 とりあえずこの前インストールした仮想環境のlinuxにgmplibをインストールした
相変わらず低学歴知恵遅れどもは頭悪いテキトーなことばっかりいってるわ
相変わらず低学歴知恵遅れどもは頭悪いテキトーなことばっかりいってるわ
849デフォルトの名無しさん (ワッチョイ de81-2km2)
2018/08/10(金) 23:14:02.99ID:z8f8fUe70 俺なんかGoogleのAIライブラリのTensolFlowインストールしたぞ!
インストールしたぞ
インストールしたぞ
850デフォルトの名無しさん (ワッチョイ 0b50-2km2)
2018/08/10(金) 23:55:30.59ID:Jbhl98S70 >>823の方針でフィボナッチ数を計算するコードを書いてみました
F(1億) が10.5秒
F(10億) が137.1秒
Cで450行くらいのコード
計算時間より秀丸エディタで結果を開く方が時間がかかってました
F(10) : time = 0.000013 / err = 0.000000
F(100) : time = 0.000017 / err = 0.000000
F(1000) : time = 0.000021 / err = 0.000000
F(10000) : time = 0.000111 / err = 0.000000
F(100000) : time = 0.001233 / err = 0.000001
F(1000000) : time = 0.019993 / err = 0.000004
F(10000000) : time = 0.251717 / err = 0.000019
F(100000000) : time = 10.507523 / err = 0.000076
F(1000000000) : time = 137.143945 / err = 0.000305
F(1億) が10.5秒
F(10億) が137.1秒
Cで450行くらいのコード
計算時間より秀丸エディタで結果を開く方が時間がかかってました
F(10) : time = 0.000013 / err = 0.000000
F(100) : time = 0.000017 / err = 0.000000
F(1000) : time = 0.000021 / err = 0.000000
F(10000) : time = 0.000111 / err = 0.000000
F(100000) : time = 0.001233 / err = 0.000001
F(1000000) : time = 0.019993 / err = 0.000004
F(10000000) : time = 0.251717 / err = 0.000019
F(100000000) : time = 10.507523 / err = 0.000076
F(1000000000) : time = 137.143945 / err = 0.000305
851デフォルトの名無しさん (ワッチョイ 0b50-2km2)
2018/08/11(土) 00:06:54.68ID:N9ICkOCi0 10000進数多倍長
超単純なFFT
演算は乗算と加算のみ
誤差の感じから100000進数でも大丈夫そうですね
計算式は基本以下を多倍長にしただけ
多少の無駄は除いてますが
----
uint64_t f(uint64_t n){
n++;
uint64_t a = 1;
uint64_t b = 0;
uint64_t t;
for (int i = 0 ; i < 64 ; i++){
t = b * b;
b = 2 * a * b + t;
a = a * a + t;
if (n & 0x8000000000000000){
t = b;
b = a + b;
a = t;
}
n += n;
}
return a;
}
超単純なFFT
演算は乗算と加算のみ
誤差の感じから100000進数でも大丈夫そうですね
計算式は基本以下を多倍長にしただけ
多少の無駄は除いてますが
----
uint64_t f(uint64_t n){
n++;
uint64_t a = 1;
uint64_t b = 0;
uint64_t t;
for (int i = 0 ; i < 64 ; i++){
t = b * b;
b = 2 * a * b + t;
a = a * a + t;
if (n & 0x8000000000000000){
t = b;
b = a + b;
a = t;
}
n += n;
}
return a;
}
852デフォルトの名無しさん (ワッチョイ 0b50-2km2)
2018/08/11(土) 00:16:27.47ID:N9ICkOCi0 コードをアップしようと思ったけど
ideoneだとうまく動かないみたい
ideoneだとうまく動かないみたい
853デフォルトの名無しさん (ワッチョイ 9f2d-IVAT)
2018/08/11(土) 10:03:32.46ID:ONHM6Q8h0 乙
じゃ、多倍長使って一般項の公式で算出したケースを晒します
スレチと知りつつ C++ で boost/multiprecision バックエンドは gmp
https://wandbox.org/permlink/QqxaauQeHTjJRrYX
# fib(0) .. fib(1000) + fib(10億)
real 0m0.004s
user 0m0.004s
sys 0m0.000s
ま、そりゃ速いですわな……
科学的表記で出力すると速いけど 整数表記しようとするとfib(10億)で2分ぐらい
文字列化でかなり時間を食ってます
じゃ、多倍長使って一般項の公式で算出したケースを晒します
スレチと知りつつ C++ で boost/multiprecision バックエンドは gmp
https://wandbox.org/permlink/QqxaauQeHTjJRrYX
# fib(0) .. fib(1000) + fib(10億)
real 0m0.004s
user 0m0.004s
sys 0m0.000s
ま、そりゃ速いですわな……
科学的表記で出力すると速いけど 整数表記しようとするとfib(10億)で2分ぐらい
文字列化でかなり時間を食ってます
854デフォルトの名無しさん (スップ Sd8a-+oCX)
2018/08/11(土) 10:40:58.88ID:y6G1YdWMd 正確に全桁計算してその時間?
じゃないよね?
じゃないよね?
855デフォルトの名無しさん (スップ Sd8a-+oCX)
2018/08/11(土) 10:44:26.74ID:y6G1YdWMd 有効精度何桁で計算した場合の時間?
856デフォルトの名無しさん (スップ Sd8a-+oCX)
2018/08/11(土) 10:50:42.30ID:y6G1YdWMd 有効数字が少ない時は>>821の式の方が速いよ
>>821 は桁数が非常に大きくなるとどうなるか、よくわからないんですよ、ちょっと試してみますね
858デフォルトの名無しさん (スップ Sd8a-+oCX)
2018/08/11(土) 11:02:48.70ID:y6G1YdWMd 2個の定数は求めたい有効精度+αの精度で求めておけばOK
859デフォルトの名無しさん (スップ Sd8a-+oCX)
2018/08/11(土) 11:04:23.75ID:y6G1YdWMd >>853の式の、
nに依存せずに計算できる所だけ先に計算しただけなので
nに依存せずに計算できる所だけ先に計算しただけなので
860デフォルトの名無しさん (スップ Sd8a-+oCX)
2018/08/11(土) 11:11:54.17ID:y6G1YdWMd expの計算の内部ではlog 2を使うし
2進10進変換にはlog_10 (2)を使うので
doubleより高精度で求めるなら
この辺も先に計算しておくことになるでしょう
>>850ははじめから10進での計算なので
10進文字列に変換するのは一瞬
2進10進変換にはlog_10 (2)を使うので
doubleより高精度で求めるなら
この辺も先に計算しておくことになるでしょう
>>850ははじめから10進での計算なので
10進文字列に変換するのは一瞬
861デフォルトの名無しさん (スップ Sd8a-+oCX)
2018/08/11(土) 11:13:07.14ID:y6G1YdWMd 書き忘れましたが
>>850は10進数で全桁正確に求めた場合の時間です
>>850は10進数で全桁正確に求めた場合の時間です
862デフォルトの名無しさん (ワッチョイ 9f2d-IVAT)
2018/08/11(土) 11:19:04.68ID:ONHM6Q8h0863デフォルトの名無しさん (スップ Sd8a-+oCX)
2018/08/11(土) 11:22:04.43ID:y6G1YdWMd864デフォルトの名無しさん (スップ Sd8a-+oCX)
2018/08/11(土) 11:25:21.63ID:y6G1YdWMd f(10億)の下位100桁はいくつになります?
私は今出先で私の結果は夜貼ります
私は今出先で私の結果は夜貼ります
865デフォルトの名無しさん (ワッチョイ 9f2d-IVAT)
2018/08/11(土) 11:29:35.08ID:ONHM6Q8h0 >>863
https://www.boost.org/doc/libs/1_68_0/libs/multiprecision/doc/html/boost_multiprecision/tut/floats/gmp_float.html
gmp_floatが number<gmp_float<0>> の typedef なので
"variable precision by setting the template argument to zero"で無限精度指定になってると理解してます
正確に出力させると桁が膨大で検証しにくくてしょうがないな…… これ
https://www.boost.org/doc/libs/1_68_0/libs/multiprecision/doc/html/boost_multiprecision/tut/floats/gmp_float.html
gmp_floatが number<gmp_float<0>> の typedef なので
"variable precision by setting the template argument to zero"で無限精度指定になってると理解してます
正確に出力させると桁が膨大で検証しにくくてしょうがないな…… これ
866デフォルトの名無しさん (ワッチョイ de80-oNxq)
2018/08/11(土) 11:39:50.69ID:17qcRus/0 とりあえずかわいそうなぐらい頭悪いヤツしかいないのは分かった
一旦、多倍長演算向けに3つの方法を評価する
ちなみにgmpの関数にフィボナッチの関数がついてる
きっとこの速度にすら届かないと考えられる(まだ動かしてない)
↓多倍長演算使ってない3つの方法の簡単なコードがコレ
https://ideone.com/vhpLPV
※ オマケでアホが書いたコード(>>851)も入ってる
※ オレの適切なありがたい注釈がついてる
1.ひたすら足し算
2.一般項
多倍長演算をするまえに適切な精度を設定しないといけない
どれぐらいの精度にすればいいかがまだ未解決 ※ とりあえず2回計算することでいけるような気がしないでもない
3.再帰階乗演算
https://www.ics.uci.edu/~eppstein/161/960109.html
探した中でコイツが一番いい感じがする
> This is a recursive algorithm, so as usual we get a recurrence relation defining time,
> just by writing down the time spent in a call to matpow (O(1)) plus the time in each recursive call
> (only one recursive call, with argument n/2). So the recurrence is
> time(n) = O(1) + time(n / 2)
一旦、多倍長演算向けに3つの方法を評価する
ちなみにgmpの関数にフィボナッチの関数がついてる
きっとこの速度にすら届かないと考えられる(まだ動かしてない)
↓多倍長演算使ってない3つの方法の簡単なコードがコレ
https://ideone.com/vhpLPV
※ オマケでアホが書いたコード(>>851)も入ってる
※ オレの適切なありがたい注釈がついてる
1.ひたすら足し算
2.一般項
多倍長演算をするまえに適切な精度を設定しないといけない
どれぐらいの精度にすればいいかがまだ未解決 ※ とりあえず2回計算することでいけるような気がしないでもない
3.再帰階乗演算
https://www.ics.uci.edu/~eppstein/161/960109.html
探した中でコイツが一番いい感じがする
> This is a recursive algorithm, so as usual we get a recurrence relation defining time,
> just by writing down the time spent in a call to matpow (O(1)) plus the time in each recursive call
> (only one recursive call, with argument n/2). So the recurrence is
> time(n) = O(1) + time(n / 2)
867デフォルトの名無しさん (スップ Sd8a-+oCX)
2018/08/11(土) 11:48:25.12ID:y6G1YdWMd868デフォルトの名無しさん (スップ Sd8a-+oCX)
2018/08/11(土) 11:52:02.92ID:y6G1YdWMd >>865
√5を無限精度で求めるなんて不可能ですよ
√5を無限精度で求めるなんて不可能ですよ
869デフォルトの名無しさん (スップ Sd8a-+oCX)
2018/08/11(土) 11:55:08.80ID:y6G1YdWMd870デフォルトの名無しさん (スップ Sd8a-+oCX)
2018/08/11(土) 11:58:25.35ID:y6G1YdWMd871デフォルトの名無しさん (ワッチョイ de80-oNxq)
2018/08/11(土) 12:00:16.70ID:17qcRus/0 ↓アルゴリズム5でオレのサンプルではちゃんと動いてるからな
https://ideone.com/vhpLPV
↓オマエのは動かしても適切な結果にならない
https://ideone.com/vhpLPV
オマエのはお話にならないぐらいペケ
↓ペケの理由もちゃんとコメントに書いてある
https://ideone.com/vhpLPV
https://ideone.com/vhpLPV
↓オマエのは動かしても適切な結果にならない
https://ideone.com/vhpLPV
オマエのはお話にならないぐらいペケ
↓ペケの理由もちゃんとコメントに書いてある
https://ideone.com/vhpLPV
872デフォルトの名無しさん (スップ Sd8a-+oCX)
2018/08/11(土) 12:04:23.64ID:y6G1YdWMd 劣化コピーしたらそりゃ正しく動かないよ
nは64bitにしないと
nは64bitにしないと
873デフォルトの名無しさん (ワッチョイ 9f2d-IVAT)
2018/08/11(土) 12:06:06.40ID:ONHM6Q8h0874デフォルトの名無しさん (ワッチョイ de80-oNxq)
2018/08/11(土) 12:06:47.07ID:17qcRus/0 オマエは基本的にオツムに問題がある
病院へいったほうがいい
病院へいったほうがいい
875デフォルトの名無しさん (スップ Sd8a-+oCX)
2018/08/11(土) 12:07:58.68ID:y6G1YdWMd nが32bitなら0x80000000にしないと
多倍長で動かすためのテストコードだから
桁数が小さい時の計算回数は全く無視
ループが進んでからやっと演算がはじまる
多倍長で動かすためのテストコードだから
桁数が小さい時の計算回数は全く無視
ループが進んでからやっと演算がはじまる
876デフォルトの名無しさん (ワッチョイ de80-oNxq)
2018/08/11(土) 12:09:49.79ID:17qcRus/0 64回しかループしてない
Σ n
n→64
はいくつになる
Σ n
n→64
はいくつになる
877デフォルトの名無しさん (スップ Sd8a-+oCX)
2018/08/11(土) 12:14:07.21ID:y6G1YdWMd n <<= 1;
って書いてあげた方がよかったかな
どうせコンパイラが足し算に直すだろうし
って書いてあげた方がよかったかな
どうせコンパイラが足し算に直すだろうし
878デフォルトの名無しさん (ワッチョイ de80-oNxq)
2018/08/11(土) 16:36:24.18ID:17qcRus/0 1.と3.は簡単にできた
https://ideone.com/cmAQzO
gmplibのフィボナッチは n=10,000,000 を
0.7秒ぐらいで処理できる
オレが作ったのは4秒ぐらいかかる
m,10000000,4.008508,3.989280
g,10000000,0.724954,0.717120
全然かなわない
少しやってみて面倒そうだから後回しにしてた一般項やってみるか
https://ideone.com/cmAQzO
gmplibのフィボナッチは n=10,000,000 を
0.7秒ぐらいで処理できる
オレが作ったのは4秒ぐらいかかる
m,10000000,4.008508,3.989280
g,10000000,0.724954,0.717120
全然かなわない
少しやってみて面倒そうだから後回しにしてた一般項やってみるか
879デフォルトの名無しさん (スップ Sd8a-+oCX)
2018/08/11(土) 18:32:01.22ID:y6G1YdWMd880デフォルトの名無しさん (スップ Sd8a-+oCX)
2018/08/11(土) 18:34:26.69ID:y6G1YdWMd ループの最後の64回目は
aだけを計算すればいいので
かなり省略出来ます
aだけを計算すればいいので
かなり省略出来ます
881デフォルトの名無しさん (ワッチョイ de80-oNxq)
2018/08/11(土) 19:41:53.58ID:17qcRus/0 https://ideone.com/2by35t
精度評価用のログ取得処理
32bit版GMPの仮数部は初期値が64bitで32bitずつ増えていく模様
ちなみに64bit精度で一瞬で求まるフィボナッチ数のサイズ(bit)予測値はほぼ誤差なし
※ 9999件まで確認したが誤差は発生してない
※ 保険で、1dword(32bit - 最小単位) 分、余分に足しとけば、この予測値で間違いがおきることはまずないと考えられる
フィボナッチ数のサイズ(bit)予測値から必要な精度が予測できる
※ 9999件まで確認したが
※ フィボナッチ数のサイズ(bit)の1dword(32bit - 最小単位) 分より大きい誤差は発生してない
↓コレがその結果
http://fast-uploader.com/file/7089539563485/
http://fast-uploader.com/file/7089539604357/
数学的に証明したわけではないが、きっとコレで間違いなくいける
つまり予測値に64bit足しとけば間違いがおきることはない
精度評価用のログ取得処理
32bit版GMPの仮数部は初期値が64bitで32bitずつ増えていく模様
ちなみに64bit精度で一瞬で求まるフィボナッチ数のサイズ(bit)予測値はほぼ誤差なし
※ 9999件まで確認したが誤差は発生してない
※ 保険で、1dword(32bit - 最小単位) 分、余分に足しとけば、この予測値で間違いがおきることはまずないと考えられる
フィボナッチ数のサイズ(bit)予測値から必要な精度が予測できる
※ 9999件まで確認したが
※ フィボナッチ数のサイズ(bit)の1dword(32bit - 最小単位) 分より大きい誤差は発生してない
↓コレがその結果
http://fast-uploader.com/file/7089539563485/
http://fast-uploader.com/file/7089539604357/
数学的に証明したわけではないが、きっとコレで間違いなくいける
つまり予測値に64bit足しとけば間違いがおきることはない
882デフォルトの名無しさん (ワッチョイ de80-oNxq)
2018/08/11(土) 19:44:24.09ID:17qcRus/0 で、>>881の結果に基づいて
一般項で処理するコードを書いた
https://ideone.com/QKTrLi
一般項で処理
やってみたが
一般項で処理なんかするとともかく遅い
6,942,482 bitsの一般項の計算で
お話にならないぐらいものすごい時間がかかる
calculation 6942482bits
f,10000000,35.082393,34.855636
g,10000000,0.722054,0.720584
つまり、結論としてフィボナッチ数を求めるなら
GMPに用意されてる関数を使うのが一番
再帰階乗演算使う方がはるかにマシ
一般項で求めるのはウンコ
一般項で処理するコードを書いた
https://ideone.com/QKTrLi
一般項で処理
やってみたが
一般項で処理なんかするとともかく遅い
6,942,482 bitsの一般項の計算で
お話にならないぐらいものすごい時間がかかる
calculation 6942482bits
f,10000000,35.082393,34.855636
g,10000000,0.722054,0.720584
つまり、結論としてフィボナッチ数を求めるなら
GMPに用意されてる関数を使うのが一番
再帰階乗演算使う方がはるかにマシ
一般項で求めるのはウンコ
884デフォルトの名無しさん (ワッチョイ 0b50-2km2)
2018/08/11(土) 21:43:12.30ID:N9ICkOCi0886デフォルトの名無しさん (ワッチョイ 0b50-2km2)
2018/08/11(土) 21:50:41.32ID:N9ICkOCi0 ローカル環境では動いてますが、
>>852に書いた通りideoneだと動きません
>>852に書いた通りideoneだと動きません
887デフォルトの名無しさん (ワッチョイ 4a8d-2km2)
2018/08/11(土) 21:58:41.55ID:VKOHvb3S0 floatとdoubleの値の範囲を教えてください。
-0.000034 < float < 0.000034
-0.00000000016 < long < 0.0000000016
みたいな感じで教えてください><
-0.000034 < float < 0.000034
-0.00000000016 < long < 0.0000000016
みたいな感じで教えてください><
888デフォルトの名無しさん (ワッチョイ 5f81-2km2)
2018/08/11(土) 22:22:37.58ID:v96Fcglg0 >>886
私も手元で確かめました、確かにこれは爆速ですね…私の古いPCでもf(1000万)までならば一瞬で答えが出ます。
私も手元で確かめました、確かにこれは爆速ですね…私の古いPCでもf(1000万)までならば一瞬で答えが出ます。
890デフォルトの名無しさん (ワッチョイ 6fc3-5rxo)
2018/08/11(土) 22:26:14.75ID:UyVMPuF50 C言語でゲームがアクションゲームが作りたくてプログラミングはじめた
実際にプログラミングって楽しいと感じてる
でも入門書通りソートアルゴリズムを勉強してて、基本交換法やら基本選択法は楽にフローチャートもコードも書けたのに、そのあとにやった クイックソートとか単純挿入法では面白いぐらい苦戦した(どっちももうできるようになったけど)
これって、俺のアルゴリズムを考える能力が乏しいってことなのかな
それともはじめはみんなこんなもの?
実際にプログラミングって楽しいと感じてる
でも入門書通りソートアルゴリズムを勉強してて、基本交換法やら基本選択法は楽にフローチャートもコードも書けたのに、そのあとにやった クイックソートとか単純挿入法では面白いぐらい苦戦した(どっちももうできるようになったけど)
これって、俺のアルゴリズムを考える能力が乏しいってことなのかな
それともはじめはみんなこんなもの?
891デフォルトの名無しさん (ワッチョイ 6fc3-5rxo)
2018/08/11(土) 22:26:40.35ID:UyVMPuF50 ×ゲームがアクションが
◯アクションゲームが
◯アクションゲームが
892デフォルトの名無しさん (ワッチョイ 4a12-oNxq)
2018/08/11(土) 22:35:15.61ID:d91dd04/0 再帰とポインタで躓くと昔から伝わっている
特に再帰は禅でもやって悟りを得ないと理解できない
特に再帰は禅でもやって悟りを得ないと理解できない
893さまよえる蟻人間 ◆T6xkBnTXz7B0 (スププ Sdea-cF9D)
2018/08/11(土) 22:35:57.56ID:/IS35TFAd だれでも最初は赤ちゃん歩き。私も最初はじゃんけんのプログラミングが全くできなかった。
894デフォルトの名無しさん (ワッチョイ 0b50-2km2)
2018/08/11(土) 22:42:41.92ID:N9ICkOCi0895デフォルトの名無しさん (ワッチョイ 0b50-2km2)
2018/08/11(土) 23:13:57.75ID:N9ICkOCi0 n log nより遅いように見えるのは
サイズが大きいとキャッシュから外れるため
フーリエ変換はメモリのランダムアクセスが頻発するので
キャッシュに入るかどうかで大きく時間が変わる
適当に並び変えながら変換することで
キャッシュヒット率を上げたり
メインメモリに収まりきらない巨大サイズをHDDを使いながら変換することも出来るのだが、
今回はシンプルさ重視の為見送り
世の中にある高速FFTライブラリに差し替えれば
もっと高速化する
サイズが大きいとキャッシュから外れるため
フーリエ変換はメモリのランダムアクセスが頻発するので
キャッシュに入るかどうかで大きく時間が変わる
適当に並び変えながら変換することで
キャッシュヒット率を上げたり
メインメモリに収まりきらない巨大サイズをHDDを使いながら変換することも出来るのだが、
今回はシンプルさ重視の為見送り
世の中にある高速FFTライブラリに差し替えれば
もっと高速化する
896デフォルトの名無しさん (ワッチョイ 0b50-2km2)
2018/08/11(土) 23:25:51.63ID:N9ICkOCi0 >>887
環境依存
float, double がそれぞれIEEE754のbinary32とbinary64準拠の場合はおおよそ
-3.4028234663852885981*10^38 ≦ float ≦ 3.4028234663852885981*10^38
-1.7976931348623157081*10^308 ≦ double ≦ 1.7976931348623157081*10^308
正確には以下の範囲
float : ±(2^24-1)*2^104
double : ±(2^53-1)*2^971
これに追加して±∞, NaN などがある
組み込みなどではdoubleも32bitであることも多い
環境依存
float, double がそれぞれIEEE754のbinary32とbinary64準拠の場合はおおよそ
-3.4028234663852885981*10^38 ≦ float ≦ 3.4028234663852885981*10^38
-1.7976931348623157081*10^308 ≦ double ≦ 1.7976931348623157081*10^308
正確には以下の範囲
float : ±(2^24-1)*2^104
double : ±(2^53-1)*2^971
これに追加して±∞, NaN などがある
組み込みなどではdoubleも32bitであることも多い
897デフォルトの名無しさん (ワッチョイ 0b50-2km2)
2018/08/11(土) 23:33:36.42ID:N9ICkOCi0 C言語スレだから ^ は排他的論理和の意味で使うべきでしたかね
-340282346638528859811704183484516925440 ≦ binary32 ≦ 340282346638528859811704183484516925440
-1797693134862315708145274237317043567980705675258449965989174768
0315726078002853876058955863276687817154045895351438246423432132
6889464182768467546703537516986049910576551282076245490090389328
9440758685084551339423045832369032229481658085593321233482747978
26204144723168738177180919299881250404026184124858368
≦ binary64 ≦
1797693134862315708145274237317043567980705675258449965989174768
0315726078002853876058955863276687817154045895351438246423432132
6889464182768467546703537516986049910576551282076245490090389328
9440758685084551339423045832369032229481658085593321233482747978
26204144723168738177180919299881250404026184124858368
-340282346638528859811704183484516925440 ≦ binary32 ≦ 340282346638528859811704183484516925440
-1797693134862315708145274237317043567980705675258449965989174768
0315726078002853876058955863276687817154045895351438246423432132
6889464182768467546703537516986049910576551282076245490090389328
9440758685084551339423045832369032229481658085593321233482747978
26204144723168738177180919299881250404026184124858368
≦ binary64 ≦
1797693134862315708145274237317043567980705675258449965989174768
0315726078002853876058955863276687817154045895351438246423432132
6889464182768467546703537516986049910576551282076245490090389328
9440758685084551339423045832369032229481658085593321233482747978
26204144723168738177180919299881250404026184124858368
898デフォルトの名無しさん (ワッチョイ 0b50-2km2)
2018/08/11(土) 23:41:42.36ID:N9ICkOCi0 >>888
単純なバグでした
size_t が64bit前提の部分があったのと、
非常に恥ずかしいですが以下のような動作不定なコードがありました
a->data[i++] = b->data[i] + carry;
私のローカル環境だとたまたま動いていたようです
intが16bitだとまだヤバそうですが、
16bit環境で動かすことはないと思うので気にしないことにします
単純なバグでした
size_t が64bit前提の部分があったのと、
非常に恥ずかしいですが以下のような動作不定なコードがありました
a->data[i++] = b->data[i] + carry;
私のローカル環境だとたまたま動いていたようです
intが16bitだとまだヤバそうですが、
16bit環境で動かすことはないと思うので気にしないことにします
899デフォルトの名無しさん (ワッチョイ 4a8d-2km2)
2018/08/11(土) 23:47:51.76ID:VKOHvb3S0900デフォルトの名無しさん (ワッチョイ 0b50-2km2)
2018/08/11(土) 23:56:09.61ID:N9ICkOCi0901デフォルトの名無しさん (ワッチョイ 5f81-2km2)
2018/08/12(日) 00:23:34.17ID:BxiB5wa+0 >>898
ideoneだと100万ちょっと下でRuntimeErrorで途中でとまってるぽいね
ideoneだと100万ちょっと下でRuntimeErrorで途中でとまってるぽいね
902デフォルトの名無しさん (アウアウエー Sac2-+AzL)
2018/08/12(日) 07:44:42.21ID:P7wTPSJQa 蛇とJSとアセンブラ少しかじったんだけどCの効率的な勉強法ある?
主に蛇のチューニングと、これから勉強する予定なんだけど組み込み用マイコンのプログラムを書くために使う
小型のドローンもどきにのせたマイコンに、学習済みパターンをのせて動作制御したい
主に蛇のチューニングと、これから勉強する予定なんだけど組み込み用マイコンのプログラムを書くために使う
小型のドローンもどきにのせたマイコンに、学習済みパターンをのせて動作制御したい
903デフォルトの名無しさん (ワッチョイ 0b50-+oCX)
2018/08/12(日) 07:46:52.98ID:3JJNsMDc0 蛇?
904デフォルトの名無しさん (アウアウエー Sac2-+AzL)
2018/08/12(日) 07:47:28.70ID:P7wTPSJQa ぱいそん
905デフォルトの名無しさん (ワッチョイ 0b50-+oCX)
2018/08/12(日) 07:52:36.70ID:3JJNsMDc0 アセンブラをかじったのならCの習得は速そう
組み込みマイコンはどんなやつ?
組み込みマイコンはどんなやつ?
906デフォルトの名無しさん (アウアウエー Sac2-+AzL)
2018/08/12(日) 07:57:10.98ID:P7wTPSJQa 聞いといて申し訳ないんだけど全然知らないんだよね門外漢で
シンプリンク?とか言うやつでいいかなと思ってるけど、種類により出来ること出来ないことも分からない
シンプリンク?とか言うやつでいいかなと思ってるけど、種類により出来ること出来ないことも分からない
907デフォルトの名無しさん (ワッチョイ 0b50-+oCX)
2018/08/12(日) 08:08:39.25ID:3JJNsMDc0 文法をざっくり本とかで覚えたらあとは実践
高速化なら具体例を提示すれば私がアドバイスしますよ
高速化する場合はクリティカルポイントを絞ってから
時間がかからない所は高速化せずにそのままにしておくこと
アルゴリズムや式など、
上位の改良の方が高速化に寄与しやすいので
まずは上の方から考えること
下を高速化することで上が見にくくなって上の改良を妨げるようじゃ本末転倒なので
高速化なら具体例を提示すれば私がアドバイスしますよ
高速化する場合はクリティカルポイントを絞ってから
時間がかからない所は高速化せずにそのままにしておくこと
アルゴリズムや式など、
上位の改良の方が高速化に寄与しやすいので
まずは上の方から考えること
下を高速化することで上が見にくくなって上の改良を妨げるようじゃ本末転倒なので
908デフォルトの名無しさん (ワッチョイ 0b50-+oCX)
2018/08/12(日) 08:10:55.02ID:3JJNsMDc0909デフォルトの名無しさん (アウアウエー Sac2-+AzL)
2018/08/12(日) 08:15:31.91ID:P7wTPSJQa910デフォルトの名無しさん (ワッチョイ c6e7-AlRe)
2018/08/12(日) 08:25:40.14ID:El938M/O0 アルゴリズムなど分からないですが、プログラムが出来るようになりますか?
911デフォルトの名無しさん (ワッチョイ 9e01-2km2)
2018/08/12(日) 08:40:26.57ID:2Xoj+DoI0 >>909
ISBN 4-320-02692-6
ISBN 4-320-02692-6
912デフォルトの名無しさん (ワッチョイ 0b23-BtOx)
2018/08/12(日) 09:27:40.23ID:eabwfPDR0 >>909
苦しんで覚えるC言語
https://9cguide.appspot.com
書籍版:ISBN 978-4798030142
>>911の本は古い記法だったはずだから初学者向けではないと思う
苦しんで覚えるC言語
https://9cguide.appspot.com
書籍版:ISBN 978-4798030142
>>911の本は古い記法だったはずだから初学者向けではないと思う
913デフォルトの名無しさん (ワッチョイ 9e01-2km2)
2018/08/12(日) 09:36:27.44ID:2Xoj+DoI0 古い記法ってこれか?
main(argc, argv)
char **argv;
{
int i 0;
while (i < argc) printf("%s ", argv[i =+ 1]);
return (0);
}
main(argc, argv)
char **argv;
{
int i 0;
while (i < argc) printf("%s ", argv[i =+ 1]);
return (0);
}
914デフォルトの名無しさん (ブーイモ MM4f-oNxq)
2018/08/12(日) 10:04:57.52ID:sdNRpf8zM >>911
K&Rって言えよ。余計わかりにくい。
>>909
K&Rは「既にプログラミングできる人がCの文法を覚える用」だから、本当に最小セットしか乗ってない。
ただ、それでいい人=上級者からは絶賛されてる。彼らにとってはいわゆる入門書は冗長すぎるから。
十分にPythonと『アセンブラ』を使え、文法だけ知ればいけるのなら、K&Rはすごくいい。
PythonやJS等の上級言語しか使ったことなく、ポインタって何?なら、
殆どの人はポインタで躓くので、K&Rだけではかなり厳しいと思う。
アセンブラのインデックスレジスタがポインタそのものなのだが、ピンと来るか?
ピンと来るなら、まずK&R買って、だめなら入門書でいいと思う。
意味不明だと思うのなら、最初から入門書を買え。
K&Rって言えよ。余計わかりにくい。
>>909
K&Rは「既にプログラミングできる人がCの文法を覚える用」だから、本当に最小セットしか乗ってない。
ただ、それでいい人=上級者からは絶賛されてる。彼らにとってはいわゆる入門書は冗長すぎるから。
十分にPythonと『アセンブラ』を使え、文法だけ知ればいけるのなら、K&Rはすごくいい。
PythonやJS等の上級言語しか使ったことなく、ポインタって何?なら、
殆どの人はポインタで躓くので、K&Rだけではかなり厳しいと思う。
アセンブラのインデックスレジスタがポインタそのものなのだが、ピンと来るか?
ピンと来るなら、まずK&R買って、だめなら入門書でいいと思う。
意味不明だと思うのなら、最初から入門書を買え。
915デフォルトの名無しさん (ワッチョイ cab3-AKsU)
2018/08/12(日) 10:22:27.82ID:sFpP4hR50916デフォルトの名無しさん (アウアウエー Sac2-+AzL)
2018/08/12(日) 10:28:59.49ID:P7wTPSJQa ありがとう
とりあえず苦Cは確定で、メインとしてK&R 使えるか本屋で見てくる
正直上級者どころか初心者を脱したかどうかレベルだから合わないかもだが
数学でチューリングマシンがーって机上の勉強やってたからかアセンブラはすんなりいった
行けそうだったらK&R使ってみる
てことで本屋行ってくる
とりあえず苦Cは確定で、メインとしてK&R 使えるか本屋で見てくる
正直上級者どころか初心者を脱したかどうかレベルだから合わないかもだが
数学でチューリングマシンがーって机上の勉強やってたからかアセンブラはすんなりいった
行けそうだったらK&R使ってみる
てことで本屋行ってくる
917デフォルトの名無しさん (スップ Sdea-+oCX)
2018/08/12(日) 11:20:48.05ID:1gNSypiFd チューリングマシンは数学板の巨大数スレッドで
よく話題にあがるので
ご教授しに来ていただけるとうれしいです
よく話題にあがるので
ご教授しに来ていただけるとうれしいです
918デフォルトの名無しさん (ブーイモ MM4f-oNxq)
2018/08/12(日) 11:36:54.26ID:zEU3SQsmM >>916
> 数学でチューリングマシンがーって机上の勉強やってたからかアセンブラはすんなりいった
これって理論畑から行くとチューリングマシンがプログラミングより先に来るんか?
正直、それが何の役に立つのかはよく分からんが…
> 数学でチューリングマシンがーって机上の勉強やってたからかアセンブラはすんなりいった
これって理論畑から行くとチューリングマシンがプログラミングより先に来るんか?
正直、それが何の役に立つのかはよく分からんが…
919デフォルトの名無しさん (スップ Sdea-+oCX)
2018/08/12(日) 11:45:51.35ID:1gNSypiFd コンピューター言語で記述出来る事の限界がわかる
実際のコーディング技術はあまり関係ないと思う
実際のコーディング技術はあまり関係ないと思う
920デフォルトの名無しさん (スップ Sdea-+oCX)
2018/08/12(日) 11:48:28.53ID:1gNSypiFd 全ての命令に、次に実行する命令のアドレスを指定出来るようなCPUがあるが
これはちょっと近いか
これはちょっと近いか
921デフォルトの名無しさん (ブーイモ MM4f-oNxq)
2018/08/12(日) 12:31:18.04ID:zEU3SQsmM >>919
それって自然言語に対してって事?
なら逆にチューリングマシンの範囲を超える事象って何?
単純に言えば、それは未来永劫今の構造のCPUでは無理ってことになるはずだが、
そんな分野があるのか?
それって自然言語に対してって事?
なら逆にチューリングマシンの範囲を超える事象って何?
単純に言えば、それは未来永劫今の構造のCPUでは無理ってことになるはずだが、
そんな分野があるのか?
922デフォルトの名無しさん (スップ Sdea-+oCX)
2018/08/12(日) 14:06:00.94ID:1gNSypiFd >>921
ある
ある
923デフォルトの名無しさん (スップ Sdea-+oCX)
2018/08/12(日) 14:09:23.49ID:1gNSypiFd プログラムの停止判定とか
乱数生成とか
非常に増加量の大きな関数とか
乱数生成とか
非常に増加量の大きな関数とか
924デフォルトの名無しさん (スププ Sdea-mlTV)
2018/08/12(日) 14:17:10.15ID:BCWcLjTed P≠NP問題をご存知ない?
925デフォルトの名無しさん (スップ Sdea-+oCX)
2018/08/14(火) 09:46:10.53ID:KzkkOfFYd926デフォルトの名無しさん (スプッッ Sd8a-J+gX)
2018/08/15(水) 06:16:23.73ID:fPb+tE65d Java屋なんですけど自己啓発のために学生時代以来のCを夏休みに勉強しようと思ってます
開発環境のオススメを教えてください
自分が思いつくところでは…
・Vimとgcc
・VScode
・eclipse
こんな所ですが皆さんどうされてますか?
MacもWindowsも両方手元にはあります
開発環境のオススメを教えてください
自分が思いつくところでは…
・Vimとgcc
・VScode
・eclipse
こんな所ですが皆さんどうされてますか?
MacもWindowsも両方手元にはあります
927デフォルトの名無しさん (ワッチョイ 0b50-+oCX)
2018/08/15(水) 08:44:48.25ID:NFQKBcxz0 開発環境なんて何でもいいから
さっさと勉強しなさい
さっさと勉強しなさい
928デフォルトの名無しさん (ワッチョイ cab3-AKsU)
2018/08/15(水) 09:12:26.87ID:o8lgioa70 >>926
組み込みとかで特定のコンパイラ使うとかならVSCodeでいいと思うが、そうでないなら普通にVisual Studioでいいと思う
組み込みとかで特定のコンパイラ使うとかならVSCodeでいいと思うが、そうでないなら普通にVisual Studioでいいと思う
929デフォルトの名無しさん (ワッチョイ 4a12-oNxq)
2018/08/15(水) 11:22:04.73ID:mhFNubNm0 IDEが無い時代の開発を体験してみるという修行をしたいのならテキストエディタとコマンドラインだけでやる
これは啓発効果が高い
これは啓発効果が高い
930デフォルトの名無しさん (ワッチョイ 8a73-/icg)
2018/08/15(水) 12:03:22.86ID:YVF6Ac/t0 俺は未だにターミナルとエディター
これ以上の快適さを知らないし知るつもりもない
これ以上の快適さを知らないし知るつもりもない
931デフォルトの名無しさん (ワッチョイ cab3-AKsU)
2018/08/15(水) 12:10:42.58ID:o8lgioa70 別にいいんじゃね?
ターミナル最高だからお前らも使え!
とか言わなきゃ
ターミナル最高だからお前らも使え!
とか言わなきゃ
932デフォルトの名無しさん (スップ Sdea-+oCX)
2018/08/15(水) 12:11:49.41ID:PVw+eqmQd EDLIN最高
933デフォルトの名無しさん (ワッチョイ ca9f-QP/R)
2018/08/15(水) 12:43:52.85ID:1lipv2et0 Vimと言いたいところだが最近はもっぱらVSCodeばかり
934デフォルトの名無しさん (ワッチョイ 9e01-2km2)
2018/08/15(水) 14:46:36.23ID:bAZUebux0 俺は超初心者時代をTurbo Cで、
中級以後はviとccでおぼえた
ただし常に他の環境も色々使ってみてた
中級以後はviとccでおぼえた
ただし常に他の環境も色々使ってみてた
935デフォルトの名無しさん (スッップ Sdea-mlTV)
2018/08/15(水) 14:58:02.44ID:1MwRKcc7d VisualStudioで良いとか口が裂けても言えねぇよ
MSVCはこのご時世ですらpure CはC89だぞ?
初心者で知らないならともかくこういうスレでVSをCの環境として勧める奴何者だよ
MSVCはこのご時世ですらpure CはC89だぞ?
初心者で知らないならともかくこういうスレでVSをCの環境として勧める奴何者だよ
936デフォルトの名無しさん (アウアウカー Sacb-QP/R)
2018/08/15(水) 15:30:10.79ID:NhDv8JXAa gccもclangもインテルコンパイラーもc99さえ100%準拠してないだろ
何でmsvcだけ槍玉あげてんの?
何でmsvcだけ槍玉あげてんの?
937デフォルトの名無しさん (スップ Sdea-+oCX)
2018/08/15(水) 15:44:09.01ID:PVw+eqmQd C89/90から覚えれば良い
あとはおまけ
Cが使われるのなんて今時組み込みくらいだ
組み込み用コンパイラだといまだC89/90が多い
あとはおまけ
Cが使われるのなんて今時組み込みくらいだ
組み込み用コンパイラだといまだC89/90が多い
938デフォルトの名無しさん (スップ Sdea-+oCX)
2018/08/15(水) 15:45:48.23ID:PVw+eqmQd いろんなコンパイラ、いろんな環境を使って見るのも良い
8bit、RAM64バイトみたいなチープな環境とか
8bit、RAM64バイトみたいなチープな環境とか
939デフォルトの名無しさん (アウアウウー Sa2f-02HX)
2018/08/15(水) 15:46:05.90ID:cYF20yina いや、組込開発環境なんてgccばっかりだからC99が標準だよ。
まあ妙に保守的なひとがいて古い文法を強制するんだけど…
まあ妙に保守的なひとがいて古い文法を強制するんだけど…
940デフォルトの名無しさん (スップ Sdea-+oCX)
2018/08/15(水) 15:48:33.27ID:PVw+eqmQd 組み込みに標準なんて無い
各社いろいろだ
各社いろいろだ
941デフォルトの名無しさん (ワッチョイ 1b9f-x/tb)
2018/08/15(水) 15:59:23.74ID:BN2igdfy0 そういやLinuxとかのCUIでTurboCみたいな環境ってあるのかな?
あると外部からsshでログインしている時に使えて良いのだが。
あると外部からsshでログインしている時に使えて良いのだが。
942デフォルトの名無しさん (アウアウウー Sa2f-02HX)
2018/08/15(水) 16:22:31.09ID:fRV95OwVa943デフォルトの名無しさん (スップ Sdea-+oCX)
2018/08/15(水) 16:28:18.26ID:PVw+eqmQd >>942
細かい表記とかよりももっと大きな事を気にした方がいいぞ
細かい表記とかよりももっと大きな事を気にした方がいいぞ
944デフォルトの名無しさん (ワッチョイ 1b9f-x/tb)
2018/08/15(水) 17:03:06.47ID:BN2igdfy0945デフォルトの名無しさん (アウアウウー Sa2f-02HX)
2018/08/15(水) 17:04:43.75ID:hzdQdpXra >>943
大きいことって、15年前の環境でコンパイルできることだろ?
大きいことって、15年前の環境でコンパイルできることだろ?
946デフォルトの名無しさん (ワッチョイ 0b93-6ZXu)
2018/08/15(水) 17:13:57.27ID:2ovpzQjs0 vimでエディットして :make でビルド、
エラーや警告は quickfix 機能でシラミ潰し。
強く薦める気はないし、他の人に使い方を教えるほどの技量はないけど、
個人的にはこの組み合わせが便利だわ。
errorformat オプションを設定すれば、どんなコンパイラや変換ツールでも
ソースファイルのエラー箇所を呼び出してくれるからね。
エラーや警告は quickfix 機能でシラミ潰し。
強く薦める気はないし、他の人に使い方を教えるほどの技量はないけど、
個人的にはこの組み合わせが便利だわ。
errorformat オプションを設定すれば、どんなコンパイラや変換ツールでも
ソースファイルのエラー箇所を呼び出してくれるからね。
947デフォルトの名無しさん (ワッチョイ 9ff2-2km2)
2018/08/15(水) 17:24:36.77ID:/SQznhgr0 C99じゃないと困ることなんてそんなにないしな。わざわざC++と互換性ないコード書くメリットもない。
948デフォルトの名無しさん (ワッチョイ de23-BtOx)
2018/08/15(水) 17:36:19.98ID:tGPywhyN0 C89だとforの初期化のときに新しく変数を宣言できないじゃん
949デフォルトの名無しさん (ワッチョイ 9e01-2km2)
2018/08/15(水) 17:48:50.30ID:bAZUebux0 コンパイラは案件による、それだけ
C99を使う案件でC89がどうたらぬかすのはただのアホ
逆もまたしかり
C99を使う案件でC89がどうたらぬかすのはただのアホ
逆もまたしかり
950デフォルトの名無しさん (アウアウウー Sa2f-02HX)
2018/08/15(水) 17:52:57.43ID:cYF20yina C++とCだとファイル分けるでしょ?
951デフォルトの名無しさん (ワッチョイ 9ff2-2km2)
2018/08/15(水) 17:56:50.28ID:/SQznhgr0 そういう意味じゃたしかに、C99規格に入れられたいくつかの機能は便利だ。
なので訂正する↓
msvcがC99準拠じゃないからといって困ることなんてそんなにないしな。
なので訂正する↓
msvcがC99準拠じゃないからといって困ることなんてそんなにないしな。
952デフォルトの名無しさん (ブーイモ MM27-vObg)
2018/08/15(水) 17:58:30.01ID:/kIK810yM 自己啓発の勉強ならC89で困ることとかなんかあるんだろうか?
953デフォルトの名無しさん (ワッチョイ 0b93-6ZXu)
2018/08/15(水) 17:59:04.25ID:2ovpzQjs0 //コメントと、どこでも変数宣言、がダメってのは辛いのよね。
エラーを直すのは簡単だけど、いかにもバカバカしい作業で。
エラーを直すのは簡単だけど、いかにもバカバカしい作業で。
954デフォルトの名無しさん (ワッチョイ 63e7-AujL)
2018/08/15(水) 18:00:49.89ID:PyNbth/v0 他人に教えるなら標準は尊重しよう
955デフォルトの名無しさん (ブーイモ MM27-oNxq)
2018/08/15(水) 19:26:07.57ID:kg5weZ+NM VSでC++環境使ってC文法だけで組めばよくね?
それ以前に環境なんてどれでもいい、とは思うが。
JavaでEclipseに慣れてるのならそれもありだと思うよ。
環境で躓くこと自体が無駄だよ。
そもそもJava分かっててCの練習なら、ポインタと変数の寿命管理だけだろ。
GUIでなければ、寿命管理は全部入れ子の構造化プログラミング徹底で済んでしまうし、今時CでGUIもない。
結果的にポインタだけなのだから、環境なんて何でもいいと思うが。
その上で、現場で古い文法を使う必要があるのなら、その時に慣れればいいだけで。
環境なんて全くどれでもいいだろ、これなら。
emacs毛嫌いしている奴がいるのもよく分からんが。
Ctrl+Fとか覚えたくなければ、カーソルキー使えばいいだけだろ。
emacs使いでも、よほどコアな奴でない限り、EmacsLispなんて書いてないぞ。俺も書けんし。
それ以前に環境なんてどれでもいい、とは思うが。
JavaでEclipseに慣れてるのならそれもありだと思うよ。
環境で躓くこと自体が無駄だよ。
そもそもJava分かっててCの練習なら、ポインタと変数の寿命管理だけだろ。
GUIでなければ、寿命管理は全部入れ子の構造化プログラミング徹底で済んでしまうし、今時CでGUIもない。
結果的にポインタだけなのだから、環境なんて何でもいいと思うが。
その上で、現場で古い文法を使う必要があるのなら、その時に慣れればいいだけで。
環境なんて全くどれでもいいだろ、これなら。
emacs毛嫌いしている奴がいるのもよく分からんが。
Ctrl+Fとか覚えたくなければ、カーソルキー使えばいいだけだろ。
emacs使いでも、よほどコアな奴でない限り、EmacsLispなんて書いてないぞ。俺も書けんし。
956デフォルトの名無しさん (ワッチョイ 1b9f-x/tb)
2018/08/15(水) 19:29:59.75ID:BN2igdfy0 viのキーバインドになってないと体が覚えるまで面倒
957デフォルトの名無しさん (ブーイモ MM27-oNxq)
2018/08/15(水) 19:42:07.19ID:kg5weZ+NM キーバインド自体は対応させるELが有ってもおかしく無いと思うけど。
(emacs教団の入会基準があのキーバインドに慣れることでも無かろう)
むしろ編集モード/閲覧モードを持つviの方がエディタとしては異端だ。
他の通常エディタに慣れたらviは無理だと思うが。
とはいえ、どっちも使えるって奴も聞かないので、
vi派なら今更emacsに慣れる必要は無いと思うが。
同様に、JavaでEclipseに慣れてるのなら、VSに慣れる必要もないし、そのままやった方がいいと思うよ。
何も知らなくて環境の立ち上げすら面倒なら、
VSならインストールさえすればクリックでビルド&デバッグ実行まで出来るから楽ってだけで。
(emacs教団の入会基準があのキーバインドに慣れることでも無かろう)
むしろ編集モード/閲覧モードを持つviの方がエディタとしては異端だ。
他の通常エディタに慣れたらviは無理だと思うが。
とはいえ、どっちも使えるって奴も聞かないので、
vi派なら今更emacsに慣れる必要は無いと思うが。
同様に、JavaでEclipseに慣れてるのなら、VSに慣れる必要もないし、そのままやった方がいいと思うよ。
何も知らなくて環境の立ち上げすら面倒なら、
VSならインストールさえすればクリックでビルド&デバッグ実行まで出来るから楽ってだけで。
958デフォルトの名無しさん (スップ Sdea-+oCX)
2018/08/15(水) 20:00:10.97ID:PVw+eqmQd いろいろ使いたければC++を使えば良いんだよ
new delete 例外 stl を使わなくてもCより便利だろ
C++じゃなくてわざわざCを覚えたいって言うからには
何か理由があるんだろう
new delete 例外 stl を使わなくてもCより便利だろ
C++じゃなくてわざわざCを覚えたいって言うからには
何か理由があるんだろう
959デフォルトの名無しさん (ブーイモ MM27-oNxq)
2018/08/15(水) 20:08:35.17ID:kg5weZ+NM ちなみに、CとC++を明確に区別してるのって、C使いとC++使いだけだろ。
他はだいたいC/C++扱いだし、926もそうだと思うが。
他はだいたいC/C++扱いだし、926もそうだと思うが。
960デフォルトの名無しさん (アウアウウー Sa2f-02HX)
2018/08/15(水) 20:21:36.71ID:53ohHsaIa まあでかいプログラムはC++で書いてれば良かったと思うようになるよ。
でもC++で書かれたクソコードというのはCのそれの比ではないので、品質のコントロールは問題になる。
でもC++で書かれたクソコードというのはCのそれの比ではないので、品質のコントロールは問題になる。
961デフォルトの名無しさん (ワッチョイ 9ff2-2km2)
2018/08/15(水) 20:22:57.45ID:/SQznhgr0 C99はC++の拡張を取り入れるんならC++98と互換性が取れるところで一旦〆れば
よかったものを、なんで要らん独自性を出したかねぇ。
よかったものを、なんで要らん独自性を出したかねぇ。
962デフォルトの名無しさん (スップ Sdea-+oCX)
2018/08/15(水) 20:24:28.79ID:PVw+eqmQd 勉強段階なら一緒に覚えれば良いよ
自然といろんな流儀を覚える
自然といろんな流儀を覚える
963デフォルトの名無しさん (ブーイモ MM27-oNxq)
2018/08/15(水) 20:27:16.78ID:kg5weZ+NM >>960
> でもC++で書かれたクソコードというのはCのそれの比ではない
うむ、それは言えてる。
文法が簡易すぎてC++的意味不明な回りくどい糞コードを書けないからなのか、
それともこの簡易文法だけで戦っていける奴らは本質的に鍛えられるからなのか。
> でもC++で書かれたクソコードというのはCのそれの比ではない
うむ、それは言えてる。
文法が簡易すぎてC++的意味不明な回りくどい糞コードを書けないからなのか、
それともこの簡易文法だけで戦っていける奴らは本質的に鍛えられるからなのか。
964デフォルトの名無しさん (ワッチョイ 0b93-6ZXu)
2018/08/15(水) 20:28:43.25ID:2ovpzQjs0 わざわざ「C言語なら俺に聞け」スレッドで質問してるからには
C++ではないCに限定してるんじゃないか、と判断するのも合理的ではあるわね。
CとC++の両方を扱う初心者向けスレッドも別に存在するし。
もちろん >>926 の意図は投稿者自身のものだけど。
C++ではないCに限定してるんじゃないか、と判断するのも合理的ではあるわね。
CとC++の両方を扱う初心者向けスレッドも別に存在するし。
もちろん >>926 の意図は投稿者自身のものだけど。
965デフォルトの名無しさん (スップ Sdea-+oCX)
2018/08/15(水) 20:28:52.37ID:PVw+eqmQd C++の糞コードと言えばこれ
#define private public
#define private public
966デフォルトの名無しさん (ブーイモ MM27-oNxq)
2018/08/15(水) 20:28:53.66ID:kg5weZ+NM967デフォルトの名無しさん (スップ Sdea-+oCX)
2018/08/15(水) 20:30:15.51ID:PVw+eqmQd もう別の言語だよ
もちろん共通部分だけでも組めるけど
もちろん共通部分だけでも組めるけど
968デフォルトの名無しさん (スップ Sdea-+oCX)
2018/08/15(水) 20:38:11.04ID:PVw+eqmQd そういえば
コメントを // から /* */ にわざわざ変える人がいる
今まで何人か見た
そんな暇があったらさっさとコードを組め
コメントを // から /* */ にわざわざ変える人がいる
今まで何人か見た
そんな暇があったらさっさとコードを組め
969デフォルトの名無しさん (ブーイモ MM27-oNxq)
2018/08/15(水) 20:39:14.27ID:kg5weZ+NM >>965
それ、単純に通るか?
なおVC++/CLIではそこで手こずったことがある。
当初ほぼprivateで作っていたクラスを継承する必要が出てきて、
protectedとpublic等に変更したらコンパイラにさんざん文句言われて手こずった。
あれでC++の糞さを再認識した。本質的でないところで凄く引っかかる。
(VC++/CLIは意図的に文法を厳しくしているからというのもあるが)
それ、単純に通るか?
なおVC++/CLIではそこで手こずったことがある。
当初ほぼprivateで作っていたクラスを継承する必要が出てきて、
protectedとpublic等に変更したらコンパイラにさんざん文句言われて手こずった。
あれでC++の糞さを再認識した。本質的でないところで凄く引っかかる。
(VC++/CLIは意図的に文法を厳しくしているからというのもあるが)
970デフォルトの名無しさん (スップ Sdea-+oCX)
2018/08/15(水) 20:44:46.95ID:PVw+eqmQd 単純に通るか通らないかは環境や作りに依存する
わざわざ糞コードを披露するところが律儀だね
わざわざ糞コードを披露するところが律儀だね
971デフォルトの名無しさん (ブーイモ MM27-oNxq)
2018/08/15(水) 20:53:59.37ID:kg5weZ+NM あー、俺のコードが糞だったからってか?
しかし、当初継承無しで単独で使う予定だったクラスに対し、仕様変更で機能追加されたんだから致し方ないと思うが。
ただ、個人的にはpublic/private自体が不要、とは思っている。
JavaScriptはpublicしかなくて、当初「これでいいのか?」と思ったが、やってみたら全く問題ない。
外から使うときに中身なんて気にしたくないから、そもそもprivateなんて触りに行かない。
逆に、外から触りたい物をprivateにすることも間違っているし。
あれはいちいち書かなくとも自然と分かれ、それで全く問題ない。
(文法的にチェックするだけの意味しかない。まあそれを言えば型システム自体もそれに近いが)
しかし、当初継承無しで単独で使う予定だったクラスに対し、仕様変更で機能追加されたんだから致し方ないと思うが。
ただ、個人的にはpublic/private自体が不要、とは思っている。
JavaScriptはpublicしかなくて、当初「これでいいのか?」と思ったが、やってみたら全く問題ない。
外から使うときに中身なんて気にしたくないから、そもそもprivateなんて触りに行かない。
逆に、外から触りたい物をprivateにすることも間違っているし。
あれはいちいち書かなくとも自然と分かれ、それで全く問題ない。
(文法的にチェックするだけの意味しかない。まあそれを言えば型システム自体もそれに近いが)
972デフォルトの名無しさん (スップ Sdea-+oCX)
2018/08/15(水) 21:00:35.67ID:PVw+eqmQd じゃあclassを使わないで
全てstructで書けば良いよ
public protected privateは一切不要だから
全てstructで書けば良いよ
public protected privateは一切不要だから
973デフォルトの名無しさん (ワッチョイ 8a73-/icg)
2018/08/15(水) 21:06:02.60ID:YVF6Ac/t0 VSCodeのVimプラグイン使いづらいんだよな
SublimeTextのVimプラグインみたいに両方のエディタのいいとこ取りみたいなキーバインディングだったらいいのに
SublimeTextのVimプラグインみたいに両方のエディタのいいとこ取りみたいなキーバインディングだったらいいのに
974デフォルトの名無しさん (ワッチョイ 8a73-/icg)
2018/08/15(水) 21:08:10.50ID:YVF6Ac/t0 リロードしてなかったら既にエディタの話題が終わってて浦島みたいな気分だ
ハゲが
ハゲが
975さまよえる蟻人間 ◆T6xkBnTXz7B0 (スププ Sdea-cF9D)
2018/08/15(水) 21:18:55.80ID:XbGFS7Sjd はーげん脱
976デフォルトの名無しさん (ブーイモ MM27-oNxq)
2018/08/15(水) 22:46:38.48ID:UO318XzAM >>972
確かに俺はそれでいいが、
それだと「出来る限りprivateにすべき」教の信者から迫害を受けるのがウザイ。
これはC++よりもJavaの方が酷いように思うが。
この辺の文法的宗教戦争がCにまるでないのはメリットかも、とは思うよ。
private/publicに関してはデメリットの方が多い気がする。
なお、型もだ。動的型ならC++のテンプレートの大半は書かなくて済む。
無駄に手間を増やしている。動的型の方が書くのは快適だ。
あとはtypoを完全に検出れば、といったところか。
とはいえ、速度を追求するC/C++の世界には馴染まないが。
確かに俺はそれでいいが、
それだと「出来る限りprivateにすべき」教の信者から迫害を受けるのがウザイ。
これはC++よりもJavaの方が酷いように思うが。
この辺の文法的宗教戦争がCにまるでないのはメリットかも、とは思うよ。
private/publicに関してはデメリットの方が多い気がする。
なお、型もだ。動的型ならC++のテンプレートの大半は書かなくて済む。
無駄に手間を増やしている。動的型の方が書くのは快適だ。
あとはtypoを完全に検出れば、といったところか。
とはいえ、速度を追求するC/C++の世界には馴染まないが。
977デフォルトの名無しさん (ワッチョイ 1b9f-x/tb)
2018/08/15(水) 23:04:52.90ID:BN2igdfy0 Kotlinもよろしく
978デフォルトの名無しさん (アウアウウー Sa2f-02HX)
2018/08/15(水) 23:05:44.66ID:B3Li9vMqa まあ実装とインターフェースを区別する心掛けが大切なのであって、privateにして満足したらあかんとは思うよ。
979デフォルトの名無しさん (ブーイモ MM27-oNxq)
2018/08/15(水) 23:54:13.35ID:1IcV1KLeM >>978
というよりJavaは「粗結合教」「イテレータ教」かな?
見せなくて済むなら見せるなでインタフェースを無理に細くしているのと、
抽象化する必要がない場合もとりあえずイテレータにしてるだろ。
C++もナマポ撲滅の為に無駄にイテレータを導入しているから、この点は似ているが。
Cはここら辺の宗教戦争がない代わりに、どうしても抽象レベルが上がりにくく、
低レベルコードをひたすら書く羽目になるのが欠点か。
というよりJavaは「粗結合教」「イテレータ教」かな?
見せなくて済むなら見せるなでインタフェースを無理に細くしているのと、
抽象化する必要がない場合もとりあえずイテレータにしてるだろ。
C++もナマポ撲滅の為に無駄にイテレータを導入しているから、この点は似ているが。
Cはここら辺の宗教戦争がない代わりに、どうしても抽象レベルが上がりにくく、
低レベルコードをひたすら書く羽目になるのが欠点か。
980デフォルトの名無しさん (ワッチョイ db9e-JHtc)
2018/08/16(木) 01:31:46.14ID:IiF9TGTT0 どの言語でも、基本は疎結合。
スパゲッティ・泥団子などの密結合は、皆大嫌い!
こっちをいじれば、あっちが変わり、
あっちをいじれば、こっちが変わりw
スパゲッティ・泥団子などの密結合は、皆大嫌い!
こっちをいじれば、あっちが変わり、
あっちをいじれば、こっちが変わりw
981デフォルトの名無しさん (ワッチョイ 0f81-ipLS)
2018/08/16(木) 01:50:41.92ID:HU9VHWiC0 クラスはないがモジュール分割くらいは普通にするだろう
982デフォルトの名無しさん (スップ Sdbf-5dga)
2018/08/16(木) 03:27:52.80ID:zyXyJDDmd >>973
激しく同意
激しく同意
983デフォルトの名無しさん (ワッチョイ 0f01-ipLS)
2018/08/16(木) 07:14:50.63ID:yO9+GMaw0 イテレータがナマポ撲滅のため??
984デフォルトの名無しさん (アウアウカー Sa0f-8Gnp)
2018/08/16(木) 07:39:41.31ID:IWf/QMdza ここの人たちはリーナスさんのC++批判はどう思ってる?
985デフォルトの名無しさん (ワッチョイ 9fb3-GI1+)
2018/08/16(木) 07:39:43.44ID:t6OwQxX10 相手するなよ…
986デフォルトの名無しさん (ワッチョイ 0f01-ipLS)
2018/08/16(木) 09:33:11.42ID:yO9+GMaw0 俺もC++には気に入らんところがいくつかあって
リーナスの意見とは一致するところが多い
まず筆頭のクソが例外
次いでnewのコレジャナイ感
classとstructのしょーもなすぎる違い
リーナスの意見とは一致するところが多い
まず筆頭のクソが例外
次いでnewのコレジャナイ感
classとstructのしょーもなすぎる違い
987デフォルトの名無しさん (スップ Sdbf-V6hB)
2018/08/16(木) 13:12:37.52ID:KNhd5GXjd >>986
C♯さんディスってるんですか?
C♯さんディスってるんですか?
988デフォルトの名無しさん (ワッチョイ ef9e-ipLS)
2018/08/16(木) 17:25:51.84ID:w2NRgS+k0 goにしよう
989デフォルトの名無しさん (JP 0H0f-Iyvk)
2018/08/16(木) 17:56:37.44ID:sGlIzl1XH goto
990デフォルトの名無しさん (ワッチョイ 9f73-55FN)
2018/08/16(木) 18:29:44.72ID:GnkF98h40 gotogo2
991さまよえる蟻人間 ◆T6xkBnTXz7B0 (スププ Sdbf-j8jN)
2018/08/16(木) 18:34:35.64ID:x8SR5C2Sd 次スレ
992デフォルトの名無しさん (ブーイモ MMcf-c3w5)
2018/08/16(木) 22:32:33.50ID:+7r3fHyOM >>984
俺はかなり賛同。言いたいことは分かる。
ただ、Cはクラスとラムダを導入すべき、それからリテラルをもっと充実させて、複合代入も欲しい。
これらがあれば、ずいぶん楽に書けるようになるはず。
>>983
イテレータの必然性なんてほぼ無いだろ。
様々なコンテナに対応する必要があれば、列挙を抽象化する必要があるが、まずこれがほぼ無い。
次に、インタフェースを揃えたいだけなら、酷い話「forで回せる」でも揃ってしまう。
そしてクラス内のコンテナを外部から直接イテレートする必要もほぼ無い。(publicにイテレータを見せる必要がない)
イテレータが必要なのって、汎用コンテナを作るときくらいだろ。
イテレータは抽象化の分かりやすい例だから取り上げられているだけで、実用性は皆無だと思うぜ。
それよりforEachとかの方が100倍使える。
Matz「俺はxxx[i]なんていちいち書きたくないんだよ」の方が分かる。
抽象化もコストがかかるから、必要ない抽象化はやるべきではない。
同様に、疎結合化もコストがかかるから、必要ない疎結合化はやるべきではない。
Cの場合は一応、ファイル内は密結合、ファイル間は疎結合というコンセプトだろ。
(実際それが適用されているかはともかく)
まあこれで合ってると思うぜ。
同様にクラス言語もクラス内は密結合、クラス間は疎結合のはずだが、
Javaの場合はクラス内も疎結合にしようとして細切れにするのが基本だろ。
そういう文化もありだとは思うが。
(FizBuzzのJava実装でイテレータ導入して悪ノリしてたのがあったろ。あれ)
疎結合の方がいいのは事実なのだけど、結果的にコード量が増える。
それで読む手間が増えるようなら意味無いだろ。
自分が読んで一番楽なところでバランスすればいいのだけど、それは俺はC程度かと思う。
ただこれは俺がC出身だからであって、Java出身ならあの細切れ状態が合うのかもしれないが。
(Javaは、テンプレートがない分、多態の選択肢が狭くて、結果的にあの文化なのだとは思う)
俺はかなり賛同。言いたいことは分かる。
ただ、Cはクラスとラムダを導入すべき、それからリテラルをもっと充実させて、複合代入も欲しい。
これらがあれば、ずいぶん楽に書けるようになるはず。
>>983
イテレータの必然性なんてほぼ無いだろ。
様々なコンテナに対応する必要があれば、列挙を抽象化する必要があるが、まずこれがほぼ無い。
次に、インタフェースを揃えたいだけなら、酷い話「forで回せる」でも揃ってしまう。
そしてクラス内のコンテナを外部から直接イテレートする必要もほぼ無い。(publicにイテレータを見せる必要がない)
イテレータが必要なのって、汎用コンテナを作るときくらいだろ。
イテレータは抽象化の分かりやすい例だから取り上げられているだけで、実用性は皆無だと思うぜ。
それよりforEachとかの方が100倍使える。
Matz「俺はxxx[i]なんていちいち書きたくないんだよ」の方が分かる。
抽象化もコストがかかるから、必要ない抽象化はやるべきではない。
同様に、疎結合化もコストがかかるから、必要ない疎結合化はやるべきではない。
Cの場合は一応、ファイル内は密結合、ファイル間は疎結合というコンセプトだろ。
(実際それが適用されているかはともかく)
まあこれで合ってると思うぜ。
同様にクラス言語もクラス内は密結合、クラス間は疎結合のはずだが、
Javaの場合はクラス内も疎結合にしようとして細切れにするのが基本だろ。
そういう文化もありだとは思うが。
(FizBuzzのJava実装でイテレータ導入して悪ノリしてたのがあったろ。あれ)
疎結合の方がいいのは事実なのだけど、結果的にコード量が増える。
それで読む手間が増えるようなら意味無いだろ。
自分が読んで一番楽なところでバランスすればいいのだけど、それは俺はC程度かと思う。
ただこれは俺がC出身だからであって、Java出身ならあの細切れ状態が合うのかもしれないが。
(Javaは、テンプレートがない分、多態の選択肢が狭くて、結果的にあの文化なのだとは思う)
994デフォルトの名無しさん (ワッチョイ 0f9e-5cEj)
2018/08/16(木) 23:37:52.43ID:fOCSKLtw0 C言語なら俺に聞け 147
https://mevius.5ch.net/test/read.cgi/tech/1534430162/
https://mevius.5ch.net/test/read.cgi/tech/1534430162/
995デフォルトの名無しさん (スップ Sdbf-V6hB)
2018/08/17(金) 02:02:24.00ID:itWjjCCsd >>994
乙なんだな
乙なんだな
996デフォルトの名無しさん (ワッチョイ 7b23-UvnI)
2018/08/17(金) 04:54:29.33ID:xjFqJl5K0 >>994
乙野郎!
乙野郎!
997デフォルトの名無しさん (ワッチョイ 0f01-ipLS)
2018/08/17(金) 07:30:57.69ID:TtX4VAeH0998デフォルトの名無しさん (ワッチョイ 9f73-55FN)
2018/08/17(金) 08:18:10.48ID:VdqNpuZ90 うめ
999デフォルトの名無しさん (ワッチョイ 9f73-55FN)
2018/08/17(金) 08:18:29.95ID:VdqNpuZ90 うめ
1000デフォルトの名無しさん (ワッチョイ 9f73-55FN)
2018/08/17(金) 08:18:59.69ID:VdqNpuZ90 1000
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 109日 3時間 31分 22秒
新しいスレッドを立ててください。
life time: 109日 3時間 31分 22秒
10021002
Over 1000Thread 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 【地震速報】青森県で震度6強 沿岸部に津波警報 ★5 [ぐれ★]
- 「日の丸にバツ印」掲げた大学生 あいまいな国旗損壊罪に「怖い」 The Mainichi [少考さん★]
- 高市内閣「支持」64%「不支持」19% NHK世論調査 ★2 [少考さん★]
- 【速報】気象庁がマグニチュード7.5に修正しました [ニョキニョキ★]
- 【音楽】BARBEE BOYS・KONTAが事故で四肢麻痺を公表、新体制で活動は継続 [少考さん★]
- 高市首相「多様なコメの増産を進める」 方針転換への懸念払拭狙いか ★2 [どどん★]
- 【高市速報】気象庁、後発地震注意情報を発表、運用開始後で初。対象地域では1週間程度同程度の地震が起こる可能.性 [931948549]
- ぺこーら、地震で同僚が次々配信を止めるなか強行し続けるので悪目立ちするwww [268244553]
- 巨大地震 [957955821]
- 何でデートでリュック背負って来たらダメなの?
- 🖐( -᷄,ὢ)知らないんで……
- 【🏡】岩手ビックウェーブ🏄うおおおおおおおおおおお🌊
