プロが教える店舗&オフィスのセキュリティ対策術

〇配列の大きさが事前に決まっていないけれども、プログラムが走り始めてからファイルとかキーボード入力などで外部から指定して配列の大きさが決まるというようなプログラム
〇配列の大きさがプログラム実行中に変化することができる

このようなプログラムを作成する方法を教えて頂きたいのですが。考え方とか、実行例などとかです。

Fortranの実例が一番ありがたいです。Fortranの導入本はどれも配列の大きさが固定のものばかりのようです。巻末近くで発展的な事例として紹介されたりするかも知れませんが。

※処理系に依存するので一般テキストには書きにくいことなのでしょうか。

よろしくお願いします。

A 回答 (4件)

    • good
    • 0

リスト(構造)で検索してみればよろしいかと。



FORTRANプログラミング 11・12回 ポインタとリスト構造 - ax-b.com
http://ax-b.com/FPR2_2014/slide/141216.11.pointe …
    • good
    • 0

普段FORTRANは使用しておらず詳しくはありませんが、「動的配列」で検索したらいくつか見つかりました。


以下はFortran90における例です。

「allocatable」を付けて配列変数を宣言し、「allocate」および「deallocate」で配列変数へのメモリ割り当ておよび開放を行う様です。c言語のmallocに近い物ではないかと推測します。

program array_alloc
implicit none
integer n, i
integer,allocatable,dimension(:) :: a
print *, "Enter number of data:"
read *, n
allocate( a(n) )
do i = 1, n
print *, "Enter item(", i, "):"
read *, a(i)
end do
print *, "Total=", sum(a)
deallocate(a) ! 特に指定しなくても自動的に領域が解放されます、このように指定することも可能
end program array_alloc
    • good
    • 0

〇入力した後に入力した値をもとに配列の変数を初めて宣言したらいいのではないでしょうか



〇別の同じ大きさの配列を宣言してその中に全ての値をコピーしておいて元の配列にnullを代入して無にしてからまた同じ名前で宣言し直せばプログラム実行中にデータを失わずに配列の大きさを変えられる言語もあるのではないでしょうか
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!