2017-03-14 18 views
0

ここに初めて投稿するので、私はそれを正しくしようとします。パスカルランタイムエラー106宿題に

IDを与えられたクラスの生徒のパーセンテージ、最後に&ファーストネーム、および変換する必要のある割り当てスコアを出力する私の最初のプログラムに取り組んでいます。私はassign_scoreとassignment_percentageが初期化されていないという警告を2回出してコンパイルすることができました。

read_record、initialize、およびmainモジュール(私はそれが用語だと思います)でランタイムエラー106(数値以外の値が読み込まれる場合)が発生します。

これはデータファイル内のスペースと関係がありますが、これは私の最初のプログラムであるため、可能性のあるヘルプを探しています。

Read_Record:

begin 
    if EoF(FileIn) then 
    more_students := False 
    else 
    readln(FileIn,student_id,last_name,first_name,assignment_score) 
end; {read_record} 

初期化:メイン

Procedure initialize; 
begin 
    more_students:= True; 

    {Assigns files to input and output and rewrites them for the code } 
    Assign(FileIn, 'prg2a-150.dat'); 
    Reset(FileIn); 
    Assign(Fileout, 'Prog2.txt'); 
    Rewrite(fileout); 

    READ_RECORD; 
    Print_Header 
end; { initialize } 

マイプロセス&私は私が書いているところである使用されるプロセスのために呼び出したときに(私はライン100でエラーが出ますFileOut)

procedure process; 
begin 
    {Line check for print header} 

    if line_count > 57 then 
    print_header; 

    Inc(line_count); 

    { Converts score to percentage } 
    compute_grade; 

    {Report Percentage} 
    writeln(FileOut, student_id, space(2), last_name, space(1), first_name, space(2), assignment_percentage:5:1); 

    { Next Runner Data } 
    read_record 
end; { process } 


{WRAP UP -- No summary so just the files are being closed } 
procedure wrapup; 
begin 
    close(FileOut); 
    close(FileIn) 
end; { wrapup } 

begin { main } 
    initialize; 

    while more_students do 
    process; 

    wrapup 
end. 

最後に、ここに私のデータファイルです:

032919631 BACH    AMANDA 14.1 

327777582 GUNDERSON   EMILY  9.9 

188941863 DARLING    CHRIS  14.7 

396501493 JACKSON    GUY  2.1 

552753315 MILKOVICH   LAURA 21.0 

553962171 ZADINS    WALLACE 28.9 

989570643 KLIPP    JOAN  33.3 

468497243 CARPENTER   BETTYANNE 6.0 

112324230 RIKER    NANCY  17.1 

720789066 UTHE    SHARON 12.7 

878468839 NULL    LIVAK  0.0 

606537736 ZUCKERMAN   YVONNE  1.0 

996498720 KINGSLIGHT   JERRIE 14.5 

453310627 GAUTHIER   DONALD  7.8 

289324008 HIRSH    GAYLENE 32.3 

361582495 KELLY    JEAN 0.1 

441892834 FACTOR    DANI  15.8 

255715006 MARKS    KIMBERLEE 8.9 

535282507 MORROW    LEONARD 29.8 

566318464 COSGROVE   CAROL  15.8 

158778873 MUDD    LES 29.1 

574450163 TIMMERMAN   ROY  2.9 

032731233 MUIZNIECE   LESLIE 14.3 

832142931 HARMAN    FRITZ  34.5 
+0

エラーが発生する「ライン100」はどれですか? – MartynA

+0

行99:more_students do 行100:プロセス; –

+0

最初の繰り返しか最後に起こりますか?なぜデバッグをオンにして手順を実行しないのですか? – juus

答えて

0

入力ファイルは実際にすべての2本のデータ線との間に空行を持っている場合は、数値を期待することを告げたので、ReadLnは、できるだけ早くそれが空行を読み込むとエラーがスローされます。