      program oblicz_srednia
      parameter (MaxX=1000)
      dimension x(MaxX)
      character*80 plik_danych
c
c Program oblicza srednia arytmetyczna N liczb, ktore sa zapamietane w 
c tablicy X, ktorej maksymalny rozmiar wynosi MaxX (MaxX musi byc zadeklarowana
c dyrektywa PARAMETER). Liczby te sa czytane z pliku, ktorego nazwa jest 
c podawana z klawiatury.
c
c Czytamy nazwe pliku danych.
c
      write (*,'(a,$)') "Podaj nazwe pliku danych... "
   10 read (*,'(a)') plik_danych
c
c Otwieramy plik danych (ma to byc plik ktory juz cos zawiera a wiec otwieramy
c ze statusem old. Zabezpieczamy sie na wypadek kiedy nie daje sie on otworzyc 
c (na ogol wtedy go nie ma) stosujac slowo kluczowe err. Jezeli otwarcie 
c zakonczylo sie sukcesem przechodzimy do etykiety 30.
c
      open (1,file=plik_danych,status="old",err=20)
      goto 30
c
c Jezeli otwarcie zakonczylo sie bledem wyswietlamy komunikat i zadamy nazwy
c pliku jeszcze raz (powrot do instrukcji czytania oznaczonej etykieta 10).
c
   20 write (*,*) 
     &   "Blad - ten plik nie istnieje. Podaj nazwe jeszcze raz."
      goto 10
   30 continue
c
c Czytamy liczbe danych (N).
c
      read (1,*) N
c
c Czytamy poszczegolne punkty. Kazda dana musi byc w oddzielnej linii.
c
      do i=1,n
        read (1,*) x(i)
      enddo
c
c Obliczamy sume wartosci X.
c
      suma = 0.0
      do i=1,n
        suma = suma+x(i)
      enddo
c
c Obliczamy srednia.
c
      srednia = suma/N
c
c Drukujemy wyniki.
c
      write (*,*) "Srednia wynosi",srednia
      stop
      end
