如何使用if语句将句子转换为摩尔斯码
问题描述:
这是我的程序的一个示例。我还包括如果在字母表中的所有字母的陈述。还有继续之前的10列在第4和第5列。如何使用if语句将句子转换为摩尔斯码
我得到的第一个错误是说Invalid radix specifier "or" at (2) for typeless constant at (1)
,其中2是OR中的O,1是“A”,“B”等中的第一个引号。
第二个错误是说同样的事情,但与1是在“一”第二个报价,“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
答
程序中有很多语法错误。您的DO循环缺少i = 1。您需要在IF和ELSE IF语句之后放置THEN。逻辑OR是.OR。每个OR'd项目必须是一个表达式(x == a .OR。y == c)not(x == a .OR。c)。您需要用END IF终止IF-ELSE-THEN块。你的程序必须以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
你*真的*无法找到正确的语法,如果在互联网上的fortran'if'和'do'? – Ross