next up previous contents
Nächste Seite: Aufgabe 4 Aufwärts: Lösungen Vorherige Seite: Aufgabe 2   Inhalt

Aufgabe 3

PROGRAM A_09
 IMPLICIT NONE
 INTEGER :: k, n, iostat, gross, klein

 DO
  DO
   WRITE (*,'(A)',ADVANCE='NO') 'Geben Sie eine INTEGER-Zahl ein: '
   READ (*,*,IOSTAT=iostat) n
   IF (iostat < 0) THEN
    STOP
   ELSE IF ((iostat == 0) .AND. (n > 0)) THEN
    EXIT
   END IF
  ENDDO 
  gross = n
  klein = 1
  k = (klein+gross)/2
  DO
   IF ((k*k <= n) .AND. ((k+1)**2 > n)) EXIT
   IF (k*k > n) THEN
    gross = k
   ELSE
    klein = k
   ENDIF
   k = (klein+gross)/2
  ENDDO
  IF (k**2 == n) THEN
   WRITE (*,*) 'Die Wurzel aus ',n,' = ',k
  ELSE
   WRITE (*,*) 'Die Wurzel aus ',n,' ~ ',k
  ENDIF
 END DO
END PROGRAM


Reinfried O. Peter 2001-09-07