You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何解决Pascal中"identifier expected but ordinal const found"语法错误?

Pascal语法错误解决:非法限定符/预期identifier错误

错误信息

(14,22) 错误:非法限定符
(14,22) 致命错误:语法错误,预期“identifier”但发现“ordinal const”

报错代码

PROGRAM menentukan_bonus_karyawan;
    uses crt;
var    
    nama, golongan: string;
    lama_kerja : integer;
    bonus : real;
begin
    clrscr;
    write('Masukkan nama anda : '); readln(nama);
    write('Golongan karyawan (staf/ non-staf) : '); readln(golongan);
    write('Lama kerja : '); readln(lama_kerja);
    case (golongan) of 
        'staf'      : if lama_kerja >= 10 then
                        bonus := 1.000.000     <--- error line
                      else 
                        bonus := 700.000;
        'non-staf'  : if lama_kerja >= 10 then
                        bonus := 500.000
                      else
                        bonus := 350.000;
    end;
    writeln('Saudara ', nama, ' dengan golongan karyawan ', golongan, ' mendapatkan bonus sebesar Rp. ', bonus);
    readln;
end.

问题原因与解决方法

问题出在你用.作为数字的千位分隔符,Pascal语法不允许这种写法——编译器会把1.000.000解析成1.000(一个浮点数)后面跟.000,这不符合语法规则,因此触发报错。

直接去掉数字中的所有.即可,修改后的代码片段如下:

case (golongan) of 
    'staf'      : if lama_kerja >= 10 then
                    bonus := 1000000
                  else 
                    bonus := 700000;
    'non-staf'  : if lama_kerja >= 10 then
                    bonus := 500000
                  else
                    bonus := 350000;
end;

如果你的Pascal编译器支持(比如Delphi),也可以用_作为千位分隔符提升可读性,比如写成1_000_000,但所有标准Pascal编译器都支持直接写无分隔符的纯数字。

内容的提问来源于stack exchange,提问作者tazuu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 19:31:03