교과서, 코스 노트, 매뉴얼, 편집기, JCL 및 컴퓨터가 있습니다.
이 모든 것들이 여러분에게 유용 할 것입니다.하지만 여러분은해야 할 일처럼 생각해야합니다.
당신의 임무는 파일을 읽고 테이블에 5 개의 레코드를로드하고, 그 중 일부 레코드를 테이블에로드 한 다음 그 레코드를 작성하는 것입니다.
파일을 읽고 작업을 수행하고 파일을 쓰는 작업이 많습니다.
먼저 파일 처리를 먼저 처리하는 방법은 어떻습니까?
은하지 않을 경우 "00"이상 종료를, 파일을 열 (사이트 표준에 따라, 또는 섹션) 그 단락에서 파일 상태
PERFORM OPEN-INPUT-POLICY-MASTER
PERFORM OPEN-OUTPUT-NEW-POLICY-MASTER
을 사용하여 파일을 정의 파일의 상태를 확인합니다.
READ 단락이 필요합니다. 거기서 읽으면 파일 상태를 확인하고 "10"은 유효하며 파일 끝을 나타냅니다 (따라서 AT END 및 END-READ가 필요하지 않음). 읽은 모든 레코드를 센다 (파일 상태 "00").
쓰기 단락이 필요합니다. 파일 상태를 확인하십시오. "00"만 유효합니다. 기록 된 기록을 세십시오.
PERFORM PRIMING-READ-OF-POLICY-MASTER
단락은 수행 단락 단락 만 수행하면됩니다. 그것을 자신의 단락에 넣는 것은 그것이하는 일을 문서화하는 방법입니다. 다음 사람을 따라 가라.
무엇이 있나요? 첫 번째 레코드를 읽거나 읽으려고 시도합니다. 파일이 비어 있으면 파일 상태가 "10"이됩니다. 파일이 비어 있으면 안됩니다. 이제 처리 논리에 영향을주지 않고 빈 파일을 처리했습니다.
PERFORM PROCESS-POLICY-MASTER UNTIL END-OF-POLICY-MASTER
또는
PERFORM UNTIL END-OF-POLICY-MASTER
....
END-PERFORM
내가 "확산"주요 논리를 방지하기 위해, 첫 번째를 선호하지만, 당신이 선호하는 경우가 두 번째로 시작 괜찮습니다/당신의 과정에 적합합니다.
단락의 마지막 부분 또는 끝 부분이 읽은 부분의 마지막 부분입니다.
그런 다음 CLOSE-INPUT-POLICY-MASTER를 수행 할 수 있으며 출력 파일과 유사 할 수 있습니다.
그런 다음 개수가 동일한 지 확인하십시오. 그렇지 않다면, 버리십시오. 이 예제에서는 자명하지만 논리가 복잡해지면 상황이 잘못 될 수 있습니다.
입력을 출력, 개수 추가, 삭제에 맞게 조정하려면 항상 카운트를 제공하십시오. 정보를 위해 별도로 업데이트를 계산하십시오. 프로그램이 할 수있는 것을 확인하십시오. 입력 레코드보다 많은 갱신 사항이 있으면이를 식별하고 이상 종료하십시오. 프로그램에서 최대한 많은 검증을 수행하십시오.
이제 파일을 읽고, 파일을 쓰고, 가능한 한 검사하고, 처리 논리가 부족한 간단한 프로그램을 갖게됩니다.
하나의 파일을 읽고 다른 프로그램을 작성하는 모든 작업의 기초로이 프로그램을 사용할 수 있습니다.
아무 것도하지 않고도 모든 프로그램이 새 프로그램에서 작동합니다.
지금 필요한 논리는 테이블에 데이터를 저장하는 것입니다.
길버트가 올바르게 표시 했으므로 테이블에 저장하는 것이 실제 사례에서는 의미가 없습니다. 그러나 그것은 요구 사항입니다. 당신은 테이블에서도 잘해야합니다.
테이블이 올바르게 정의되지 않았습니다. 이것을 시도하십시오 :
01 T1-RECORD-TABLE.
05 T1-ENTRY OCCURS 5 TIMES
INDEXED BY T1-INDEX.
10 POLICY-RECORD.
15 POLICY-RECORD-TYPE PIC XX.
15 POLICY-RECORD-DATA PIC X(78).
각각의 기록 유형에 대해 POLICY-RECORD-TYPE 아래에 88을 넣으십시오. 비즈니스 기능을 설명하는 88을 "RECORD-IS-TYPE-10"이라고만하지 마십시오.
테이블의 항목을 참조하는 데 인덱스를 사용하고 있습니다. 첫 번째 엔트리를 테이블에 넣기 전에 인덱스를 1로 설정해야합니다. 다음 엔트리에 액세스하려면 인덱스를 1로 설정해야합니다.
테이블에 항목을 저장 한 후에는 그들을 다시 만난다. 인덱스를 다시 1로 설정하면 첫 번째 항목을 참조 할 수 있습니다. 다른 항목에 액세스하려면 인덱스를 순차적으로 1만큼 설정하십시오.
처리를 시작하기 전에 인덱스를 1로 설정하십시오. 0을 테이블 항목 수로 이동하십시오. 파일 처리 루프를 시작하십시오.
테이블 항목 수가 5에 도달 할 때마다 저장할 항목을 계산하고 단락을 작성하여 레코드를 출력하고 색인을 1로 설정하십시오. 수가 5가 아닌 경우 색인을 1 씩 위로 설정하십시오.
단락에서 레코드를 출력하려면 PERFORM VARYING에서 인덱스를 1에서 1보다 크게 선택하십시오. 5. PERFORM에서 현재 테이블 항목을 기록 원본으로 사용하여 WRITE 단락을 수행하십시오.
이제는 입력 파일을 읽고 동일한 출력 파일을 생성하는 두 개의 프로그램을 갖게됩니다.
그런 다음 확인 로직을 수행 할 수 있습니다.
모든 것을 해체하고 일들을 분리하지 않고 간단하게 유지하고 이름을 잘 지정하면 특정 비즈니스 로직을 제외하고는 같은 COBOL 프로그램을 작성하기 시작할 것입니다. 모든 표준 재료, 모든 지루한 재료, 원한다면 모든 기본 구조는 동일하게 유지됩니다. 새로 작성한 코드는 다음 작업의 세부 사항입니다.
예, 참조 파일 또는 여러 입력으로 더 많은 파일을 읽을 수 있습니다. 당신은 여러 개의 출력을해야합니다. 그러나 당신은 정확히 같은 방식으로 모든 이들의 기본을 구축 할 수 있습니다. 그러면 미래의 프로그램을 기반으로하는 더 많은 예가있을 것입니다.
기본 사항을 얻은 후에는 다시 코딩 할 필요가 없습니다. 당신은 단지 복사하고 적용합니다.
좋은 이름을 사용하면 프로그램에서 무엇을하는지 알 수 있습니다.
실제로 작성한 코드는 "재미있는"자료 일 뿐이며 "항상"하는 자료는 아닙니다.
저는 이것을 "설계"했습니다. 그것은 유일하게 실행 가능한 디자인이 아닙니다. 그것은 내가 어떻게하고, 얼마 동안했는지입니다. 또한 처리의 모든 부분을 설계해야합니다. 코드를 작성하기 전에 무엇을하는지 알아야합니다.
예를 들어, 간단한 루프를 만드십시오. 어떻게 테스트 할 지 상상해보십시오. 테이블에 항목이 없으면 어떻게됩니까? 하나? 중간 번호로? 최대치보다 하나 적은? 최대? 최대치보다 하나 더요? 최대 10 개 이상? 그런 다음 해당 사례를 다루는 방법을 알아야한다는 것을 알고 코드를 작성하십시오.
너무 길지 않아 코딩하는 동안 하위 수준 디자인에 대해 생각할 것입니다. 더 많은 시간 동안 고급 디자인을 그렇게 할 것입니다. 충분한 시간 동안 당신은 전에 다룰 필요가없는 것들만 디자인 할 것이고 나머지는 이미 알고있을 것입니다.
교과서, 코스 노트, 매뉴얼, 편집기, JCL 및 컴퓨터가 있습니다. 나는 너에게 몇 가지 아이디어를 주었다. 모두 함께 찍은 것이 당신에게 유용할까요? 네가 지금 몇 가지 좌절감을 가지고 있다고 생각해. 몇 가지 기본 프로그램을 작성한 다음 작업에 적용하십시오.
와우! 시간을내어 모든 것에 대한 멋진 설명을 해주셔서 감사합니다. 저의 주요 문제는 테이블을 정의하는 방법이었고, 당신은 저를 위해 그것을 분명히했습니다. – Meg