C言語なら俺に聞け 146at TECH
C言語なら俺に聞け 146 - 暇つぶし2ch174:
18/05/26 19:26:11.72 LE8Quobi0.net
>>165
>Webページ自体がGUIなんだよ。お前はこれを理解出来ていない。
ブラウザの手のひらの上で踊るのが GUI なんですか?
>JavaのGUIなんてC以上に使われていないゴミだ。
そのとおりだと思いますが、では、どうしてゴミになってしまったのでしょう?Java-GUI のどこがまずかったのでしょうか?

175:デフォルトの名無しさん
18/05/26 20:16:40.70 UEpiBtAT0.net
>>169
> ブラウザの手のひらの上で踊るのが GUI なんですか?
そういう問題じゃねえ。つか、理解出来て無いのお前だけだぞ。
> Java-GUI のどこがまずかったのでしょうか?
全部だろ。
元々Javaは現在のWebが担っている所を負担出来るポテンシャルはあった。
統一バイナリの対象はUWPよりも広く、Linuxまで含まれていたし、
つい先日までブラウザにはJavaの動作環境は同梱状態だった。
最初期には、今は当たり前のようにWebで行われる事も
Javaアプリ(2chで言う専ブラ相当品)の配布で対応されていたこともあったはず。
んで、今この状態だろ。Cより死んでいるのは全部駄目駄目だったからだよ。
GTKはGnomeとFireFoxが適用事例らしい。(どうもドイツ人はGTKが大好きのようだ)
Javaなんてマジで誰も使ってないだろ。(Eclipseがそうなのかもしれんが)
それは誰も使う価値があると認めないからだよ。
とはいえ、Java自体は最も成功したプログラミング言語なのも事実なんだが。

176:
18/05/26 20:26:20.90 LE8Quobi0.net
>>170
>>ブラウザの手のひらの上で踊るのが GUI なんですか?
>そういう問題じゃねえ。
ふふ、まあおっしゃりたいことは分かるのですが、私は仮想的な存在はデフォルトで否定的にみるものでして
>とはいえ、Java自体は最も成功したプログラミング言語なのも事実なんだが。
私は、Java の現状の状況を Java に内在した原因として捉えたいと考えています。
Java のまずい状況は Java 自体に原因があるはず
さて、それはなんでしょうか?
Java アプレットもあれほどだったのに、現在ではほとんどのブラウザに採用されなくされてしまった
なぜなのでしょうか?

177:デフォルトの名無しさん
18/05/26 20:38:22.76 UEpiBtAT0.net
>>171
つか、お前が書けよ。
俺は何でそうなったかは知ってる。
それは政治的でもあり、技術的でもある。
が、馬鹿が煽ってくるスレでは情報はやらないことに決めてるんだよ。
だから敢えて書いてない。(自学用の鍵を与えるに留め、外して書いている)
ただし、馬鹿が馬鹿なりに考えて自学するのは手伝ってやるから、
お前が勝手に書け。それが俺の認識と合ってるかどうかくらいは答えるよ。
それで俺の認識が間違ってるのなら勿論叩いてくれていい。
ここはそういう場所だし、その為の場所でもあるし。
ただお前の問題はそこじゃない。
君は詳細を詰めるのではなく、抽象思考の癖を付けた方がいい。
今時詳細はググレば分かることが多いんだよ。ただの知識でしかない。
Javaアプレットが死んだ理由なんてすぐ出てくるだろ。
そんなことよりも、WebがGUIだと直感的に思えないことの方がものすごく問題だ。

178:デフォルトの名無しさん
18/05/26 20:45:33.77 83AeDi6ka.net
布石打ってまで逃げるくらいなら書かなきゃいいのに
QZからも逃げるとか徹底してんな、それとも今ググってるのか?w

179:
18/05/26 20:51:33.49 LE8Quobi0.net
>>172
>馬鹿が馬鹿なりに考えて自学するのは手伝ってやる
嬉しい!じゃ、お言葉に甘えて
私は Java 仮想マシンの存在自体がまずいと考えています。
Java はネイティブコンパイルできているべきだった、現在は LLVM コンパイラ環境もあることだし
仮想マシンの意義は当初から疑問に考えていたことでした
逆に Java のライブラリ体制は強く推しているつもり、これは C/C++ にはないリソース(=多数の人間で共有されうる共同幻想)だと思います
GUI も、同様に共同幻想として許容できるか、という視点で考えています
Java のそれや Win32API がそうだとはとても思えませんが、さりとて現時点でのベストはわからない
web 系を意識しだしたのは最近なのでこれについては意見はありません、手元で redmine を導入したときは gem が便利だったし、
rust も同様のパッケージ管理機構を持っているのは好感をもっています

180:デフォルトの名無しさん
18/05/26 20:55:39.37 UEpiBtAT0.net
>>171
> Java のまずい状況は Java 自体に原因があるはず
ちなみに、俺は今Javaが不味いとは思ってないぞ。
GUIは死んだが、それは些細なことだ。
ここら辺が根本的に違うかもしれん。
俺は一つの言語で全てが出来るべきだとは思ってない。
むしろそれを目指しているのはC++だが、迷走しつつあるだろ。

181:デフォルトの名無しさん
18/05/26 21:00:53.53 gIREkBj10.net
さあ、適切なスレに引っ越すか、黙るか、自分の振る舞いを見直そうか。

182:デフォルトの名無しさん
18/05/26 21:26:39.92 UEpiBtAT0.net
>>174
> 私は Java 仮想マシンの存在自体がまずいと考えています。
それは後付だ。
当時は各マシン毎に別々にバイナリを用意するのは大変な手間だったし、
実現すれば確かに素晴らしかったんだよ。
で、実際、ある程度実現はしたわけだが、
今現在「マルチプラットフォーム」に関しては完全にWebに取って代わられた。
だからJavaが現在これを宣伝文句に使うことはなくなったが、あって悪いものでもない。
ただ、本質的にはそこは問題ではないんだよ。
エコシステムにとっては、「上質なコードが相当量有る」ことが重要なのであって、
Javaは完全にこれを満たしている。
ネイティブでLLVMを生かしたいのなら、
技術的には、Javaソースコードをネイティブコンパイルするコンパイラを作ればいいだけ。
仕様としてはほぼC++のサブセットなんだから、技術的にはすぐ出来る。
当然GC機構はバイナリに同梱だ。
これだけで、ソースコードを1文字も改変することなく動く。
だから、言語としては「上質なソースコード」が財産なんだよ。
動作環境なんてすぐ変えられる。
現在これが出来ないのは、オラクルが許さないからでしかない。
だから、所有者が変われば変わる可能性もあるだろうさ。
ただ、実験的にはgoogleとかで試されていてもおかしくないし、
音沙汰無しなのは脈無しだとも思うが。
主にJavaについて話したいのなら、Javaスレに移動でこちらは構わない。
その場合はリンクしてくれ。

183:デフォルトの名無しさん
18/05/26 21:36:14.60 U/ZGluCF0.net
小学校でプログラミング必修と聞いてBASICやるのかと思ったら
GUI版タートルグラフィックを想定かよ。

184:放置された蟻人間
18/05/26 23:09:29.29 zyN05tSDd.net
後世のために、デジタルテレビにJavaが使われていることを覚えておいてくれ。

185:デフォルトの名無しさん
18/05/27 02:30:20.66 X1xnlCWt0.net
Javaと言えば今年の秋にリリース予定のJava11から無償のJDKが廃止されるのがどう影響するかだな
下手すれば一気にシェアを落とすことも考えられる

186:デフォルトの名無しさん
18/05/27 03:31:43.71 cn9TbCYJ0.net
OpenJDKは?

187:
18/05/27 07:10:19.30 8o2J3JEk0.net
>>181
使う方法を教えてください

188:デフォルトの名無しさん
18/05/27 09:42:16.43 Ezl3r8+N0.net
今後泥アプリは無料で作れなくなるの?

189:デフォルトの名無しさん
18/05/27 09:54:19.62 CPM9xRzw0.net
>>180
> Java11
なんだそりゃ?と思って調べてみたら、なるほど酷いことになっている。
171,173は技術面での話で、政治的にはかなり深刻だなこれは。

190:デフォルトの名無しさん
18/05/27 11:20:24.54 .net
言うほどひどい変更か?
RHEEとCentOSと同じだろ

191:デフォルトの名無しさん
18/05/27 16:17:28.83 cn9TbCYJ0.net
>>182
Windowsの場合はこことか読めばわかるんじゃないかな。
URLリンク(blog.fieldnotes.jp)
URLリンク(qiita.com)
Linux の場合は何も考えなくても最初から入ってるディストリビューション結構あるのではないか?
少なくとも RHEL, CentOS, Ubuntu のような主要なディストリビューションにはある。
なくても yum や apt で追加可能。

192:デフォルトの名無しさん
18/05/27 16:22:56.43 cn9TbCYJ0.net
しかし Windows のコマンドプロンプトから curl や tar が使えるようになっていたのは知らなかった。
これは良いな。一々余計なアーカイブソフトを後から入れなくても済む。

193:デフォルトの名無しさん
18/05/27 16:34:10.01 OKZJ+Sja0.net
いつまでやってんの

194:デフォルトの名無しさん
18/05/28 12:09:22.29 0ow6THVWa.net
苔のむすまで

195:デフォルトの名無しさん
18/05/28 12:34:46.04 FlDMWdNW0.net
一億と二千年経っても

196:デフォルトの名無しさん
18/05/29 00:01:56.34 I2Hl4RWx0.net
> 「上質なコードが相当量有る」ことが重要
フォートラン圧勝

197:デフォルトの名無しさん
18/05/30 22:41:12.50 LgzWe7xH0.net
printfでなにか文字表示させた場合と何もしない場合で結果が変わることってありますか?

198:デフォルトの名無しさん
18/05/30 22:46:22.46 LgzWe7xH0.net
自己解決しました

199:デフォルトの名無しさん
18/05/30 23:22:02.29 TSp4NAvfa.net
とりあえず、値を取得する系の関数では副作用を起こすような記述はやめような
例えばグローバル変数をいじるとかポインタをいじるとか標準入力・標準出力・ファイル操作するとかはやめろよな
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);
}
みたいな感じで

200:デフォルトの名無しさん
18/05/31 01:29:57.08 FEa+Gvkc0.net
デバッグする時はいいのでは?

201:デフォルトの名無しさん
18/05/31 01:31:10.71 g4jt9Ien0.net
とりあえずsetter/getterはクソだな
オブジェクト界最大の汚点だ

202:デフォルトの名無しさん
18/05/31 01:52:22.10 HP6OddUA0.net
つ プロパティ

203:デフォルトの名無しさん
18/05/31 09:09:16.76 lN1dVvxL0.net
>>197
それこそ真ゲッターだろ

204:デフォルトの名無しさん
18/05/31 09:20:10.03 HP6OddUA0.net
プログラム言語がサポートしていればそれ程酷いことにはならない
URLリンク(ja.wikipedia.org)(%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0)

205:デフォルトの名無しさん
18/06/01 21:19:49.50 L4m1DFki0.net
バッチなのですがスペースの問題にぶち当たってます
素敵仕様って言うんですかね?
フルパスから拡張子を抜いたファイル名を取得したいんですが
%^n1でファイル名を取得しているんですが
ファイル名に全角スペースが入っているため完全なファイル名が取得できなく困っています
""で囲っても取得できないです 全角スペースと半角スペースが混ざっていると取得できるのですがなにかいい方法ありますか?
"D&Dで渡したファイルのパスが欲しい"に拘らなければ、テキストファイルにパスリストを書いて読み込むみたいな外部ファイルを使う方法にするとか
Powershellみたいに.Net Framwork呼ぶとか
もしくはファイル名取得用のコンパイルファイルをかますとか
Google先生以上の回答は出ないでしょうか?

206:デフォルトの名無しさん
18/06/01 21:35:57.65 Hbp4Wjs80.net
C言語との関連を1行で述べよ

207:デフォルトの名無しさん
18/06/03 16:23:01.05 i7wWwbyd0.net
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;
}

208:デフォルトの名無しさん
18/06/03 16:24:38.29 i7wWwbyd0.net
このコードで配列の中身が書き換えられてしまうんですけどなぜですか?
constとrestrictの関係性がいまいちよくわかってないです・・・

209:
18/06/03 17:12:43.28 5RsKIUxf0.net
>>202-203
const の位置が悪い
URLリンク(ideone.com)
ristrict は関係ない

210:デフォルトの名無しさん
18/06/03 17:20:37.50 DGByVz/ba.net
スマホでポチポチ入力してたら既に書かれてるけど
>>202-203
とりあえずrestrictは無視するとして
>char *const ary
aryが定数。ary=0はコンパイルエラー。*ary=0はOK
>const char* aryまたは char const* ary
aryの参照先が定数。ary=0はOK、*ary=0はエラー

211:デフォルトの名無しさん
18/06/03 17:23:51.40 m3SIxw/I0.net
>>202>>203
func() の中の *(any + 1) = '\0' がコンパイルエラーにならない理由は const が any に対するものであって
*any に対するものではないから。そのプログラムの場合 any そのものを変化させる any = NULL や any++
みたいな記述があるとエラーになる。
restrict はコンパイラの最適化に対するヒントで、そのポインタが別のポインタによって指されていないことを
前提とした最適化をして良いことをコンパイラに伝えるためのものだ。伝えられた側のコンパイラはそのような
最適化をやってもいいしやらなくても良い。

212:
18/06/03 17:24:22.63 5RsKIUxf0.net
>>205
>スマホでポチポチ入力してたら既に書かれてるけど
どうして、書いている時点でそれがわかるのですか?高性能な専用ブラウザなんでしょうか

213:デフォルトの名無しさん
18/06/03 17:25:19.52 m3SIxw/I0.net
うう。ゆっくり書いてたら間に二つも回答が・・・

214:デフォルトの名無しさん
18/06/03 17:29:03.88 xPBqnvux0.net
>>202-203
俺C言語詳しくない素人だけど、
ポインタに const 修飾子をつけるとき、
修飾子の位置によって定数化されるのが「ポインタ」か「ポインタの指す値」かが異なる。
char *const ary の場合はポインタ(アドレス)を書き換え不可。
++ary; は不可
*ary = 'A'; はOK
const char *ary の場合は値(文字列)を書き換え不可。
++ary; はOK
*ary = 'A'; は不可
restrict 修飾子は初めて見たけど、ググった限りは最適化に使うもので、
プログラムの意味は変わらないので無視してよかろう。

215:デフォルトの名無しさん
18/06/03 17:29:56.23 xPBqnvux0.net
>>208
俺なんかゆっくり書いてる間に回答が3つも…

216:デフォルトの名無しさん
18/06/03 17:32:22.37 xPBqnvux0.net
ポインタも値もどっちも書き換え不可にするには
const 型* const 変数名;
としないといけなそうだな。

217:デフォルトの名無しさん
18/06/03 20:58:34.59 m3SIxw/I0.net
型 const * const 変数名; でも良い。

218:デフォルトの名無しさん
18/06/03 22:02:08.16 .net
いつかどこかで見たこの流れ

219:デフォルトの名無しさん
18/06/04 08:50:32.40 3BCLNr2eM.net
*const 変数名
って書くより
変数名[ ]
って書く方が好き

220:デフォルトの名無しさん
18/06/04 19:56:59.58 /VyRep/C0.net
全然関係ないのを比べてるアホ

221:
18/06/04 21:09:00.97 gbEnuF2j0.net
モノクロA4レーザープリンタが、値段も含めていい感じになっていますね…

222:デフォルトの名無しさん
18/06/07 23:22:34.08 69L/zpo00.net
>>209
>>210
でも一番わかりやすい!
まぁ、よく見る
const char **
の大半は意図した通りに機能してないよな
誰も中み書き換えないから表面化しないけど。。。

223:
18/06/08 00:03:38.43 +kkHvNSG0.net
>>217
const 修飾子を型指定より前にもってくる書き方は正直いってなじめないですよね

224:
18/06/08 00:06:11.65 +kkHvNSG0.net
関係ないけれども、今日から「民法」を勉強しはじめました、民法20条まで進みました
こういうのも新鮮でおもしろいなあ、と思いました

225:デフォルトの名無しさん
18/06/08 05:45:49.36 524P9UER0.net
民法総則からキチンと基本原理を体型立ててやらないと理解できんぞ

226:デフォルトの名無しさん
18/06/08 09:37:11.15 1PlqYTvda.net
そうか。じゃあ俺は拳法始めよう。

227:デフォルトの名無しさん
18/06/08 17:49:04.15 rAAW+Mj80.net
>>219
2chのルールも覚えろよ、タコ

228:
18/06/09 00:34:01.58 BV3WmSRm0.net
>>219
民法94条に到達して手が止まりました
これは難しい…条文は簡潔ですが判例が複雑怪奇でパターン抽出できないでいます
>>220
直に法文文面や判例にアタックしていますが弾き返されていますね…特に判例は裁判官の個性が見える気がします、当初考えていたほど「画一的」ではなかったのです

229:デフォルトの名無しさん
18/06/09 05:48:25.82 nuHHgQUg0.net
>>223
さあ、適切なスレに移動してそこで10年くらい引きこもっていようか。

230:デフォルトの名無しさん
18/06/10 16:01:47.15 vqmuo9CDG
ポインタと配列、勉強中のものです。
演習5-4のアンサーブックが気に入りません。
なんでbreakとかするか
最後の7行、次のようで何か問題あるでしょうか
for ( ; *s == *t ; s--, t--)
    ;
if ( t == bt)
    return 1;
else
    return 0;

231:デフォルトの名無しさん
18/06/11 14:18:49.70 okfnqjZUX
225
間違いに気づきました。失礼しました。

232:デフォルトの名無しさん
18/06/21 21:10:00.20 uId0yWCha.net
配列の中身を一つずつ見て0じゃなかったら0にするみたいなプログラムがあります。
中身を見て代入するか分岐するのと、
投機的に0を代入する方法のどちらが速いのでしょうか

233:デフォルトの名無しさん
18/06/21 21:18:45.56 PKzn8umZH.net
推測するな、計測せよ

234:デフォルトの名無しさん
18/06/21 21:21:14.62 bCLvNhPr0.net
無条件に0代入する方がそりゃ速いだろう

235:デフォルトの名無しさん
18/06/21 21:24:54.22 sKPxBIBt0.net
>>227
もちろん見ないほうが早い。
memsetで一気に0にするのが最速。
気になるなら測定しましょう。測定しない効率化なんてありえないよ。
それと、こいつを壁に飾っとくべし。
「プログラム最適化の第一法則:最適化するな」

236:デフォルトの名無しさん
18/06/21 21:46:17.50 KRXESqZV0.net
>>222
ここは5chだ ぼけ

237:デフォルトの名無しさん
18/06/21 21:52:50.57 +L4M88hA0.net
最適化されたらどう書いても memset 使ったのと同じになるかも知れないけどな

238:デフォルトの名無しさん
18/06/21 22:26:17.21 iolQTPDna.net
なんで開発要件も聞かないうちから見ないほうが速いに決まってるって言いきれるの?
0以外が入ってる可能性が低くて、書くより読むのが圧倒的に速いハードだったら責任取れんのかよ!

239:デフォルトの名無しさん
18/06/21 22:39:37.01 +L4M88hA0.net
そんな特殊な環境なら最初からそう書いてくれない限りまともな回答はなくて当然

240:デフォルトの名無しさん
18/06/22 00:33:00.46 Er730np30.net
DRAMは読み書き同じ速度だけど
MRAMとかは書くのが遅いんで
チェックして書くのを最低限にするのが常識になる時代が来るかも

241:デフォルトの名無しさん
18/06/22 00:53:38.92 /eT76nj20.net
>>233
>>230
> 気になるなら測定しましょう。測定しない効率化なんてありえないよ。
> それと、こいつを壁に飾っとくべし。
> 「プログラム最適化の第一法則:最適化するな」

242:デフォルトの名無しさん
18/06/22 01:43:13.95 Hssdw/9K0.net
>>233
これおれも思った
圧倒的じゃなくても0率がたかくて書くのが遅ければそう
組み込みならメモリマップでメモリ以外のデバイスがつながってるかも知れないし
あとはコードがそうなってる可能性としては
0じゃない個数を数えるコードを入れやすいようにとか
SFRで書く命令が決まってるとか
キャッシュの関係でなるべく書きたくないとか
C言語スレだからな


243: 組み込みの可能性も当然考えなければ あと、 条件が整えばmemcpyより速いコードは作れる アラインメントが事前にわかってるとか SIMD命令が使える事がわかっているとか DMAが有効とか



244:デフォルトの名無しさん
18/06/22 02:00:59.03 F3L5fVz60.net
>>234
完全に同意

245:デフォルトの名無しさん
18/06/22 02:54:33.68 Hssdw/9K0.net
経験の無さ自慢?
特殊なコードに対して特殊な状況を考えられないアホ自慢?

246:デフォルトの名無しさん
18/06/22 03:26:32.81 +fWpKJrf0.net
>>239
>>234

247:デフォルトの名無しさん
18/06/22 06:50:11.82 Hssdw/9K0.net
特殊な状況が考えられないアホ

248:デフォルトの名無しさん
18/06/22 09:18:53.30 xGEr9UFx0.net
暇だと盛り上がるな
そんなに仕事が無いのか

249:デフォルトの名無しさん
18/06/22 09:40:17.18 TLETRHnoa.net
自分は特殊な状況を考えられる特別な人と思いたいんですね。わかります。

250:デフォルトの名無しさん
18/06/22 09:45:14.96 0px4TqJVd.net
普通の人
考えられないのはアホと言うだけの話

251:デフォルトの名無しさん
18/06/22 10:10:27.57 TLETRHnoa.net
なんとしてでも自分以外をアホということにしておきたい。わかります。

252:デフォルトの名無しさん
18/06/22 10:39:59.24 xGEr9UFx0.net
特殊な環境でしか生きられないなら、そこから出てくるなよ

253:デフォルトの名無しさん
18/06/22 10:54:33.90 VkaCaqwn0.net
実測が基本で、実測が出来ないなら
一般的な環境を想定してシンプルに記述するのが基本じゃないの

254:デフォルトの名無しさん
18/06/22 11:42:26.55 mMOSdCU40.net
Q.xxとxxどっちの書き方が速いですか?
A.環境依存

255:デフォルトの名無しさん
18/06/22 18:28:15.80 0px4TqJVd.net
まあ明らかな場合もあるけどね
特定の環境用コードなら実測が基本
でも仕事だと全てのパターンを実測してる暇は無い
そこでプロの勘を使う

256:デフォルトの名無しさん
18/06/22 19:23:17.01 SPkT+A/00.net
大多数に当てはまるならそれでいい派 VS 1例でも当てはまらないならダメ派

257:デフォルトの名無しさん
18/06/22 19:28:58.41 0px4TqJVd.net
特殊なコードに対して大多数とか

258:デフォルトの名無しさん
18/06/22 19:40:06.51 SPkT+A/00.net
今回だけじゃないだろ。
「xxxでどうなんですか?」
「(基本的な環境では)xxxだよ」
「いや、xxxxという稀な環境だと当てはまらないからそれは間違いだ!!」
しょっちゅう見かけるわ。

259:デフォルトの名無しさん
18/06/22 19:59:19.08 /0JmIthOa.net
命名
 特殊厨

260:デフォルトの名無しさん
18/06/23 00:09:39.96 PyIuKJwY0.net
「極稀に当てはまらない場合がある」
  ↓
「だから気を付けよう」→穏便に話が終わる
「そんなことも知らない(思いつかない)のか!!」→荒れる

261:デフォルトの名無しさん
18/06/23 00:22:38.81 j+rjEHjB0.net
荒らすのが目的なんだろう

262:デフォルトの名無しさん
18/06/23 00:38:49.81 EFPp8pY40.net
極稀な事を思いつく自分は頭が良くて偉いと言いたいのでしょう。仕方のない事です。
彼はこれまでずっと馬鹿にされ蔑まされてきたのですから。このような機会がなければ
うっぷんを晴らすことができません。もしここで人を罵倒する事が出来なければ彼は
益々ストレスを溜め鉈を持って新幹線に乗ってしまうかも知れません。もはや誰でも
良いのです。掲示板でこの程度のやり取りで大事件が防げるのならば安いものです。

263:デフォルトの名無しさん
18/06/23 00:44:54.58 5Wb6fwhKM.net
「hogeとfugaのどちらが速いのでしょうか?」
「推測するな、計測せよ」
「極稀に当てはまらない場合がある」
「えっ???」

264:デフォルトの名無しさん
18/06/23 07:59:41.23 9burbaTH0.net
結局最後はマウント合戦

265:デフォルトの名無しさん
18/06/23 08:15:09.58 v6rjk3zs0.net
まあ>>233の指摘はアリだと思うし>>238辺りまでの対応はまあ普通
要するに>>239が無駄に荒らしてるだけ

266:デフォルトの名無しさん
18/06/23 10:36:50.42 ul2D0Jgq0.net
>>233も、指摘の内容はいいんだけど、責任とれるのかよなんて攻撃的な言い方するのは余計なんだよね。

267:デフォルトの名無しさん
18/06/23 10:41:43.05


268:VDaSN7SRM.net



269:デフォルトの名無しさん
18/06/23 10:41:52.76 UiVIxiJp0.net
技術的な話が出来ない人が人たたき

270:デフォルトの名無しさん
18/06/23 10:43:35.40 UiVIxiJp0.net
>>227が速さしか考えてないってのがそもそも素人

271:デフォルトの名無しさん
18/06/23 10:47:10.93 UiVIxiJp0.net
memsetが最速とか素人丸出し

272:デフォルトの名無しさん
18/06/23 11:04:40.17 v6rjk3zs0.net
>>260
そこら辺は各人の取り方だけど無条件に代入が速いとか言ってる>>229-230が部下だったら俺も同じように言うと思う

273:デフォルトの名無しさん
18/06/23 11:14:50.84 ONikHNCn0.net
素人素人と連呼してるやつ
自分が言われて傷ついているんだなw
memsetは速いぜ?
逆汗までしなくとも
ベンチマークくらいしてみたか

274:デフォルトの名無しさん
18/06/23 12:36:39.74 UiVIxiJp0.net
パフォーマンス最高な汎用コピー関数など存在しない

275:デフォルトの名無しさん
18/06/23 12:40:49.76 2drravQ10.net
memcpyとmemsetの混同か?

276:デフォルトの名無しさん
18/06/23 12:44:28.88 UiVIxiJp0.net
ライブラリや開発環境
使える命令やハード
コア数、キャッシュサイズ、アーキテクチャ
クリアするサイズ
アラインメント
クリアするデバイス
データの出現率
こんなことで最速は変わる
memsetが1バイトずつちまちま代入するようなライブラリも世の中にはたくさんある
小規模組み込みの環境では大抵そう

277:デフォルトの名無しさん
18/06/23 13:39:04.42 EFPp8pY40.net
この頃のCPUだと特定の領域を0にする命令自体が最初からあったりしないのかね?ありそうな感じするんだけど。で、最適化されるとmemsetがその命令一つに置き換わって終わり。

278:デフォルトの名無しさん
18/06/23 14:01:42.25 v6rjk3zs0.net
>>268
memcpy って言ってるのは一人だけだしあまり賢くないみたいだから無視していいかと

279:デフォルトの名無しさん
18/06/23 14:05:45.27 UiVIxiJp0.net
遅くていいならREP STOSD命令
CPUを使わない方法もいくつか
DMAを使ったり
SRAMの場合デバイスリセットで0クリアされたり
FLASHだとイレースコマンドとか
PCでDMAを使う簡単な方法は
GPUのメモリをゼロクリアしておいて転送する

280:デフォルトの名無しさん
18/06/23 14:06:13.14 j+rjEHjB0.net
大抵のCPUにあるだろう

281:デフォルトの名無しさん
18/06/23 14:07:19.32 UiVIxiJp0.net
>>268
あ、ごめんコピーじゃなくてクリアの間違い

282:デフォルトの名無しさん
18/06/23 14:09:24.26 UiVIxiJp0.net
>>273
普通は無いだろ
REP STOSDだって単なるループ

283:デフォルトの名無しさん
18/06/23 14:15:50.50 UiVIxiJp0.net
レジスタからメモリにコピーすると考えれば
コピーでも間違いではないけど

284:デフォルトの名無しさん
18/06/23 14:18:09.09 xQlm4MUY0.net
だから実測しろっての

285:デフォルトの名無しさん
18/06/23 14:42:28.77 VDaSN7SRM.net
>>277
妄想で生きてる奴には何言っても無駄だよ

286:デフォルトの名無しさん
18/06/23 14:45:35.16 UiVIxiJp0.net
>>227の回答なら
「環境依存、実測しないとわからない」
で終わり

287:デフォルトの名無しさん
18/06/24 12:30:50.34 wvlf5m9A0.net
前工程で処理するのが最善

288:デフォルトの名無しさん
18/06/25 12:44:11.34 UNYa6OHo0.net
というか、高速化しなきゃなやばいかなー と思ったのなら
void SAKUJO(dst,size){ memset(dst,0,size); }
くらいクソ適当に書いておいて、「あとで」 ごちゃごちゃいじればよろしい
それか、>>280のように 事前に済ませておく かだな

289:デフォルトの名無しさん
18/06/25 12:54:48.48 //DXoKuSa.net
ま、しかし、よくよく考えてみれば全てを同じ値で埋めておかねばならない状況はあまりないのではないか?
面倒だから一気に全て0にしておいて後から必要な所を埋めるなんてのはよくあるかも知れないが。
そういうのでも calloc() でメモリ確保するなら考える必要ないよな。

290:デフォルトの名無しさん
18/06/25 12:57:20.57 ol2B/pPQd.net
誰がどんな意図で書いたかわからないもの
わざわざ変えなくていいよ
問題があるとわかった時点で考えればいい

291:デフォルトの名無しさん
18/06/25 13:16:25.31 aMpIUa/b0.net
0クリアの話題でると思い出す事件があったな
某サイトでは業務Gと制御Gの2グループがあって
制御Gは業務Gの処理(データ値)には介入しないという建前があった
あるレコードを更新する時、その整合性の確認をとるため、
制御Gは、キーとなる構造体をmemcmpして一致の判定していた
業務Gは、処理関数の中で構造体を自動変数として確保し、
メンバーに一つ一つ値を設定していた
キーを指定し更新処理を呼んでも一致するデータが見つからないと
エラーが返される結果となった
何故エラーにされるのか、しばらくの間、原因が分からなかった。

292:デフォルトの名無しさん
18/06/25 13:19:21.95 //DXoKuSa.net
={0} での初期化を布教した方が良いね

293:デフォルトの名無しさん
18/06/25 13:29:18.12 ol2B/pPQd.net
>>284
初心者がいると大変だよね

294:デフォルトの名無しさん
18/06/25 20:22:42.87 HTnjHonAM.net
>>284
Paddingのゴミだろ
構造体をmemcmpの時点でダメ

295:デフォルトの名無しさん
18/06/25 23:31:05.64 LSXBma6V0.net
みんなわかってるからそんな事いちいち書かなくて良いんだよ

296:デフォルトの名無しさん
18/06/26 07:01:33.06 tL55F/sw0.net
H8:EEPMOV

297:デフォルトの名無しさん
18/07/01 01:54:22.43 WAYB1PLl0.net
すいません質問です
C言語の勉強をしようと思っているのですがIDE?というのが沢山ありすぎてどれを選べばいいのか分かりません!
迷える子羊に何卒ご教授下さいませ・・・

298:デフォルトの名無しさん
18/07/01 02:07:14.10 8/sCKaWm0.net
>>290
MSVC(VS)
沢山あるってのがよく分からないが、「入門用」とかいうのは全てゴミだから止めとけ

299:デフォルトの名無しさん
18/07/01 02:08:06.13 T+EQOOQd0.net
>>290
WindowsならVisual Studio Community
LinuxならEclipse CDT
Macなら標準のXCode
最初はIDE使わないでテキストエディタでやるのがいいとは思うがね

300:デフォルトの名無しさん
18/07/01 02:21:34.53 8/sCKaWm0.net
>>290
> 最初はIDE使わないでテキストエディタでやるのがいいとは思うがね (>>292)
これは絶対無いから止めとけ。
環境整備は初心者では無理なので、もし先生がいるのならIDEの立ち上げまではやってもらえ。
そして最初からIDEを使って、ブレークポイント貼りまくってステップ実行し、
納得いくまで変数をウオッチしろ。
C#のIDEなら文法エラーはサジェストが出てOK押すだけで治る。
(C系でそこまでやってくれるものがあるのかは知らん)
括弧の対応すらしてくれないテキストエディタなんて、
今時原稿用紙と手書きで草案を練れ、というようなもの。
勿論それが合う人もいるが、普通はないよ。

301:デフォルトの名無しさん
18/07/01 02:37:32.75 TDXiV/Pp0.net
IDEもよくわからん状態からCをやるのはよした方がいいと思うけどなあ

302:デフォルトの名無しさん
18/07/01 02:42:30.52 8/sCKaWm0.net
>>294
これはその通り。Cは入門用の言語ではない。
Cしかなかった昔ならさておき、今Cから始める必要はない。

303:デフォルトの名無しさん
18/07/01 02:51:14.35 aoQiIM1T0.net
>>290
IDEでクエスチョンがつくということは、プログラミング初心者と見た。もしそうなら、Cはオススメしない。もっといい言語がたくさんあるので、プログラミングがどういったものであるかを、他の言語でざっくり掴んでから、Cに取り組むことをお勧めする。
その頃には、IDEがなんであるか、どのIDEが自分に向いているかは、もうわかっているはずだ。
どうしてもCに今すぐ取り掛からなければならないという事情があるなら、
MFCを使わなくてはならないなら、visual studio。
そうでなければ、またはターゲットがWindowsでなければ、Eclipse
どちらにせよ、タップリ不幸になれるので覚悟すること。

304:デフォルトの名無しさん
18/07/01 03:12:41.99 WAYB1PLl0.net
>>291-296
皆様遅い時間なのに丁寧に答えて下さり感激の至りですありがとうございます
C言語を勉強しようと思っているのは使う予定があるからなんですすいません・・・
取り敢えず教えてもらったものDLして勉強します、重ね重ねありがとうございます!

305:デフォルトの名無しさん
18/07/01 03:22:52.22 8/sCKaWm0.net
>>297
> 使う予定があるから
こんなところで聞かずに先生(先輩/上司)に聞け。
IDEの善し悪しも自分で判断出来ない奴が自分だけで「使う」つもりなら事故るから止めとけ。

306:デフォルトの名無しさん
18/07/01 07:33:37.83 VIP13YQk0.net
Visual StudioにもLinuxターゲットがある。

307:デフォルトの名無しさん
18/07/01 08:01:39.26 Bxv8fbGo0.net
ターゲットの問題ではなくて動作環境の問題だろ
LinuxにVisualStudioは入れられないよ

308:デフォルトの名無しさん
18/07/01 08:04:14.93 VIP13YQk0.net
じゃあWSL使えば。

309:デフォルトの名無しさん
18/07/01 08:09:46.71 Bxv8fbGo0.net
何を言ってんだ?
WSLはWindowsだろ

310:デフォルトの名無しさん
18/07/01 08:19:16.03 VIP13YQk0.net
Windowsのほうがいいし。

311:デフォルトの名無しさん
18/07/01 08:40:05.74 Bxv8fbGo0.net
いい悪いではなくてただの事実
自分もVisualStudioは使っているよ
Windows環境では最良のIDEだと思ってる

312:デフォルトの名無しさん
18/07/01 11:33:42.78 s3Ywi94+0.net
ポエムや日記用にもテキストエディタの2~3は入れてていいんじゃないの
それとコマンドプロンプトの併用も考えてるんじゃない
今の時代の「C言語をやる初心者」は、CUIを知らないんだよ
コマンドを使ってみないと、何を何のために作ってるか分からなくなる
巷で言うスマホの「アプリ」とかのGUIじゃなくて、圧倒的に古いCUIなんだから、今の若いモンには明らかに異質なものを作らせるんだよ
出来上がってくるソフトウェアは「黒い窓」なる謎の儀式でしか動かない極めつけの謎だ

313:デフォルトの名無しさん
18/07/01 12:41:57.93 8/sCKaWm0.net
つかそもそもEclipseっていいのか?
あれ、Linuxだと他選択肢がないから使われてるだけでは?
Cで使ったことはないが、Windows/NetBeans/PHPはだいぶ酷かったぞ。
もっさりしてるし、不安定だし。
この組み合わせが最悪なだけかもしれんが。
そして一応EclipseとNetBeansは検討対象らしいからな。
(俺的には比較するまでもなくVS>>>NetBeans)
VSとEclipse両方使っている奴いる?いたら感想を。

314:デフォルトの名無しさん
18/07/01 14:04:36.18 iXNUK265M.net
今のところvsと肩を並べられるIDEなんてないので当然eclipseもvsより劣るわけだが、
リファクタリング機能だけは圧倒的にeclipseのほうが優秀だった。
独自環境用の多数のIDEがオープンソースのeclipseから派生して作成されてるので、個々に使い方を覚えなくていいのもメリットかもしれない。
使い始めた頃はプロジェクトとビルドルールの管理と、日本語が独特なのが、取っ付きにくかったかな。
まあ言いたかったことは、vscode輝け

315:デフォルトの名無しさん
18/07/01 14:34:44.13 8/sCKaWm0.net
>>307
> リファクタリング機能だけは圧倒的にeclipseのほうが優秀だった。
それってCについてだよな。MSはVSについてはC#しかやる気出して無いから。なお、
Q. どうしてVC++のエディタはC#に比べて糞なのですか
A. だってお前らどうせemacsとか使ってエディタ機能使わないじゃん(なお公式)
だったはず。
そのとき、「え?そんなに違うんか?」と思って試し、その差に愕然とした覚えがある。
俺は最新環境を使ってはいないが、最新でもだいぶ見劣りしたと記憶している。
リファクタリング機能とかはユーザがアドオン書けた方がいいから、
それもあってVSCodeなのだろうね。

316:デフォルトの名無しさん
18/07/01 16:25:12.59 skMhceRea.net
Cぐらいならvimだけで十分だと思うがな

317:デフォルトの名無しさん
18/07/01 16:35:43.45 jK3pbtIRa.net
まずvimの操作を覚えて、開発するならそれなりのプラグイン入れなきゃならないんですがそれは

318:デフォルトの名無しさん
18/07/01 16:45:23.34 skMhceRea.net
ブラグインなぞ不要

319:デフォルトの名無しさん
18/07/01 17:12:51.78 KJj1sYCg0.net
仕事や学校でCを使う予定があるなら、
現場で使ってる開発環境に合わせるのが最善だろう。
IDEの優劣よりも優先されるんじゃないかな。
今のご時世にCに関してまったくの素人だと、
Cを使うのにIDEが必須と勘違いしてる可能性もあったり。
任意のテキストエディタで.cファイルを打ち込んで
コマンドラインでコンパイル、実行という手順が
紹介されてない入門書や入門サイトがあるかも。

320:デフォルトの名無しさん
18/07/01 17:13:26.42 8/sCKaWm0.net
>>311
それはさすがに老害の発想だぜ。
今時のemacsはインテリセンスも出るし、
flyCheckで文法エラーもリアルタイムで表示される。
お前はそういうの知らずに言ってるだろ。
(なお、vimも同様だったはず)
最終的にはそういうのがうざくなって色々切ったりするけど、
俺は初心者こそIDE(というかゴテゴテの環境)でスタートすべきだと思ってる。
大体において、
「動きません。でも私のコードは完璧です。これはIDEのバグですか」と言ってくるんだから、
「ブレークポイントを全部の行に置いてループも1回ずつステップ実行して確認して死ね」
と返せないと意味無いだろ。

321:デフォルトの名無しさん
18/07/01 17:22:47.54 8/sCKaWm0.net
>>312
> 紹介されてない入門書や入門サイトがあるかも。
VSがそうですが何か?(なおC++)
URLリンク(msdn.microsoft.com)
てかマジな話、VSで閉じていいのならそんな知識いらんて。

> 現場で使ってる開発環境に合わせるのが最善だろう。
> IDEの優劣よりも優先されるんじゃないかな。
これはその通りだが。

322:デフォルトの名無しさん
18/07/02 00:22:55.41 MZb/U4ur0.net
>>306
>つかそもそもEclipseっていいのか?
>あれ、Linuxだと他選択肢がないから使われてるだけでは?
組込みだとマイコンのメーカーのIDE(コンパイラ)が
EclipseベースなIDEな事があるから
VSではなくEclipseに馴れるって意味で選択する意味はあるかな
実際組込み現場でCでの開発想定したこの書籍だと
Eclipseで開発する事を想定して書かれてる
URLリンク(amzn.asia)

あと余談だけど今さらvimだのemacsだの時代遅れじゃね?
マルチプラットフォームで動くVSCodeやAtom選択した方が
学習コストも少なく高機能だと思うんだけど

323:デフォルトの名無しさん
18/07/02 01:24:09.53 Ael8RIVm0.net
>>315
> EclipseベースなIDEな事があるから
なるほどね。
> あと余談だけど今さらvimだのemacsだの時代遅れじゃね?
俺が勧めているわけではないが、「エディタ」という意味ではありだ。
「Emacsは100年のエディタだ」と言われるとおり、あれはマジで100年持つだろう。
そういう構造になっているし、実際今も余裕で現役だ。(Vimも同様)
最大の利点はDSLとしてのEmacsLispだ。(なお独立して使えるらしいが)
この点、VSCodeやAtomもOSSであり同レベルの拡張性を持ってはいるが、
ユーザーベースが違いすぎる。
今現在の状況なら、先に死ぬのはVSCodeやAtomの方だ。
学習コストなんて所詮慣れだし、数ヶ月もあれば問題ない。
当面使う予定がなければすぐに学ぶ必要性はないが、
時代遅れな事を肯定して欲しいのならそれは無理だ。
emacsとgdbは組み合わせて使うことは出来る。
ブレークポイント、変数等を表示出来るlispが提供されればそこそこ行けるはず。
もう既にあるかもしれんが。

324:デフォルトの名無しさん
18/07/02 20:45:33.13 egmwRQ41d.net
フォルダ一括コピーしたいです
c++だとファイルコピーにはCopyFileなるものがあるみたいなのだけどそれはフォルダのコピーはできないようなので、
他のものを探してたらSHFileStructでフォルダまるごとコピーができると知りました
これって再帰的に中身まで見てくれるのか見てくれないのか調べてたのですがわからなかったので
再帰的にコピーしてくれるか否か教えてほしいです

325:デフォルトの名無しさん
18/07/02 20:57:38.07 TkxJyVOaM.net
>>317
1つ目の回答みて
URLリンク(stackoverflow.com)

326:デフォルトの名無しさん
18/07/03 00:01:21.27 Dmx6jLMV0.net
>>317
そういうのはOSによって、あるいは使用するライブラリによってやり方が変わるから最低でもOSが何なのか書いて質問した方が良い。

327:デフォルトの名無しさん
18/07/03 01:16:11.07 F02z+tBP0.net
学生ならCLionも無料なのでおすすめ
VSCodeもまだ情報が少なめなものの悪くない

328:デフォルトの名無しさん
18/07/03 04:58:38.26 YXzbwHDm0.net
system("robocopy /? >tmp.txt");
system("notepad tmp.txt");

329:デフォルトの名無しさん
18/07/03 05:54:36.73 2wRh2EpV0.net
>>317
やって見りゃいいんじゃね?
>>319
>>317みてOSわからないボンクラは黙ってて

330:デフォルトの名無しさん
18/07/03 07:45:07.06 A8S8VjkX0.net
知らないなら書くなよ

331:デフォルトの名無しさん
18/07/04 21:52:51.64 gFgZc5FG0.net
HTQ

332:デフォルトの名無しさん
18/07/04 22:46:28.27 w3aVzChY0.net
やればわかる
やらない奴はいつまでたっても>>323みたいなボンクラなレスを返すだけ w

333:デフォルトの名無しさん
18/07/04 22:55:43.62 r5w7GwDZ0.net
迷わずいけよ!

334:デフォルトの名無しさん
18/07/04 23:02:16.01 dy7fWBja0.net
xcopyを呼び出すんじゃ駄目なのか?
車輪の何とかって気がするんだが

335:デフォルトの名無しさん
18/07/05 09:24:52.06 ppxwAApK0.net
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 まで再起的にフォルダができる

336:デフォルトの名無しさん
18/07/10 12:40:53.64 PTerA0wX0.net
超初級で申し訳ないですが、以下のコードのどこに問題があるのか教えてください。
円の周長と面積を求めるものです。(半径は整数値で入力。)
コンパイルはできましたが、.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);
}

337:デフォルトの名無しさん
18/07/10 12:51:36.15 lacLn2e2a.net
>>329
実行不能状態とはどのような状態か詳しく書くように。

338:デフォルトの名無しさん
18/07/10 13:17:53.02 G1Ywym5SM.net
>>329
ソースコードは問題ない。
戻り値型省略が警告になるくらい。
エスパーすると、
警告をエラー化するオプションが指定されていて、最新コードを実行しているつもりが古いコードを実行していたとか。
もしくはソースコードを直接実行しようとしているとか。

339:デフォルトの名無しさん
18/07/10 13:45:26.21 lacLn2e2a.net
ま、何れにしてもどういう環境で何をやってどうなったか詳細書いてくれんとわからんな。
WindowsでEclipse使ってる場合とLinuxでvimで入力してgccでコンパイルしている場合では答えが大幅に変わるし。
exeと書いてあるからWindowsだろうと予想することはできるが実はWindowsじゃなくてexeが作られるものと誤解しているだけなんてことも初心者ならありうるしな。

340:323
18/07/10 14:15:20.90 PTerA0wX0.net
Windows 10の開発者コマンドプロンプトでコンパイルしました。 cl (ファイル名).c
拡張子がexeのファイルが生成されました。
そのexeファイルをダブルクリックすると、マカフィーによって「脅威を隔離しました」というメッセージとともに削除されてしまいます。
何度やってもそうなります。

341:デフォルトの名無しさん
18/07/10 14:48:20.63 6oP6Hy+LM.net
知らぬ間に凶器を生み出してしまったんだね…
URLリンク(r.nikkei.com)
マカフィーを一時的に止めちゃえば?

342:デフォルトの名無しさん
18/07/10 14:51:13.47 jUw0TWzI0.net
マカフィーが止めなかったら人類はその瞬間、消滅していたかも知れない

343:デフォルトの名無しさん
18/07/10 15:35:28.40 c95ZcwpDa.net
この頃は単にコマンドプロンプトと呼ばずに頭に開発者って付くのか?

344:デフォルトの名無しさん
18/07/10 15:52:40.79 sLQCr7o90.net
コマンドプロンプト上で実行したらどうなる?
cl で実行ファイルを作ったら、そのままコマンドプロンプトで
実行ファイルの名前を打ってEnter、で動くと思うけど。
コンソールアプリケーションをダブルクリックで実行した場合、
scanf系の標準入力に必要なコンソールってどうなるんだっけ?

345:デフォルトの名無しさん
18/07/10 16:44:44.45 b+i389ju0.net
Windows10(17134.137) + VisualStudio2017(Ent15.7.4) の開発者コマンドプロンプトで確認してみたけど問題ない
URLリンク(i.imgur.com)

346:デフォルトの名無しさん
18/07/10 17:11:41.78 c95ZcwpDa.net
マカフィーのチェックがおかしいわけだな。
自宅のPCでマカフィー入ってるのあるから帰ったら試してみよう。

347:323
18/07/10 17:13:29.68 PTerA0wX0.net
>>334
いやいや、私はヤバいウイルスとかを作る技量はないので…
知らぬ間に作るなんてことは…
>>337
プロンプトで実行すると、長いエラーメッセージが出ます。
その場合もマカフィーが反応します。
マカフィーのせいなんですかあああああ…?
マカフィーを止めるのはなんか面倒です。

348:デフォルトの名無しさん
18/07/10 17:23:53.95 c95ZcwpDa.net
そういやマカフィーの創業者のジョン・マカフィーは壮絶な人生歩んでるのな。
知りたい人はWikipediaでジョン・マカフィーで検索してみな。

349:デフォルトの名無しさん
18/07/10 18:23:14.04 4twA9KsQ0.net
>>340
例外設定できんの

350:デフォルトの名無しさん
18/07/10 19:58:04.00 /C7aTWfLM.net
なんでマカフィーを後出ししたのか教えて
>>329では隠してたよね

351:デフォルトの名無しさん
18/07/10 20:29:17.07 csDUndKHa.net
このスレは超エスパーの常連が常駐していると聞いて

352:デフォルトの名無しさん
18/07/10 20:55:39.23 XZttgo620.net
今頃常連は君のPCの中で、あんなことこんなことしてるかも

353:デフォルトの名無しさん
2018/07/1


354:1(水) 02:42:31.00 ID:XTzeI4c20.net



355:323
18/07/11 12:17:16.91 Z7jbd2VW0.net
そんなことは普通にできますが,インターネット接続を切ったり入れたりもしなきゃいけないじゃないですか
それも簡単ですが,マカフィーのいたずらのせいでそんなことをいちいちやるのは…という意味です

356:デフォルトの名無しさん
18/07/11 12:19:33.60 F9Ul8eGQH.net
止めたついでにアンインストールするのがいいと思うよ。

357:デフォルトの名無しさん
18/07/11 12:23:38.80 ElMeoT060.net
プログラムを作成自体を犯罪者予備軍と見なしているのかな・・

358:デフォルトの名無しさん
18/07/11 12:33:49.60 /qmyOvYB0.net
使ってるのがwindows10ならもうウィルス対策ソフトなんて要らないよ。重くなるだけ。
windowsDefenderで十分。2つ入れてるとトラブルの元。

359:デフォルトの名無しさん
18/07/11 23:17:11.74 mjsZ1svma.net
C++でディレクトリ無かったら作る関数って何かあります?
LinuxのPOSIX系だと見つからんかった

360:デフォルトの名無しさん
18/07/12 00:42:26.88 gvbwsRPLM.net
>>351
man 2 mkdir

361:デフォルトの名無しさん
18/07/12 01:44:43.97 2elGYyrL0.net
>>340
マカフィー入った環境でやってみたけど普通に動いた。
但し、Cコンパイラは Cygwin の gcc だ。

362:デフォルトの名無しさん
18/07/12 02:21:13.11 9sO/Jh060.net
>>347
別に一時的に無効化するだけならネットを切る必要は無い
セキュリティ的にどうしても不安があるっていうならLANケーブル抜けばいい
それすら面倒ならパソコンを窓から投げ捨てろ

363:デフォルトの名無しさん
18/07/14 08:48:08.32 xV7EJA5wd.net
マカフィーのポリシーが気に入らないなら消せば

364:デフォルトの名無しさん
18/07/15 17:16:55.22 +OH6AID30.net
C言語で集合、和集合、積集合を実装したいのですが、正直アイデアが浮かびません。
どうすれば良いのでしょうか?
教えていただきたいです。

365:
18/07/15 17:20:53.28 0kASpcPE0.net
>>356
まず集合の要素を何にするか?
集合自体の表現をどうするか?
そこからスタートするべきだと思います
C++ スレリンク(tech板:33番)

366:デフォルトの名無しさん
18/07/15 18:24:43.00 yiVegLeV0.net
C++ちゃうやろ

367:さまよえる蟻人間
18/07/15 18:43:53.92 wAtjArzX0.net
C++のstd::setを参考にしない手はないな。
集合をデータとして保持したいなら、要素の個数と、動的配列かリストが必要になる。

368:さまよえる蟻人間
18/07/15 18:50:09.68 uEXuZg9md.net
集合は順序列の順序を無視したものと考えられる。
比較する場合は、ソート済みにしてから比較する必要がある。
多重集合ではない場合は変更の際に要素を単一化しないといけない。

369:デフォルトの名無しさん
18/07/15 18:57:55.11 chucpUaPM.net
setは赤黒木だけど、実装したことある奴いるの?俺はaddだけ実装して満足して諦めたよ。
hashtableのほうが遥かに簡単だからオススメ。
整列済みの配列も簡単でいいと思うよ。
でも一番楽なのは、ライブラリを拾ってくること。

370:さまよえる蟻人間
18/07/15 20:00:12.79 uEXuZg9md.net
std::unordered_set

371:デフォルトの名無しさん
18/07/15 23:33:22.03 ugn7dRUid.net
>>356
積集合の方が比較的簡単
和集合は同一要素であるかをどうやって判別するか
要素を構造体で表した時に
異なる構造体でも同一要素である判別が出来なくてはならないので
単純な例だと
複素数型と実数型と有理数型とcharとintとfloatとdoubleとか

372:デフォルトの名無しさん
18/07/15 23:57:35.35 yiVegLeV0.net
>>363
意味が全くわからんわ。
そもそも和集合も積集合も補集合考えたら手間が変わるはずないし。

373:デフォルトの名無しさん
18/07/15 23:59:45.37 ugn7dRUid.net
>>364
ああ、直積と勘違いした

374:デフォルトの名無しさん
18/07/16 00:10:17.99 RYaEyvned.net
型が限定されていれば簡単
(>>359>>362)
>>363みたいに、
いろんな型が混ざった和集合だと
いろいろと大変

375:デフォルトの名無しさん
18/07/16 00:41:17.49 JxE01Fj60.net
一般論で言えば、集合の実装はハッシュを実装することに限りなく等しい。
どんなオブジェクトであれ、シリアライズ(要は文字列化)できる。
そうすればハッシュで一意な比較的小さい非負整数の番号に写像できる。(←条件により、ここが難関になりうる。ハッシュを使わずに済む番号が用意されていればそれが最適)
逆写像も用意できる。
最大番号までの要素数を持つ整数配列で0/1で要素の有無を表現したものが一つの集合を表す。
2つの集合の和と積は0/1の|と&で表せる。
配列サイズと計算時間の節約にはビットマップ化すればok。

376:デフォルトの名無しさん
18/07/16 12:41:40.20 JYSC+BEod.net
視野の狭いアホ

377:
18/07/16 13:40:42.48 PLRcL5uS0.net
>>367
>ハッシュで一意な比較的小さい非負整数の番号に写像できる。
ハッシュ関数は一般に衝突するもの、と考えるものですが、範囲を小さくすれば特に…

378:デフォルトの名無しさん
18/07/16 13:45:32.02 GVNh7z7o0.net
ハッシュの逆写像て何よ

379:デフォルトの名無しさん
18/07/16 15:04:36.42 JxE01Fj60.net
>>368
広い視野で具体的な提案をどうぞ。
>>369
要素が固定なら完全ハッシュ関数が構成可能。
>>370
和集合とか積集合とか求めてもそこから要素リストが作れなければ無意味というだけ。これは逆写像を作ってるのと同じ。

380:デフォルトの名無しさん
18/07/16 16:32:35.47 ZuNymA1O0.net
>>356
ビット演算使えば良いのでは?
特に要素数が32とか64以下に収まるようなら今どきのPC用コンパイラならunsgnedのintやlongで行けるよ。
uint32tみたいなビット数保証するtypedefされた型使った方が良いけどね。

381:デフォルトの名無しさん
18/07/16 16:42:31.55 fNWu8+xrd.net
うわっ
また特殊な条件でしか使えない方法を
まあ>>356が悪いわけだけど

382:デフォルトの名無しさん
18/07/16 16:58:23.91 GVNh7z7o0.net
>>371
オペランドが入力されたら都度完全ハッシュを求めるの?
地味に和積集合計算するよりはるかにコスト高だろ…

383:デフォルトの名無しさん
18/07/16 17:09:01.83 fNWu8+xrd.net
全順序化が簡単か
効率的なハッシュが(簡単に)作れるか
想定する集合の大きさ
比較のコスト
ノードのデータサイズ
この辺が違うと適した実装が全く異なる
この辺をヒアリングするのが先と思う

384:デフォルトの名無しさん
18/07/16 20:33:05.89 xLJ3m8O+M.net
>>374
「要素が固定なら」と条件付き。よく読んでね。
そうじゃない場合は難関になりうることも言及ずみ。よく読んでね。
衝突してもハッシュ表は実装できるわけで、全順序化が不可能なわけではない。

385:デフォルトの名無しさん
18/07/16 20:35:21.92 xLJ3m8O+M.net
>>375
これ。
これら含めて最大限一般化したら>>367になるよね。

386:デフォルトの名無しさん
18/07/16 21:05:16.49 GVNh7z7o0.net
>>376
何に対して固定なのか、いつ固定されるのか、稚拙な日本語から読み取れと?
それに>>367にはそんな条件は書いてないぞ。にもかかわらず、ハッシュから写像ができると書いてある。意味不明すぎるわ。

387:デフォルトの名無しさん
18/07/16 21:29:45.38 XBIjWYki0.net
>>377
ならねーよ
>>361も書いてるけどこの手のやつの定番は赤黒木とかB-Tree
ハッシュはデータ量が見込めないとハッシュテーブルサイズが決められないから使い辛い

388:デフォルトの名無しさん
18/07/16 21:50:26.80 sxU6ARMDM.net
>>361
作ったことあるけど使えない程度に遅かったわ
Cで赤黒木ならLinuxかfreeBSDから拝借するのがよさそう

389:デフォルトの名無しさん
18/07/16 21:56:55.25 r56ZRtuEM.net
c++のmapとsetの実装アルゴリズムだぜ。
検索速度はハッシュテーブルに劣るけど、使えないほど遅いってことはないだろ。

390:デフォルトの名無しさん
18/07/16 22:18:00.48 d44IRZCy0.net
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
というエラーが出てしまいます。
二次元配列はポインタで表せないものなのでしょうか?

391:デフォルトの名無しさん
18/07/16 22:23:31.47 d44IRZCy0.net
sageをつけ忘れました
申し訳ございません。

392:デフォルトの名無しさん
18/07/16 22:43:27.11 BgE9oE4s0.net
>>382
メモリ空間は1次元だから。
arr[y][x]は*(arr+y*WIDTH+x)と同じ。WIDTHがわからないとできない。

393:デフォルトの名無しさん
18/07/16 23:01:36.27 GVNh7z7o0.net
>>382
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にしたほうが最適化されやすいと思うよ

394:デフォルトの名無しさん
18/07/17 00:14:58.01 TUtIYHCtM.net
>>381
作りが悪くて目標に届かなかっただけ
100万件のinsertに1秒程度が目標だったけど2.5秒ぐらいだった

395:デフォルトの名無しさん
18/07/17 00:50:16.45 j9lU977L0.net
>>382です
お二人とも丁寧に教えていただきありがとうございます。
>>384さんの方法で改良してみたのですが複数のMat構造体を作り,tateとyokoの値のそれぞれ別にしたときにプログラム実行中に入力が強制終了されてしまうのですが、配列の作り方に何か不都合があるのでしょうか

396:デフォルトの名無しさん
18/07/17 01:14:22.91 ZzFa01D50.net
>>387
あるあるネタだね。
何処かでx/y、i/j、tate/yokoが逆になってる。

397:デフォルトの名無しさん
18/07/17 03:42:30.44 ZJqMOJYT0.net
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 になる

398:デフォルトの名無しさん
18/07/17 04:09:19.94 ZJqMOJYT0.net
AVL では、左右部分木の高さの差を、1 以内にしなければならないから、
2 になると、木の回転・縮約など、再構成をしなければならない。
つまり、しょっちゅう再構成が起こるので、遅くなる
赤黒木では、左右部分木の高さの差を2 倍以内にしたから、再構成が起こりにくい。
左が10 なら、右は20 まで、再構成が起こらない
タスクスケジューラーに使われる
例えば、100個のスリープしているタスクがある所に、
木に実行するタスクを追加して、重みに従ってソートすると、
追加したタスクが選ばれて、木から削除される
つまり、ほとんどの葉の順位が変わらなくて、
追加した葉が、すぐに削除されるようなものに適している

399:デフォルトの名無しさん
18/07/17 21:50:50.91 j9lU977L0.net
makefileってPowerShellで作れないとかないですか?

400:デフォルトの名無しさん
18/07/18 13:02:52.94 9IEVAZpRa.net
>>391
君が何を言わんとしているのかがよくわからない

401:デフォルトの名無しさん
18/07/18 13:22:02.69 OuA1chkMd.net
わからないならかくなあほ

402:デフォルトの名無しさん
18/07/18 13:27:22.37 9IEVAZpRa.net
>>393
あれで人に言葉が通じていると思い込んでる可能性があるから書くべきだろう

403:デフォルトの名無しさん
18/07/18 15:13:21.80 rBfwKW3R0.net
>>391
作れますよ

404:デフォルトの名無しさん
18/07/22 17:00:55.76 QT86rkZL0.net
なんとなく、コマンド行をタブで始めてなくて(スペースで空白を作ってて)、
makeがエラー出してるような気がするなぁ。
エディタのTab→スペース自動変換が効いてるとか。
PowerShellとは直接関係なくて。

405:デフォルトの名無しさん
18/07/23 07:43:37.05 4YnpLRT90.net
C++ C言語 C#の初心者用スレはないんですか?
探してみたけどそれらしきスレが見当たらないです

406:デフォルトの名無しさん
18/07/23 08:25:03.57 XREcIsoOM.net
>>397
まずはどうやって探したのか聞こうか

407:デフォルトの名無しさん
18/07/23 18:37:31.75 4YnpLRT90.net
>>398
まずスレッド一覧を開いてCTRL+FでC++と入れて検索しました
一応それらしき所を見つけたんですが書き込んだ瞬間変なおっさんに噛みつかれたので
初心者スレじゃないのかな。。。と。
入門にあったスレはないでしょうか

408:デフォルトの名無しさん
18/07/24 00:16:29.41 jxAZ77iY0.net
無ければ作ったら良い

409:デフォルトの名無しさん
18/07/24 00:25:40.41 WnIMuw3FM.net
初心者歓迎なのと甘えた初心者に手とり足とり教えるのとは違うよ

410:デフォルトの名無しさん
18/07/24 10:50:38.33 0p5SDr2Gd.net
回答者も甘えてる奴がほとんどだしな

411:デフォルトの名無しさん
18/07/24 12:49:34.60 AIbS+cPKM.net
初心者といいつつそれ以前だったりするから

412:デフォルトの名無しさん
18/07/24 12:52:10.55 jy7p1ZdAd.net
回答する気が無いヤツは黙ってろ
目障り

413:デフォルトの名無しさん
18/07/24 22:27:17.58 yuwuYFDqM.net
>>399
ここでの『初心者』はANSI Cの規格を読み込んでいること前提
プログラム未経験者は取り合えず柴田茫洋の明解C言語を読め

414:デフォルトの名無しさん
18/07/24 22:55:24.02 0yPjFIBM0.net
回答する気が無いヤツは黙ってろ
目障り

415:デフォルトの名無しさん
18/07/25 14:04:28.05 rhtXSHsm0.net
明解C言語は分かりにくいからやめとけ
苦Cの方がいい

416:デフォルトの名無しさん
18/07/25 15:50:06.17 rOB4O81ba.net
明解と
書いてる方が
不明解

417:デフォルトの名無しさん
18/07/25 18:17:36.85 LRuCLCqQM.net
今からC言語覚えて何に使うの?

418:デフォルトの名無しさん
18/07/25 18:38:39.52 ru0lrBQYM.net
デバドラを書く
低速言語のボトルネックをカバーする

419:デフォルトの名無しさん
18/07/25 19:01:18.88 WBw1LCSkd.net
こういう連続線をクリックで描きたいなんか参考になる本だとかサイトってありませんか?
URLリンク(i.imgur.com)

420:デフォルトの名無しさん
18/07/25 19:07:02.74 h5CHP+XR0.net
>>411
それをCで書こうって考えている?

421:デフォルトの名無しさん
18/07/25 19:11:06.73 WkyhwwwQ0.net
>>409
小規模マイコンのプログラミング
とか

422:デフォルトの名無しさん
18/07/25 19:19:25.92 ekeRKo17a.net
>>411
環境は?
OSやコンパイラは?

423:デフォルトの名無しさん
18/07/25 20:53:24.83 IVngiw360.net
>>413
揚げ足とるわけじゃないけれど
なんで小規模マイコン限定?

424:デフォルトの名無しさん
18/07/25 20:53:47.05 IVngiw360.net
大規模は違うの?って意味ね

425:デフォルトの名無しさん
18/07/25 20:57:49.18 E4aNPZoQ0.net
まずint(4バイトとする)とmalloc(4)の違い教えて
話しはそれからだ

426:さまよえる蟻人間
18/07/25 21:01:13.33 Gtkf0v1Td.net
>>417
mallocは使い終わったらfreeで解放しないといけない。

427:デフォルトの名無しさん
18/07/25 21:02:09.90 DGkeAJEO0.net
Windows Win32 GDIで作ってみた
中身はいい加減だけど、マウスのボタンクリックイベントでポインタ座標を取得して順に直線で繋げているだけ
URLリンク(codepad.org)
URLリンク(i.imgur.com)

428:さまよえる蟻人間
18/07/25 21:04:29.51 Gtkf0v1Td.net
101回目のバッファオーバーフロー?

429:デフォルトの名無しさん
18/07/25 21:09:14.98 DGkeAJEO0.net
エラー処理なし
ウインドウハンドラ作成もメッセージループの処理も適当なのでプロシージャもいい加減な作り

430:デフォルトの名無しさん
18/07/25 21:13:14.68 E4aNPZoQ0.net
俺の言い方がまずかったようだ。
int* a = (int*)malloc(4);
これはわかる
int* a = (int*)malloc(5);
この場合でもコンパイルは通るし実行も出来る。
でも、やっていいことなんだろうかってね。
余った1バイトは気にしないでいいのだろうか?

431:さまよえる蟻人間
18/07/25 21:18:04.56 Gtkf0v1Td.net
>>422
余分に確保しても大丈夫。連続したメモリーブロックと呼ばれるものだよ。頭に構造体を使ってもいいし。

432:さまよえる蟻人間
18/07/25 21:21:01.07 Gtkf0v1Td.net
例えば、int *p = (int*)malloc(5*sizeof(int));と書けば、pは、int p[5];のように使える。

433:デフォルトの名無しさん
18/07/25 21:24:03.17 E4aNPZoQ0.net
>>424
そう。これは分かる。インクリメントで確保した変数にアクセス出来るのも分かる。
>>422の下の例で、例えばa++した時、そしてそのアドレスの中身を変更すようとすると
何か途轍もなく悪いことが起きそうな気がするんだけど大丈夫なんだろうか?

434:さまよえる蟻人間
18/07/25 21:29:51.06 Gtkf0v1Td.net
連続したメモリーブロックからはみ出るから、そのアクセスは違法になるね。

435:デフォルトの名無しさん
18/07/25 21:32:51.80 E4aNPZoQ0.net
ああ、なるほど。そういう時はエラー出るのね。
今試しにインクリメントしたら確かにエラーになった。なるほど良く出来てる。
なんか試すのも怖かったんだわ。ありがとう!

436:デフォルトの名無しさん
18/07/25 21:33:37.75 kwDgMq/WH.net
>>425
未定義だから鼻から悪魔が出てもおかしくないよ
冗談はおいといて、現実には5バイトじゃなく、64バイトとかのサイズをとったりするので、何事もなく動く。ただし、動くのはたまたま。

437:デフォルトの名無しさん
18/07/25 21:36:12.00 E4aNPZoQ0.net
>>428
エラーをちゃんと出してくれるのが分かったから良かった。
まぁ適当な数字入れることなんか絶対ないだろうけど、これが動いたらやべぇなって心配だった

438:さまよえる蟻人間
18/07/25 21:36:50.93 Gtkf0v1Td.net
ただし、アクセスにおいてエラーが出ない事もあり、この手のバクはやっかいで、下手をすると数億円が吹き飛ぶことがある。
だから、最近ではなるべく生ポインタを使わないでやるのがプロ。

439:さまよえる蟻人間
18/07/25 21:39:44.99 Gtkf0v1Td.net
アクセス制御の貧弱なOSでは、不正アクセスは感知されない。

440:デフォルトの名無しさん
18/07/25 21:55:12.69 WkyhwwwQ0.net
>>415
大規模はC++の率が高くなる

441:デフォルトの名無しさん
18/07/25 21:56:03.32 LjfK0h7i0.net
>>412
>>414
すみません。ここCでしたね。C♯でした。場所間違えました。

442:デフォルトの名無しさん
18/07/25 21:57:27.86 LjfK0h7i0.net
>>419
すげぇ。わざわざありがとうございます。

443:デフォルトの名無しさん
18/07/25 23:13:13.16 99/tYlRKM.net
>>427
一般にエラーは出ないぞ

444:デフォルトの名無しさん
18/07/25 23:32:18.85 RmE/AZ04x.net
>>422
このれいだと.引数が 4でも 5でも、バウンダリが不安かな...
mallocは 4とか 16バイトの境界にアジャストされたアドレスを返しそうだけど

445:デフォルトの名無しさん
18/07/25 23:53:34.35 RmE/AZ04x.net
>>436
430ですが、mallocの返す番地は、大概の型にキャストできる境界になってるんだろうね、知らんけど

446:デフォルトの名無しさん
18/07/26 11:01:17.82 Oz5vlcaw0.net
C11はアラインメントが決めれるmallocがあるよ
普通は8の倍数になってる。

447:デフォルトの名無しさん
18/07/26 12:52:49.36 EM3EzxKLa.net
ま、しかし、intが4バイトの保証はないし、malloc()で確保した範囲外がどうなってるかもライブラリ依存だし、変な事に挑戦しない方が良いと思うw

448:デフォルトの名無しさん
18/07/26 15:59:28.57 VR2PsH3f0.net
mallocの返すアドレスはワード教会に揃ってるように
POSIXで決まってなかったっけ? 気のせいか

449:デフォルトの名無しさん
18/07/26 16:54:25.22 ixC9BcxzH.net
>>438
aligned_alloc()だね

450:デフォルトの名無しさん
18/07/26 17:01:26.31 Vf/lMr8pd.net
>>440
決まってる

451:デフォルトの名無しさん
18/07/26 17:03:12.87 0PbkpRUpH.net
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()。

452:デフォルトの名無しさん
18/07/26 17:08:47.42 VR2PsH3f0.net
>>443
そうなんだ
おれはてっきりもっと全然違う基準、例えば64バイトとか16KBとかで
アライメントしたいときaligned_allocの方を使うものかと思ってた

453:デフォルトの名無しさん
18/07/26 17:17:59.96 0PbkpRUpH.net
>>444
そりゃもちろんそういう用途にも使えるよ

454:デフォルトの名無しさん
18/07/26 19:04:38.15 Vf/lMr8pd.net
>>443
パフォーマンスはCの仕様で規定されてないから
そんな事を心配したら標準ライブラリも使えないぞ
memcpyが劇遅かもしれないとか

455:デフォルトの名無しさん
18/07/26 19:07:36.39 Vf/lMr8pd.net
普通の用途は>>444みたいなヤツ
zmmレジスタのサイズ
キャッシュのラインサイズ
HDDのセクタサイズ
FIFOのサイズ
なんかにしたい場合

456:デフォルトの名無しさん
18/07/27 00:14:41.96 J2z2B0JS0.net
家でC言語の独学してたけど眠くなって続かないから週末だけ学校にいこうと思う。関西でお勧めはどこですか?

457:デフォルトの名無しさん
18/07/27 07:12:56.09 GxaYOivnM.net
金の無駄遣い

458:デフォルトの名無しさん
18/07/27 09:20:14.17 UMN2C6wAd.net
大阪大学基礎工学部情報科学科

459:デフォルトの名無しさん
18/07/27 09:52:20.15 mngCBxZNM.net
勉強を成功させるには強い動機付けが必要
やる気も効率も上がらないのはまずそこに失敗してる

460:
18/07/27 20:31:18.69 dNDh2QHO0.net
>>451
動機付け、ですか…
そんなものは初めからありませんでした…

461:デフォルトの名無しさん
18/07/27 21:04:40.28 Gi4wb1wwM.net
個人的にはLinuxのデバドラから入るのがおすすめ
分かってくると俺の方が上手く書けるとか拗らせる

462:デフォルトの名無しさん
18/07/28 02:43:37.63 E0E9ZkiG0.net
動機を自分で意識的に付けようとしても中々出来ないのが普通なのでは?
何かそれなりのメリットがあると信じられないと何もしないのが普通の人間だろうし。
例えば何かをするとモテモテになるだとか、そういう自分にとってのメリットがあるならその何かをやる気は出るだろうけど、そんなのがないなら、あるいはもしあってもそれに気付けないなら普通はやる気は起きんでしょう。

463:デフォルトの名無しさん
18/07/28 07:47:22.78 CM3Pz0hR0.net
C言語、あるいはプログラムそのものの入門書で、文庫か新書サイズの良書はありますか?

464:デフォルトの名無しさん
18/07/28 08:07:15.42 xtvz/nLF0.net
C++ならこれならわかるC++があるが・・・

465:デフォルトの名無しさん
18/07/28 08:08:34.90 8G21bbxI0.net
はじめてのC

466:デフォルトの名無しさん
18/07/28 09:55:07.43 VMG9DnUG0.net
>>455
講談社ブルーバックスなら新書サイズでC本やプログラミング本があったはず。
ただ、書名は挙げられないし、良い入門書かどうかも分からん。
参考までに、本の寸法に制約があるのは何故かな?

467:デフォルトの名無しさん
18/07/28 10:28:26.03 CM3Pz0hR0.net
電車の中や、昼飯食べながら片手で読めるものがあれば、と思ったんです
パソコンいじりながら読むなら大きい方がいいんですけどね

468:デフォルトの名無しさん
18/07/28 11:19:05.91 fTj3LZGS0.net
Kindleで読めば?

469:デフォルトの名無しさん
18/07/28 12:06:22.12 s8FQvaoRM.net
さっさとkindleで読めアホ

470:デフォルトの名無しさん
18/07/28 14:09:45.43 xtvz/nLF0.net
マンガはタブレット端末で見るけど
参考書系は紙じゃないとなんか駄目だわ。全然集中できない。

471:デフォルトの名無しさん
18/07/28 16:49:06.40 XyATpAmoa.net
kindleとか電子書籍って参考書系読みにくいよね
漫画みたいにページそのままならいいのに

472:デフォルトの名無しさん
18/07/28 17:02:27.00 fTj3LZGS0.net
何年も前からiPadや電子ペーパー端末でプログラミングや法律の本読んでるけど特に不都合感じてないな
むしろ紙は持ち運びし辛いし検索もできないから不便だわ

473:デフォルトの名無しさん
18/07/28 19:13:56.62 sJabZ7tp0.net
すみません
この2行のコードを1行にするスマートな書き方ってありますか?
idx = idx << 12;
idx = idx ^ _data;

474:デフォルトの名無しさん
18/07/28 19:15:47.78 CM3Pz0hR0.net
kindleですか、参考にします。
ありがとうごさいました。

475:さまよえる蟻人間
18/07/28 19:31:07.68 g7V8p7HEd.net
>>465
idx = (idx << 12) ^ _data;

476:デフォルトの名無しさん
18/07/28 19:52:37.67 mee2LTKv0.net
>>467
うむ

477:デフォルトの名無しさん
18/07/28 20:05:12.26 0bzuzSMVM.net
初心者スレじゃないんだからidxがvolatileの場合を無視した回答は良くない

478:デフォルトの名無しさん
18/07/28 20:12:34.82 cv0xu0xkM.net
それを言うならvolatileでない場合を無視するのが問題では?
volatileであれば問題ないだろ

479:デフォルトの名無しさん
18/07/28 20:26:36.40 mee2LTKv0.net
わしここの住人じゃなくて通りすがりなんだけど、
>>467 だとなにか問題あるの?

480:デフォルトの名無しさん
18/07/28 21:15:36.33 DyF9e7oqM.net
>>471
もしもidxが送信データを書き込み受信データを読み出すためのレジスタだったら、
複数回書き変えること自体が重要だったり、読み込み時は異なる値を返却するかもしれない、
という割とどうでもいい話。

481:デフォルトの名無しさん
18/07/28 21:32:40.43 mee2LTKv0.net
>>472
C的に見れば無駄なコードが実は必要だったという、そういう話しかな

482:デフォルトの名無しさん
18/07/28 21:52:57.65 jbwKRPPF0.net
最適化で一瞬レジスタの値が変わらなくなったから
それがどうした


483:のという話だからな むしろ一瞬レジスタの値が変わるようなコードがそもそもぜんぜんダメ



484:デフォルトの名無しさん
18/07/28 21:55:35.27 remUbofq0.net
そういう話になってくるとレジスタってなんや?って話になるからな?

485:デフォルトの名無しさん
18/07/28 22:00:32.66 jbwKRPPF0.net
ちゃんと確定値入れろよ
なんで計算中の値いれてんの
なんでそんな頭悪いことすんの
一行にしたいということは
間違いなく計算過程のコードだからな

486:デフォルトの名無しさん
18/07/28 22:02:55.51 aLrZyGnX0.net
通信プロトコルでCPUレジスタ使ってやり取りする様な方法ってあったっけ?

487:デフォルトの名無しさん
18/07/28 22:05:44.90 jbwKRPPF0.net
メモリマップドI/Oなんか簡単に消える

488:デフォルトの名無しさん
18/07/29 00:51:03.42 ++N1yuL90.net
>>477
「レジスタ」って「CPUのレジスタ」だけじゃなくて「I/Oチップのレジスタ」って使い方もするよ

489:デフォルトの名無しさん
18/07/29 07:02:57.29 YD8oKrYq0.net
>>469を書くためにわざと>>465の質問しただろ
まあ確かにvolatileだと>>467ではダメ
明らかに初心者の質問に>>469の回答もどうかと思うが
idx = idx << 12; idx = idx ^ _data;
これで良い

490:デフォルトの名無しさん
18/07/29 07:15:13.10 YD8oKrYq0.net
質問というよりスレのレベルを見るための問題だな
>>474みたいな素人が見事に引っかかっちゃう

491:デフォルトの名無しさん
18/07/29 09:00:29.62 +KuOy2bC0.net
触らぬ質問に騒乱無し

492:デフォルトの名無しさん
18/07/29 09:09:25.31 7lOBGcOb0.net
実は本物の初心者で volatile などというものの存在すら知らず最初の回答で全く問題なかったのだが
知識があるものが知識がある故にあらゆる妄想を膨らませまくって勝手に争って大混乱になり、
最初に質問した者は怖くなって素早く逃亡。このスレで質問するのは止めようと固く心に誓う。←いまここ

493:デフォルトの名無しさん
18/07/29 10:14:38.25 Ga4xmacd0.net
明示してないvolatileなんて考慮する必要ないわ

494:デフォルトの名無しさん
18/07/29 11:40:21.87 LQAkWqzt0.net
知恵遅れのクソニートが
またテキトーなこといってるわ
2ちゃんねるはどこのスレも同じだわ
クソニートはどこにでもいる
やっぱりなクソニート2ちゃんねるから
クソニートの駆除が必要

495:デフォルトの名無しさん
18/07/29 11:43:48.42 LQAkWqzt0.net
まずプロフェッショナルなカンペキなオレの回答の
どこがおかしいか
だれも指摘できてないからな

496:デフォルトの名無しさん
18/07/29 11:51:38.06 LQAkWqzt0.net
ちなみに知恵遅れどものテキトーな回答のどこがおかしいか
オレはすべて回答してる
ここも同じだ

497:デフォルトの名無しさん
18/07/29 11:58:20.56 1hBCvnSx0.net
夏休み?

498:デフォルトの名無しさん
18/07/29 11:59:21.49 LQAkWqzt0.net
プロフェッショナルの回答に
シロウトが口をはさむ余地はない
クソニートは毎日が夏休みだもんな

499:デフォルトの名無しさん
18/07/29 12:01:00.22 LQAkWqzt0.net
マジでなクソニートどもは身の程知らずなわけ
クソニートがまともな社会生活を送ってる社会人に勝てると思ってんの

500:デフォルトの名無しさん
18/07/29 12:08:05.09 Rgaf8fSN0.net
プロフェッショナルかなんか知らんけど組み込み系は苦手のようだな

501:デフォルトの名無しさん
18/07/29 12:09:43.67 LQAkWqzt0.net
な知恵遅れがオレのレスのどこがおかしいか指摘できない
指摘しようがないからな
なぜならスキのないカンペキなレスだからな
どこのスレでも知恵遅れが偉そうにしてるのは同じだ

502:デフォルトの名無しさん
18/07/29 12:09:51.76 7lOBGcOb0.net
>>486
何処で回答してんの?

503:デフォルトの名無しさん
18/07/29 12:11:10.71 LQAkWqzt0.net
>>476>>474 でおもいっきり回答してるわ
知恵遅れはなにが書いてあるか理解できない

504:デフォルトの名無しさん
18/07/29 12:12:34.88


505: ID:7lOBGcOb0.net



506:デフォルトの名無しさん
18/07/29 12:14:12.01 LQAkWqzt0.net
それが回答になってないなら
オマエのオツムに問題があるか
ただの仕事未経験のクソニートがなにも分からずテキトーなこといってるだけだからな
ただクソニートである確度が極めて高い

507:デフォルトの名無しさん
18/07/29 12:15:16.00 7lOBGcOb0.net
>>496
はいはい。おだいじに。

508:デフォルトの名無しさん
18/07/29 12:15:53.84 LQAkWqzt0.net
はい
クソニート図星

509:デフォルトの名無しさん
18/07/29 12:17:35.80 7lOBGcOb0.net
やはり気温40℃超えは人をおかしくするには十分な気温だったようだな。
猛暑も酷なことをするもんだ。合掌。

510:デフォルトの名無しさん
18/07/29 12:19:13.56 LQAkWqzt0.net
クソニートは家からでないから関係ないだろ
電気代も親に払ってもらってるからな
クーラーの電気代もパチョコンの電気代もな
親が払ってくれてんだぞ

511:デフォルトの名無しさん
18/07/29 12:33:12.40 Rgaf8fSN0.net
組み込み系の周辺チップの制御レジスタの仕様書見たことある?
制御レジスタの特定ビットのRead/Write動作そのものに意味があるんだよ
直に制御レジスタをアクセスしないと駄目
最適化でCPUレジスタの中で値を書き換えても無意味、周辺チップは何の動作もしない
volatileはそんな時にコンパイラの最適化を抑制するために使用する
例えば、
idx = (idx << 12) ^ _data;
の例で言えば、(idx<<12)の部分で実際にidxのアドレスにマップされたメモリの値が変更される
その後に最終的に、(idx << 12) ^ _dataの値が上書きされる
idxがvolatile宣言されていない場合は、途中の評価結果はCPUの内部レジスタだけで最適化されてマップされたメモリの値は最終評価結果の書き込みしか保証されない可能性がある
組み込みの制御レジスタの例としてPICのデータシートのリンクを貼っておく
ビット毎にR/Wでチップの機能を制御している様子が分かる
URLリンク(www.microchip.co.jp)

512:デフォルトの名無しさん
18/07/29 12:46:01.14 LQAkWqzt0.net
最適化で、一瞬変わってたのが変わらなくなったらどうすんのとかいってるアホなこといってる知恵遅れに
その一瞬だけ変わってたコードが正しいコードとか
ホンキで思ってんのといってるだけだからな
そもそもvolatileついてなかったら
そのあと書き変わる保証すらどこにもない
そもそも保証がないコードのなんの保証をするわけ?
知恵遅れがいうことはさっぱり理解できないわ

513:デフォルトの名無しさん
18/07/29 12:47:08.34 XJOvENJB0.net
C++相談室 part137 あたりに書き込もうと思った悪態を
間違えてこちらに投稿したのに気づいたが引っ込みがつかなくなった、
という感じがしないでもない。
今までの自分の態度をかえりみると「誤爆しました、すまん」と
書くことも照れ臭いと思ってる、かも知れない。
おそらく俺の勘違い(嫉妬に基づく邪推)だろうけどネ。

514:デフォルトの名無しさん
18/07/29 12:48:26.49 LQAkWqzt0.net
あっちもこっちも
クソニートがえらそうにしてるからな
2ちゃんねるからクソニートの駆除は必要

515:デフォルトの名無しさん
18/07/29 12:50:28.71 LQAkWqzt0.net
むしろあっちでもこっちでも
オレは間違った回答は一切してないからな
すべてカンペキなレスだ
知恵遅れがテキトーなこといってるのは
あっちもこっちも同じ

516:デフォルトの名無しさん
18/07/29 12:57:17.34 Rgaf8fSN0.net
>>475
そりゃvolatileも万能ではないよ
最終的に確認するのは実機デバッグしかない
アセンブラで直接叩くしか解決できない場合もある
ICEで直接追跡しながらプログラムコードとチップの動作を確認するのが組み込みシステムの開発
ただしvolatileすら使わないのでは無駄に書き替え工数が膨れ上がる
最低限の対応はあらかじめ取っておくべき

517:デフォルトの名無しさん
18/07/29 12:57:38.10 Rgaf8fSN0.net
間違えた
>>504

518:デフォルトの名無しさん
18/07/29 13:10:28.41 x0a0gOqsM.net
>>504
このスレの誰もが真っ先にキミを駆除したがってるのに、天才のはずのキミが気づいてない?おかしいねぇ

519:デフォルトの名無しさん
18/07/29 13:14:35.44 LQAkWqzt0.net
クソニートのたまり場から
クソニートを駆除するだけだからな
部屋にいる人間の数より
南京虫やダニやノミの数のほうが多い
そういうスレだ
バルサン焚かないとなまともな人間がよりつかなくなる
その南京虫やダニやノミみたいなオマエを駆除するといってるわけ
わかった?

520:デフォルトの名無しさん
18/07/29 13:26:52.38 OHU95624d.net
>>506
今時、
SFRにアクセスする道具は整ってる
Cで書ける
標準の環境でない場合だけ心配すればいい

521:デフォルトの名無しさん
18/07/29 14:46:05.01 u6NN385t0.net
>>506
volatileの機能は明確に定義されていて
万能だとか頭の悪そうな話は必要ない
実機でデバッグしてコンパイラのバグが発覚することはあって
そのときの状況によってはアセンブラを使うこともあるが
アセンブラで「叩く」って言葉遣いは変だぜ
石を叩くのはCでもできるしな
ところで、おまえさんのところでは
JTAGじゃなくICEって言うのか

522:デフォルトの名無しさん
18/07/29 15:04:54.06 Rgaf8fSN0.net
>>511
インサーキットエミュレータ(In Circuit Emulator:ICE)だな
もっともC言語でプログラム組んでたのは7,8年前までだけどな
当時はルネサス変更前のNECの78K0や東芝のTLCS780、松下(パナソニック)のMN101なんかで組み込み開発をやってた

523:デフォルトの名無しさん
18/07/29 15:12:25.34 h14Y8Y+4d.net
volatileだって書いた通りに動く
コンパイラが信用できないときは逆アセンブルして確認する
実機デバッグしなければならないのは書いたやつが信用できないからで
volatileだからじゃないね
あとjtagはインターフェースのことでデバッガ自体は
ICEと呼ぶかな、うちも

524:デフォルトの名無しさん
18/07/29 15:40:41.02 OHU95624d.net
volatileをつけてコンパイラが(一見)正しいコードを生成しても
CPUが順番を変えて実行したりする
マルチコア、OoO時代は
同期コードを自分で書くのは色々な意味でやめた方が良い
SFRアクセスには使えるが

525:デフォルトの名無しさん
18/07/29 15:52:36.85 OHU95624d.net
>>513
本来の意味のICEなんて絶滅寸前

526:デフォルトの名無しさん
18/07/29 17:56:25.83 VgN+++E0a.net
夏はアイスだよね~

527:デフォルトの名無しさん
18/07/29 17:57:28.24 +KuOy2bC0.net
割り込み禁止って今のOSだと無意味?

528:デフォルトの名無しさん
18/07/29 18:45:23.92 Ga4xmacd0.net
>>517
普通に使ってると思うけど?

529:デフォルトの名無しさん
18/07/29 19:38:18.03 u6NN385t0.net
ユニプロセッサからマルチプロセッサへパラダイムシフトするにあたって
1つのCPUだけ割り込み禁止してもどうたらって話だろ

530:デフォルトの名無しさん
18/07/29 20:17:45.56 VgN+++E0a.net
>>517
それはOS上で動くプログラムの受け取るシグナルの話?
それなら特定のやつ以外は禁止したり自分でハンドら書いたりできるわけだが。
そういう話ではない?

531:デフォルトの名無しさん
18/07/29 20:20:49.84 LQAkWqzt0.net
もしかして
ハードウェア割込とソフトウェア割込の違いすら分かってないのが
レスしてんのか

532:デフォルトの名無しさん
18/07/29 20:25:27.65 LQAkWqzt0.net
そもそもデバイスがCPUより超遅いことが分かってないようなのが
一瞬で値が変わってたのが、それが変わらなくなったらどうすんのとかいってるレベルだからな
ホントなコイツラの程度がイロイロと知れるわ

533:デフォルトの名無しさん
18/07/29 20:25:43.86 QevJM+ENd.net
いい加減秋田

534:デフォルトの名無しさん
18/07/29 20:35:45.02 2vtczMQ4M.net
>>519
どの割込みの話ししてるのか良くわからんけど、デバイスからの割り込みって予め指定したプロセッサが受け取る実装が多いぞ

535:デフォルトの名無しさん
18/07/29 20:44:07.76 YD8oKrYq0.net
良くわからん人は素直に>>514の通りにしなさい
ここで一言で語れるような内容じゃないから

536:デフォルトの名無しさん
18/07/29 20:44:37.09 YD8oKrYq0.net
特に半角君

537:デフォルトの名無しさん
18/07/29 20:47:29.08 LQAkWqzt0.net
低学歴知恵遅れがドヤ顔で書いてるOoOの問題なんか
分かった上でオレはカンペキなレスしてるからな

538:デフォルトの名無しさん
18/07/29 20:48:20.64 LQAkWqzt0.net
もうねドヤ顔でレスしてるヤツの知能レベルが
致命的に低いワケ

539:デフォルトの名無しさん
18/07/29 20:50:38.73 YD8oKrYq0.net
完璧なヤツが遅いとか速いとか
ハード割り込みとかソフト割り込みとか
まったくとんちんかんwww
書けば書くほど痛い

540:デフォルトの名無しさん
18/07/29 20:51:15.80 LQAkWqzt0.net
はい低学歴のレス頂きました

541:デフォルトの名無しさん
18/07/29 20:52:18.31 LQAkWqzt0.net
レスで簡単に判定できる
コイツはクソニート
コイツは低学歴
超簡単

542:デフォルトの名無しさん
18/07/29 20:55:32.94 u6NN385t0.net
ソフトウエア割り込みとかバカかw
センズリ野郎

543:デフォルトの名無しさん
18/07/30 16:36:28.63 3BqaNEe76.net
キーボードから実数値を入力
3件のみを値が多い順に出力
最初にデータの件数(3件以上で、最大で100件とする)を入力
100件を超える場合、「エラー」と出力
ソートを使うみたいです。よろしくお願いします。

544:さまよえる蟻人間
18/07/30 17:03:31.87 hdlApzlBd.net
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]);
}
...

545:さまよえる蟻人間
18/07/30 17:04:07.39 hdlApzlBd.net
比較関数をqsortに渡せ。

546:デフォルトの名無しさん
18/07/30 17:56:36.84 n1wK/LR00.net
アレ? 蟻のarrayはint配列だけど、問題で要求してるのは実数値じゃね?

547:デフォルトの名無しさん
18/07/30 18:03:34.93 ehNSvi3pM.net
値が大きい順なのか
値の出現回数が多い順なのか

548:さまよえる蟻人間
18/07/30 18:12:03.23 6ITjo5O70.net
arrayをdoubleかfloatの配列にしてくれ。すまん。

549:デフォルトの名無しさん
18/07/30 18:38:36.45 xHVHgAPAa.net
夏休みの宿題か・・・

550:デフォルトの名無しさん
18/07/30 18:47:55.30 6X4H9pr00.net
floatならscanf/printfともに%f
doubleならscanfは%lfでprintfは%f

551:デフォルトの名無しさん
18/07/30 18:57:52.63 xHVHgAPAa.net
100件入力しても最初の3件だけを大きい順ではなく多い順に並べると・・・
変な宿題だな。読み間違えてないか?

552:デフォルトの名無しさん
18/07/30 19:07:25.93 Ei1MMj+i0.net
入力データに重複を許し、その出現数をカウントしろとか?

553:デフォルトの名無しさん
18/07/30 19:26:58.25 aSIGzv/D0.net
上位3件

554:デフォルトの名無しさん
18/07/30 19:27:37.61 aSIGzv/D0.net
だろ
普通に考えて

555:デフォルトの名無しさん
18/07/30 19:28:21.43 xHVHgAPAa.net
3件しかデータがないのに多い順となるとその内2件が同じ値でなければできない。
3件とも違うとか、あるいは3件とも同じなら並べかえる必要がない。
更に配列の先頭の二つが同じなら並べ変える必要がない。
それは既に多い順になっている。または全て同じ値だ。
とすると二番目の値と三番目の値を比較し、同じだったら最初の値と三番目の値を入れ換えれば良い。
三つとも全て同じ値の時に無駄な入れ換え処理をすることになるが、この程度はよかろう。

556:デフォルトの名無しさん
18/07/30 19:29:45.17 xHVHgAPAa.net
>>543
知らんがな。

557:デフォルトの名無しさん
18/07/30 19:37:02.99 aSIGzv/D0.net
「3件のみを」は「出力」にかかる
「値が多い」だから出現回数順
「多い順」のソート対象は書いてないが
普通に考えれば入力した全数
これがおれの解釈

558:デフォルトの名無しさん
18/07/30 19:43:33.82 WDgnZ3L+0.net
出現頻度の上位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, を出力する

559:デフォルトの名無しさん
18/07/30 19:44:19.20 v5YMtZ310.net
整数値ではなくて実数値で出現回数って些か問題に無理がないか?

560:デフォルトの名無しさん
18/07/30 19:56:43.56 xHVHgAPAa.net
>>547
その解釈が恐らく正しいと思うが、元の文章は素直に読むとそうならんよなあ。

561:デフォルトの名無しさん
18/07/30 19:58:59.40 WDgnZ3L+0.net
値の大きい順に上位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]);
・・・・

562:デフォルトの名無しさん
18/07/30 20:08:25.88 aSIGzv/D0.net
>>550
そういう解釈も可能

563:デフォルトの名無しさん
18/07/30 20:10:45.97 aSIGzv/D0.net
色々な解釈が可能な文
仕様書からコードにするときには
複数の解釈が無いか気にした方が良い

564:デフォルトの名無しさん
18/07/30 20:17:02.90 kECQyXHfp.net
すみません。値が大きい順です。お願いします。

565:デフォルトの名無しさん
18/07/30 20:21:05.16 Ei1MMj+i0.net
良い試験問題だなw

566:デフォルトの名無しさん
18/07/30 20:23:08.08 aSIGzv/D0.net
ずこーっ
上位3個でqsortとか使うのはアホ

567:デフォルトの名無しさん
18/07/30 20:25:48.38 r0zEs9EBa.net
ああ。sortコマンドとheadコマンド使いたくてうずうずする。

568:デフォルトの名無しさん
18/07/30 20:30:04.49 r0zEs9EBa.net
上位三つなら全部チェックすりゃあ良いんじゃないか?
ループとif文3つか?

569:デフォルトの名無しさん
18/07/30 20:39:55.63 WDgnZ3L+0.net
なんやソート使えという制限はないのか

570:デフォルトの名無しさん
18/07/30 22:01:25.27 WHL4n1uA0.net
ココではquickselectというアリゴリズムを使いなさい
というのが正解
やっぱりなこのスレは浅はかなクルクルパーしかいないわ

571:デフォルトの名無しさん
18/07/30 22:06:32.60 Ei1MMj+i0.net
>>560
上位3名に入れそうだね?

572:デフォルトの名無しさん
18/07/30 22:17:34.44 aSIGzv/D0.net
quickselectもアホ
上位3個なら原始的なアルゴリズムが一番速い

573:デフォルトの名無しさん
18/07/30 22:18:31.28 aSIGzv/D0.net
速くて簡単でリソースも使わない

574:デフォルトの名無しさん
18/07/30 22:19:07.01 Z5guDo9v0.net
課題みたいだし
・バブルソートを書けるか
・保持する要素は3つでいいことに気付けるか
をみる定型問題だろね

575:デフォルトの名無しさん
18/07/31 08:53:15.13 CiY/UjgCK.net
アルゴリズムもわかってない
まず、問題解決のための適切なアルゴリズムの選択ができない
クイックソートは明らかに適切ではない
ここではクイックセレクトが適切
確かにこのスレには
まともな教育を受けたのはいない
基本的になにも知らなすぎる
白痴に近い

576:デフォルトの名無しさん
18/07/31 09:25:34.54 quzd6t9e0.net
クイックセレクトってどんなアルゴリズムなん?
元はクイックソートだけどソートしないで選択するだけって感じ?

577:デフォルトの名無しさん
18/07/31 09:39:58.84 +/oTEV5Ja.net
>>566
無駄な比較をしない感じ

578:デフォルトの名無しさん
18/07/31 11:52:18.67 Sty7sRvnH.net
>>566
パーティショニングして目的の順位を含む方だけ再帰

579:デフォルトの名無しさん
18/07/31 12:06:11.93 TL2AM5+0M.net
あー、そういうことか

580:デフォルトの名無しさん
18/07/31 12:43:01.65 xftY0DAGd.net
明らかに上位3個の抽出には向かない

581:デフォルトの名無しさん
18/07/31 12:45:03.91 xftY0DAGd.net
最大値を探すのにクイックセレクトを使うアホはいない
そういうこと
3個でも同じ

582:デフォルトの名無しさん
18/07/31 13:12:03.24 kZi5wZ5a0.net
入力毎に判定。
3プールのmin以下なら無視。
maxより大きいなら順位シフト。
mid以下ならmin上書き。
それいがいはmidをminにしてmid上書き。

583:デフォルトの名無しさん
18/07/31 13:17:53.66 xftY0DAGd.net
そういう原始的なアルゴリズムが最良

584:デフォルトの名無しさん
18/07/31 13:21:36.88 xftY0DAGd.net
最悪パターンは小さい順に並んだ時だが
これでもせいぜい数倍になるだけ
クイックセレクトの最悪値は酷い
もちろん典型例でも原始的アルゴリズムの方が速い
元データも変更不要
メモリも3個分だけ

585:デフォルトの名無しさん
18/07/31 13:29:26.70 NZiCEZHW0.net
1,ソート対象...data[5, 3, 12 ,8 ,6]
2,メモリをソート対象の最大値個数分確保...a[12]
3,ループでa[5]=data[5], a[3]=data[3]...と全部入れる
4.詰めてオシマイ
史上最速ソートだと思わないか?ループ1回で終わるどw
 

586:デフォルトの名無しさん
18/07/31 13:45:59.26 j6W8yzMq0.net
>>575
バケットソートだね~
値の重複がある場合はリストをつなぐ必要があるし
今回の問題は要素が実数値だから不適になっちゃうけど

587:デフォルトの名無しさん
18/07/31 13:49:32.57 hTiFVqvS0.net
質問内容によるとソート対象は実数値なんだが

588:デフォルトの名無しさん
18/07/31 13:49:52.96 NZiCEZHW0.net
>>576
あ、そういう名前で実際あるんだね・・・
素晴らしいアイディアだと思ったのに(´・ω・`)

589:デフォルトの名無しさん
18/07/31 14:44:47.46 riS9l2jZ0.net
値をいれる必要はない。
各要素を出現回数のカウンタにすれば重複数も記録できる。
だがこれができるのは入力が整数で表せる場合だけ。

590:デフォルトの名無しさん
18/07/31 14:46:44.33 UZkSYp0La.net
ま、しかし、普通の数値で100しかデータがないと今時のPCだとどんなアルゴリズム使っても人間が感じられないぐらいのスピードで実行しちゃうと思う。
わざとsleepとかするなら別だが。


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch