Antrasis Fortrano Laboratorinis Darbas

! Antras Laboratorinis Darbas
! Darba atrliko: XXXXXXX XXXXXXX
! II-X/X Grupe 200X m. Vilnius
!
! Duotas skaiciu masyvas is N elementu, ir skaicius B. Rasti elementu, didesniu uz B vidurki
! Duomenu faile duomenys.dat pirmoje eiluteje turi buti nurodytas elementu skaicius,
! antroje – skaicius B. Visos kitos N eiluciu turi buti uzpildytos masyvo elementais.

program antras
implicit integer N
dimension A(100)
! Nulinamos kintamuju reiksmes
10 suma=0
skaiciu=0
! Skaiciu suma veliau bus padalinta is skaiciu kiekio (kintamojo pavadinimas “skaiciu”)
write(*,*)’ Sveiki. Programa dirba su masyvu is N elementu’
write(*,*)’ Pasirinkite, is kur programai imti duomenis:’
write(*,*)’ 1) Is failo (duomenys.dat)’
write(*,*)’ 2) Is klaviaturos (ssuveda vartotojas)’
write(*,*)
3 write(*,*)’ Iveskite pasirinkto veiksmo numeri (1 arba 2) ir paskauskite ‘
write(*,*)’Spauskite skaiciuka 3 ir , jei norite nutraukti darba.’
read(*,*),pasirinkimas
if (pasirinkimas.EQ.1) goto 1
if (pasirinkimas.EQ.2) goto 2
if (pasirinkimas.EQ.3) goto 12
goto 3 ! Jei pasirinkimas netinkamas, kartojam uzklausa.

! Duomenu skaitymas is failo
1 open(unit=1, file=’duomenys.dat’)

read(1,*)N

read(1,*)B

read(1,*)(A(i),i=1, N)

close(1)
! Duomenu skaitymo is failo pabaiga

! Failas uzdaromas, jei vartotojas tos pacios programos darbo sesijos metu
! noretu pakeisti failo turini, ir atlikti skaiciavimus is naujo

!Programa nukreipiama i didesniu skaiciu paieska, ir tokiu skaiciu kiekio skaiciavima
goto 4

! Duomenu suvedimas rankiniu budu
2 write(*,*)’Kiek elementu turi masyvas? (N) ‘

read(*,*)N

write(*,*)’ Iveskite skaiciu B’

read(*,*)B

write(*,16)n
16 FORMAT (‘Iveskite maasyva is ‘I3′ elementu’)

read(*,*)(A(I), I=1, N)
! Duomenu suvedimo rankiniu budu, pabaiga

! Masyvo elementu, didesniu uz B paieska ir sumavimas. Tokiu elementu kiekio radimas
4 DO i=1,N

if (A(i) > B) then

suma=suma+A(i)

skaiciu=skaiciu+1

ENDIF

ENDDO
! Masyvo elementu, didesniu uz B paieskos ir sumavimo pabaiga

! Jei skaiciu, didesniu uz B, buvo, skaiciuojamas ju

u vidurkis
if (skaiciu /=0) then
vidurkis=suma/skaiciu
else
! Priesingu atveju, rodome klaidos pranesima
goto 13
ENDIF

write(*,*)’ Pasirinkite, kur programa turi isvesti rezultatus: ‘
write(*,*)’ 1) I faila (rezultatai.dat)’
write(*,*)’ 2) I ekrana’
write(*,*)
5 write(*,*)’ Iveskite pasirinkto veiksmo numeri (1 arba 2) ir paspauskite ‘
read(*,*),pasirinkimas
if (pasirinkimas.EQ.1) goto 6
if (pasirinkimas.EQ.2) goto 7
goto 5 ! Jei pasirinkimas netinkamas, kartojam uzklausa.

! Vidurkio isvedimas i faila
6 open(unit=2, file=’rezultatai.dat’)
WRITE(2,11)B, vidurkis
! Vidurkio isvedimo i faila pabaiga

11 FORMAT(‘Masyvo elementu, didesniu uz ‘,F7.2, ‘ vidurkis yra ‘,F7.2)
write(*,*)’ Rezultatai irasyti i faila “rezultatai.dat”‘

close(2)
pause
goto 10

! Vidurkio isvedimas i ekrana
7 write(*,11)B, vidurkis
pause
goto 10
! Vidurkio isvedimo i ekrana pabaiga

! Klaidos pranesimas
13 write(*,*)’Klaida! Masyve nera skaiciu didesniu uz ‘,b
pause
goto 10
! Klaidos pranesimo pabaiga

12 write(*,*)’ Programa darba baige. Viso gero.’

end ! Programos pabaiga

Leave a Comment