[Fortran 95] Program zliczający ilość danych

sirduke
Użytkownik
Użytkownik
Posty: 46
Rejestracja: 20 lut 2011, o 09:10
Płeć: Mężczyzna
Lokalizacja: Kraków
Podziękował: 3 razy

[Fortran 95] Program zliczający ilość danych

Post autor: sirduke »

Potrzebuję napisać program w fortranie, który wczytuje dane z istniejącego na dysku pliku z danymi w formacie *.dat do jednowymiarowej tablicy i liczący ile ich jest. Nie mam za bardzo pojęcia jak zacząć.

-- 26 gru 2011, o 13:57 --

Napisałem już tyle, tylko jest błąd (po uruchomieniu programu na ekranie wyrzuca wszystkie dane, a następnie pisze, że jest błąd w linii 12 i zakańcza program, przez co nie dostaje liczby danych - licznikiem pętli jest n) i nie mam pomysłu jak te dane wrzucić do tej tablicy

Kod: Zaznacz cały

program tablica_dynamiczna
implicit none

real x
integer n
real, allocatable, dimension(:)::a				! deklaracja tabeli o nieznanym rozmiarze

open(unit=1, file='dane.txt', status='old', form='formatted')

do 
  n=1
  read(1,*) x
  write (*,*) x
   enddo

   write (*,*) n
  
read (*,*) n
allocate(a(n))									! przydzielenie takiej ilosci miejsca w pamieci, aby w tablicy mozna bylo uzyc pieciu zmiennych


end tablica_dynamiczna
-- 26 gru 2011, o 14:00 --

Może to chodzi tylko o typ pętli, może trzeba zastosować inną odmianę pętli DO?

-- 26 gru 2011, o 15:33 --

Dodałem etykietę która w przypadku napotkania końca pliku wykonuje program dalej, ale nie działa bo pojawia się błąd: error 90, file access and properties are incompatible. Kod jest nstępujący:

Kod: Zaznacz cały

program tablica_dynamiczna
implicit none

real x, a
integer n, i
real, allocatable, dimension(:)::a				! deklaracja tabeli o nieznanym rozmiarze

open(unit=1, file='data.dat', status='old', form='formatted', err=100)

do 
  i=1
   
  read(1,end=100) x
  write (*,*) x
   enddo

100   write (*,*) i
   
 allocate(a(i))								! przydzielenie takiej ilosci miejsca w pamieci, aby w tablicy mozna bylo uzyc pieciu zmiennych
 
! read (*,*) n
! allocate(a(n))									! przydzielenie takiej ilosci miejsca w pamieci, aby w tablicy mozna bylo uzyc pieciu zmiennych


end program tablica_dynamiczna
Ostatnio zmieniony 25 gru 2011, o 18:31 przez Afish, łącznie zmieniany 1 raz.
Powód: Poprawa wiadomości.
ODPOWIEDZ