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