错误:语法错误意外'('我是COBOL

问题描述 投票:0回答:1

我在这个程序中有一些错误。编译时,代码显示错误

何时:这些段落是'same-data-table':

prak.cob:34:错误:语法错误,意外'('

请检查下面的代码,这是第34行中的错误:

 isi-data-tabel. 
       DISPLAY ( , ) 'cabang ', subscript-cabang, bulan ', subscript-bulan, ' : '.   
       ACCEPT ( , ) jumlah-unit-terjual (subscript-cabang, subscript-bulan).
       DISPLAY SPACE.

这个完整的代码


  IDENTIFICATION DIVISION.
   PROGRAM-ID. tabel2.
   ENVIRONMENT DIVISION.
   DATA DIVISION.
   WORKING-STORAGE SECTION.
   01  ws-subscript.
       02  subscript-cabang  PIC 9.
       02  subscript-bulan  PIC 9.
   01  tabel-penjualan-mobil.
       02  cabang  OCCURS 4 TIMES.
       03  bulan   OCCURS 3 TIMES.
           04 jumlah-unit-terjual PIC 99.
   77 total-penjualan-cabang PIC 99 VALUE 0. 
   SCREEN SECTION. 
   01 hapus-layar.
       02  BLANK SCREEN.
   PROCEDURE DIVISION.

  program-utama. 
       PERFORM entry-tabel. 
       PERFORM tampilkan-tabel. 
       STOP RUN.

  entry-tabel. 
       DISPLAY ' Pemasukan data ke dalam tabel dimensi dua: '. 
       PERFORM isi-data-tabel
       VARYING subscript-cabang FROM 1 BY 1 
       UNTIL subscript-cabang > 4
       AFTER subscript-bulan FROM 1 BY 1 
       UNTIL subscript-bulan > 3.

   isi-data-tabel. 
       DISPLAY ( , ) 'cabang ', subscript-cabang, bulan ', subscript-bulan, ' : '.   
       ACCEPT ( , ) jumlah-unit-terjual (subscript-cabang, subscript-bulan).
       DISPLAY SPACE.

   tampilkan-tabel. 
       DISPLAY hapus-layar. 
       DISPLAY ' Menampilkan isi tabel berdimensi dua : '.

       PERFORM display-data-tabel 
         VARYING subscript-cabang FROM 1 BY 1 
         UNTIL subscript-cabang > 4 
         AFTER subscript-bulan FROM 1 BY 1 
         UNTIL subscript-bulan > 3.

   display-data-tabel. 
         DISPLAY ( , ) 'cabang ', subscript-cabang,
              'bulan ', subscript-bulan, ' : ',
               jumlah-unit-terjual (subscript-cabang, subscript-bulan). 
         DISPLAY SPACE.
         ADD jumlah-unit-terjual (subscript-cabang, subscript-bulan) 
               TO total-penjualan-cabang.
         IF (subscript-bulan = 3) 
               DISPLAY '*** Total penjualan per cabang = ', total-penjualan-cabang.

         MOVE 0 TO total-penjualan-cabang.

我在Mac环境中使用OpenCOBOL 1.1.0作为编译器。

compiler-errors cobol gnucobol
1个回答
2
投票

我不知道你认为他们会做什么,或者你的特定COBOL是否支持类似的东西,但我从未在DISPLAY或ACCEPT中遇到过“(,)”。

如果删除它们,将修复该特定类型的错误。

您应该更新您的问题以包括编译器名称或供应商,以及标记(如果可用)。

你在display-data-tabel中也有问题。您正在添加总计,但在测试后如果要显示它,则无条件地将其设置为零。在IF中,MOVE 0应该是有条件的。大概。

如果你使用scope-delmiters,比如END-IF而不是句点/句号,你会得到一个更好的程序。

为了回应您的进一步信息,您在DISPLAY中还有另一个问题:

DISPLAY ( , ) 'cabang ', subscript-cabang, bulan ', subscript-bulan, ' : '.

如果计算引号('),你会发现五个。他们应该永远是平等的。看起来你想要这个:

DISPLAY 'cabang ', subscript-cabang, ' bulan ', subscript-bulan, ' : '.

甚至这个:

DISPLAY 'cabang ', subscript-cabang, ' bulan ', subscript-bulan, ' : '

甚至这个:

DISPLAY 'cabang ' subscript-cabang ' bulan ' subscript-bulan ' : '

所有这些标点符号都是可选的。意味着你不需要它。意味着如果你把它放入,更多的是出错,更多的是看,更多的是想知道。它没有任何伤害,但看看最后是多么“干净”。

更进一步,我就是这样做的:

DISPLAY 
      'cabang' 
      '>' 
      subscript-cabang 
      '<' 
      'bulan' 
      '>' 
      subscript-bulan 
      '<' 

当我想要显示时,我只是粘贴任何旧的DISPLAY语句并更改文字和数据名称,并在必要时扩展该数字。 “>”和“<”的要点是准确显示哪些字节是数据的一部分(例如,您可以选择尾随空格)。多年来为我节省了很多时间。

© www.soinside.com 2019 - 2024. All rights reserved.