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 iimti duomenis:’
write(*,*)’ 1) Is failo (duomenys.dat)’
write(*,*)’ 2) Is klaviaturos (suveda 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 ii 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 masyva is ‘I3′ elementu’)
read(*,*)(A(I), I=1, N)
! Duomenu suvedimo rankiniu bbudu, 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 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 110
! 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