Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
!----- Ex9_4: 成績リスト -----
PROGRAM usage_of_pointer
TYPE unit
CHARACTER(LEN=12) :: name
INTEGER :: mark
TYPE(unit), POINTER :: next
END TYPE
!
CHARACTER(LEN=12) :: namae
INTEGER :: tensu
TYPE(unit), POINTER :: ent, new, p
ALLOCATE(ent); NULLIFY(ent%next)
DO
PRINT*, "Input name (or [ENTER]-key to stop):"
READ(*,'(A)') namae; IF( namae ==' ') EXIT
PRINT*, "Input her or his mark:"
READ*, tensu
CALL rearange
END DO
!
!----- 出力
p => ent%next
DO WHILE( ASSOCIATED(p) )
PRINT "(A12, I4)", p%name, p%mark
p => p%next
END DO
!
CONTAINS
SUBROUTINE rearange
ALLOCATE(new)
p => ent
DO WHILE( ASSOCIATED(p%next))
IF( tensu > p%next%mark ) EXIT
p => p%next
END DO
new = unit(namae, tensu, p%next)
p%next => new
END SUBROUTINE
END