2017-01-23 5 views
-1

Dies ist ein Beispiel für mein Programm. Ich schließe sonst wenn Aussagen für alle Buchstaben im Alphabet ein. Auch die 10 vor fortfahren ist in den Spalten 4 und 5.Wie konvertiert man einen Satz in Morse-Code mit if-Anweisungen

Der erste Fehler, den ich bekomme, sagt , mit 2 ist das O in OR und 1 ist das erste Zitat in "A", "B", etc .

der zweite Fehler, die gleiche Sache zu sagen hat, aber mit der 1 in „a“, „b“ usw.

und meine dritte und letzte Fehler mit der Karotte sein Invalid form for ELSE IF statement at (^) am zweiten Zitat ist zu sagen hat am Ende jeder Aussage.

Ich gehe davon aus, dass dies mit der Tatsache zu tun haben, dass ich nur die falsche Syntax für If, ELSE IF und DO; Aber die Suche im Internet hat mir nicht geholfen, die richtige Syntax zu finden.

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

Sie * wirklich * kann nicht die richtige Syntax für Fortran 'if' und' do' im Internet finden? – Ross

Antwort

0

Es gibt viele Syntaxfehler in Ihrem Programm. Ihre DO-Schleife fehlt i = 1. Sie müssen THEN nach den IF- und ELSE IF-Anweisungen setzen. Ein logisches ODER ist .OR. Jedes OR-Element muss ein Ausdruck sein (x == a .OR. Y == c) nicht (x == a .OR. C). Sie müssen den IF-ELSE-THEN-Block mit und END IF beenden. Und Ihr Programm muss mit END enden.

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

Vielen Dank. Ich habe Fortran nie zuvor benutzt. Ich habe meinen Fehler mit THEN fast sofort bemerkt, konnte aber keine Syntax auf dem .OR finden. – C0UG3R

+0

Ich würde eine Funktion für Groß- oder Kleinschreibung vorschlagen. Wahrscheinlich willst du am Ende ein ELSE, um irgendeinen undefinierten Text zu "bellen". – Holmz

Verwandte Themen