はじめまして。
初歩的な質問でごめんさい。
今次のようなデータがあります。
(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を探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
フローチャート以外の設計方法
-
Fortranの倍精度実数について
-
フローチャートの菱形が狭い。。。
-
65536は2の何乗なのでしょうか?
-
VBAで仕様書は書きますか?
-
0除算して、落ちるプログラムと...
-
正しい五十音順について
-
VBAの再計算が反映されない件に...
-
未使用の変数を一括検索する方法
-
VBAでユーザーフォームが自動的...
-
PICマイコンのコピー(クローン...
-
graph.hがincludeできない
-
インテル マネジメント エンジ...
-
VBAにてメール作成した際、一部...
-
XnViewにwebpを「いつも開く」...
-
Excelで4096点以上のFFTの方法
-
brotherのマシニングセンタとP...
-
初心者はIDE使わないほうが良く...
-
タクシー料金の問題です
-
転職・プログラマー 未経験者...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フローチャートの菱形が狭い。。。
-
フローチャートで 変数に代入す...
-
フローチャートで。
-
for文のフローチャート
-
フローチャート以外の設計方法
-
フローチャートこれのフローチ...
-
フローチャート、教えて!
-
Fortranの素数のプログラム
-
C言語のフローチャート
-
Fortranについての質問です。下...
-
カシオ fx-4800pにて
-
fortran90/95における計算結果...
-
fortaran初心者です...(複数条...
-
Rの質問です。 x<-rnorm(n=100,...
-
TeXでフローチャート
-
フローチャート(本当に困って...
-
フローチャートの演算記号
-
二分法(FORTRAN)
-
【fortran】フーリエ級数について
-
C言語のプログラミングに関する...
おすすめ情報