
はじめまして。
初歩的な質問でごめんさい。
今次のようなデータがあります。
(1) (2)
1156605004 11514
1156605004 01543
1157605004 11514
1121405601 01111
1121405601 04184
これより出力を(1)が同じものの中にいくつ違う(2)があるのかカウントしたいのですがなぜだか出来ません。誰か教えてもらえないでしょうか?
出力はこのようにしたいのです。
1157605004 02
1121405601 02
としたいのです。
ちなみに私が作ったプログラムは、
INTEGER i,j,k,ii,jj
PARAMETER (numdis=9000000,namer=20)
INTEGER DAT1,DAT2,DAT3
DIMENSION NKOTU(numdis,namer),NUMR(numdis)
do 2 i=1,numdis
NUMR(i)=0
do 1 j=1,namer
NKOTU(i,j)=0
1 CONTINUE
2 CONTINUE
14 READ(11,5001,END=15) DAT1,DAT2,DAT3
5001 FORMAT(I10,1X,I5,1X,I2)
NKOTU(DAT1,DAT3)= 1
GOTO 14
15 CONTINUE
do 3 ii=100000,numdis
do 4 k=1,namer
If (NKOTU(ii,k).EQ.1) NUMR(ii)=NUMR(ii)+1
If (NKOTU(ii,k).EQ.1) WRITE(21,6004) NUMR(ii),KOTU(ii,k)
4 CONTINUE
3 CONTINUE
do 5 jj=100000,numdis
If (NUMR(jj).GE.1) WRITE(21,6004) jj, NUMR(jj)
5 CONTINUE
6004 FORMAT(I10,1X,I5)
STOP
END
配列が大きすぎるのでしょうか?
こんな初歩的な質問で申し訳ないのですが
誰か教えてください、よろしくお願いします。
No.1ベストアンサー
- 回答日時:
> 14 READ(11,5001,END=15) DAT1,DAT2,DAT3
なぜDAT3まであるのでしょう?
質問文によるとデータは2つずつのはずですが?
> NKOTU(DAT1,DAT3)= 1
DAT2はどこで使うのでしょう?
DAT3を質問文の2つ目の要素としても、軽くnamerの値を超えていますし。
> If (NKOTU(ii,k).EQ.1) WRITE(21,6004) NUMR(ii),KOTU(ii,k)
単純なタイプミスなんでしょうけど、
KOTU(ii,k)→NKOTU(ii,k)
ですね。
プログラムを見る限り少々の手直しで目的の動作をするとは思えないです。
フローチャートを書くなりして、アルゴリズムを整理してみてはいかがですか?
ちなみに私のメモリが256MBしかないWin機では、このプログラムは重過ぎてまともに動かせませんでした。
INTEGERを32bitとした場合、GBクラスのメモリを要求してきますね。
No.2
- 回答日時:
気になったので質問文のプログラムももう一度試してみました。
DAT2を無視して、DAT3の中身を(2)とした場合(5001のフォーマットを見るとDAT2の方に思えますが)、一応このプログラムでも動くようです。
うまく動かない原因は配列のサイズが小さ過ぎることでした。
ただその場合はnamerの値も5桁にしないといけないので、メモリを大量に載せた(namerの値によりますがTB単位で必要になってくるはず)ワークステーションとかでないとまともに動かせないでしょうね。
私はデータの方を2桁に落として試してみました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フローチャートで 変数に代入す...
-
ファイルの開き方
-
あるプログラムのコマンドライ...
-
正しい五十音順について
-
65536は2の何乗なのでしょうか?
-
VBAにてメール作成した際、一部...
-
VBAで仕様書は書きますか?
-
Vba UserFormを前面に出す方法...
-
寿命
-
COBOLでBLOCK CONTAINS句につい...
-
OS入ってる機器のソフト・アプ...
-
変化させるセルが変化しない
-
空elseの有無
-
C++でアボート(Abort)で処理が...
-
自動クエリとはどういうもので...
-
グループを均等に分けるには?...
-
「Outlookが他のプログラムによ...
-
Bluestacks内でダウンロードし...
-
Excelに埋め込んだVBAのプログ...
-
Photoshopで、できますか?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フローチャートの菱形が狭い。。。
-
フローチャートで 変数に代入す...
-
pythonプログラム
-
フローチャートで。
-
フローチャートが書けません
-
さっぱり分かりません。フロー...
-
二分法(FORTRAN)
-
連立1次方程式を計算するFortra...
-
プログラムのロジックをノート...
-
Delphiで配列をファイルに出力...
-
フローチャートを書きたい
-
学校でフローチャートって教わ...
-
for文のフローチャート
-
サブルーチンのフローチャート...
-
正しい五十音順について
-
ファイルの開き方
-
65536は2の何乗なのでしょうか?
-
VBAで仕様書は書きますか?
-
あるプログラムのコマンドライ...
-
OS入ってる機器のソフト・アプ...
おすすめ情報