Nowe posty

xx Problem ze sterownikami. (5)
2024-04-13, 21:25:16
xx Instalacja xfce4 (2)
2024-04-13, 16:20:17
xx Serie kompilacji bez instalacji dla “emerge” w Gentoo (2)
2024-04-08, 18:40:04
xx Plasma 6 w Neonie ssie trochę mniej ... (17)
2024-04-05, 10:03:46
xx Problem z Linux Lite po instalacji (3)
2024-04-03, 14:23:40
xx Jak właczyć num locka przy starcie systemu debian 12? (12)
2024-04-02, 17:43:54
xx Brak dźwieku w systemie. (5)
2024-04-02, 16:13:41
xx Dystrybucja pod HP Omen (7)
2024-03-29, 11:33:05
xx [Poradnik] Wyszukiwanie Sterowników (2)
2024-03-27, 21:08:23
xx Ile pingwinów? (1)
2024-03-27, 08:59:24

Autor Wątek: [fortran] wczytywanie liczb  (Przeczytany 3897 razy)

Gosik

  • Gość
[fortran] wczytywanie liczb
« dnia: 2012-11-02, 22:39:37 »
Witam!
 Chcialabym wczytac dane z pliku i kolejno wyznaczyc najmniejsza i najwieksza liczbe.

program minmax
implicit none
real, allocatable :: x(:)
real xmin, xmax
integer i,n,nm0

 open (11,file='liczby.dat')
 read(11,*) n
 if (n<1) then
   write (*,*) 'za malo danych'
   stop
 end if


 allocate(x(n))
  close(11)

  do i=1,n
   write(*,*)'liczby',x(i)
  end do

 xmin=x(1)
 xmax=x(1)

 do i=2,n
     if (x(i)>xmax) xmax=x(i)
     if (x(i) end do

write(*,*) 'najmniejsza liczba =',xmin
write(*,*) 'najwieksza liczba =',xmax


deallocate(x)

end program minmax
W pliku liczby.dat mam takie liczby: 0 23 0.1 100
A otrzymuje:
 najmniejsza liczba =   0.0000000    
 najwieksza liczba =  7.00649232E-44

Czy moglabym prosic o wskazanie gdzie mam blad?

Offline Paweł Kraszewski

  • Administrator
  • Guru
  • *****
  • Wiadomości: 3056
  • Lenistwo jest matką potrzeby = babcią wynalazku
    • Zobacz profil
[fortran] wczytywanie liczb
« Odpowiedź #1 dnia: 2012-11-03, 12:42:08 »
Fortrana widziałem z 20 lat temu ostatni raz, ale:

1. Z programu wynika, że pierwsza dana w pliku to liczba danych do wczytania (parametr n). Twoje dane na pierwszej pozycji mają 0, więc pierwszy błąd.
2. Nie wczytujesz reszty liczb to tablicy.
Paweł Kraszewski
~Arch/Void/Gentoo/FreeBSD/OpenBSD/Specjalizowane customy

Gosik

  • Gość
[fortran] wczytywanie liczb
« Odpowiedź #2 dnia: 2012-11-03, 19:40:04 »
Tak, zgadza sie. Dziekuje. Jednakze nie wiem jak to porawic. Nalezy wczytac liczby do momentu konca wiersza.
Dopiero rozpoczynam nauke z tym jezykiem programowania, Jesli ktos sie na tym zna, to bede bardzo wdzieczna za pomoc.

falcoalopex

  • Gość
[fortran] wczytywanie liczb
« Odpowiedź #3 dnia: 2012-11-03, 21:21:25 »
Ja Fortrana widziałem rok temu i też niewiele pamiętam;) i do tego ostatnio używałem F77, a z tego co widzę co najmniej F95.

Spróbuj dopisać po  allocate(x(n)):

 
Cytuj
read(11,*) (x(i), i=1,n)
piszę to bez możliwości sprawdzenia więc nie musi być dobrze...

Co studiujesz, że masz Fortrana?

[Edycja]
Plik musi zawierać liczbę danych do wczytania (Twoje "n")
 
Cytuj
4
0 23 0.1 100