スレ立てるまでもない質問はここで 149匹目

■ このスレッドは過去ログ倉庫に格納されています
2018/06/17(日) 10:31:28.00
質問する前にGoogleで検索しましょう。 http://www.google.com/
プログラム・ソフトの使い方は PC 初心者板やソフトウェア板へ。
ウイルス、ハッキング・クラッキングを求めるような発言は禁止です。
Javascript は Web 制作板、CGI は Web プログラミング板へ。
業界談義、愚痴はプログラマ板へどうぞ。
ゲーム関係の話題はゲーム製作板へどうぞ。
ネタ、板とは関係の無い話題はご遠慮ください。
ワッチョイは住人が離れスレが寂れます導入禁止。

前スレ
スレ立てるまでもない質問はここで 148匹目 [無断転載禁止]©2ch.net
https://mevius.5ch.net/test/read.cgi/tech/1495618637/
2019/05/26(日) 14:32:07.38ID:WMkIoFQL
以下のようなWindowsプログラム(メインプログラム)のソースを書きました。

main.cpp
-------------------------------------------------
int main()
{
int *pNumber2 = NULL;
HMODULE hMod = LoadLibrary(DLLPATH);
PTESTMALLOC ptest2 = (PTESTMALLOC)GetProcAddress(hMod, "Test_malloc");
ptest2(&pNumber2);
_CrtDumpMemoryLeaks();
return 0;
}
-------------------------------------------------
この中で、外部DLL(DLLPATH)の関数「Test_malloc」のソースは以下です。
-------------------------------------------------
void Test_malloc(int **pNumber2)
{
int *pNumber = new int[3];
pNumber[0] = 4;
pNumber[1] = 5;
pNumber[2] = 6;
*pNumber2 = pNumber;
return;
}
-------------------------------------------------

DLLPATHがdebugモジュールの場合、CrtDumpMemoryLeaksでpNumber2の解放漏れが検出できました。
しかし、DLLPATHがReleaseモジュールの場合、解放漏れが検出できませんでした。

外部DLLには上記のようにDLLの中でメモリを獲得し、呼出側で解放用の関数を呼んでメモリを解放しなければいけないものがあります。
外部DLLのdebugモジュールは一般には入手できないため、このような解放関数の呼び出し漏れによるメモリリークを検出する方法はないでしょうか。
2019/05/26(日) 16:24:24.45ID:iIpVyaKq
plsqlを.SQL形式で作って
それを読み込んでwindowsでワンボタンで実行するアプリ作りたいんだけど
手軽にやるならVBですか
303デフォルトの名無しさん
垢版 |
2019/05/27(月) 14:10:24.34ID:lwWgLhFv
Release 用のモジュールでは、最適化されて、デバッグ用のシンボルなども削除されているのでは?
定数・変数なども計算済みで、なくなっているかも

Release 用には、デバッグ情報が無いかも
304デフォルトの名無しさん
垢版 |
2019/05/29(水) 07:16:15.37ID:D5Uzvk1s
netbeansでgradle supportプラグインを入れて、
build.gradleでビルドできてるんだけど、
自分が使ってるgradleのバージョンを確認するにはどうすればいいの?
分かるのはgradle supportプラグインのバージョンだけ
2019/05/29(水) 16:42:43.88ID:GzQiC9d1
(1..5)
と記述すると1から5までの値を受け取れる…みたいな書き方があったような気がするんですが
rubyかpythonだったと思うんですが
どの言語の仕様だか解りますか?
この記述の後ろに何らかの標準関数をくっつけて配列に格納できるんだったかループに使えるんだったかあったような気がします
変な質問ですみません
306デフォルトの名無しさん
垢版 |
2019/05/29(水) 18:22:39.44ID:D5Uzvk1s
kotlinのループ処理じゃない?
307デフォルトの名無しさん
垢版 |
2019/05/30(木) 08:43:37.12ID:bb+aWtrz
Ruby の範囲・range。
.. は終端を含む。... は含まない

to_a で配列にできる

p (1..3).to_a #=> [1, 2, 3]
p (1...3).to_a #=> [1, 2]

文字列でも使える

r = "ay".."bb"
r.to_a #=> ["ay", "az", "ba", "bb"]

r2 = "08".."11"
r2.to_a #=> ["08", "09", "10", "11"]
308305
垢版 |
2019/05/30(木) 13:55:13.85ID:3LmNBitO
>>307
あ〜〜〜それです!
名称が全然解らなくて調べようがありませんでした
ありがとうございました
2019/05/31(金) 06:19:52.46ID:FGVbdXzr
to_aにイラッとしてしまった
2019/05/31(金) 22:12:23.17ID:4mPjmqkh
*より分かりやすくていいんでない
311デフォルトの名無しさん
垢版 |
2019/06/06(木) 21:58:18.27ID:zbQJx2S0
カーネルとかデバドラの開発でクラス設計は有用だと思う?
クラスが使える言語で開発するとして
それともやっぱりC言語が有力?
2019/06/07(金) 16:36:42.56ID:RHh4qcVs
ステートフルなら、クラスにまとめてクリアとかイニシャライズとか書くと扱いやすそうではある。
ステートレスならクラスにする必要はあまりないきがす。
2019/06/07(金) 22:29:25.97ID:7Zon1Gn3
GitHub上に公開されているオープンソースのコードにエラーがあって
それを修正しようとプルリクエストを送ったんですが
送ったプログラムにもエラーがあるってことで弾かれた場合
そのプルリクってどういう扱いになるんでしょうか?
一応元のコードに不具合があるという点だけは目を通してもらえる感じですか?
2019/06/07(金) 22:51:50.27ID:xDq7LtU5
>>311
そもそもそんな分野は mangling すら嫌われるし this を隠すことすら嫌がられるし、で、C 以外の最近の言語は全員討ち死にのような気がします
2019/06/10(月) 18:45:32.23ID:hjyhFff5
数学上の数式はすべて手続き型のプログラミング言語で表すことができますか。
これはどうしてもできなかったというご経験はござますか。
2019/06/11(火) 23:56:58.62ID:Z0aKnh9V
アンケートです
頭の中で想像してみてください
375という数は
A) 100がみっつ + 25がみっつ
B) 5の三乗がみっつ
C) そのほか
どういうイメージを最初に持ちましたか?
2019/06/11(火) 23:58:16.12ID:gBPMsvnG
375という数
2019/06/12(水) 00:13:42.12ID:bxm7oLYt
直感的に感じるものがない場合は
わざと想像を膨らませてみてください
2019/06/12(水) 00:18:07.72ID:GC4fsR6T
アンケートの癖に命令するな
2019/06/12(水) 04:27:49.87ID:mlkAn7XZ
皆殺し(375)じゃぁ、ゲルマン民族大移動
2019/06/12(水) 12:46:56.64ID:5tKK6KtT
DOSコマンドで、特定ドライブ配下の*.jpgファイルを削除し、そのjpgファイルが格納されていたフォルダも削除するにはどのような記述をすれば良いでしょうか?
2019/06/12(水) 13:17:32.58ID:bfQ8I+0P
DOSコマンド
ディレクトリ移動
ファイル削除 ワイルドカード
ディレクトリ削除
で検索
2019/06/12(水) 15:28:01.64ID:5tKK6KtT
>>322
ありがとうございました
2019/06/12(水) 17:30:10.35ID:o59LDmQW
formatで一気に削除
2019/06/12(水) 17:53:55.84ID:mJKxpoGK
旦那の秘蔵のお宝画像が全消去されてしまうのだろうか((((;゚Д゚))))ガクガクブルブル
2019/06/12(水) 19:11:31.78ID:bxm7oLYt
>>317 >>320
ありがとうございました
327デフォルトの名無しさん
垢版 |
2019/06/13(木) 04:40:29.01ID:t9tRfwUY
JavaとC++はどちらがバグ発生率が高いですか?
2019/06/13(木) 06:43:03.36ID:Djxqh5DA
>>327
まずあなたの頭のバグを治すべき
2019/06/15(土) 03:36:13.26ID:+E0qeAkk
win32APIはどれくらいC言語を勉強したら習うのが望ましいですか?
C言語入門書一冊読んですぐにAPI入門読んで理解できますかね?
2019/06/15(土) 06:54:04.45ID:eMSFP3VA
使いたいと思った時、使う必要になった時
2019/06/15(土) 10:48:59.12ID:wlgqp4S/
>>329
もうCは覚えましたか?
2019/06/15(土) 11:32:24.39ID:iDiy+1Rd
ファイル結合を普通にやると
ファイル1を読み込んで、新ファイルのバイナリとして書き出して、ファイル2を読み込んで、新ファイルのバイナリに追記して…
って感じの冗長な処理がされてしまいますよね

これをさせずに、結合させるファイルのディスク上のアドレスを合成して新しいファイルを作るという処理で
ファイルを結合させることはできないでしょうか?(結合元のファイルは消滅してもいい)
2019/06/15(土) 11:39:41.35ID:mBb+t2vo
>>332
追記モード("a")でオープンして、別のファイルを読み込んだ内容を追記すればいい。
2019/06/15(土) 11:39:52.88ID:PosgiMuo
>>332
セクタ長できっちりサイズが割れないときはどうすんの
2019/06/15(土) 11:45:04.72ID:eMSFP3VA
デフラグしたいのか?
2019/06/15(土) 11:48:52.10ID:PosgiMuo
どんな環境か知らんがファイルシステムの勉強をするべきでプログラムはその後の話だな
2019/06/15(土) 12:14:19.04ID:iDiy+1Rd
>>334
セクタのことは考えてませんでした
このやり方はやはり無理っぽいですね
ありがとうございました
2019/06/15(土) 17:51:40.28ID:OoEP0oKH
>>331
理解出来てるかどうかは別として入門書に書いてある事は覚えました
何かを作った事はないです
2019/06/16(日) 09:56:53.52ID:zdQGVQX8
>>338
まず、何でもいいから何か作ってみるべき

次に何かGUIアプリを作る過程でWin32APIを勉強すればいい
(GUIの操作でWin32APIが必須になる)
2019/06/16(日) 20:46:15.60ID:xlnV7xsD
Win/Linux/BSDで使えてMIT/BSDライクライセンスのラスタライザがあるベクタフォーマットってありそうで見つからない
フルスペックのSVGみたいにリッチな必要はなくてテキストと基本的なプリミティブを使えて任意のピクセル数のキャンバスに
ラスタライズできれば良いんだけどな。う〜むどうしたものか
2019/06/16(日) 21:41:08.46ID:KLVL0nwc
>>340
Cairo
2019/06/18(火) 17:09:41.83ID:ex1at4o8
昔オーストラリアでハッシュ値が証拠にならんって科学的にめちゃくちゃな判決を出した
裁判事例があったそうですが、あれはその後どうなったんですか?
343デフォルトの名無しさん
垢版 |
2019/06/19(水) 07:52:34.88ID:+gD2USC8
visualstudio2019でscanf関数を使うと
//戻り値が無視されましたscanf
//CL.exeはコード2を伴って終了しました
とエラーが出て実行できません。scanf_s関数を使うと
https://gyazo.com/9c36fd93f3fd6e3acdf299cf5262baf6 このようなエラーが出て上手くいきません。
ためしに SDL という項目をいいえに変えてみたのですが変化なしです。
どうすれば実行できるでしょうか?
2019/06/19(水) 17:56:17.01ID:vuazDsLb
VCのスレ見つけたのでそちらで聴きます
345デフォルトの名無しさん
垢版 |
2019/06/23(日) 15:02:47.62ID:6LMXkq2m
この記事を解説してください。プロトタイプとは何ですか?
https://sumim.hatenablog.com/entry/20080413/p1#c1208228975
>プログラムを動かしている最中にオブジェクトが出来ること、すなわちメソッド(method)を追加したり再定義したりできるかだ。
筆者はこの説明を否定しています。そしてこう説明しています。
>オブジェクトがそれが属するクラスによらず独自のメソッドやインスタンス変数を持てること*こそ*が、「プロトタイプベース」あらため「インスタンスベース」の本質です。

独自のメソッドは実行時に追加されるんですよね?
だったら最初の説明と同じでは?

あとインスタンスベースと呼べと言っているけど、
インスタンスはクラスに対して定義される言葉では?
クラスが無い場合インスタンスという概念を用いれないのでは?
2019/06/23(日) 15:29:52.70ID:NwTixeBO
>>345
> 独自のメソッドは実行時に追加されるんですよね?

一方は実行時でもう一方は特に言及してない
また後者は属するクラスによらずという条件があるが前者には無い
347デフォルトの名無しさん
垢版 |
2019/06/23(日) 15:43:09.19ID:6LMXkq2m
実行時以外いつプロトタイプベースでオブジェクトのスロットへの設定が行われるんですか?
ソースコード中に静的に定義された定数的なオブジェクトを想定してるんですか?

属するクラスによらず、ってプロトタイプの時点でクラスが無いんだから暗黙の前提では?

というよりクラスがあるとメソッドとかを勝手に変えられちゃうと
型による安全性が機能しなくなるから、クラスがありつつプロトタイプってできない。
348デフォルトの名無しさん
垢版 |
2019/06/23(日) 15:48:05.47ID:6LMXkq2m
あとやっぱりインスタンスベースというのはおかしくて、
クラスがある場合のみインスタンスという概念があるので、
プロトタイプベースでいいですよね?

インスタンスというだけだと、スロットの動的な設定ができることを示唆しない。
インスタンスという概念はクラスで作られたものを指すので、
その時点で好き勝手にメソッドを減らしたり増やしたりできないです。
それをすると型安全が機能しなくなるので許可する言語はありません
2019/06/23(日) 16:49:41.08ID:GLd8hMPk
アセンブラでもできると言ってるのと同じで、
できるできないの話をすればそりゃできるだろうけど、
人間が望んでいるのは高級言語
クラスベースを人間が望んでる
2019/06/23(日) 16:55:58.30ID:NwTixeBO
>>347-348

独自のメソッドやインスタンス変数を持てることが本質という主張なので
とりあえずクラス固有のメソッドを減らすという拡大解釈は無しで考えるべきでは?
2019/06/23(日) 17:37:38.66ID:fwFAut7X
JavaScript は、prototype 型

https://developer.mozilla.org/ja/docs/Web/JavaScript/Guide/Inheritance_and_the_prototype_chain

var car = new Car( ); // コンストラクタ

// インスタンスと、prototype の両方に、メソッドを追加する。
car.f = function( ) { }
car.__proto__.f = function( ) { return 1; }

console.log( car, car.__proto__ ); // Car { f: [λ] } Car { f: [λ] }

var car2 = new Car( ); // コンストラクタ
console.log( car2, car2.__proto__ ); // Car {} Car { f: [λ] }

console.log( car2.f( ) ); // 1

car.f, car.__proto__.f は、1階層異なる。
car.f は、そのインスタンスだけに、メソッドを追加した(Ruby の特異メソッド)

一方、car.__proto__.f は、1階層親の__proto__、つまり、Car コンストラクタにメソッドを追加したので、
別のインスタンスにも追加されている!

だから、car2.f( ) を呼んだ際、car2 には、fメソッドが無いのに、
prototype chain を遡って、Carコンストラクタに追加された、fメソッドを呼べる!

ただし、__proto__ は非推奨となった!
352351
垢版 |
2019/06/23(日) 17:58:05.28ID:fwFAut7X
>>351
修正。
先頭に、function 文が抜けていた

function Car( ) { }

var car = new Car( ); // コンストラクタ
2019/06/23(日) 19:06:45.33ID:MSRPr+EY
JavaScript は、prototype 型 → 不便だから改良しましょう → クラスベース型
2019/06/23(日) 20:24:44.44ID:RW2rY4dT
TypeScriptやってるとclassも要らない気がするわ
355デフォルトの名無しさん
垢版 |
2019/06/23(日) 23:39:07.95ID:6XN9j8Lj
プロトタイプ型言語ではインスタンス化することをコンストラクタって呼ぶの?
356351
垢版 |
2019/06/24(月) 07:00:06.78ID:a0F4XMAJ
コンストラクタとして使う、メソッドを定義する

つまり、普通のメソッドではなく、
new を付けて呼んで、インスタンスを作ることを前提とするメソッド

function Car( ) { }

コンストラクタを呼んで、インスタンスを作る

var car = new Car( );

つまり、メソッドには2種類ある

new を付けて呼んで、インスタンスを作ることを前提とするメソッドと、
new を付けずに呼んで、インスタンスを作らないメソッド(普通のメソッド)
357デフォルトの名無しさん
垢版 |
2019/06/24(月) 07:02:00.65ID:218UFAwP
>>350
あ、わかったかも。
「(クラス毎ではなく)オブジェクト毎に所持メソッドやメンバー変数を変えられる」
これがプロトタイプの本質だって言ってるんですね。

否定してる最初の説明でもその意味だと思うけど、
「動的にクラス定義を変更してその全インスタンスの振る舞いがまとめて変わる」
のか
「特定のオブジェクト限定で振る舞いを変えられる」
のかが紛らわしい。

まあでも当然後者の意味だと思うけど。
クラスが動的に再定義されちゃったら型安全壊れるし、
コンパイル時にバグを見つけれる事が強みなので、それをやる言語は無いはず。
2019/06/24(月) 07:43:03.13ID:y1bnKJFn
型安全ってC/C++みたいな言語の用語だぞ

そういう言語で、正しくない型として扱うと
不正なメモリアクセスとか無効な命令実行でプロセスが不正に落ちる

JavaScript等はどんなことをしてもプロセスが落ちることはない
正しくない型であつかっても例外が発生してトラップできる
だから動的に再定義されたとしても、型安全のまま
359デフォルトの名無しさん
垢版 |
2019/06/24(月) 08:27:58.03ID:218UFAwP
ああそうか
まあでもその存在しないメソッドを呼んでしまったとかで例外が出ちゃうから、
クラスを使用している言語はオブジェクト別の所持メソッドの変更を許可しないだろうということです。
それをやっちゃうとせっかくのクラスによる安全性を放棄してしまう
2019/06/24(月) 09:03:19.73ID:Fz7q9gfG
型安全ではなく「強い型付け」の恩恵の話だな
プロトタイプに限らず、ダックタイピング全般の考え方は
型付けをユルくすることで恩恵を一部手放すと同時に別のメリットを得る
トレードオフだから原理主義的に決めつける必要はなく言語次第
金型を使いたいときは使えばいいし手彫りしたいときはすればいい
そういう言語があってもいいじゃない
361デフォルトの名無しさん
垢版 |
2019/06/24(月) 10:51:03.90ID:218UFAwP
ダックタイピング調べてみた。

これはたぶんJavaプログラマー的に言えば
interfaceを明記しなくても自動判別してくれるということだろう。
メソッド側が期待するinterfaceとクラスが実装しているinterfaceを自動判別する。

https://ja.wikipedia.org/wiki/%E3%83%80%E3%83%83%E3%82%AF%E3%83%BB%E3%82%BF%E3%82%A4%E3%83%94%E3%83%B3%E3%82%B0
class Duck
def sound
'quack'
end
end

もしこれのsoundメソッドのとこをコメントアウトしたら
test(Duck.new)がコンパイルエラーになるんだろう。

しかしプロトタイプベースだったらコンパイル時にエラーを出すのは無理だろう。
しかしクラスのメリットは確かにコンパイル時エラーの検出のためだけではない。
プロトタイプかつクラスを使用する言語があったとしたら、
その場合クラスは単に抽象的な意味を記述するため、あるいは
クローンの連鎖の大元になるためにある。
そんな言語もあってもいいのかもしれない。
362デフォルトの名無しさん
垢版 |
2019/06/24(月) 11:08:38.28ID:218UFAwP
ダックタイピング良く調べてみると
このwikipediaの記事は間違いだって言ってる記事があるな
「そのオブジェクトがどんなメソッドを所持しているかを事前に知らずにとにかく呼び出してしまう」
つまり動的バインディングのような概念である、と。
プロトタイプベース系の話だな、それなら。

wikipediaの記事からは、クラスがあって、
interfaceを書かなくても多態性が実現できるinterface自動判別の仕組みだ、
という印象を受ける。
363デフォルトの名無しさん
垢版 |
2019/06/24(月) 11:11:04.94ID:218UFAwP
https://en.wikipedia.org/wiki/Duck_typing#Criticism_of_the_term_itself
>AttributeError: 'Whale' object has no attribute 'fly'

英語版wikipediaの記事だと、「メソッドがあるかないかを事前に気にせずにとにかく呼び出してしまう」
というプロトタイプベース的な意味でダックタイピングという言葉を使用しているようだ。
364351
垢版 |
2019/06/24(月) 12:51:20.27ID:a0F4XMAJ
そのインスタンス固有のメソッドを、Ruby では、特異メソッドと言う

instance-specific method
singular method
singleton method, eigen method

Rubyも、Duck Typing(動的型付け), Open Class を使う

obj.print( "あ" )

Duck Typing では、インスタンスobj のクラス・型・継承関係は関係なく、振る舞いで決まる。
objが同名のメソッドで、同じ数の引数を持つだけでよい

「アヒルのように歩き,アヒルのように鳴くものは、アヒルに違いない!」

改訂2版 Ruby逆引きハンドブック、2018/8/28

この本で、みっちり学ぶと、オブジェクト指向・関数型・メタプログラミングを理解できる!
365351
垢版 |
2019/06/24(月) 12:59:35.18ID:a0F4XMAJ
Duck Typing では、インスタンスobj のクラス・型・継承関係は関係なく、振る舞いで決まる。
objが同名のメソッドで、同じ数の引数を持つだけでよい

Java で言う、同じinterface を持つけど、特に宣言はしない。
呼び出すメソッドに、反応するかどうか

「アヒルのように歩き,アヒルのように鳴くものは、アヒルに違いない!」

ただし、Duck Typingは、クラスよりも変幻自在だから、モンキーパッチになりやすいので要注意!
2019/06/24(月) 13:56:33.09ID:GG24ezzu
> 「アヒルのように歩き,アヒルのように鳴くものは、アヒルに違いない!」

コードで書くと

if ( 生き物.鳴く() = "ガアガアガア" ) {
 print "アヒル"
}
2019/06/24(月) 13:57:16.50ID:GG24ezzu
ダックタイピングとは、メソッドの呼び出し結果で
型が決まるということを意味している。
2019/06/24(月) 22:04:21.83ID:J1mrJWpK
ダックタイピングで言う「型」って意味ないよね。
2019/06/25(火) 00:59:08.16ID:5X/+rI3v
実際の所、アヒルのように歩いて,アヒルのように鳴いたからといって、
アヒルとは限らないんだよな。アイボが犬ではないのと同じように
2019/06/25(火) 02:13:42.81ID:UDO8hU+H
https://ideone.com/3vJCEw
ダックタイピングってこうだっけ。C++は進む。
2019/06/25(火) 05:37:18.00ID:OfIMnEVQ
>>370
継承を使うものはダックタイピングとは呼ばない。
C++ でやるなら type erasure とか使うんじゃないかな。
372デフォルトの名無しさん
垢版 |
2019/06/25(火) 11:44:43.82ID:Cc6pu6kp
型安全はコンパイル時にエラーを見つける事を助ける、みたいな記述があるんですが
実行時にも型情報に基づいて例外を出す事はありますよね?
例外を出して処理をキャンセルしたということをもって型安全と言えますか?
もしそうならコンパイル時エラーだけでなく実行時例外に貢献するだけでも型安全である、
つまり動的型付けでも型安全な場合がある、と言えますか?
もし型の間違いを無視して処理を続けたら、言語にもよるけど、メモリ安全を壊すかもしれない。

そもそも"安全"と言っているのは、何かを破壊から守っているという事です。
メモリ安全は分かり易いですが、型安全とメモリ安全は違うようです。

「型安全とは関係が宣言されていない無関係な型へキャストされないこと」
と定義すると間違いですか?
2019/06/25(火) 12:20:37.40ID:ru6rAPvz
>>372
OSのエラーダイアログが表示されてプロセスが強制終了するなら型安全ではない
言語のtry-catchなどでトラップできる例外が発生するなら型安全
2019/06/25(火) 12:20:53.88ID:ru6rAPvz
> 「型安全とは関係が宣言されていない無関係な型へキャストされないこと」
間違い
375351
垢版 |
2019/06/25(火) 12:25:15.12ID:/8kFlQVi
JavaScript のjQuery は、引数の型によって、処理を変える

引数が文字列なら、文字列の処理へ、
引数が配列なら、配列の処理へ、

それら以外の型なら、エラーとか
376デフォルトの名無しさん
垢版 |
2019/06/25(火) 14:22:34.24ID:vGWUuZ9A
dllの作り方がわかりません
exeファイルがobjファイルをリンクするというのはわかりましたが、dllも同じですか?
377デフォルトの名無しさん
垢版 |
2019/06/26(水) 07:38:44.89ID:+23jdxl3
「visual studio dll 作成」で検索!

Visual Studio で、コンパイルして下さい!
その際、実行ファイル(exe)ではなく、共有ライブラリ(dll)を作成して下さい
2019/06/26(水) 22:25:38.02ID:FyRR2J0k
俺がときどき不思議に思うのは
>>370みたいなド素人がなぜ話題に顔突っ込んで来るのか
なぜ平気で顔突っ込んで来れるのかということ

自分の力量とみんなの力量その両方が見えてないからこそ
こういう周回遅れ野郎が迷い込んで来るのかなあ
379デフォルトの名無しさん
垢版 |
2019/06/27(木) 00:06:31.05ID:xCRWMcAz
こんなただの質問スレで他人の力量(笑)なんてわかるほうがおかしい
2019/06/27(木) 16:56:06.00ID:mr6OcBu+
>>378
いやー、タイプイレーザー書かないと認めてくれないらしいのでサンプルクレ。C++で。
2019/06/27(木) 21:33:47.43ID:Qltwuv2S
正の整数 a および n が与えられたとき、

a = m^n

となる整数 m が存在するかしないか判定し、存在する場合には、 m を求めるアルゴリズムはありますか?

実際にプログラミングすることを考えています。
浮動小数点数を使っても構いませんが、結果は厳密に正しい必要はあります。
2019/06/27(木) 21:43:43.54ID:mr6OcBu+
A^(1/n)ってだめ?
上記は数学関数のpow使えばできんでもないよ。
2019/06/27(木) 21:50:04.25ID:nAZ+iPIM
整数の巾乗が正確に計算できるなら、逆算で概数を求めて一番近い整数で検算できるでしょうね。
384デフォルトの名無しさん
垢版 |
2019/06/28(金) 02:05:53.37ID:k4pW0x/X
複数のプロセスで読み取り専用のファイルが開かれていたら
実メモリ上でそれは一元化されてるんでしょうか

例えばJavaアプリを複数実行した場合
JDKのファイルは実メモリ上で一元化されていますか?
2019/06/28(金) 02:16:43.48ID:wKOen38i
アプリの同一性を確保するためにハッシュなりなんなりを使うのもコストかかるので
よほど起用じゃないと同一性を保証することはないと思う
マシンパワーは余ってるので力業に行きがちだけど。
2019/06/28(金) 02:17:37.01ID:wKOen38i
>>384
そのメモリというのは一時メモリなのかそれともストレージそのものなのかも重要だ。
2019/06/28(金) 03:41:16.16ID:fwV77rc1
>>384
読み取り専用かどうかは関係ない
読み取り専用を解除して再設定することもできるんだから

読込したらキャッシュに入る。書き込みしない限りキャッシュは有効
だから何度読み込んでも同じであることが保証されるので
これはメモリを一元化(共有)される
該当メモリに書き込まない限り、メモリは共有される
2019/06/28(金) 07:49:11.63ID:D2ExxOf/
読み取り専用・更新されない部分は、メモリ上に、1つしか作らない

そのメモリに参照カウントを付けて、いくつのプロセスから参照されているか、数えている。
参照カウントが0 になったら、破棄される

書き込みで開くと、メモリを共有されない
389デフォルトの名無しさん
垢版 |
2019/06/28(金) 11:44:26.09ID:k4pW0x/X
https://ja.wikipedia.org/wiki/%E5%A7%94%E8%AD%B2#Java
class BがさらにメンバーCを持ったとします。
private C c = new C();
それで、aとcの依存を表現するにはやはり引数にいちいち指定するしかありませんよね?
あるいはaがBに依存している場合thisを渡すとか。

というのは、継承より委譲という話があるけど、
もし多階層の継承を委譲ベースに書き換えた場合、
親子クラスが依存していたなら、冒頭のa,b,cの相互依存性のような事をやらないといけませんよね?

そう考えると委譲ってそんな常に推奨されるほど良いもんですか?
390デフォルトの名無しさん
垢版 |
2019/06/28(金) 12:04:28.45ID:k4pW0x/X
補足

a.method()
とかやるときに
a.method(this)
みたいにしないと、thisや他のメンバー変数との依存関係を表現できない。
メンバー変数のオブジェクトのメソッドを呼び出すのにいちいちthisを指定する
というのもなかなか見かけない変な設計な気がします。
2019/06/28(金) 12:27:09.28ID:D2ExxOf/
委譲は、文字列・配列などの、標準的なクラスを継承させないため!

例えば、Stack クラスを作る場合、Array を継承して、クラスを作らないようにする。
Stackクラスの中に、Array型のインスタンス変数を作って、そこへ処理を丸投げする

例えば、Ruby なら、Array型のインスタンス変数ary に、処理を丸投げする

ただし、ary は、下の3つのメソッドしか使えません!
Arrayクラスの他のメソッドは、使えません!

Forwardable#def_delegators( :@ary, :push, :pop, empty? )
392391
垢版 |
2019/06/28(金) 12:35:50.24ID:D2ExxOf/
継承すると、親クラスの数十ある、すべてのメソッドで、
正常に動くように作らないといけないから、非常に厄介!

だから、標準的なクラスを継承してはいけない。
継承用の親クラスは、継承用に作られた、Object みたいなメソッド数が少ないものだけを使う

でも、Array の機能も少しは、使いたい場合に、
委譲を使って、使うべきメソッドを指定して、限定する事ができる
2019/06/28(金) 12:58:47.04ID:SBZUtncH
IT系の板のカテゴリってなんで「PC等」なんですかね?
世間から見るとそれがしっくりくるカテゴリ名なんすかね?
PCが大文字なのも、得も言えぬ感じを醸し出してて…
2019/06/28(金) 13:03:18.00ID:hmFpZHIL
大文字
2019/06/28(金) 14:17:04.07ID:WO9nfxii
*全角文字
2019/06/28(金) 18:06:53.87ID:gOdU8vWG
LinuxでC++で数値計算を書いてます。

引数が配列の関数について質問なんですけど、関数が最初に吐いた結果そのまんまを
弄らずに計算用の配列に渡す方法はないでしょうか?
作った関数の中に棄却採択法(乱数処理)が入ってるんですが、渡す際にforで回して
計算用配列に渡す成分ごとに関数を呼ぶと乱数計算がやり直しになるので計算結果の
ちゃんとした相関が崩れちゃうので困っています。

グローバル変数を用意して、関数は値を渡さず呼ぶだけにして計算結果をグローバル変数経由で
入手することでいちおう何とかしたのですが、関数を回すことなく1回の計算結果の配列を
そのまま取ってくる簡単な方法はないでしょうか?
2019/06/29(土) 01:36:51.17ID:pu12T/0o
日本語でおけ
2019/06/29(土) 01:51:55.71ID:pNPM9KL7
簡単な例で書くと、たとえば以下のユーザー関数からグローバル変数以外の方法で
s[0]〜s[2]の値を正確に抜き出すシンプルな方法はありますか、という質問です。

double *func(double x){
double s[3], x1, x2, x3;
x1 = x * rand() / RAND_MAX;
x2 = x * rand() / RAND_MAX;
x3 = x1 * x2;

s[0] = x1;
s[1] = x2;
s[2] = x3;

return s;
}

これを

for(i=0;i<3;i++){
x_calc[i] = func(x)[i];
}

とかで渡すとたぶんでたらめな結果になるので。
2019/06/29(土) 02:04:07.24ID:JqIDk+uk
>>381
そのアルゴリズムは存在するよ
もちろん厳密に求めることができる
mを1からカウントアップしてaを越えるまで一致を調べるだけ
時間的制約が書いてないんだから超イージー
2019/06/29(土) 02:25:31.00ID:3pgMwDvE
>>398
func内でのローカル変数sは関数のスコープを抜けると破棄されるからローカル変数の配列を返すのは良くない
引数に結果保存先の配列を渡してそこに書き込むといいよ
あとC++使うならもっと良い方法いくらでもある
2019/06/29(土) 05:42:37.19ID:3WPAMqWl
>>398
C++11でstd::vector使っていいなら、これで十分でしょう

#include <vector>

std::vector<double> func(double x){
double x1, x2, x3;
x1 = x * rand() / RAND_MAX;
x2 = x * rand() / RAND_MAX;
x3 = x1 * x2;

return {x1, x2, x3};
}

auto x_calc = func(x);
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況