【QBASIC互換!?】FreeBasic【GPL】 2 [無断転載禁止]©2ch.net (430レス)
前次1-
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん

リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
33
(1): デフォルトの名無しさん [] 2017/01/29(日) 06:11:32.73 ID:ElqR2hUp(1/7) AAS
>>23
23(4): デフォルトの名無しさん [] 2017/01/27(金) 20:21:16.13 ID:tSNcnN0K(1) AAS
>>21-22 よくわかんないけと゛、Type 命令文関係を見てみます。

虚数演算と同じファイルに放り込んでおいたのが、整数演算。
'外部リンク[htm]:rucio.a.la9.jp
で見つけた内容をコピーしただけのルーチン(何やっているのかわからなかった)がいくつか。
で、問題は
Function LCM(ParamArray Values() As Variant) As Long
の「ParamArray 」、の部分。これに対応できるらしい命令が
Function Overload 系処理。
外部リンク[html]:makoto-watanabe.main.jp
外部リンク[html]:makoto-watanabe.main.jp

Declare Function AAAA OverLoad (InA1 As Long, InA2 As Long, InA3 As Long) As Long
Declare Function AAAA OverLoad (InA1 As Long, InA2 As Long) As Long
Declare Function AAAA(InA() As Long) As Long

と、OverLoad 句のついている Declare を先に、ついていないDeclare文を後ろにと、並べないとエラーになる。
間に別の名称の文を入れても解釈してくれるみたい。
Declare Function AAAA OverLoad (InA1 As Long, InA2 As Long, InA3 As Long) As Long
Declare Function AAAA OverLoad (InA1 As Long, InA2 As Long) As Long
Declare Function BBBB(InA() As Long) As Long
Declare Function AAAA(InA() As Long) As Long
つづき。
Declare Function IniFileRead OverLoad(FileString As String, SecNameString As String, KeyNameString As String, ByRef KeyValString As String) As Wata
(一致部分略), ByRef KeyValLong as Long) As Wata
, ByRef KeyValDouble As Double) As Wata
, ByRef KeyValShort As SHORT) As Wata
, ByRef KeyValSingle as Single) As Wata
, ByRef KeyValByte As Byte) As Wata
, ByRef KeyValInteger As Integer) As Wata
, ByRef KeyValLongint As Longint) As Wata
, ByRef KeyValLong as ULong) As Wata
, ByRef KeyValShort As USHORT) As Wata
, ByRef KeyValByte As UByte) As Wata
, ByRef KeyValInteger As UInteger) As Wata
, ByRef KeyValLongint As ULongint) As Wata
, ByRef KeyValString As ZString) As Wata
, ByRef KeyValString As WString) As Wata
Declare Function IniFileRead OverLoad(FileString As String, SecNameString As String, KeyNameString As String, ByRef KeyValBool As Boolean) As Wata
と宣言して、
BString =DataKeyName + str$(ICC)
TakaDammyReturnCode = IniFileRead(SoseFileListFile, DataEriaSecName, BString, CString)
TakaDammyReturnCode = IniFileRead(SoseFileListFile, DataEriaSecName, DataKeyName + str$(ICC), SoseFileList(ICC))
と参照したら
..\Kako02\Mod\Taka05.bas(3439) error 97: Ambiguous call to overloaded function, INIFILEREAD() in 'TakaDammyReturnCode = IniFileRead(SoseFileListFile, DataEriaSecName, BString, CString)'
..\Kako02\Mod\Taka05.bas(3440) error 97: Ambiguous call to overloaded function, INIFILEREAD() in 'TakaDammyReturnCode = IniFileRead(SoseFileListFile, DataEriaSecName, DataKeyName + str$(ICC), SoseFileList(ICC))'
とエラーになった。
内容を調べていない。
使わない(使い方がわからない)変数型を消してみてどうなるか、
面倒だと思ったらば、Overload化をやめて元の状態に戻す予定。
34
(1): デフォルトの名無しさん [] 2017/01/29(日) 06:19:51.52 ID:ElqR2hUp(2/7) AAS
>>30
30(1): デフォルトの名無しさん [sage] 2017/01/28(土) 20:03:50.77 ID:fbuNIeJW(5/6) AAS
>>29
えっと、プログラマに求められるのは「何故そうするのか?」ではなく
「それをどのようにするのか?」であるわけよ

>>24でアルゴリズム位は理解しておこうよって言ったのは
数学的証明や理論の理解ではなく、方法論の話
つまり端的に言うなら、検索、実装、検証が出来ればコードは書けるのよ
勿論、そこに「何故そうするのか?」と考証が入るのが良いけれども

で、最小公倍数や最大公約数を実装するに辺り、目の前の便利な箱を使うわけだよ
そうしたらユークリッドの互除法なんて真っ先に辿り着く情報でしょ
その実装なんてちょっとした頭の体操程度の物で
悩むにしても再帰処理にするかループ処理にするか位でしょ
ユークリッドの互除法は単なる除算(剰余)の繰り返しだよ?
modとwhileか、modとifがあれば実装できるんだよ
複雑な公式を使うことなんて無いんだよ

プログラミングは、数学的証明をしているわけじゃないんだよ
実際に動作する組み合わせをするだけで、その大前提である検索をして実装方法を吟味しなさいよ
他人のコードをコピペしてるだけじゃプログラミングは上手くならんよ

学歴云々の前に、検索しない事に真剣にびっくりだわ
 学歴云々の前に、検索しない事に真剣にびっくりだわ
書いた通り、ユークなんたらは、見るのもいや、な内容。
整数論を除いた内容なら、まだ見る気にもなれるけど。
35: デフォルトの名無しさん [] 2017/01/29(日) 09:00:00.96 ID:ElqR2hUp(3/7) AAS
>>33 つづき
Function IniFileReadなんたら

Declare Function IniFileRead OverLoad(FileString As String, SecNameString As String, KeyNameString As String, , ByRef KeyValString As ZString) As Wata
を抜いて
IniFileRead OverLoad → IniFileRead14
に戻したらば、発生しなくなった。16個以下なのか、
As String と  As ZString の混用が認められないのか
は、調べていない。
37
(1): デフォルトの名無しさん [] 2017/01/29(日) 12:00:40.54 ID:ElqR2hUp(4/7) AAS
>>36
36(2): デフォルトの名無しさん [sage] 2017/01/29(日) 10:13:40.73 ID:V71V/mQX(1/5) AAS
>>34
ああそう
クソみたいなコードを書いていても
古臭いながらもそれなりに知識を持っている人って
思ってたけど何だかな、独善なだけかよ

有益な情報になると思い、多少なりにも絡んできたけど
建設的に話ができないなら悪いけどこのスレには必要無いわ
過疎ったスレだし、誰も指摘しないし、自分もスルーしてきたけど
自分のブログか何かでやったら?

まだ過疎っている方のがマシだわ
おほめいただいて感謝します。

>自分のブログか何かでやったら?
やってます。
カウンターをつけていないので利用者がわかりませんけど
Lobot Off を指定しているので、利用者がいないはずです。
QB用ソース(現在いじっているV.B.用ライブの原型を含みます)付き実行形式ファイルで配布していますので、もし見かけたらばメールください。
ロボットメールしか受け取ったことがないのですけど。
地震以後ですと、ロボットメールすら来ません。
V.B.用ソースは公開しませんでした。
実行形式のみ公開していましたが、通信会社のサービス停止(+地震のよるHDD破損+MSのサポート停止)に伴い消失しました。
38
(3): デフォルトの名無しさん [] 2017/01/29(日) 12:57:35.68 ID:ElqR2hUp(5/7) AAS
>>23 Type 命令文関係を見てみます。
のつづき。Type みてもわからなかったので、逃げの九素コードを
大域宣言は
'複素数(虚数)計算 '(2017.01.29 済)名称変更 Conplex → Complex
Type Complex
RealPart As Double
ImagPart As Double
End Type
で。ご指摘の通り、n → m への変更済み。
外部リンク[html]:makoto-watanabe.main.jp より、
関数は、Byref As return_type を指定して、参照を返すこともできます。
とあるので、破壊されない戻り値を保管する場所が必要。
局所ルーチンで参照され、破壊されない戻り値の保管場所は、九素コードとして、大域変数を使う。
Dim Shared ComComplexVal As Complex
関数としては単なるLET文を用意した。
Function TekiToComp(Aval As Complex) ByRef As Complex
ComComplexVal.RealPart = Aval.RealPart
ComComplexVal.ImagPart = Aval.ImagPart
TekiToComp = ComComplexVal
End Function
参照側で
ComComplexVal.RealPart = -5.0: ComComplexVal.ImagPart = -0.5
Complex1Val.RealPart = 1.0: Complex1Val.ImagPart = 0.1
Complex2Val.RealPart = 2.0: Complex2Val.ImagPart = 0.2
と定義して
Complex2Val = TekiToComp(Complex1Val)
関数を実行、3つの変数すべてが Complex1Val の値で一致する。
ここで、ComComplexValに適当な値を設定しても、Complex2Val の値が変化しなかった。
参照渡しと言っても、Complex2Valのアドレス(ポインター)をComComplexValのソレに書き換えるのではなかった。
3つの変数の保存領域は独立して存在する。
39: デフォルトの名無しさん [] 2017/01/29(日) 13:19:08.83 ID:ElqR2hUp(6/7) AAS
>>38 のつづき。動作試験用ソフトは以下の通り。
外部リンク[html]:www.dotup.org
D:\bas\Projects\Kako02\Mod\TakaCom0.bi
が抜けているけど、Bak\TakaCom0(1).bi が使えると思う。

使える人がいたら使ってみて。
41
(2): デフォルトの名無しさん [] 2017/01/29(日) 20:02:51.85 ID:ElqR2hUp(7/7) AAS
>>40
40(1): デフォルトの名無しさん [sage] 2017/01/29(日) 13:23:35.22 ID:V71V/mQX(2/5) AAS
>>37
君の実情なんてどうでも良い
やっているなら、スレの私的専有を止めればよいでしょ
移植日記なら他所でやりなよ

>>38なんか見てもそうだけどマニュアル読めば分かることを
ダラダラと流されても何じゃそりゃなんだよ
せめて分からなかった所を質問形式でレスしなよ
全く整理もしていないオナニーレスを流すな

一応突っ込んでおくわ
>Complex2Val = TekiToComp(Complex1Val)
参照返しを値型の変数で受け取ったら、コピー代入になるのだから当たり前でしょ
右辺と左辺の間の=の意味は、let演算子
つまり、右辺の関数評価→左辺に代入評価が起こっているの

dim byref as Complex a = TekiToComp(Complex1Val)
なら、変数aは参照先Complex1Valの値を表示するだろうよ

FB独自の言語機能云々の前にプログラム言語としての前提知識が無さ過ぎるわ
>変数aは参照先Complex1Valの値を表示するだろうよ
高度な使い方。
この方法は、昨年5月ぐらいから探していた。結局見つからなくて、
主ルーチンから各ファイル(モジュール)へ関係値を配るという方法を取った。

なお、*.BI,*.Bas で検索したが
C:\FbEdit\ や C:\Tool\FreeBASIC\ 内に「dim byref」という文字を発見できなかった。
外部リンク[html]:makoto-watanabe.main.jp 内にも ByRef の記載が見つからない。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.024s