!************************************************************ !* This small program displays a Pascal's triangle * !* up to 15 lines. * !* -------------------------------------------------------- * !* SAMPLE RUN: * !* * !* How many lines: 10 * !* * !* p 0 1 2 3 4 5 6 7 8 9 * !* n * !* ----------------------------------------------------- * !* 0 -- 1 * !* 1 -- 1 1 * !* 2 -- 1 2 1 * !* 3 -- 1 3 3 1 * !* 4 -- 1 4 6 4 1 * !* 5 -- 1 5 10 10 5 1 * !* 6 -- 1 6 15 20 15 6 1 * !* 7 -- 1 7 21 35 35 21 7 1 * !* 8 -- 1 8 28 56 70 56 28 8 1 * !* 9 -- 1 9 36 84 126 126 84 36 9 1 * !* -------------------------------------------------------- * !* Reference: "Exercices en Turbo Pascal By Claude Delannoy * !* Eyrolles, 1997". * !* * !* F90 Release By J-P Moreau, Paris. * !* (www.jpmoreau.fr) * !************************************************************ implicit none integer, parameter :: Nmax=15 !max. number of lines integer t(Nmax), & !one line of triangle nl, & !desired number of lines i,j !current line/column ! read number of lines & display caption print *,' ' write(*,10,advance='no'); read *, nl if (nl>Nmax) nl=Nmax print *,' ' write(*,15,advance='no') do i=0, nl-1 write(*,20,advance='no') i end do print *,' ' write(*,*) ' n' write(*,16,advance='no') do i=0, nl write(*,21,advance='no') end do print *,' ' ! create and display each line do i=0, nl-1 t(i)=1 do j=i-1, 1, -1 t(j) = t(j) + t(j-1) end do write(*,22,advance='no') i do j=0, i write(*,20,advance='no') t(j) end do print *,' ' end do write(*,16,advance='no') do i=0, nl write(*,21,advance='no') end do print *,' ' stop 10 format(' How many lines: ') 15 format(' p ') 16 format(' ') 20 format(i5) 21 format('-----') 22 format(i3,' --') End ! end of file pastri.f90