探検
0からの、超初心者C++相談室
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2018/11/12(月) 14:55:13.35ID:Tf74ZWQr 何にも知らない0からの出発、超初心者のためのC++相談室
201デフォルトの名無しさん
2020/12/12(土) 19:52:44.57ID:KTyXxWQ0 国会図書館は若い女性と、男性は老人が多かったです。
土曜日だからかもしれません。
資料のコピーは長蛇の列が出来ていました。
あの列で感染するんでしょうね。
女性のメガネ率は8割超えてました。
おそらくドクター持ちでしょうね。
土曜日だからかもしれません。
資料のコピーは長蛇の列が出来ていました。
あの列で感染するんでしょうね。
女性のメガネ率は8割超えてました。
おそらくドクター持ちでしょうね。
202デフォルトの名無しさん
2021/02/08(月) 19:09:45.85ID:UEWD7mIf m1 macbookでc言語始めるのには何が必要ですか?
c言語を始めるパッケージとかって売ってるんですか?
それともフリーソフトでダウンロード出来るんですか?
学校ではコマンドを打つところから始めたので、導入に関しては全く解りません。
c言語を始めるパッケージとかって売ってるんですか?
それともフリーソフトでダウンロード出来るんですか?
学校ではコマンドを打つところから始めたので、導入に関しては全く解りません。
203デフォルトの名無しさん
2021/02/08(月) 19:14:35.93ID:XD2vlsgg 0からのって感じ
良いねえ
良いねえ
205デフォルトの名無しさん
2021/02/08(月) 20:13:50.11ID:UEWD7mIf >>204
レスどうもです
gccほかググってみました
@エディタで入力
Aコンパイラで2進数へ変換(ここでgcc使用)
Bコマンドプロンプトで実行
これで合ってますか?
合ってるとすれば、エディタは何がいいんでしょうか?
レスどうもです
gccほかググってみました
@エディタで入力
Aコンパイラで2進数へ変換(ここでgcc使用)
Bコマンドプロンプトで実行
これで合ってますか?
合ってるとすれば、エディタは何がいいんでしょうか?
206蟻人間 ◆T6xkBnTXz7B0
2021/02/08(月) 20:21:45.01ID:ifT1d8uh207デフォルトの名無しさん
2021/02/08(月) 20:44:41.11ID:0fSH6U0R Linux なら、build-essential で、Ruby のRake でコンパイルする。
VSCode も使える
mruby の本も出た
Webで使えるmrubyシステムプログラミング入門、近藤宇智朗、2020/11
宇宙開発などの組み込み用、MicroPython, Lua, Squirrel の代替になる。
Ubuntu 18.04, C99 対応
人工衛星イザナギ・イザナミで、使っている
VSCode も使える
mruby の本も出た
Webで使えるmrubyシステムプログラミング入門、近藤宇智朗、2020/11
宇宙開発などの組み込み用、MicroPython, Lua, Squirrel の代替になる。
Ubuntu 18.04, C99 対応
人工衛星イザナギ・イザナミで、使っている
208デフォルトの名無しさん
2021/02/08(月) 21:24:52.07ID:mOpGK7eJ MacでもVSCode、gcc、terminalでええやんけ
209デフォルトの名無しさん
2021/02/08(月) 22:16:35.01ID:UEWD7mIf >>208
ありがとー
ありがとー
210デフォルトの名無しさん
2021/02/08(月) 22:35:42.15ID:UEWD7mIf 色々教えてもらってありがとう
でもなんかrubyから始める方が良さそうなのでそうします
でもなんかrubyから始める方が良さそうなのでそうします
211デフォルトの名無しさん
2021/02/08(月) 22:48:15.05ID:0fSH6U0R Mac で、Cをやる人なんているのか?
たいてい、Linux だろ
Macの機械語をもらっても、誰も動かせないw
たいてい、Linux だろ
Macの機械語をもらっても、誰も動かせないw
212デフォルトの名無しさん
2021/02/08(月) 22:48:56.13ID:YmxwiogA 一応Visual Studio Community for Mac
何てものもあるけどね
MacユーザーじゃないのでWindowsと同じように使えるのかどうかは知らんけどw
何てものもあるけどね
MacユーザーじゃないのでWindowsと同じように使えるのかどうかは知らんけどw
213デフォルトの名無しさん
2021/02/08(月) 22:52:50.26ID:ObgPii2R m1ではxcodeはだめなのかなあ
214デフォルトの名無しさん
2021/02/08(月) 23:04:19.24ID:WYlwG+td 大昔のmacbookの話だがxcodeなる10GBくらいの開発環境を入れないとほとんど何も弄れなかった記憶
今のストレージ容量ならmacbookでも行けそう
今のストレージ容量ならmacbookでも行けそう
215デフォルトの名無しさん
2021/02/08(月) 23:11:34.64ID:WYlwG+td winは仮想環境も充実してるし色々コンパイラ試せるからいいよね
ネイティブサポートもintel mklやVCで結局一番手厚いし
ネイティブサポートもintel mklやVCで結局一番手厚いし
216デフォルトの名無しさん
2021/02/08(月) 23:18:46.61ID:nKLqWVxG >>207
F-15はAda、F-35はC++で書かれてる。
F-15はAda、F-35はC++で書かれてる。
217デフォルトの名無しさん
2021/02/08(月) 23:37:09.64ID:0fSH6U0R Linux には、strace という神ツールもある
218デフォルトの名無しさん
2021/02/09(火) 00:44:38.89ID:OoGqnNNo219デフォルトの名無しさん
2021/02/09(火) 09:28:59.64ID:aKFUc8iT220デフォルトの名無しさん
2021/02/09(火) 12:16:11.15ID:To5JxTyF macを選ぶこと自体が正しく無い
221デフォルトの名無しさん
2021/02/18(木) 19:54:34.90ID:clnw43k0 M1 macbook買ってruby でうっほっほーしてますわ
222デフォルトの名無しさん
2021/02/18(木) 21:38:45.66ID:sRdwF113 最近コード読まなきゃならん機会増えてきて教養として読めるようにはなりたい
規格に沿ってなくても勉強にいい感じのインタプリタってないかな?
規格に沿ってなくても勉強にいい感じのインタプリタってないかな?
223デフォルトの名無しさん
2021/02/18(木) 21:59:26.94ID:UlBwu06v プロになりたい香具師は、YouTube で有名な雑食系エンジニア・KENTA のサロンに入って、
16〜32GB メモリのMac で、Ruby on Rails でポートフォリオを作る
もっと、すごい人は、Windows 10, WSL2, Docker, Ubuntu, mruby で、
C99/Ruby 併用で、人工衛星など宇宙開発してるw
mrubyの本も出たし
16〜32GB メモリのMac で、Ruby on Rails でポートフォリオを作る
もっと、すごい人は、Windows 10, WSL2, Docker, Ubuntu, mruby で、
C99/Ruby 併用で、人工衛星など宇宙開発してるw
mrubyの本も出たし
224デフォルトの名無しさん
2021/02/19(金) 15:37:54.68ID:LoU7pdW5 猛烈にNG率高いレス
225デフォルトの名無しさん
2021/02/20(土) 03:42:06.46ID:1WE5qKPk みんなRubyとかCでなにしてるの
226デフォルトの名無しさん
2021/05/17(月) 11:52:26.06ID:094+MbId srand((unsigned)time(0UL));
int r=rand()%100-1;
ってコードがあるのですが返ってくる値がランダムじゃなくて規則性があってモヤモヤしてます
参考書によるとsrandの文が起動時に別の値に毎回変えるための文らしいんだけど
返される値が8,18,28,28,38,48.......と10ずつ繰り上がっていってランダムになってません
何を追加すれば規則性が消えるでしょうか?
int r=rand()%100-1;
ってコードがあるのですが返ってくる値がランダムじゃなくて規則性があってモヤモヤしてます
参考書によるとsrandの文が起動時に別の値に毎回変えるための文らしいんだけど
返される値が8,18,28,28,38,48.......と10ずつ繰り上がっていってランダムになってません
何を追加すれば規則性が消えるでしょうか?
227デフォルトの名無しさん
2021/05/17(月) 12:50:25.63ID:ZeUb3kXE >>226
0 以上 99 以下 の乱数を取得したいなら、
int r = (int) ( ((double)rand()) / ((double)RAND_MAX + 1.0)) * 100.0 );
0 以上 98 以下 の乱数を取得したいなら、
int r = (int) ( ((double)rand()) / ((double)RAND_MAX + 1.0)) * 99.0 );
0 以上 99 以下 の乱数を取得したいなら、
int r = (int) ( ((double)rand()) / ((double)RAND_MAX + 1.0)) * 100.0 );
0 以上 98 以下 の乱数を取得したいなら、
int r = (int) ( ((double)rand()) / ((double)RAND_MAX + 1.0)) * 99.0 );
228デフォルトの名無しさん
2021/05/17(月) 13:21:28.15ID:giSQx4b2229デフォルトの名無しさん
2021/05/17(月) 19:09:43.71ID:lfAH/Fki230デフォルトの名無しさん
2021/05/18(火) 02:31:27.98ID:+SAIeHDc >>226
疑似乱数は一定の規則に従って生成されるんだから規則的なのは当たり前。
それがどのくらいわかり難いのかという程度問題に過ぎないし、
どういった系を選ぶのが適切なのかは用途次第。
そしてよくある失敗だがランダムシードに時刻を使うなら時刻から予測できる可能性がある。
rand がどういうアルゴリズムで乱数生成するのかは言語仕様では規定していないけれど、
(乱数がとりうる範囲や、同じシードからは同じ乱数列が得られるという性質は規定している。)
伝統的に線形合同法で実装されることが多くて、
パラメータの選定や用途によっては露骨に規則的に見えることもある。
C++ では >>229 の言う通りメルセンヌツイスタが標準ライブラリとして提供されているのだから
それを使うのは妥当な解決方法である可能性は高い。
とはいえメルセンヌツイスタは簡単な物理シミュレーションなどにはおおよそ十分であるにしても
暗号用途には使い物にならないし速度はやや遅いので乱数が大量に必要な場合には
適切とは言えない。
かといって本物の乱数 (環境ノイズなどから生成される乱数) は再現性がないし、
これもまた遅すぎるので大量の乱数が必要な場合には向かない。
繰り返すけが乱数は用途に適しているかどうかであってあらゆる場面で万能な方法はない。
用途次第、状況次第。
疑似乱数は一定の規則に従って生成されるんだから規則的なのは当たり前。
それがどのくらいわかり難いのかという程度問題に過ぎないし、
どういった系を選ぶのが適切なのかは用途次第。
そしてよくある失敗だがランダムシードに時刻を使うなら時刻から予測できる可能性がある。
rand がどういうアルゴリズムで乱数生成するのかは言語仕様では規定していないけれど、
(乱数がとりうる範囲や、同じシードからは同じ乱数列が得られるという性質は規定している。)
伝統的に線形合同法で実装されることが多くて、
パラメータの選定や用途によっては露骨に規則的に見えることもある。
C++ では >>229 の言う通りメルセンヌツイスタが標準ライブラリとして提供されているのだから
それを使うのは妥当な解決方法である可能性は高い。
とはいえメルセンヌツイスタは簡単な物理シミュレーションなどにはおおよそ十分であるにしても
暗号用途には使い物にならないし速度はやや遅いので乱数が大量に必要な場合には
適切とは言えない。
かといって本物の乱数 (環境ノイズなどから生成される乱数) は再現性がないし、
これもまた遅すぎるので大量の乱数が必要な場合には向かない。
繰り返すけが乱数は用途に適しているかどうかであってあらゆる場面で万能な方法はない。
用途次第、状況次第。
231デフォルトの名無しさん
2021/05/18(火) 08:10:11.28ID:ysWtxNVs232226
2021/05/18(火) 22:58:17.77ID:wt3ZqlEf 今C言語を学習してるのですがC++じゃないと完全ランダムは無理なのですね…。
RAND_MAXは関数なのでしょうか?Cだと使えなかったです。
教えてくださってありがとうございました。
RAND_MAXは関数なのでしょうか?Cだと使えなかったです。
教えてくださってありがとうございました。
234デフォルトの名無しさん
2021/05/19(水) 00:55:55.90ID:g9DnnU6R せっかくなのでC++を勉強してみては?
235デフォルトの名無しさん
2021/05/19(水) 01:16:05.73ID:OYngDuIu 何をやりたい目的があるから、何々を勉強するだと、速いですよ。
236はちみつ餃子 ◆8X2XSCHEME
2021/05/19(水) 01:17:09.90ID:ONEwpJm5 このスレは C++ スレだからな。
C++ は C との互換性のために残している機能はあるが C++ 的にあまり好ましくない場合もあるし、
完全な互換性が維持されているわけでもない。
C++ は C との互換性のために残している機能はあるが C++ 的にあまり好ましくない場合もあるし、
完全な互換性が維持されているわけでもない。
237デフォルトの名無しさん
2021/05/19(水) 01:36:10.61ID:OYngDuIu238デフォルトの名無しさん
2021/05/19(水) 01:52:35.92ID:yT7tFlzp >>232
RAND_MAXは、古くから有るマクロ定数で、stdlib.h で例えば次のように定義されている:
#define RAND_MAX 32767
説明によれば:
「rand関数が返す最大値。処理系によって異なるが、最低でも 32767以上である。」
rand()は偏りが強いには強いが、それでも 227 のように書けば 226 のように
下一桁がいつも8になるようなほどではない。
RAND_MAXは、古くから有るマクロ定数で、stdlib.h で例えば次のように定義されている:
#define RAND_MAX 32767
説明によれば:
「rand関数が返す最大値。処理系によって異なるが、最低でも 32767以上である。」
rand()は偏りが強いには強いが、それでも 227 のように書けば 226 のように
下一桁がいつも8になるようなほどではない。
239デフォルトの名無しさん
2021/05/19(水) 01:54:51.13ID:yT7tFlzp240デフォルトの名無しさん
2021/05/19(水) 10:58:56.45ID:G7N6xM6g 0から7の整数が均等確率で出る乱数をrとした場合、
x = r % 3;
とすると、xは0〜2までの整数が出るが、均等確率ではない。
それはすべてのパターンを書いてみると分かる:(r,x)を書いてみると、
(0,0)
(1,1)
(2,2)
(3,0)
(4,1)
(5,2)
(6,0)
(7,1)
x= 0 となっているのは、3回。
x= 1 となっているのは、3回。
x= 2 となっているのは、2回。
なので、
P(x=0)=3/8
P(x=1)=3/8
P(x=2)=2/8=1/4
となり、x=2が出る確率だけが小さくなってしまう。
これと同様に、rが0〜32767を均等確率で出す乱数の場合、x=r % 100の値は0〜99までだが
xが0〜99になる確率は均等ではない。
x = r % 3;
とすると、xは0〜2までの整数が出るが、均等確率ではない。
それはすべてのパターンを書いてみると分かる:(r,x)を書いてみると、
(0,0)
(1,1)
(2,2)
(3,0)
(4,1)
(5,2)
(6,0)
(7,1)
x= 0 となっているのは、3回。
x= 1 となっているのは、3回。
x= 2 となっているのは、2回。
なので、
P(x=0)=3/8
P(x=1)=3/8
P(x=2)=2/8=1/4
となり、x=2が出る確率だけが小さくなってしまう。
これと同様に、rが0〜32767を均等確率で出す乱数の場合、x=r % 100の値は0〜99までだが
xが0〜99になる確率は均等ではない。
241デフォルトの名無しさん
2021/05/19(水) 12:10:26.94ID:G7N6xM6g242デフォルトの名無しさん
2021/05/19(水) 13:29:25.47ID:G7N6xM6g ちなみに、rand()は、出力範囲内の整数を全て出力し終わってから元の値に
戻る様になっているので周期も RAND_MAX + 1 に等しく、出力値は
均等確率で生じる。
>>226だと10で割った時の余りが必ず8になっておりそれは、出力が
10n + 8 になっているということ。これだと、今言った法則に当てはまって
ないので矛盾し、何かがおかしい。
戻る様になっているので周期も RAND_MAX + 1 に等しく、出力値は
均等確率で生じる。
>>226だと10で割った時の余りが必ず8になっておりそれは、出力が
10n + 8 になっているということ。これだと、今言った法則に当てはまって
ないので矛盾し、何かがおかしい。
243デフォルトの名無しさん
2021/05/19(水) 15:03:30.63ID:SQApMI36 C言語でのサーバー構築のやり方わかる方いますか?
244デフォルトの名無しさん
2021/05/19(水) 15:05:53.17ID:G7N6xM6g >>243
HTTP サーバーのことかな?
HTTP サーバーのことかな?
>>243
バークレーソケットをオープンしてリスンして、接続してきたのなら fork() だのスレッドで処理だの、というのを昔したことがありますが、すっかりわすれてしまいました…
どんなサーバーが欲しいのですか?簡単なサーバーならご要望に応えてテキトーに書く準備はありますよ
バークレーソケットをオープンしてリスンして、接続してきたのなら fork() だのスレッドで処理だの、というのを昔したことがありますが、すっかりわすれてしまいました…
どんなサーバーが欲しいのですか?簡単なサーバーならご要望に応えてテキトーに書く準備はありますよ
246はちみつ餃子 ◆8X2XSCHEME
2021/05/19(水) 23:06:46.13ID:ONEwpJm5247デフォルトの名無しさん
2021/05/19(水) 23:56:26.10ID:l+JWTKLH248デフォルトの名無しさん
2021/05/20(木) 00:27:22.67ID:qlUu+R49 >>246
uniform_real_distributionの時は?
uniform_real_distributionの時は?
249デフォルトの名無しさん
2021/05/20(木) 02:25:38.74ID:Dz+v3/+O250デフォルトの名無しさん
2021/05/20(木) 02:28:22.34ID:UJvm/t/I251デフォルトの名無しさん
2021/05/20(木) 02:52:09.51ID:onv6EMq1 >>246
剰余を取って特定範囲の乱数を生成することができるのは、元の乱数が MT 並に性質がよいときだけかと、つまり >>246 はちみつ氏のやりかたは、元の乱数が優れたものだからできる方法
MT が発明されるまでは、最悪の方法「線形合同法」でもなんとか我慢できる部分範囲の乱酔生成法しか推奨されなかった
C FAQ をみてもそれがわかりますね
http://www.kouno.jp/home/c_faq/c13.html#16
13.16:
A:ある範囲の整数からなる乱数はどうやったら生成することができるか。
Q:すぐに思い付く、
rand() % N
(これは0からN-1までの数を返そうとする)は乱数の質が低い。なぜな ら乱数発生器の多くで下位のビットは悲惨なほどランダムでない。よりよい方法は以下のようなものである。
(int)((double)rand() / ((double)RAND_MAX + 1) * N)
剰余を取って特定範囲の乱数を生成することができるのは、元の乱数が MT 並に性質がよいときだけかと、つまり >>246 はちみつ氏のやりかたは、元の乱数が優れたものだからできる方法
MT が発明されるまでは、最悪の方法「線形合同法」でもなんとか我慢できる部分範囲の乱酔生成法しか推奨されなかった
C FAQ をみてもそれがわかりますね
http://www.kouno.jp/home/c_faq/c13.html#16
13.16:
A:ある範囲の整数からなる乱数はどうやったら生成することができるか。
Q:すぐに思い付く、
rand() % N
(これは0からN-1までの数を返そうとする)は乱数の質が低い。なぜな ら乱数発生器の多くで下位のビットは悲惨なほどランダムでない。よりよい方法は以下のようなものである。
(int)((double)rand() / ((double)RAND_MAX + 1) * N)
253はちみつ餃子 ◆8X2XSCHEME
2021/05/20(木) 23:50:59.51ID:qkpZwp6c254デフォルトの名無しさん
2021/05/21(金) 00:17:02.51ID:Q+lecBxK QZからはキムチの匂いがする
255デフォルトの名無しさん
2021/05/21(金) 10:19:44.69ID:pMLUvwAV いずれにせよ >>226 は、まともな標準ライブラリで試すと 226 のような結果に
はならないはず。理由:
226では、rand()%100の下一桁が常に9だが、それだとrand()は常に奇数という
ことになるが、実際のrand()は全て奇数ということはないから。
現象的には、偶数と奇数が交互に来るという不具合が知られていたりするが、
全部奇数ということはない。
はならないはず。理由:
226では、rand()%100の下一桁が常に9だが、それだとrand()は常に奇数という
ことになるが、実際のrand()は全て奇数ということはないから。
現象的には、偶数と奇数が交互に来るという不具合が知られていたりするが、
全部奇数ということはない。
256デフォルトの名無しさん
2021/05/21(金) 10:27:54.72ID:b4MjZLXj 超初心者スレであることを考えると >>226 の srand() がプログラム起動時一度だけとも限らないのでは。
257はちみつ餃子 ◆8X2XSCHEME
2021/05/21(金) 13:18:40.70ID:JT5uzYpW Windows の (msvcrt の) rand は線形合同法だが下位バイトを豪快に捨ててる。
そのせいか (下位バイトを捨てない線形合同法よりは) 乱数としての質は多少良いが
初期値の違いに鈍感で、初期値が似ていれば最初の乱数も近いということが起こる。
>>256 の指摘は妥当かもしれない。
そのせいか (下位バイトを捨てない線形合同法よりは) 乱数としての質は多少良いが
初期値の違いに鈍感で、初期値が似ていれば最初の乱数も近いということが起こる。
>>256 の指摘は妥当かもしれない。
258デフォルトの名無しさん
2021/05/21(金) 17:16:26.14ID:qriMwFf7259デフォルトの名無しさん
2021/05/21(金) 17:24:43.18ID:qriMwFf7 なるほど。
質問者は、だから>>227でも快い返事をしてくれなかったのか。
彼は例えば、以下の様に書いていたようだね:
(1)
for ( int i = 0; i < 20; i++ ) {
srand((unsigned)time(0UL));
int r=rand()%100-1;
printf( "r=%d, ", r );
}
本来は、こう書くか、
(2)
srand((unsigned)time(0UL));
for ( int i = 0; i < 20; i++ ) {
int r=rand()%100-1;
printf( "r=%d, ", r );
}
こう書く:
(3)
srand((unsigned)time(0UL));
for ( int i = 0; i < 20; i++ ) {
int r = (int) ( ((double)rand()) / ((double)RAND_MAX + 1.0)) * 100.0 );
printf( "r=%d, ", r );
}
この中で(1)はダメ。(2)も余り良くない。(3)はplain Cでの簡単な書き方では
標準。しかし、わずかに均等確率からはズれる。
質問者は、だから>>227でも快い返事をしてくれなかったのか。
彼は例えば、以下の様に書いていたようだね:
(1)
for ( int i = 0; i < 20; i++ ) {
srand((unsigned)time(0UL));
int r=rand()%100-1;
printf( "r=%d, ", r );
}
本来は、こう書くか、
(2)
srand((unsigned)time(0UL));
for ( int i = 0; i < 20; i++ ) {
int r=rand()%100-1;
printf( "r=%d, ", r );
}
こう書く:
(3)
srand((unsigned)time(0UL));
for ( int i = 0; i < 20; i++ ) {
int r = (int) ( ((double)rand()) / ((double)RAND_MAX + 1.0)) * 100.0 );
printf( "r=%d, ", r );
}
この中で(1)はダメ。(2)も余り良くない。(3)はplain Cでの簡単な書き方では
標準。しかし、わずかに均等確率からはズれる。
260デフォルトの名無しさん
2021/05/21(金) 18:35:20.74ID:ojw3YA/u261デフォルトの名無しさん
2021/05/21(金) 19:25:04.91ID:UZ6lwfzX Cはよくわからんのだけど(3)のやつわざわざdoubleにキャストする必要あるの?
262デフォルトの名無しさん
2021/05/21(金) 20:07:22.28ID:ojw3YA/u RAND_MAX + 1 でオーバーフローするとか
263デフォルトの名無しさん
2021/05/21(金) 20:19:47.95ID:UZ6lwfzX 最低でも32767以上だからINT_MAXのときもあるのか…
ありがとうございます。
ありがとうございます。
264デフォルトの名無しさん
2021/05/21(金) 20:22:18.98ID:UZ6lwfzX と思ったけどRAND_MAX+1.0した時点でdoubleになるんじゃ?
265デフォルトの名無しさん
2021/05/21(金) 20:30:15.34ID:ojw3YA/u >>253
確かに今となっては MT が開発されてしまったので、その感覚は理解できます
しかし、我々は MT がなかった頃の好き古き時代についても考慮するべきでしょう、過去の方法を評価するのに、その当時の技術的制約を考慮せずに「今の価値観」で裁断するのはフェアではない、と私はつくづく考えているのです
確かに今となっては MT が開発されてしまったので、その感覚は理解できます
しかし、我々は MT がなかった頃の好き古き時代についても考慮するべきでしょう、過去の方法を評価するのに、その当時の技術的制約を考慮せずに「今の価値観」で裁断するのはフェアではない、と私はつくづく考えているのです
>>256-257
なるほど、従って >>226 に対する適切なアドバイスは次のとおりだと私は提案します
>>226
MT = メルセンヌ・ツイスタを使いなさい
srand() とか rand() は忘れなさい、これらは化石時代の乱数生成法だから、今となっては srand() とか rand() をあえて使う合理的理由は存在しません
MT の導入方法や使い方は、次の私のソースを参考にしてください
https://ideone.com/M2SRcE
https://mevius.5ch.net/test/read.cgi/tech/1434079972/60
なるほど、従って >>226 に対する適切なアドバイスは次のとおりだと私は提案します
>>226
MT = メルセンヌ・ツイスタを使いなさい
srand() とか rand() は忘れなさい、これらは化石時代の乱数生成法だから、今となっては srand() とか rand() をあえて使う合理的理由は存在しません
MT の導入方法や使い方は、次の私のソースを参考にしてください
https://ideone.com/M2SRcE
https://mevius.5ch.net/test/read.cgi/tech/1434079972/60
268デフォルトの名無しさん
2021/05/21(金) 21:29:08.32ID:ojw3YA/u269デフォルトの名無しさん
2021/05/21(金) 21:33:53.10ID:ojw3YA/u Visual Studioで以下をやったら>>226みたいな値になった
3秒ごとにsrand/rand をコールしてるんでしょう
for (int i = 0; i < 100; i++) {
srand(i*3);
printf("%d\n", rand() % 100);
}
3秒ごとにsrand/rand をコールしてるんでしょう
for (int i = 0; i < 100; i++) {
srand(i*3);
printf("%d\n", rand() % 100);
}
え? >>226 って srand() を複数回呼んでいるんですか?確かにそれは間違っていますね…
srand() は普通、アプリ起動直後に一回だけ呼べば十分ですよ…
srand() は普通、アプリ起動直後に一回だけ呼べば十分ですよ…
271デフォルトの名無しさん
2021/05/22(土) 02:03:33.66ID:8I9NK3Yz >>269
洞察すれば、こんな風だろうか?
(端末で確認しながら三秒間隔でEnterキーを押している) :
for ( int i = 0; i < 20; i++ ) {
srand((unsigned)time(0UL));
int r=rand()%100;
printf( "r=%d\n", r );
getche(); // 3 秒間隔で人間が Enter キーを押す。
}
洞察すれば、こんな風だろうか?
(端末で確認しながら三秒間隔でEnterキーを押している) :
for ( int i = 0; i < 20; i++ ) {
srand((unsigned)time(0UL));
int r=rand()%100;
printf( "r=%d\n", r );
getche(); // 3 秒間隔で人間が Enter キーを押す。
}
272デフォルトの名無しさん
2021/05/22(土) 02:04:35.75ID:MF6mf+kw >>269
洞察すれば、こんな風だろうか?
(端末で確認しながら三秒間隔でEnterキーを押している) :
for ( int i = 0; i < 20; i++ ) {
srand((unsigned)time(0UL));
int r=rand()%100;
printf( "r=%d\n", r );
getche(); // 3 秒間隔で人間が Enter キーを押す。
}
洞察すれば、こんな風だろうか?
(端末で確認しながら三秒間隔でEnterキーを押している) :
for ( int i = 0; i < 20; i++ ) {
srand((unsigned)time(0UL));
int r=rand()%100;
printf( "r=%d\n", r );
getche(); // 3 秒間隔で人間が Enter キーを押す。
}
273デフォルトの名無しさん
2021/06/02(水) 11:54:46.08ID:QfG+Xq1u 書籍の意味が分からないので教えてほしいのですが
それ以外のって部分から何を言ってるのか全く分かりません
”signed char a;である時は、aには−128〜127の数値しか入れられません。それ以外の数値を入れようとすると、普通は一番下の1バイト、つまり2進数での下8桁だけになり、上の方の桁は全て切り捨てられてしまいます。
最大値より大きい値になった時をオーバーフロー…略”
それ以外のって部分から何を言ってるのか全く分かりません
”signed char a;である時は、aには−128〜127の数値しか入れられません。それ以外の数値を入れようとすると、普通は一番下の1バイト、つまり2進数での下8桁だけになり、上の方の桁は全て切り捨てられてしまいます。
最大値より大きい値になった時をオーバーフロー…略”
274デフォルトの名無しさん
2021/06/02(水) 12:23:21.09ID:A2GTbdiP 何を教えてほしいのかわからない。
275デフォルトの名無しさん
2021/06/02(水) 12:37:39.80ID:QfG+Xq1u >>274
ロベールの107ページの
”signed char a;である時は、aには−128〜127の数値しか入れられません。それ以外の数値を入れようとすると、普通は一番下の1バイト、つまり2進数での下8桁だけになり、上の方の桁は全て切り捨てられてしまいます。”
↑この文が意味不明なので簡単に教えてほしいです
”signed char a;である時は、aには−128〜127の数値しか入れられません” ここまではなんとなく理解できたのですが…
ロベールの107ページの
”signed char a;である時は、aには−128〜127の数値しか入れられません。それ以外の数値を入れようとすると、普通は一番下の1バイト、つまり2進数での下8桁だけになり、上の方の桁は全て切り捨てられてしまいます。”
↑この文が意味不明なので簡単に教えてほしいです
”signed char a;である時は、aには−128〜127の数値しか入れられません” ここまではなんとなく理解できたのですが…
276蟻人間 ◆T6xkBnTXz7B0
2021/06/02(水) 12:45:51.56ID:1WJ2HfQ7277デフォルトの名無しさん
2021/06/02(水) 12:56:19.74ID:QfG+Xq1u278蟻人間 ◆T6xkBnTXz7B0
2021/06/02(水) 13:18:03.17ID:1WJ2HfQ7 >>277
1ビットは、2進数一桁で、ゼロかイチ。
2ビットは、2進数二桁で、00、01、10、11の2**2==4通り。これらは10進数で表すと0、1、2、3となる。
3ビットは、2進数3桁で、000、001、010、011、100、101、110、111の2**3==8通り。これらは10進数では、0、1、2、3、4、5、6、7となる。
……
8ビットは、2進数8桁で2**8==256通り。10進では0〜255となる。現代では8ビットは1バイトに相当する。1バイトは16進二桁で表せる(2**8==16**2)。
以上は符号なしの場合。
符号付きの場合は最上位ビットがマイナス符号の有無を表し、正の場合は符号なしと同じで、負の場合は2の補数表現になる。
1ビットは、2進数一桁で、ゼロかイチ。
2ビットは、2進数二桁で、00、01、10、11の2**2==4通り。これらは10進数で表すと0、1、2、3となる。
3ビットは、2進数3桁で、000、001、010、011、100、101、110、111の2**3==8通り。これらは10進数では、0、1、2、3、4、5、6、7となる。
……
8ビットは、2進数8桁で2**8==256通り。10進では0〜255となる。現代では8ビットは1バイトに相当する。1バイトは16進二桁で表せる(2**8==16**2)。
以上は符号なしの場合。
符号付きの場合は最上位ビットがマイナス符号の有無を表し、正の場合は符号なしと同じで、負の場合は2の補数表現になる。
279蟻人間 ◆T6xkBnTXz7B0
2021/06/02(水) 13:32:39.22ID:1WJ2HfQ7 2の補数表現というのがくせ者だが、まあ、Wikipediaの説明を見てもらいたい。
https://ja.m.wikipedia.org/wiki/2%E3%81%AE%E8%A3%9C%E6%95%B0
符号付き8ビットの場合はx+y==2**8となるyがxの2の補数となる。補数を使えば足し算で引き算を表せる。
まあ、例えば10進数4桁1234の10の補数表現は8766となる。1234+8766==10000となるが有効4桁からオーバーフロー(桁あふれ)してゼロになる。8767の場合は1234+8767==10001、
オーバーフローしてイチになる。このようにオーバーフローを前提とすれば、大きな数で引き算を表せる。
https://ja.m.wikipedia.org/wiki/2%E3%81%AE%E8%A3%9C%E6%95%B0
符号付き8ビットの場合はx+y==2**8となるyがxの2の補数となる。補数を使えば足し算で引き算を表せる。
まあ、例えば10進数4桁1234の10の補数表現は8766となる。1234+8766==10000となるが有効4桁からオーバーフロー(桁あふれ)してゼロになる。8767の場合は1234+8767==10001、
オーバーフローしてイチになる。このようにオーバーフローを前提とすれば、大きな数で引き算を表せる。
280デフォルトの名無しさん
2021/06/02(水) 14:31:54.50ID:CzhBAh+2 お、優しい先生が現れたぞ。嘘ばかりの5ちゃんの中で珍しい。
281デフォルトの名無しさん
2021/06/02(水) 14:44:42.56ID:QfG+Xq1u >>279
すいません詳しくありがとうございます
補数って概念全く理解してなかったので、それが原因だと分かりました。
コンピュータは足し算しかできないのですね…
そこら辺知識固めてからもう一度読み直してみようと思います。
すいません詳しくありがとうございます
補数って概念全く理解してなかったので、それが原因だと分かりました。
コンピュータは足し算しかできないのですね…
そこら辺知識固めてからもう一度読み直してみようと思います。
282蟻人間 ◆T6xkBnTXz7B0
2021/06/02(水) 16:48:03.08ID:1WJ2HfQ7 10進4桁の場合、9999に1を足すと10000、オーバーフローしてゼロになる。よって、このオーバーフローするシステムの場合、9999はマイナスイチを表していると考えることができる。
同様に9998は-2であり、9997は-3である。
同様に9998は-2であり、9997は-3である。
283蟻人間 ◆T6xkBnTXz7B0
2021/06/02(水) 16:54:31.73ID:1WJ2HfQ7 符号付き8ビットの場合、2進数11111111、つまり16進でFFがマイナスイチを表す。同様に11111110(FE)はマイナス2であり、11111101(FD)がマイナス3である。
規則性が分かると思うけど、ビットを反転して、符号なし整数と見なしてイチを足すとマイナス符号の追加と同じ効果がある。証明略。
規則性が分かると思うけど、ビットを反転して、符号なし整数と見なしてイチを足すとマイナス符号の追加と同じ効果がある。証明略。
284はちみつ餃子 ◆8X2XSCHEME
2021/06/02(水) 17:04:16.45ID:Bcy6nIKX 一応補足しておくけど負の数の表現が二の補数であることは C/C++ の言語仕様としては保証してないし、
(C++20 からは二の補数であることが保証されるようになった)
1バイトが8ビットであることも保証してない。
signed char に型変換したときに上位ビットを切り捨てることも保証されない。
(変換後の型が unsigned のときには実質的に保証される。)
言語仕様として保証しないからといって間違っているというわけではなくて、
一般的なコンピュータのアーキテクチャではおおよそそうなってるのが普通というのも事実。
C++ の言語仕様の一部は機械の都合 (どのような機械語を生成するのが効率的か) でいくつかの選択肢
をとれるように言語仕様の側では意図的に決めてない部分がある。
「C++ の説明」として見たら >>275 で引用されている説明はちょっと微妙かもしれん。
あまり踏み込んで説明するのがめんどいから「普通は」という言葉でごまかしているんだと思う。
(C++20 からは二の補数であることが保証されるようになった)
1バイトが8ビットであることも保証してない。
signed char に型変換したときに上位ビットを切り捨てることも保証されない。
(変換後の型が unsigned のときには実質的に保証される。)
言語仕様として保証しないからといって間違っているというわけではなくて、
一般的なコンピュータのアーキテクチャではおおよそそうなってるのが普通というのも事実。
C++ の言語仕様の一部は機械の都合 (どのような機械語を生成するのが効率的か) でいくつかの選択肢
をとれるように言語仕様の側では意図的に決めてない部分がある。
「C++ の説明」として見たら >>275 で引用されている説明はちょっと微妙かもしれん。
あまり踏み込んで説明するのがめんどいから「普通は」という言葉でごまかしているんだと思う。
285デフォルトの名無しさん
2021/06/02(水) 23:13:21.37ID:ZuDsQZsq float/doubleは
286デフォルトの名無しさん
2021/06/03(木) 02:59:14.77ID:Ers5yK+g char は環境依存なので使わないようにする。
unsigned・signed のどちらなのか、分からないため
unsigned char は、0〜256
signed char は、-128〜127
0〜127、7ビットの範囲では、この2つは共通している
signed charは、先頭ビットが1なら、負数となる。
2の補数を調べて
1111_1111・0xFF なら、256か、-1
unsigned・signed のどちらなのか、分からないため
unsigned char は、0〜256
signed char は、-128〜127
0〜127、7ビットの範囲では、この2つは共通している
signed charは、先頭ビットが1なら、負数となる。
2の補数を調べて
1111_1111・0xFF なら、256か、-1
287286
2021/06/03(木) 03:03:09.44ID:Ers5yK+g >>286
修正
256 ではなく、255 です
unsigned char は、0〜255
1111_1111・0xFF なら、255か、-1
だから、環境依存のchar 型を使っていると、
エラーに、-1を使っていたが、他の環境では255と表示されたりする
修正
256 ではなく、255 です
unsigned char は、0〜255
1111_1111・0xFF なら、255か、-1
だから、環境依存のchar 型を使っていると、
エラーに、-1を使っていたが、他の環境では255と表示されたりする
288デフォルトの名無しさん
2021/06/03(木) 10:13:20.76ID:oKNqyVQK むしろ int を期待してる引数に char 渡す時が危険
289はちみつ餃子 ◆8X2XSCHEME
2021/06/03(木) 13:38:18.86ID:ivgy5ZU8 char 同士なら符号の有無が違ってもビットパターンは維持された
ままで型を読み替えることが期待できる (言語仕様として保証しているわけではない)
けど、大きな型に変換するときは符号拡張が起こることがあるからだね。
ままで型を読み替えることが期待できる (言語仕様として保証しているわけではない)
けど、大きな型に変換するときは符号拡張が起こることがあるからだね。
290デフォルトの名無しさん
2021/06/05(土) 22:29:47.19ID:UR0LV/yo ハーバートシルト『STL標準講座』翔泳社, 1999, p.156-157
のサンプルプログラムで、そのままだとコンパイルが通らないものがあるのですが、
適当にconstをつけていたらコンパイルできるようになりました
しかし、理由がわかりません
どなたかご教示いただけませんか?
https://ideone.com/LGnjXo
のサンプルプログラムで、そのままだとコンパイルが通らないものがあるのですが、
適当にconstをつけていたらコンパイルできるようになりました
しかし、理由がわかりません
どなたかご教示いただけませんか?
https://ideone.com/LGnjXo
291デフォルトの名無しさん
2021/06/06(日) 01:24:02.19ID:Lz5dZs8J operator <<のとこでoがconst参照だから、そのoからはconstなメンバ関数しか呼べない。のでそれで合ってる
元のソースが間違ってるか何かだと思う、この仕様は最初からのはずなので
元のソースが間違ってるか何かだと思う、この仕様は最初からのはずなので
>>290
set<>::iterator は const をつけていなくても set<>::const_iterator と同じくイテレータ≒ポインタに const 属性がつきます。
だから set<>::iterator p; …@、と宣言した場合の p には「終生」 const 属性がつきまとうことになります。
例えば@の p にポインタ演算子 * を適用して出来た表現「*p」が参照に読み替えることがあれば、その参照は const 参照でなければなりません。
もともと const 属性はポインタにつけて、const 属性のついたポインタに -> 演算子を使って出来たメンバ変数の値を変更しないようにコンパイル時に厳密にチェックする縛りです
c++ における参照は「機械的にポインタを使った書き方に書き直すこと」が可能(…A※)ですから、const なイテレータ(≒ポインタ)から生成した参照は const な参照にならざるを得ないのです
※Aは私の持論で、今回のお題でも参照をポインタに全部書き換えてやろうと試行錯誤していましたが、さすがに iostream や set で先に参照として宣言されているものを後からポインタにするのは不可能でした
頑張ってみたけれども、かえって意味不明な https://ideone.com/Yc0YvT ぐらいにしかならなかった、持論は修正しなくてはいけないなあ…
set は重複要素を許さない二分木構造です。二分木構造 set に要素を挿入するときに、要素の大小関係にしたがって二分木の形をくみ上げていきます。
だからすでに二分木に組み込まれてしまった要素が、後からほいほいと要素の内容を変えられてしまっては二分木構造に矛盾をきたし、役に立たなくなってしまう…
だから set にすでに組み込まれている要素をイテレータで走査するときは、そのイテレータ≒ポインタは、メンバの書き換えが不可能なイテレータとするしかないか、と私は考えます
提示していただいたソースを、上に述べた原則にしたがって、この原則に関係ない余分な部分を削り落として書く(あと、ちょっと簡略化もしています)と次のような感じでしょうか。
https://ideone.com/Zr1qIH
friend 略 operator<<(略 C const &obj) { ... }
にならなくてはならないのは set<C>::iterator は set<C>::const_iterator と同じだからです
friend bool operator<(C const &a, C const &b) は set への要素の挿入のときに使う比較関数ですが、比較作業以外に要素のメンバを変えるとか余計なことをさせないために、最初から const 参照で宣言するべきでしょうし、そうなっているみたいですね
しかし、この const 属性はプログラミング 3 年生くらいまでは、かなり分かりにくい縛りであることは、私の経験からもとても理解できます。
ポインタや参照をしっかり理解しないことには、わざわざ自分を縛る const のありがたみもよく理解できないだろうと、私も同情するのです。そういうときは、const_iterator p から作った表現 *p が展開された先の実際の表現を、「*p のコピー・オブジェクトのコピー」にするのがいいでしょう
上記のお題をこの方針で書くとこうなります。
https://ideone.com/G42gUs
いろいろ書きすぎたかもしれませんが、上に示した三つのソースコードを研究してみてください
set<>::iterator は const をつけていなくても set<>::const_iterator と同じくイテレータ≒ポインタに const 属性がつきます。
だから set<>::iterator p; …@、と宣言した場合の p には「終生」 const 属性がつきまとうことになります。
例えば@の p にポインタ演算子 * を適用して出来た表現「*p」が参照に読み替えることがあれば、その参照は const 参照でなければなりません。
もともと const 属性はポインタにつけて、const 属性のついたポインタに -> 演算子を使って出来たメンバ変数の値を変更しないようにコンパイル時に厳密にチェックする縛りです
c++ における参照は「機械的にポインタを使った書き方に書き直すこと」が可能(…A※)ですから、const なイテレータ(≒ポインタ)から生成した参照は const な参照にならざるを得ないのです
※Aは私の持論で、今回のお題でも参照をポインタに全部書き換えてやろうと試行錯誤していましたが、さすがに iostream や set で先に参照として宣言されているものを後からポインタにするのは不可能でした
頑張ってみたけれども、かえって意味不明な https://ideone.com/Yc0YvT ぐらいにしかならなかった、持論は修正しなくてはいけないなあ…
set は重複要素を許さない二分木構造です。二分木構造 set に要素を挿入するときに、要素の大小関係にしたがって二分木の形をくみ上げていきます。
だからすでに二分木に組み込まれてしまった要素が、後からほいほいと要素の内容を変えられてしまっては二分木構造に矛盾をきたし、役に立たなくなってしまう…
だから set にすでに組み込まれている要素をイテレータで走査するときは、そのイテレータ≒ポインタは、メンバの書き換えが不可能なイテレータとするしかないか、と私は考えます
提示していただいたソースを、上に述べた原則にしたがって、この原則に関係ない余分な部分を削り落として書く(あと、ちょっと簡略化もしています)と次のような感じでしょうか。
https://ideone.com/Zr1qIH
friend 略 operator<<(略 C const &obj) { ... }
にならなくてはならないのは set<C>::iterator は set<C>::const_iterator と同じだからです
friend bool operator<(C const &a, C const &b) は set への要素の挿入のときに使う比較関数ですが、比較作業以外に要素のメンバを変えるとか余計なことをさせないために、最初から const 参照で宣言するべきでしょうし、そうなっているみたいですね
しかし、この const 属性はプログラミング 3 年生くらいまでは、かなり分かりにくい縛りであることは、私の経験からもとても理解できます。
ポインタや参照をしっかり理解しないことには、わざわざ自分を縛る const のありがたみもよく理解できないだろうと、私も同情するのです。そういうときは、const_iterator p から作った表現 *p が展開された先の実際の表現を、「*p のコピー・オブジェクトのコピー」にするのがいいでしょう
上記のお題をこの方針で書くとこうなります。
https://ideone.com/G42gUs
いろいろ書きすぎたかもしれませんが、上に示した三つのソースコードを研究してみてください
>>290
>>292
https://mevius.5ch.net/test/read.cgi/tech/1594615908/593
593 名前:◆QZaw55cn4c [] 投稿日:2021/03/14(日) 20:13:24.03 ID:uaeFGveg [3/6]
>>590
>C++は未だ*や&、&&、で頭の中がグルグル回ってしまう
これらの「記号」は習得に順序があります。
まず * をしっかり理解します。C/C++ はなんといってもポインタが基本です。
次に参照 & を理解します。参照& を使う場面が出てきたら、これを * を使った書き方に書き直す、という機械的な訓練がいい練習になるでしょう
参照 で返す、という場面でも、@参照返しが出来る場合と、A参照返しはできずせいぜい RVO に期待するしかない場合、の@A二つの違いを明確に即答できるようになるべきでしょう(最近まで私はそれができなかった……)参照& の表現は新しい表現( ranged-for とか) でよく目にしますし、@Aは結構重要だと思います
&& は多分最後でしょうね、私も && は良く分かっておらず、というか、分からないから使わないという態度に留まっていますが、まあそれでもなんとかなる気がします
>>292
https://mevius.5ch.net/test/read.cgi/tech/1594615908/593
593 名前:◆QZaw55cn4c [] 投稿日:2021/03/14(日) 20:13:24.03 ID:uaeFGveg [3/6]
>>590
>C++は未だ*や&、&&、で頭の中がグルグル回ってしまう
これらの「記号」は習得に順序があります。
まず * をしっかり理解します。C/C++ はなんといってもポインタが基本です。
次に参照 & を理解します。参照& を使う場面が出てきたら、これを * を使った書き方に書き直す、という機械的な訓練がいい練習になるでしょう
参照 で返す、という場面でも、@参照返しが出来る場合と、A参照返しはできずせいぜい RVO に期待するしかない場合、の@A二つの違いを明確に即答できるようになるべきでしょう(最近まで私はそれができなかった……)参照& の表現は新しい表現( ranged-for とか) でよく目にしますし、@Aは結構重要だと思います
&& は多分最後でしょうね、私も && は良く分かっておらず、というか、分からないから使わないという態度に留まっていますが、まあそれでもなんとかなる気がします
>>291
operator<<() のストリームじゃないほうの引数は、const 参照ではなくてもいいと思います
今回のは const 参照が要求されたのは、 set のイテレータだから
https://ideone.com/j6CV0s
operator<<() のストリームじゃないほうの引数は、const 参照ではなくてもいいと思います
今回のは const 参照が要求されたのは、 set のイテレータだから
https://ideone.com/j6CV0s
>>292
ソースを貼り付けた一行目がミスっていましたね、修正します。
>しかし、この const 属性はプログラミング 3 年生くらいまでは、かなり分かりにくい縛りであることは、私の経験からもとても理解できます。
>ポインタや参照をしっかり理解しないことには、わざわざ自分を縛る const のありがたみもよく理解できないだろうと、私も同情するのです。
>そういうときは、const_iterator p から作った表現 *p が展開された先の実際の表現を、「*p のコピー・オブジェクトのコピー」にするのがいいでしょう
>上記のお題をこの方針で書くとこうなります。
https://ideone.com/Ivx0JY
ソースを貼り付けた一行目がミスっていましたね、修正します。
>しかし、この const 属性はプログラミング 3 年生くらいまでは、かなり分かりにくい縛りであることは、私の経験からもとても理解できます。
>ポインタや参照をしっかり理解しないことには、わざわざ自分を縛る const のありがたみもよく理解できないだろうと、私も同情するのです。
>そういうときは、const_iterator p から作った表現 *p が展開された先の実際の表現を、「*p のコピー・オブジェクトのコピー」にするのがいいでしょう
>上記のお題をこの方針で書くとこうなります。
https://ideone.com/Ivx0JY
296デフォルトの名無しさん
2021/06/06(日) 02:41:34.70ID:Lz5dZs8J ああ、operator <<のconstも最初付いてなかったのか
それならsetの仕様変更のせいだね
というか昔のままの非constの方が良かったんだけどなぁ
比較演算子自分で書いてるような構造体だと順序変わらない場合もあるんだし・・正直押し付けがましい
それならsetの仕様変更のせいだね
というか昔のままの非constの方が良かったんだけどなぁ
比較演算子自分で書いてるような構造体だと順序変わらない場合もあるんだし・・正直押し付けがましい
298デフォルトの名無しさん
2021/06/06(日) 08:29:50.46ID:KyPgEn9X 一から書いている私ですが、
全てのフォルダ・ファイル・プログラムに一貫して
*と何か名前を付けてプログラミングをしています。
全てのフォルダ・ファイル・プログラムに一貫して
*と何か名前を付けてプログラミングをしています。
299デフォルトの名無しさん
2021/06/06(日) 08:34:21.45ID:8VTCuGWY QZ・・・・
C++をちゃんと理解できてないのに無理すんなw
C++をちゃんと理解できてないのに無理すんなw
301デフォルトの名無しさん
2021/06/06(日) 09:44:11.48ID:WkbXnMOk 意味分からん理屈だな
ずっと前からC++分からないって言ってるよね?
もしかして理解できる頭を持ってないのかな?
ずっと前からC++分からないって言ってるよね?
もしかして理解できる頭を持ってないのかな?
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 中国国営メディア「沖縄は日本ではない」… ★5 [BFU★]
- 高市政権にパイプ役不在…日中高まる緊張 公明党の連立離脱影響、自民内にも懸念「自分でまいた種は自分で刈り取ってもらわないと」★2 [ぐれ★]
- 【速報】 高市政権、「日本版DOGE」を立ち上げ 米国で歳出削減をした「政府効率化省(DOGE)」になぞらえたもの [お断り★]
- 【速報】 日経平均の下落率3%超す、財政懸念で長期金利上昇 [お断り★]
- 【こんなの初めて…】民泊には既にキャンセルも 中国の渡航自粛で ★2 [ぐれ★]
- 台湾声明 「台湾は独立した主権国家、中国は台湾を統治したことがなく、中国は口出しする権利ない」 中国が高市首相に抗議で ★7 [お断り★]
- 厚労大臣「工場労働者とかベルトコンベアは労働時間だけが売り物」 [961870172]
- 【正論】有識者「高市早苗に合理的配慮をしなかった野党が悪い」 [175344491]
- 日経平均、49000円割れ 国賊高市を許すな [402859164]
- 日経平均、49000円割れ 国賊高市を許すな ★2 [402859164]
- 中国「高市が謝罪撤回しないとこれ全部なくなるけどどうする?」 [931948549]
- 吉村はん「高市さんは発言を撤回する必要ないですよ。中国の大阪総領事が謝罪すべき」 [256556981]
