2016-05-18 8 views
-3

学生情報(宿題)のデータを保存するプログラムを作成しています このプログラムを作成しましたが、エラー201コードがあります。 また、私はtxtファイルにもデータを格納できません。それはあまりにもエラーですか? 私はインターネット上で201エラーを確認してくださいしかし、私は私の配列が6 .... ここだに行ったときに、このエラーを得た私のプログラムパスカル:201エラー

program arrary1; 
var 
    studentinfo:text; 
    i,a:integer; 
    tf:boolean; 
    name:array[1..10] of string[25]; 
    classno:array[1..10] of integer; 
    gender:array[1..10] of char; 
procedure inputdata; 
begin 
    i:=1; 
    repeat 
     write('Enter the name of student: '); 
     readln(name[i]); 
     if name[i]<>'END' 
     then 
     begin 
     write('Enter the class number of student: '); 
     readln(classno[i]); 
     write('Enter the gender of student: '); 
     readln(gender[i]); 
     i:=i+1; 
     end 
     else begin 
     exit; 
     end; 
     until i=11; 
     end; 

procedure displaydata; 
begin 
    for a:= 1 to i-1 do 
    begin 
    writeln(name[a],' ',classno[a],' ',gender[a]); 
    i:=i+1; 
    end; 
    end; 

procedure storedata; 
begin 
    for a:= 1 to i-1 do 
    begin 
    assign(studentinfo, 'G:\pascal\studentdata.txt'); 
    rewrite(studentinfo); 
    writeln(studentinfo,name[a],' ',classno[a],' ',gender[a]); 
    close(studentinfo); 
    i:=i+1; 
    end; 
    end; 
begin 
    inputdata; 
    displaydata; 
    storedata; 
end. 

ある ことを修正する見当がつかないname[i]ができるようにするかどうかをチェックユーザー入力が終了し、proramを終了します タイは答えます!!!!

+0

あなたのインターネット検索は非常に徹底したとは思いません。 Googleが "pascal runtime error 201"を検索すると、すぐに[this one](http://www.freepascal.org/docs-html/user/userap4.html)に多数の可能な回答が得られます。これはあなたの配列インデックスが範囲外であることを意味します。 *また、私はtxtファイルにもデータを格納できません。それはエラーですか?*ランタイムエラーを取得することは、あなたが望む結果を生み出すプログラムではないことを示す非常に良い指標です。 – lurker

+0

常に重要なチェックをオンにするには-Criotを使って宿題をコンパイルしてください –

答えて

0

手順displaydataでは、グローバル変数iを11から21にインクリメントします。次のループa:=1 to i-1は制限に違反します。