Katsotaan, onko taulukko laskeva, nouseva vai tasainen. Ja katsotaan, mikä on taulukon viimeinen laskeva, nouseva ja tasainen luku. Lisäksi katsotaan, ovatko kaikki luvut eriä.
Program NousevaLaskeva implicit none integer :: luvut(10) integer :: n, l, t, e !Nouseva, laskeva, tasainen, erit integer :: x,y,temp !Taulukon indeksi integer :: na, la, ta, ea !Mihin asti taulukko on nouseva tai laskeva !Oletetaan, että taulukon luvut ovat nousevia tai laskevia, jos muuta ei tule ilmi. na = 0 la = 0 ta = 0 ea = 0 e = 1 n = 1 l = 1 t = 1 luvut = (/ 122, 110,95, 77, 74, 70, 66, 64, 63, 60 /) !Käydään taulukko läpi. !Verrataan aina edelliseen lukuun. do x = 2, 10 if (luvut(x) < luvut(x-1)) THEN !Taulukko ei ole nouseva eikä tasainen if (l /= 0) THEN la = x end if t = 0 n = 0 end if if (luvut(x) > luvut(x-1)) THEN !Taulukko ei ole laskeva eikä tasainen if (n /= 0) THEN na = x end if l = 0 t = 0 end if if (luvut(x) == luvut(x-1)) THEN !Taulukko ei ole laskeva eikä nouseva if (t /= 0) THEN ta = x end if n = 0 l = 0 end if end do !Katsotaan ovatko kaikki luvut eriä. !Lajitellaan taulukko. do x = 1,9 do y = x+1,10 if (luvut(x)>luvut(y)) THEN temp = luvut(x) luvut(x)=luvut(y) luvut(y)=temp end if end do end do do x = 2,10 if (luvut(x) == luvut(x-1)) THEN !Vähintään kaksi lukua ovat samoja. e = 0 end if end do !Näytetään tulos. if (t == 1) THEN print *,"Tasainen" else if (n ==1) THEN print *,"Nouseva" else if (l == 1) THEN print *,"Laskeva" else print *,"Sekalainen" end if if (e == 1) THEN print *,"Kaikki luvut ovat eriä." end if !Näytetään viimeinen nouseva, laskeva ja jne. print *,"Viimeinen nouseva",na print *,"Viimeinen laskeva",la print *,"Viimeinen tasainen",ta end program NousevaLaskeva
Aihe on jo aika vanha, joten et voi enää vastata siihen.