2017-04-19 1 views
-3

私はこのコードの助けが必要です。私はパスカルを知らない。しかし、私はパスカルでコードを書く必要があります。私は試した。しかし、いくつかのエラーがあります。誰かが私を助けることができますか?誰でもこのパスカルコードを修正できます

Program Arrayexamp(output); 

    Var 
    counter,index,input: Integer; 
    A: Array[1..15] of Integer; 
    B: Array[1..15] of Integer; 

begin 
    For index := 1 to 15 do 
    begin 
    read(input); 
    A[index] := input; 
    index++ 
    end 

    For counter := 1 to 15 do 
    begin 
    if (counter mod 2 = 0) Then 
     B[counter] = A[counter] * 3 
    Else B[counter]=A[counter]-5; 
    end 
end. 

erroresは、次のとおり

source.pas(14,3)エラー:不正発現

source.pas(16,5)エラー:不正発現

source.pas (16,5)致命的:構文エラー、 ";"期待されているが "FOR"が見つかりました

+4

のために書いたこの回答を参照してください*は、あなたがない限り無意味ですそれらのエラーが正確であることを教えてください。彼らはあなたの目の前で、画面上にあります。私たちが持っているので、あなたの投稿にそれらを含めない理由はありません。また、コードを適切にフォーマットすると、この問題は非常に明確になります。 –

+0

可能な重複[パスカルの適切な構造体のシンタックスは、begin endと; (イノセットアップで)](http://stackoverflow.com/questions/28221394/proper-structure-syntax-for-pascal-if-then-begin-end-and-in-inno-setup) –

+0

@nil:いいえ、 そうではありません。他にも問題があります。私の答えを読んでください。 (あなたが提案した複製への回答を書いて、それを私のポストにリンクしました。それは複製ではありません。) –

答えて

3

あなたのコードを適切にインデントする(書式設定する)ことを学ぶと、問題は本当に明確です。この回答は、あなたが投稿した元のコードに基づいています。しかし、回答の情報は依然として問題に関連しています。あなたが投稿何

それが適切な形式のどのように見えるか
Program Arrayexamp(output); Var counter,index,input: Integer; A : Array[1..15] of Integer; 

begin 

For index := 1 to 15 do 
begin read(input); 
A[index] := input; 
    index++ 
end; 

begin 
For index := 1 to 15 do 

If (counter mod 2 = 0) Then B[counter]=A[counter]*3 Else B[counter]=A[counter]-5; end. 

Program Arrayexamp(output); 

Var 
    counter,index,input: Integer; 
    A : Array[1..15] of Integer; 

begin 
    For index := 1 to 15 do 
    begin 
    read(input); 
    A[index] := input; 
    index++ 
    end; 

    begin 
    For index := 1 to 15 do 
     If (counter mod 2 = 0) Then 
     B[counter] = A[counter] * 3 
     Else B[counter]=A[counter]-5; 
end. 

問題がクリアされている:あなたは下のブロック内の一致end;なしbeginを持っています。実際には、beginは全く不要で、削除することができます。

第2の問題は、ループ自体がループ変数を増加させるため、ループ内のそのカウンタを変更することは不正です。 index++;行を削除します。 (次の段落も参照してください)

第3の問題は、Pascalはプリインクリメントまたはポストインクリメント演算子をサポートしないため、index++は無効な構文です。代わりにindex := index + 1;またはInc(index);を使用してください。

より適切に書かれたコード:パスカルでbegin..endの構文および使用に関する詳細については

Program Arrayexamp(output); 

Var 
    counter,index,input: Integer; 
    A: Array[1..15] of Integer; 

begin 
    For index := 1 to 15 do 
    begin 
    read(input); 
    A[index] := input; 
    end; 

    For index := 1 to 15 do 
    if (counter mod 2 = 0) Then 
     B[counter] = A[counter] * 3 
    Else B[counter]=A[counter] - 5; 
end. 

を、多少の誤差があります*私はProper structure syntax for Pascal if then begin end

関連する問題