要解决表格搜索Cobol问题,您可以使用以下代码示例:
IDENTIFICATION DIVISION. PROGRAM-ID. SEARCH-TABLE.
DATA DIVISION. WORKING-STORAGE SECTION. 01 TABLE-DATA. 05 TABLE-ENTRY OCCURS 10 TIMES. 10 EMPLOYEE-NAME PIC X(20). 10 EMPLOYEE-ID PIC 9(5).
01 SEARCH-KEY. 05 KEY-NAME PIC X(20).
01 INDEXES. 05 TABLE-INDEX PIC 99 VALUE 0. 05 MATCH-INDEX PIC 99 VALUE 0.
PROCEDURE DIVISION. BEGIN. DISPLAY "Enter employee name to search: ". ACCEPT KEY-NAME.
PERFORM SEARCH-TABLE.
IF MATCH-INDEX > 0 DISPLAY "Employee found at index " MATCH-INDEX ELSE DISPLAY "Employee not found".
STOP RUN.
SEARCH-TABLE. PERFORM VARYING TABLE-INDEX FROM 1 BY 1 UNTIL TABLE-INDEX > 10 IF EMPLOYEE-NAME(TABLE-INDEX) = KEY-NAME MOVE TABLE-INDEX TO MATCH-INDEX EXIT PERFORM END-IF END-PERFORM.
以上代码示例使用COBOL编程语言来实现表格搜索。它首先定义了一个包含员工姓名和员工ID的表格数据。然后,它定义了一个搜索键以接收用户输入的员工姓名。接下来,它定义了两个索引变量,一个用于循环遍历表格,另一个用于存储匹配的索引位置。
在PROCEDURE DIVISION中,程序首先提示用户输入要搜索的员工姓名。然后,它调用SEARCH-TABLE子程序来执行实际的搜索过程。在SEARCH-TABLE子程序中,它使用PERFORM VARYING语句循环遍历表格,检查每个表格条目的员工姓名是否与搜索键匹配。如果找到匹配项,它将匹配的索引位置存储在MATCH-INDEX中,并退出循环。如果未找到匹配项,则MATCH-INDEX保持为0。
最后,程序根据MATCH-INDEX的值显示相应的消息,指示是否找到了匹配的员工。
请注意,上述代码示例假定表格中最多有10个条目。您可以根据实际情况修改代码来适应更大的表格。
上一篇:表格数组列的聚合