Advertisement
Guest User

VLAD_C_LABA4

a guest
May 7th, 2019
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. PROGRAM VLAD_C_LABA4
  2. INTEGER START_OF_WORD, P
  3. REAL NUMBER_VAL(20)
  4. CHARACTER(LEN=40) STRING
  5. OPEN(1, FILE='VLAD_C_TEXT.TXT')
  6. READ(1, '(A)') STRING
  7. CLOSE(1)
  8. PRINT *, STRING
  9. PRINT *, '---'
  10. START_OF_WORD = 0
  11. K = 0
  12. DO I = 1, LEN_TRIM(STRING)
  13. IF ((I == 1) .AND. (STRING(I:I) /= ' ')) THEN
  14. START_OF_WORD = 1
  15. ELSE IF ((I > 1) .AND. (STRING(I:I) == ' ').AND.(STRING(I-1:I-1) /= ' ').OR.(I==LEN_TRIM(STRING))) THEN
  16. K = K + 1
  17. READ (STRING(START_OF_WORD:I), *) NUMBER_VAL(K)
  18. ELSE IF  ((I > 1) .AND. (STRING(I-1:I-1) == ' ').AND.(STRING(I:I) /= ' ')) THEN
  19. START_OF_WORD = I
  20. END IF
  21. END DO
  22. CALL FIND_MIN_NEG(NUMBER_VAL, 20, P)
  23. IF (P/=0) PRINT *, NUMBER_VAL(P)
  24. END PROGRAM
  25.  
  26. SUBROUTINE FIND_MIN_NEG(NUMBER_VAL, N, P)
  27. REAL NUMBER_VAL(N), MIN_VALUE
  28. INTEGER N, P, CHECK_NEGATIVE
  29. CHECK_NEGATIVE = 1
  30. DO I = 1, N
  31. IF (NUMBER_VAL(I) < 0) THEN
  32. CHECK_NEGATIVE = 0
  33. P = I
  34. EXIT
  35. END IF
  36. END DO
  37. IF (CHECK_NEGATIVE == 1) THEN
  38. PRINT *, 'ONLY POSITIVE VALUES'
  39. P = 0
  40. ELSE
  41. MIN_VALUE = NUMBER_VAL(P)
  42. DO I = 1, N
  43. IF (NUMBER_VAL(I) < MIN_VALUE) THEN
  44. MIN_VALUE = NUMBER_VAL(I)
  45. P = I
  46. END IF
  47. END DO
  48. END IF
  49. RETURN
  50. END SUBROUTINE
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement