2017-01-23 1 views
-1

이것은 내 프로그램의 샘플입니다. 알파벳의 모든 문자에 대한 else if 문을 포함합니다. 또한 계속하기 전 10 번은 4 번과 5 번 열에 있습니다.if 문을 사용하여 문장을 모스 부호로 변환하는 방법

Invalid radix specifier "or" at (2) for typeless constant at (1) 첫 번째 오류는 Invalid radix specifier "or" at (2) for typeless constant at (1)입니다. 2는 O가 OR이고 1이 "A", "B"등의 첫 번째 인용어입니다. .

번째 오류는 같은 일을 말하고 있지만

1 등 "A"의 두 번째 인용, "B",

에있는 그리고 내 세 번째이자 마지막 오류가 당근 존재로 Invalid form for ELSE IF statement at (^)을 말하고와 각 진술의 끝에.

나는 If, ELSE IF 및 DO에 대해 잘못된 구문을 사용하고 있다고 가정합니다. 그러나 인터넷 검색은 올바른 구문을 찾는데 도움이되지 못했습니다.

program p1 

    integer j 
    integer sentenceSize 
    character sentence*72 

    print *, "Enter the size of the sentence you are converting: " 
    read *, sentenceSize 
    print *, "Enter the sentence you would like to convert: " 
    read(*,'(A)') sentence 
    DO 10, sentenceSize 
    IF (sentence(i:i) == "A" OR "a") 
    print *, ".-" 
    ELSE IF (sentence(i:i) == "B" OR "b") 
    print *, "-..." 
    ELSE IF (sentence(i:i) == 'C' OR 'c') 
    print *, "-.-." 
    ELSE IF (sentence(i:i) == "D" OR "d") 
    print *, "-.." 
    print *, " " 
10 continue 
+0

인터넷에서 포트란의 'if'와 'do'에 대한 올바른 구문을 찾을 수 없습니까? – Ross

답변

0

프로그램에 많은 구문 오류가 있습니다. DO 루프에 i = 1이 누락되었습니다. IF 및 ELSE IF 문 다음에 THEN을 넣어야합니다. 논리합은 OR입니다. 각 OR 항목은 표현식 (x == a .OR. y == c)이 아니어야합니다 (x == a .OR. c). IF-ELSE-THEN 블록을 END IF로 종료해야합니다. 그리고 프로그램은 END로 끝나야합니다.

program p1 

    integer j 
    integer sentenceSize 
    character sentence*72 

    print *, "Enter the size of the sentence you are converting: " 
    read *, sentenceSize 
    print *, "Enter the sentence you would like to convert: " 
    read(*,'(A)') sentence 
    DO 10 i=1, sentenceSize 
    IF (sentence(i:i) == "A" .OR. sentence(i:i) == "a") THEN 
    print *, ".-" 
    ELSE IF (sentence(i:i) == "B" .OR. sentence(i:i) == "b") THEN 
    print *, "-..." 
    ELSE IF (sentence(i:i) == 'C' .OR. sentence(i:i) == 'c') THEN 
    print *, "-.-." 
    ELSE IF (sentence(i:i) == "D" .OR. sentence(i:i) == "d") THEN 
    print *, "-.." 
    END IF 
    print *, " " 
10 continue 
END 
+0

정말 고마워요. 나는 전에 Fortran을 사용한 적이 없다. 나는 그 실수로 거의 즉시 그 실수를 깨달았지만 .OR에 대한 구문을 발견 할 수 없었다. – C0UG3R

+0

나는 그것이 대문자 또는 소문자의 모든 기능을 제안 할 것이다. 정의되지 않은 텍스트를 짖어 내려면 끝에 ELSE를 사용하는 것이 좋습니다. – Holmz

관련 문제