2
NE Drugi domaci zadatak iz racunarskih alata Nacrtati algoritam i napisati opšti potprogram koji u nizu A, proizvoljne dimenzije n, nalazi najduži podniz čiji su svi članovi nule. Glavnom programu vraća dužinu podniza i indeks prvog člana podniza u nizu. Uzeti u obzir mogućnost da takav podniz ne postoji. Primer: n = 7, A [1, 1, 0, –2, 0, 0, 3], maksimalna dužina je 2, a indeks je 5. Glavni program dimension a(100) print*,'uneti broj elemenata niza' read(*,*) n print*,'uneti vrednosti elemenata niza' read(*,*) (a(i),i=1,n) call podniz(a,n,vrd,indexx) if(vrd.eq.0) then write(*,*) 'u ovom nizu se ne pojavljuju nule' else write(*,*) 'najduzi podniz nula ima', vrd, 'clanova' write(*,*) 'redni broj prvog clana podniza je,indexx end if stop end Opsti potprogram subroutine podniz(a,n,vrd,indexx) dimension a(n) vrd=0 indexx=0 do 1 i=1,n brcl=0 if (a(i).eq.0) then ind=i do 2 j=i,n if(a(j).eq.0) then brcl=brcl+1 else go to 3 end if 2 continue end if 3 continue if (brcl.gt.vrd) then

Stefan Jovanovic

Embed Size (px)

DESCRIPTION

steff

Citation preview

NE

Drugi domaci zadatak iz racunarskih alata

Nacrtati algoritam i napisati opšti potprogram koji u nizu A, proizvoljne dimenzije n, nalazi najduži podniz čiji su svi članovi nule. Glavnom programu vraća dužinu podniza i indeks prvog člana podniza u nizu. Uzeti u obzir mogućnost da takav podniz ne postoji. Primer: n = 7, A [1, 1, 0, –2, 0, 0, 3], maksimalna dužina je 2, a indeks je 5.

Glavni program

dimension a(100)print*,'uneti broj elemenata niza'read(*,*) nprint*,'uneti vrednosti elemenata niza'read(*,*) (a(i),i=1,n)call podniz(a,n,vrd,indexx)if(vrd.eq.0) thenwrite(*,*) 'u ovom nizu se ne pojavljuju nule'elsewrite(*,*) 'najduzi podniz nula ima', vrd, 'clanova'write(*,*) 'redni broj prvog clana podniza je,indexxend ifstopend

Opsti potprogram

subroutine podniz(a,n,vrd,indexx)dimension a(n)vrd=0indexx=0do 1 i=1,nbrcl=0if (a(i).eq.0) thenind=ido 2 j=i,nif(a(j).eq.0) thenbrcl=brcl+1elsego to 3end if2 continueend if3 continueif (brcl.gt.vrd) thenvrd=brclindexx=indend if1 continuereturnend